a7aecf2085
T57: v0.1.6 published at 8a9941b with T55, T56 and T58: its zip and tarball from their scripts on the owner's PC and its WSL, its disk image signed and notarized by the Release workflow (run 1343), once CI run 1342 passed on macOS, Ubuntu and Windows; each file downloaded back anonymously matches its SHA-256 in the notes
ZacharyZhang-NY2026-10-19 11:21:50 -04:00
8a9941bfd2
T58: the terminal shows a scrollbar over its history, which a user asked for in issue #2 after 0.1.5, since a program that takes the mouse takes the wheel: a thumb along the right edge, in Ely's sizes and colors, stands where the view stands, and a drag moves the view through the history; none shows without history
v0.1.6
ZacharyZhang-NY2026-10-19 11:04:48 -04:00
55250f49f5
T56: Settings › Terminal checks for updates, which the owner asked for after 0.1.5: under Ely, a switch, on by default, checks at start and once a day through curl and Gitea's API, and Check now checks at once; the row says what the check found, a newer release brings Download, which opens its page, and one an automatic check finds posts a notification whose press opens it
ZacharyZhang-NY2026-10-19 10:39:13 -04:00
17e91aafef
T55: a drag moves Ely along the edge she stands on, which the owner asked for after 0.1.5: on macOS, Windows and X11 her window follows the pointer's place on the screen, on Wayland her popup opens again where she is let go; she moves by whole points inside the pane, and the settings keep where she stands as ely_left, 140 by default
ZacharyZhang-NY2026-10-19 10:30:19 -04:00
15153b4aae
T54: v0.1.5 published at 0119776, its zip and tarball from their scripts on the owner's PC and its WSL, its disk image signed and notarized by the Release workflow (run 1312), once CI run 1311 passed on macOS, Ubuntu and Windows; each file downloaded back anonymously matches its SHA-256 in the notes
ZacharyZhang-NY2026-10-19 03:14:28 -04:00
a6c044f009
T53: Ely's window shows nothing but her, which the owner asked for after a user's 0.1.4 drew a hairline along the top of her box on macOS: her panel turns borderless as it is glued, style mask 0x8081 to 0x80, without the titled frame gpui's popup carries, whose edge macOS draws; a failed glue closes her window, where it stayed open, unplaced, while the log said she did not show
ZacharyZhang-NY2026-10-19 02:50:23 -04:00
0eb8fc5c4e
T52: a press wakes Ely from her doze, which the owner asked for after 0.1.4, where only a new mood woke her: calm lasts 5 minutes from her mood's start or the last press before she dozes, so after a press she stays awake 5 minutes, then dozes again
ZacharyZhang-NY2026-10-19 02:35:13 -04:00
8b647982ef
T51: round 2 fix: on X11 the room above runs to the top of the RandR monitor holding most of the pane, as Windows and macOS pick a window's display, where the monitor under her bottom left corner put her over the gap beside a staggered monitor
ZacharyZhang-NY2026-10-19 02:30:45 -04:00
e6c0c14d1b
T51: round 1 fix: on X11 the room above runs to the top of the RandR monitor under her, or of _NET_WORKAREA where that lies lower, since the work area spans every monitor; on Wayland she checks twice a second where the window's size and state put her anchor, counted from the pane as gpui counts it, and opens there again when it moved, since gpui hears a change of state alone as no change of bounds and gives an unseen popup no frames; tiling counts where gpui reports it, for a window it draws itself; her tests move to pet/tests.rs, keeping pet.rs under 500 lines
ZacharyZhang-NY2026-10-19 02:23:59 -04:00
15ef5d52d0
T51: Ely stands inside the main window on its pane's bottom edge while her box would not fit above it, which the owner asked for after 0.1.4, where on a window at the screen's top or full screen she stuck between the menu bar and the terminal: each platform measures the room above the pane up to its display's work area, macOS's visibleFrame, Windows' rcWork, X11's _NET_WORKAREA, and on Wayland, which tells a client no place, she stands inside while the window is full screen, maximized or tiled at its top
ZacharyZhang-NY2026-10-19 01:55:59 -04:00
5d109790c8
T50: v0.1.4 rebuilt with T48 and T49 at a54f4ff, its three builds from their scripts, the zip on the owner's PC and the tarball in its WSL, the disk image signed and notarized by the Release workflow, each in place of the first; the tag and the release's target moved to a54f4ff, and the notes give the new SHA-256
ZacharyZhang-NY2026-10-18 15:10:54 -04:00
a9be8ab8c4
T49: round 1 fix: a change of mood, though the act stays as inside a wink, and a press each ease her from the pose she was in, where a mood that changed mid-hop dropped her 12 points and an old finish cleared mid-glance snapped her eyes back; her brows ease with her
ZacharyZhang-NY2026-10-18 14:49:34 -04:00
9d9144f25e
T49: Ely moves all the time, as the films move her, which the owner asked for after 0.1.4, where she stood still but for a press: rigged from the icon's paths in layers of one color, each a mask gpui moves with a matrix of its own at every frame, she breathes, sways, blinks and glances, and each mood moves her, easing from one act to the next; shot's snap writes a child window's frames
ZacharyZhang-NY2026-10-18 14:36:57 -04:00
e4b0107a88
T48: a place carries her bottom left corner, and her window sizes her at the DPI it has when the place lands, where a place sized when it was posted, waiting behind one that changed her DPI, left her the old DPI's size on the new; a keep's log names both DPIs
ZacharyZhang-NY2026-10-18 14:13:51 -04:00
47826ee262
T48: round 3 fix: a keep moves her only while its DPI is still hers, so it changes no DPI and posts no other, where a keep whose DPI had passed while two places piled up set her DPI back and forth
ZacharyZhang-NY2026-10-18 13:24:49 -04:00
f7e5563a71
T48: round 2 fix: at a new DPI her corner follows once the move that brought it is done, and only where her box would lie mostly on a display of that DPI; else Windows' rect stands, since between two displays side by side a corner kept always set her DPI back and forth; the tests move beside the module
ZacharyZhang-NY2026-10-18 13:16:13 -04:00
8ddf470f73
T48: round 1 fix: her height is her own DPI's and her bottom the pane's top whatever the two windows' DPI, where the main window's scale had put her 62 pixels into the terminal or above it; and when a move takes her to a display of another DPI, gpui takes the rect Windows suggests while she keeps her bottom left corner
ZacharyZhang-NY2026-10-18 12:55:30 -04:00
c1cdddf07e
T48: Ely on Windows in a box her own size, as a user found her broken in 0.1.4: gpui opened her popup as large as the display when the middle of the box asked for lay off it, as an overlapped window Windows framed, so she sat at its bottom over the terminal and it took the clicks; her window becomes a bare popup, and the glue posts it her size, from her own DPI, with her place on the pane's top edge, since gpui hears a new size only outside its own updates
ZacharyZhang-NY2026-10-18 12:43:25 -04:00
cdafdc2836
T47: release v0.1.4 at 2d9180e, its three builds from their scripts, the zip on the owner's Windows VM, the tarball on the owner's PC under Omarchy, the disk image signed and notarized by the Release workflow, published once CI passed on all three
ZacharyZhang-NY2026-10-18 05:51:40 -04:00
6df7534e7f
T46: round 1 fixes: Ely's window never takes the keys, a panel key only if needed on macOS and on Windows a window that answers a press's activation with none; she opens with the sessions' mood; she stands 140 points in or less on a narrow pane, so she holds its edge at any width, and on Wayland, whose popup keeps the place it opened at, she opens again when a new width moves her
ZacharyZhang-NY2026-10-18 05:26:13 -04:00
9aeb3f3552
T46: Ely peeks over the main window's top edge from behind it, as the owner asked after the 0.1.3 film: her head and fingers from the icon's paths in a transparent window of her own, kept on the edge as each platform allows, macOS's child window, Windows' owned popup, X11's popup moved and stacked above the frame, Wayland's anchored popup; ten faces follow the most pressing of the sessions' marks, with hops, a shake and a rise; a press winks; Settings, Terminal, Ely turns her off
ZacharyZhang-NY2026-10-18 05:06:59 -04:00
c30bd51fba
T45: round 2 fix: while herdr takes the mouse every link press is herdr's again, its rules with it, as its client and docs say: it keeps its panes' OSC 8 targets from the terminal so that it alone answers Ctrl-press, and opens web links only, so the terminal opening a file:// label it sees opened the wrong target; Shift with the press, herdr's named way past it, lets the terminal open what it sees, a file:// link too
ZacharyZhang-NY2026-10-18 04:54:55 -04:00
af66a70947
T45: round 1 fix: herdr's client opens only http and https links, so inside herdr a link the app finds of another kind, file:// among them, the app opens itself; web links and links the app cannot see still go to herdr
ZacharyZhang-NY2026-10-18 04:46:06 -04:00
ae3de244c2
T45: Cmd-press, Ctrl-press off macOS, opens links inside herdr too: herdr wraps a long URL at its pane's edge and passes no OSC 8 target on, so the app opened a cut URL or nothing; while herdr's client leads the session and tracks the mouse the press goes to herdr, which opens its pane's link whole and underlines it under the key, Cmd heard as Ctrl on macOS; elsewhere the app opens links as before
ZacharyZhang-NY2026-10-18 04:35:49 -04:00
3f47134928
T44: round 2 fix: on Windows a repeat goes as a record where its press did, one that types after its modifiers came up too, so its release still goes as a record and herdr frees the key; the choice is one function, records, tested on every system
ZacharyZhang-NY2026-10-18 04:28:55 -04:00
6f8bfaeff8
T44: round 1 fixes: under kitty's flags the legacy bytes a key falls back to keep gpui's character, so Option-Shift-[ with only events set sends ESC { again; a key that is down is known by its key code on macOS and its virtual key on Windows, so its release goes out, as a record where its press did, though Shift came up first; shot posts a press or a release alone with down: and up:
ZacharyZhang-NY2026-10-18 04:21:52 -04:00
fc10c4d491
T44: herdr's shortcuts work, which a user found dead: under kitty's flags a key Shift makes a symbol of goes as its own key with Shift, the symbol its alternate, as Ghostty sends it, read from the layout gpui reads on macOS and Windows; on Windows keys that type no text go as win32-input-mode records, which ConPTY asks for and herdr reads, as Windows Terminal sends them; on Linux gpui keeps no key code, which the docs say; shot learns wait, n and ]
ZacharyZhang-NY2026-10-18 04:00:24 -04:00
8d7e730a78
Plan: T44 herdr's shortcuts on every system, T45 links open on Cmd-press and Ctrl-press, T46 Ely peeks over the window with a switch to turn her off, as the owner asked; T47 release v0.1.4
ZacharyZhang-NY2026-10-18 03:24:06 -04:00
3ee525a008
T43: v0.1.3 rebuilt with T42, as the owner asked in place of a v0.1.4: the three builds from eb96109 replace the first ones on the release, each downloaded back matches the new SHA-256 in the notes, and the tag and the release's target moved to eb96109; no review, as the owner asked; ticked
ZacharyZhang-NY2026-10-17 23:17:08 -04:00
eb9610988e
T42: a session's status mark moves, as the owner asked after aicss.dev's orbs: 3 by 3 dots in the state's color; work ripples from the centre, progress fills the outer ring clockwise from the top, waiting stays lit and dips twice, error, done and idle draw an X, a check and a ring, then hold; the window draws at the marks' 80 ms steps only while one moves; no review, as the owner asked
v0.1.3
ZacharyZhang-NY2026-10-17 22:38:46 -04:00
140c2a5741
T40: review round 2: the session's title comes from the tap alone, in the output's order, so the row, the window and a notification name it alike: OSC 0 and 2 read as vte splits them, 15 parts past the number, and up to 65536 bytes; alacritty's title events, which come later, pass by, and a full reset no longer sets the options again to send one
ZacharyZhang-NY2026-10-17 16:17:55 -04:00
22752a28db
T40: review round 1: a notification names the session as the output stands at its place: the tap follows OSC 0 and 2, the title stack's CSI 22 t and 23 t and a full reset as alacritty does, and sends each title in order, since alacritty's own title events come after the tap's; one write and split writes post the same
ZacharyZhang-NY2026-10-17 16:06:10 -04:00
52576bb8ee
T40: a press whose record went, a twin Linux stacked or one past the 64 kept, still shows its session; on Linux the body goes as markup's text; only a command C started posts its end, so a prompt bash 3.2 draws again posts nothing; the posting conditions are pure and tested; the decision says what macOS, Wayland and gpui's log do at a press and outside the bundle
ZacharyZhang-NY2026-10-17 15:51:46 -04:00
efda50f142
T40: a session posts at each turn of its row to waiting, done or error, as the row's waiting mark is set, so one output posts as two would
ZacharyZhang-NY2026-10-17 15:43:12 -04:00
3aaeb36bd1
T39: review round 2: a hidden session whose row turns to waiting marks it until shown, though it went on within the same output, so one output marks as two would; a change of herdr's records draws the view again, so an open hover follows them though the state holds
ZacharyZhang-NY2026-10-17 15:41:39 -04:00
31de5e44ef
T40: sessions post system notifications through gpui's: each terminal posts its own in the order its output asks, when its row turns to waiting, done or error, when a command ends, and when a program asks through OSC 9, 777 or 99, only while its window is inactive or it is hidden, one every 3 seconds, titled with the session's name; a press goes to the window whose session posted it and shows it; OSC 99 hears untracked closes, alive lists what lives, in order before a later DA1, a close and w take one back where gpui can, a closed session's too, and the query says what holds where
ZacharyZhang-NY2026-10-17 15:36:28 -04:00
53b8978dff
T39: review round 1: the view notes the state its row shows after each change it hears and tells the workspace of each, so a hidden session that waits, works and waits again in one output starts waiting again; hover reads the records and the last command's status, which the view now keeps, at each frame, stays under the pointer and scrolls within the window; the progress ring holds Ely's loader, since its track can match a selected row's ground
ZacharyZhang-NY2026-10-17 15:12:29 -04:00
85bcbf466f
T39: a session's row shows its status, the most pressing first: waiting by its kind, an error, work with Ely's progress ring or a still loader, done, then a failed last command, then idle; hover lists each record's state, app, title and message, disarmed and cut; typing sees done and error, herdr's aside; a hidden session that starts waiting sets its title strong until shown
ZacharyZhang-NY2026-10-17 14:43:56 -04:00
7d56063df9
T38: review round 1: herdr's records take herdr: before the pane, a colon no OSC 7501 id holds, so a program's record named like theirs, herdr/build among them, stays through herdr's snapshots and its leaving
ZacharyZhang-NY2026-10-17 14:24:42 -04:00
a175b18743
T38: inside herdr, which passes no OSC 7501 on, herdr's agents in a state it knows are the session's records, one a pane, their app, title and message from herdr's fields; a snapshot that lists other agents replaces them whole, and they go when herdr leaves the foreground
ZacharyZhang-NY2026-10-17 11:51:56 -04:00
628ed6b8c5
T37: review round 1: OSC 99 reads base64 group by group, so chunks split before encoding or after join, and the text, any UTF-8, is checked once whole; plain text alone refuses controls; a chunk that breaks a rule drops what its notification gathered; the tap keeps an OSC 99 body to its metadata and a full payload
ZacharyZhang-NY2026-10-17 01:42:06 -04:00
ef33a0d34e
T37: programs ask for notifications through OSC 9, 777 and 99, read as Ghostty and kitty read them, OSC 99's chunks gathered by id with base64, options, close, query and alive, and the workspace hears each; OSC 9;4's progress stands as the root record until a program reports through OSC 7501, and again after a full reset
ZacharyZhang-NY2026-10-17 01:23:09 -04:00
4a269cb57a
T36: review round 1: every pair of a known key is checked before the last of each key wins, a clear's too, so a report that breaks a rule anywhere drops whole; a sequence counts its length from OSC through ST with the controls its body skips; the scanners pass DEL and high bytes by in an escape as vte does, so ESC DEL c resets the records too
ZacharyZhang-NY2026-10-17 00:54:03 -04:00
42b272ece6
T36: programs report their status through OSC 7501, revision 0.4, checked as the spec checks them; each terminal keeps their records by id, replaced whole, cleared with those under them, 256 at most; a new prompt drops working, blocked and idle, a full reset all; the support query is answered with every state and kind, ahead of a DA1 sent after it; the pty's tests move to their own file
ZacharyZhang-NY2026-10-17 00:46:07 -04:00
11ec0effa0
T35: review round 3: a program's link target is kept whole, as the scanner keeps it, so a prompt inside a long link is numbered and gives the link back plain at its end, and the tap reads a 517th of its room to hold the growth; an ESC that ends an OSC the parser has goes on at once, so controls after it run where vte runs them
ZacharyZhang-NY2026-10-17 00:26:34 -04:00
e2bb615a19
T35: review round 2: a program's link inside a prompt keeps its target and carries the prompt's number in its id, and a prompt that starts inside a link left open opens it again with the number, so a prompt all in links still starts on its first row; controls vte runs inside an escape go on before it, so only the ESC waits and a long run of them keeps the pty reading
ZacharyZhang-NY2026-10-17 00:17:38 -04:00
310c219386
T35: review round 1: the tap holds an OSC that may be a mark until it ends and reads it as the session does, so 133;AB makes no prompt; each prompt's link carries the prompt's number, so a blank row within a prompt keeps one start; a program's own link keeps its cells and a prompt's link takes up again after it; controls vte runs in an escape go on before the link
ZacharyZhang-NY2026-10-17 00:03:34 -04:00
15e83f5b7e
T35: Cmd-Up and Cmd-Down, Ctrl-Shift-Up and Ctrl-Shift-Down off macOS, jump to the prompt before or after the view's top, as Ghostty jumps: the tap rewrites each OSC 133 mark in place into an OSC 8 link of the terminal's own, which the parser keeps in the prompt's cells through scroll, reflow and history, and links pass over; the tap's OSC scanner ends a body as vte does
ZacharyZhang-NY2026-10-16 23:46:58 -04:00
2c25116703
T34: review round 3: PowerShell keeps a program's code unless the line surely ends in PowerShell, a cmdlet, a name not found or no command, so a call through a variable keeps it; bash without promptvars, zsh without prompt_percent and PowerShell without PSReadLine say at start what they cannot mark
ZacharyZhang-NY2026-10-16 23:28:36 -04:00
d4bc6e69fa
T34: review round 2: bash 3.2 drops its DEBUG trap, which ran for key bindings, missed lone subshells and decided commands under extdebug, so it sends no C, and its D comes from the prompt by the command number; PowerShell takes a program's code only when the line's last pipeline ends in it, as its syntax tree and Get-Command name it; each check waits for the prompt before its line, so a repeated status is the line's own
ZacharyZhang-NY2026-10-16 23:13:42 -04:00
0a22200725
T34: review round 1: PowerShell reads a native program's code only when one ran in the command, by the new object each run stores, and 1 for any other failure; bash 3.2 runs the user's own DEBUG trap after its own and keeps $_, and a line that is only a subshell sends its D from the prompt by the command number; zsh marks the first prompt under a theme that sets PS1 in its own hook, through sched; each shell run gets its own folder
ZacharyZhang-NY2026-10-16 22:45:25 -04:00
c53b540f42
T34: prompts and commands carry OSC 133 marks: the tap reads every OSC body and hands 133's marks to the session, which keeps its last command's status; zsh, bash, fish and PowerShell mark what the shell leaves unmarked, and the user's prompt still sees the status
ZacharyZhang-NY2026-10-16 22:16:50 -04:00
3ea8b616f5
T33: a drag that comes back where it set off gives the width it had, through Ely da3fdca, where review round 2 found the last width it reported kept; the width a drag sets off from lives with its press
ZacharyZhang-NY2026-10-16 21:21:51 -04:00
2173c74fc5
T33: a drag sets off from the wider of the width drawn and the one kept, through Ely 0b4848b, where review round 1 found a squeezed column's border jump back against the pointer and a drag with no sideways move write the squeezed width
ZacharyZhang-NY2026-10-16 21:00:54 -04:00
da55942050
T33: the sessions and right columns resize by a drag on their border toward the terminal, 160 to 960 pixels, kept in the settings once a drag rests; Ely 5c2822c's resizable ShellColumn, whose handle occludes the header so the drag moves no window, and Ely 005faef's handle line, a filled hairline, since gpui paints a border no wider than half its box
ZacharyZhang-NY2026-10-16 20:17:13 -04:00
6336c05528
Plan: T33 column widths; T34 to T40 prompt marks and jumps, OSC 7501 program status, OSC 9;4 progress, OSC 9, 777 and 99 notifications, herdr's agent states, status on the session rows, and system notifications, as the owner asked, all before the release; T41 release v0.1.3
ZacharyZhang-NY2026-10-16 19:56:12 -04:00
3b5bf46093
T32: on Windows herdr's client is sought among the herdr.exe processes at or under the session's shell, none under another herdr, whose server and panes are its own; they are read when that list changes, and a server or a command beside the client is passed by, where round 1 found the server taken for the client
ZacharyZhang-NY2026-10-16 16:38:45 -04:00
d7dc1af6b9
T32: on Windows the right column follows herdr's focused pane: the herdr.exe nearest under the session's shell, its arguments and variables read through sysinfo, its folder found as herdr finds it there, herdr's named pipe asked as herdr names it; on every system a herdr answer that lands after the shell reported a folder is dropped
ZacharyZhang-NY2026-10-16 12:37:09 -04:00
7cb2dffc45
T30: acceptance records the owner's run of v0.1.2 on Windows: dragged to a new size, closed and opened again, the window opened at that size; the row passes
ZacharyZhang-NY2026-10-16 11:05:03 -04:00
2a1060ce48
T31: acceptance records v0.1.2 at 4364802: the zip and the tarball from their scripts on the owner's PC and its WSL, the notarized disk image from the Release workflow, published once CI passed on all three systems, each download matching its SHA-256
ZacharyZhang-NY2026-10-16 04:53:34 -04:00
9729d24605
T30: a window that shows again is read again, so a size it took just before something covered it, or it was minimized, is kept once it shows; the window opens centered at whole points, since macOS grew a window whose centered edge fell on a half point by a point
ZacharyZhang-NY2026-10-16 04:25:58 -04:00
2f58a0670e
T30: a hidden window keeps the size from before too, since X11 calls a maximized window unmaximized while it is minimized; the window is no smaller than 100 by 100, the least the settings keep, so each size it takes can be kept
ZacharyZhang-NY2026-10-16 04:05:29 -04:00
1bf420ce41
T30: the main window opens at the size it was left at: its size, read once the bounds settle and kept in the settings unless the window is maximized or full screen, opens the next window, shrunk where it passes the screen
ZacharyZhang-NY2026-10-16 03:43:15 -04:00
2af45cbfb9
T29: the foreground is its group and the executable its leader runs, so exec herdr from a shell is followed and a program that did not read is tried again; a relative herdr socket lies in the client's folder; on Linux an executable an update replaced still names itself herdr
ZacharyZhang-NY2026-10-16 03:19:13 -04:00
3e30f95543
T29: inside herdr the right column follows herdr's focused pane: herdr keeps its panes' OSC 7, so on macOS and Linux a session that finds herdr's client leading its pty's foreground reads the focused pane's folder from herdr's socket, found as herdr 0.9 finds it
ZacharyZhang-NY2026-10-16 02:58:38 -04:00
6c610fdc6e
T27: acceptance records the owner's run on Omarchy: the v0.1.1 Linux tarball from aae7fba wore the Omarchy theme, and no window blurred while Hyprland's own blur was off
ZacharyZhang-NY2026-10-16 01:50:09 -04:00
741e48bc4a
T28: on Hyprland a window blurs only while Hyprland's own decoration:blur:enabled is on, which Omarchy 4.0.4 turns off; the PRD, README, AGENTS.md and release notes say so and how to turn it on, and acceptance records the blur Hyprland drew on the owner's Omarchy
ZacharyZhang-NY2026-10-16 01:23:51 -04:00
1faf8ca0be
T27: the v0.1.1 Linux tarball, rebuilt from aae7fba by its script on the owner's PC, takes the place of the one from 340c7a9; acceptance records the error paths on X11 and the new build wearing the owner's live Omarchy theme
ZacharyZhang-NY2026-10-16 01:09:27 -04:00