Commit Graph

  • 7bfb462ffa T26: the arrow over the terminal; the settings window drops General, its Shell and Start in leading Terminal, which lists every shortcut from the keymap with a search, and its categories and page are two columns that scroll apart ZacharyZhang-NY 2026-10-15 20:08:10 -04:00
  • 90a46257a3 T26: on Windows Ctrl-V pastes too, as in Windows Terminal, where shells take it so; on Linux it stays the program's ZacharyZhang-NY 2026-10-15 19:24:02 -04:00
  • c316d271a2 T26: on Windows and Linux, which have no menu bar, a gear just inside the right toggle opens Settings; it sends OpenSettings through Window::dispatch_action, since App::dispatch_action inside the window's own click handler fails with only gpui's log line ZacharyZhang-NY 2026-10-15 19:04:41 -04:00
  • 0f87676ae2 T26: the Git and Files switch is centered in the right column; acceptance records the Windows hit-test probe of T26's build against v0.1.0 ZacharyZhang-NY 2026-10-15 18:45:35 -04:00
  • 6f7d3a9aeb T26: on Windows every title bar control takes its press: Ely cdc5ce8 occludes the drag region under its window buttons, title bar slots and column header items, where gpui answered the hit test as the caption; the Git and Files switch moves below the title bar, clear of the caption buttons; version 0.1.1 ZacharyZhang-NY 2026-10-15 18:14:25 -04:00
  • 2d8fa64622 T25: reviewed, ticked ZacharyZhang-NY 2026-10-15 17:05:32 -04:00
  • 59e41ea9bb T25: v0.1.0 published on Gitea at 0075667 with the disk image, the Windows zip and the Linux tarball, each built from that commit by its script and downloaded back to match its SHA-256; acceptance records it and CI run 934 ZacharyZhang-NY 2026-10-15 17:02:23 -04:00
  • 0075667ab1 T25: release builds: scripts/windows-zip.ps1 zips elyterminal.exe, the icon inside as resource 1 (build.rs, embed-resource), a GUI program carrying its C runtime, git started without a console; scripts/linux-tar.sh builds on Debian 12, glibc 2.35 for this build, with a desktop entry and the icon; every window names itself com.zacharyzhang.elyterminal; rust-toolchain.toml pins 1.95.0, and CI installs it without rustup default v0.1.0 ZacharyZhang-NY 2026-10-15 16:50:22 -04:00
  • 2b8ae5d026 T25: CI's cache step runs only in the Linux container: on the owner's own macOS and Windows runners its post step cleaned their real ~/.cargo, deleting rustup after every job and leaving its proxies pointing at nothing ZacharyZhang-NY 2026-10-15 15:55:52 -04:00
  • bc2059949a T24: reviewed, ticked ZacharyZhang-NY 2026-10-15 15:41:04 -04:00
  • 65bb4d3456 T24: the icon SVGs name their parts as groups, not comments, and draw the same pixels; mac-app.sh cuts the version at cargo pkgid's last # or @, as a clone in a folder named elyterminal prints no @, and stops when none is left; AGENTS.md says the macOS icon holds a copy of the figure ZacharyZhang-NY 2026-10-15 15:15:15 -04:00
  • 67fe91249a T24: the icon, Ely holding a terminal, drawn in SVG: on macOS's rounded square, and alone and flat for Windows and Linux; scripts/mac-app.sh builds ELYTerminal.app, signed ad hoc, and its disk image, its icon rendered by examples/icons.rs through resvg ZacharyZhang-NY 2026-10-15 15:10:17 -04:00
  • c0a9eb3c98 T23: reviewed, ticked ZacharyZhang-NY 2026-10-15 15:07:26 -04:00
  • 82bdbaf635 T23: the acceptance table cites run 919 on 09930c2, green on macOS, Ubuntu and Windows ZacharyZhang-NY 2026-10-15 15:00:48 -04:00
  • 09930c2934 T23: the owner's checks on macOS: on macOS 27 gpui's Selection material drew no blur, so blur/macos gives the window's effect view underWindowBackground, radius 30; a button at each end of the title bar hides and shows its column, kept in the settings; shot reads an effect view's blur radius; new comments cut to ten words ZacharyZhang-NY 2026-10-15 14:42:28 -04:00
  • be8d0e20c5 T23: the shell tests type a line only once the line editor reads raw keys: on CI's pwsh 7.6.6 the probe, typed right after the first folder report, came before PSReadLine's first read and was echoed, never run; shot warns when the app it runs under lacks Screen Recording, which left this Mac's pictures with the window's ground alone; AGENTS.md records the CI runners, the build without debuginfo and the typing rule ZacharyZhang-NY 2026-10-15 13:50:09 -04:00
  • de48f491bc T23: the Linux and Windows CI jobs build without debuginfo: linking gpui's test binaries with it ran the Linux runner's 8 GB VM out of memory, and scripts/linux.sh builds so already ZacharyZhang-NY 2026-10-15 13:21:11 -04:00
  • 4b8445c434 T23: README; tasks/acceptance.md holds PRD.md line by line with its evidence; the Ubuntu job installs the libraries gpui links; testlog builds only beside the Unix tests that use it, so clippy passes for Windows; the CI probe steps go ZacharyZhang-NY 2026-10-15 13:15:15 -04:00
  • e8ea95f491 T23: CI prints each runner's PATH and where rustup, rustc, fish and pwsh live, to find why Windows loses rustc and the Mac mini finds no fish or pwsh; a probe, gone with the fix ZacharyZhang-NY 2026-10-15 10:26:06 -04:00
  • e3b5cfb514 T22: reviewed, ticked ZacharyZhang-NY 2026-10-15 10:23:28 -04:00
  • 37220a72d4 T22: Edit's Copy, Paste and Select All are Ely's text input actions, which Ely a2cb531 exports and the terminal handles too, so the menu reaches find and every field; Select All counts a space under a combining mark as a character; comments cut to one short line; the Ely pin moves to a2cb531; AGENTS.md says gpui draws a shot window only while macOS shows it ZacharyZhang-NY 2026-10-15 10:15:53 -04:00
  • 5ee67bd406 T22: the macOS menu bar holds the PRD's menus, each item showing its key; Quit, Select All, Bigger, Smaller, Reset Size and Minimize take Ghostty's keys, Ctrl-Shift off macOS where Ctrl with a letter types a control byte; the font's size moves for every session, unsaved; Select All runs from the first character in the history to the last, as Ghostty's; shot lists the menus and says whether the app was active at each key ZacharyZhang-NY 2026-10-15 01:51:46 -04:00
  • 149c1b5f02 T21: reviewed, ticked ZacharyZhang-NY 2026-10-15 01:19:19 -04:00
  • b5e4967071 T21: on X11 the window names its pane in _KDE_NET_WM_BLUR_BEHIND_REGION and drops it when Blurred goes; Ely's new ResizeBorder::glass leaves a client-drawn window's pane to the content, without ground or shadow, so a Linux window shows the desktop at all; T20's region and this property cover the pane alone, worked out each frame and sent only on a change; the Ely pin moves to 5dc4dd1; the X11 test runs its own Xvfb ZacharyZhang-NY 2026-10-15 01:09:47 -04:00
  • 8eeeedf12d T20: reviewed, ticked ZacharyZhang-NY 2026-10-15 00:49:14 -04:00
  • 107069b3c8 T20: on Wayland the window asks for ext_background_effect_v1 on its surface, through a guest connection on gpui's display; one region wider than any window, which the compositor clips, comes and goes with Blurred; the log names the way blur goes; a wayland-server compositor tests it, and scripts/linux.sh runs the tests on Linux in a container ZacharyZhang-NY 2026-10-15 00:42:30 -04:00
  • 6523632ade pty: when its pty closes, a program that ignores SIGHUP reads EIO on Linux and EOF on macOS; the test reads the shell's own exit, which holds on both ZacharyZhang-NY 2026-10-15 00:42:30 -04:00
  • 0afac81542 T19: reviewed, ticked ZacharyZhang-NY 2026-10-14 23:39:57 -04:00
  • c98bbad6e0 T19: the main window lets the desktop through while Background opacity is under 1, blurred or clear as Background blur says, set at open and as the settings change; Ely's new ColumnShell::glass grounds every column and the title bar in the palette's glass, which the opacity sets, and the Ely pin moves to it past 27 of Ely's own commits; dialogs stay solid; the terminal paints no second ground; shot names the window's AppKit views ZacharyZhang-NY 2026-10-14 23:27:19 -04:00
  • d0162ef009 T18: reviewed, ticked ZacharyZhang-NY 2026-10-14 22:59:26 -04:00
  • 764ff45a4b T18: Terminal: scrollback lines, Option as Alt on macOS, copy on select, each applied at once to every session; the settings pages share one switch and one segmented choice ZacharyZhang-NY 2026-10-14 22:50:19 -04:00
  • 263e123a15 T17: reviewed, ticked ZacharyZhang-NY 2026-10-14 22:45:35 -04:00
  • ee37018577 T17: a font saves, and a settings file starts, only when gpui loads it as the terminal draws it, so the terminal never falls back without a word; numbers save on Enter, on leaving the field and on each step; after a refused change a number field drops its draft and the font picker shows the saved family again ZacharyZhang-NY 2026-10-14 22:37:18 -04:00
  • f2cc16fd94 T17: Appearance: every theme as a card over a small window in its colors, a separate dark theme with its own grid, font family, size, line height and ligatures, cursor style and blink over a live prompt, opacity by whole percents, blur, padding; a theme change re-dresses the chrome at once; a change the store refuses says why at the top of the page ZacharyZhang-NY 2026-10-14 22:14:47 -04:00
  • 7ef2ea0106 T16: reviewed, ticked ZacharyZhang-NY 2026-10-14 21:59:54 -04:00
  • 9e69288956 T16: on Windows a shell named without an extension means its .exe, and one with an extension keeps it; the resolver hands the session its program as UTF-8 text, so a program whose path is not UTF-8 never saves ZacharyZhang-NY 2026-10-14 21:53:24 -04:00
  • 3c51b01955 T16: a shell saves only when the running user may run it, as access answers, ACLs too, found at a full path or in one of PATH's full folders, never a relative one; a session runs that same full path, so the check and the start agree ZacharyZhang-NY 2026-10-14 21:29:54 -04:00
  • 3e1535e921 T16: the settings window: Cmd-, opens it or brings it forward and Cmd-W closes it, Ctrl-, and Ctrl-Shift-W off macOS; General's rows in Ely's settings layout, Shell in Ely's path input and Start in as Home or the session's folder, each change checked, saved and applied to new sessions at once; a shell saves only when it names a program, else the row says why; the app quits with its last terminal window; shot aims at either window with to:settings and to:main ZacharyZhang-NY 2026-10-14 21:18:25 -04:00
  • 7c5f36f0e7 PRD: discard joins the Git panel, since Ely's changes list draws it on every unstaged and untracked row; it asks first ZacharyZhang-NY 2026-10-14 21:08:10 -04:00
  • ea816d84ef T15: reviewed, ticked ZacharyZhang-NY 2026-10-14 21:07:13 -04:00
  • fcd0792712 T15: a commit empties the fields that still hold what it committed only once the shown folder has read and is in the same repository, so a draft typed while a nested repository reads stays ZacharyZhang-NY 2026-10-14 21:03:32 -04:00
  • 27270ae565 T15: no action runs until the shown folder has read, so none reaches the repository left behind, and the view blanks on a folder outside the shown work tree; a folder change drops a diff still loading; actions run each after the one asked before it; a commit empties only the fields that still hold what it committed, so a draft typed while it ran stays ZacharyZhang-NY 2026-10-14 20:53:51 -04:00
  • a8a30d3062 T15: the Git panel: HEAD's branch, or its commit while detached; Ely's changes list of conflicted, staged, unstaged and untracked files, each with open, stage, unstage, and discard, which asks first; stage all and unstage all; a commit with a summary, a description and amend; the last 50 commits; a pressed file's diff in Ely's DiffViewer over the window, unified or split; outside a repository it says so, and a failed git command shows git's words; it reads again at each prompt, on a folder change and after each action, and Files' marks with it; a section lists 500 files at most and the Git body is a cached view, so a long list does not slow the terminal ZacharyZhang-NY 2026-10-14 20:41:24 -04:00
  • e931fbd017 T14: reviewed, ticked ZacharyZhang-NY 2026-10-14 20:08:12 -04:00
  • 911500c64e T14: paths stay git's bytes until shown, so a name not in UTF-8 names its own file in status, stage, unstage and diff, and Files keys and opens each name by its bytes too; a copy is a new file whose source no unstage or diff touches; diffs run no text converter; an untracked diff git prints despite a warning stands, the warning logged, while a missing file still fails; a conflict diffs against HEAD, so a file we deleted reads as new; AGENTS.md says Files reads porcelain v2 ZacharyZhang-NY 2026-10-14 20:03:12 -04:00
  • e2966686bd T14: git through its command line: status from porcelain v2 with the branch and HEAD's commit, in conflicted, staged, unstaged and untracked sections; stage and unstage by literal paths fed on stdin, a staged rename with its old path, before the first commit too; commit from stdin; the log as Ely's commits; a diff as git writes it, read into Ely's stretches with changed words marked, none for a binary file; Files' marks read the same records; tests on temp repositories ZacharyZhang-NY 2026-10-14 19:43:28 -04:00
  • 448bb55a13 T13: reviewed, ticked ZacharyZhang-NY 2026-10-14 19:30:12 -04:00
  • 937dab8552 T13: a label built from a path shows control characters as their pictures, so a name with a newline no longer aborts gpui's line shaping in Files or the session row; on macOS a name meets Git's mark in composed form, as git writes it; the rev-parse prefix keeps its own newlines ZacharyZhang-NY 2026-10-14 19:25:58 -04:00
  • 8369d96b36 T13: the right column's Git and Files switch, kept in settings; Files shows the shown session's folder as a tree, folders first, Git's marks on names from git status without optional locks, unreadable folders noted; a double press opens a folder, or a file in the system's app; it reloads when the session reports a folder, so at each prompt; a program without shell integration gets a line saying it reports no folder; header controls keep their presses from the header's double-press zoom ZacharyZhang-NY 2026-10-14 19:09:21 -04:00
  • 2ddc40d939 T12: reviewed, ticked ZacharyZhang-NY 2026-10-14 18:25:17 -04:00
  • dcf9f7bc27 T12: a terminal about to be hidden ends its mouse gesture as releases would: its selection drag ends and its program hears each held button come up ZacharyZhang-NY 2026-10-14 18:19:40 -04:00
  • 5fd674e82a T12: sessions: new (+, Cmd-T), close (row x, Cmd-W), select (press, Cmd-1 to 8, Cmd-9 last, Ctrl-Tab, Ctrl-Shift-Tab), Ghostty's keys off macOS; rows show the title and the folder with ~; an ended program closes its row, the last row the window, and the app quits; a bell marks a hidden row; new sessions follow the Shell and Start in settings ZacharyZhang-NY 2026-10-14 18:07:39 -04:00
  • ccbea6a7a0 T11: reviewed, ticked ZacharyZhang-NY 2026-10-14 17:59:31 -04:00
  • 0de9e15c84 T11: the Workspace key context sits above the focus root, so the column toggles work after a press on a blank column or a header ZacharyZhang-NY 2026-10-14 17:56:10 -04:00
  • 34ce046597 T11: the window is Ely's ColumnShell: sessions, terminal and right columns under a transparent title bar, the terminal's header wearing the program's title; Cmd-B and Cmd-Alt-B toggle the side columns, kept in the settings; Linux asks for client decorations inside Ely's ResizeBorder ZacharyZhang-NY 2026-10-14 17:47:36 -04:00
  • 17826df1b4 T10: reviewed, ticked ZacharyZhang-NY 2026-10-14 17:43:37 -04:00
  • 39761d9f40 T10: a match whose line is kept, grown or cut stays current when held under the same line above or in its place, before a twin line elsewhere ZacharyZhang-NY 2026-10-14 17:43:36 -04:00
  • 11b2ce6f34 T10: following the current match takes one pass: a forward walk maps matches to cells, line ends are found once; the same occurrence ranks by an identical line, then one grown or cut at its end, then by line and column; a cleared or trimmed history moves no line; the title replays on CursorBlinkingChange, which a reset sends in the parser's order, synchronized updates too, and the tap's reset count is gone ZacharyZhang-NY 2026-10-14 17:30:21 -04:00
  • 1c21dfd197 T10: find reads the grid as it shows, through Ely's find_all: combining marks, hidden cells blank, wrapped rows joined, Unicode words; new output, a resize and a settings change search again, and the current match follows its line text; a full reset replays the title through set_options ZacharyZhang-NY 2026-10-14 16:57:09 -04:00
  • 4d8788ff22 T10: focus in and out reach a program under mode 1004; the window wears the program's title; a bell is logged and silent; the scrollback setting caps history and trims it live; Cmd-F finds in the scrollback with Ely's FindWidget, matches washed, Enter older, Shift-Enter newer, new output searched again ZacharyZhang-NY 2026-10-14 16:26:20 -04:00
  • a39be06cdc T09: reviewed, ticked ZacharyZhang-NY 2026-10-14 16:15:39 -04:00
  • 8bb276335e T09: the mouse mode scanner reads controls as vte does: C0 runs and DEL is skipped mid-sequence, CAN and SUB cancel, subparameters count toward its 32 values; a byte-by-byte test against vte's parser; copy on select and OSC 52 primary writes go to Linux's selection ZacharyZhang-NY 2026-10-14 16:09:28 -04:00
  • d6fa38e60b T09: the tap holds one mouse tracking and one format as xterm does, any reset ends it; every reported button keeps its release, motion reports the first held; URLs keep combining marks; selections log start, run and end; shot hands real buttons to the view and shows its window without activating ZacharyZhang-NY 2026-10-14 15:51:44 -04:00
  • 9f81f1f704 T09: mouse: selection by cell, word and line, Shift extends; reports for X10, normal, button and any tracking in X10, UTF-8 and SGR bytes, mode 9 followed by the tap; the wheel reports, sends arrows or scrolls history; copy, bracketed paste, copy on select, OSC 52; Cmd-press opens OSC 8 targets and URLs; a release goes out only for a press the terminal saw; shot posts mouse gestures and never activates ZacharyZhang-NY 2026-10-14 15:32:17 -04:00
  • fdb1caa26e T08: reviewed, ticked ZacharyZhang-NY 2026-10-14 15:05:32 -04:00
  • 11d7a30598 T08: Tab and F6 pass Ely's focus keys; each kitty flag reshapes only what it names; Cmd is Super; repeats and Command key-ups come from AppKit; IME commits stay UTF-8, as in kitty and Ghostty; key.zig out; the line rule reads every text file ZacharyZhang-NY 2026-10-14 14:59:59 -04:00
  • 25365a98c8 T08: keys: xterm and kitty encoding, Option as Alt by side, IME composition at the cursor; shot types real AppKit keys ZacharyZhang-NY 2026-10-14 14:22:52 -04:00
  • 9cecb85d67 T07: reviewed, ticked ZacharyZhang-NY 2026-10-14 14:05:13 -04:00
  • 2804aa6117 T07: one coverage per pixel (overlaps cut, strokes as polygons, the cross cut around its first band); a drawn base keeps its geometry under marks ZacharyZhang-NY 2026-10-14 13:57:47 -04:00
  • 387bfa1c8b T07: box drawing, block elements and powerline shapes painted as geometry, after Ghostty's sprite rules ZacharyZhang-NY 2026-10-14 13:40:22 -04:00
  • c7e796b11e T06: reviewed, ticked ZacharyZhang-NY 2026-10-14 13:18:48 -04:00
  • 3c8f7460de T06: hidden cells blank, inactive window hollows the cursor, glyphs painted on one baseline with CoreText's upward offsets flipped ZacharyZhang-NY 2026-10-14 13:11:51 -04:00
  • ae1d8ce746 T06: terminal view: frame, colors and styles, wide and combining cells, cursor and blink, font, padding, resize; bundled faces and icon font; shot example ZacharyZhang-NY 2026-10-14 12:59:32 -04:00
  • b4750e61c9 T05: reviewed, ticked ZacharyZhang-NY 2026-10-14 12:44:36 -04:00
  • c2da9dd667 T05: fish search path, PowerShell policy and load failure, encoded OSC 7 paths, kept exit status, install read errors ZacharyZhang-NY 2026-10-14 12:39:47 -04:00
  • dfaf378418 T05: shell integration for zsh, bash, fish, PowerShell; installed at start ZacharyZhang-NY 2026-10-14 12:24:31 -04:00
  • 8c6f242bf1 T04: reviewed, ticked ZacharyZhang-NY 2026-10-14 12:15:25 -04:00
  • 0e7f3095c3 T04: close the pty master before reaping, so a program ignoring SIGHUP ends ZacharyZhang-NY 2026-10-14 12:15:17 -04:00
  • fff436c8e9 T04: own Unix pty so a failed chdir fails the start; closing logs and reaps ZacharyZhang-NY 2026-10-14 12:08:18 -04:00
  • 96ae85b72c T04: pid on Pty, enter check, one fitted size, folder and exit logs, non-root Linux tests ZacharyZhang-NY 2026-10-14 12:00:18 -04:00
  • 62e50fe83a T04: pty through alacritty's event loop, OSC 7 tap on the reader ZacharyZhang-NY 2026-10-14 11:51:51 -04:00
  • f122a88143 T03: reviewed, ticked ZacharyZhang-NY 2026-10-14 11:49:04 -04:00
  • 7d4d53547e T03: built-in themes, chrome palette, dark-mode choice ZacharyZhang-NY 2026-10-14 11:44:00 -04:00
  • 653f654b42 T02: reviewed, ticked ZacharyZhang-NY 2026-10-14 11:41:24 -04:00
  • 83ec4b1c64 T02: unique temp file per save, parse errors name the field ZacharyZhang-NY 2026-10-14 11:35:50 -04:00
  • e1770ba8f9 T02: settings model, ranges, load and atomic save ZacharyZhang-NY 2026-10-14 11:26:34 -04:00
  • bcc799d76e T01: reviewed, ticked ZacharyZhang-NY 2026-10-14 11:24:23 -04:00
  • f8857fe1c8 T01: rustfmt ZacharyZhang-NY 2026-10-14 11:20:46 -04:00
  • 9c0c06764d T01: Linux windowing backends, macOS build gate, generated lockfile exempt ZacharyZhang-NY 2026-10-14 11:20:27 -04:00
  • 4e2f3c9daa T01: crate, window, check script, CI ZacharyZhang-NY 2026-10-14 11:09:44 -04:00