| Commit message (Expand) | Author | Age |
| * | Errnos that fit: a Dump into a missing DumpDir and a shell that is not there ... | Gabriel Schneider | 2 days |
| * | A shell that cannot start fails Tty and pty/ctl exec with why, before either ... | Gabriel Schneider | 2 days |
| * | A shell started again by pty/ctl exec is guarded against the rename flap as a... | Gabriel Schneider | 2 days |
| * | fs.py's workflow canary: one session driven as the dogfood agents drive it | Gabriel Schneider | 2 days |
| * | A Save into a directory that is not there says no such directory, ENOENT | Gabriel Schneider | 2 days |
| * | A shell given a directory is not taken to be in this process's before it has ... | Gabriel Schneider | 2 days |
| * | A new terminal's greeting `ls` goes at its shell's first prompt or never | Gabriel Schneider | 2 days |
| * | A rename alone does not make a pane dirty | Gabriel Schneider | 2 days |
| * | A Save whose write fails changes nothing: not the name, not the dirty flag | Gabriel Schneider | 2 days |
| * | Merge: 9P rounds 9-17 + render DPI, dark tints, G4-G10 | Gabriel Schneider | 2 days |
| |\ |
|
| | * | G5: lapis, 0x4200.cafe's manuscript, as a theme with its ornament | Gabriel Schneider | 2 days |
| | * | Rules and chrome scale with the display's density; dark pages get visible sep... | Gabriel Schneider | 2 days |
| * | | A detached session no frontend has sized is 160x50, not 80x24 | Gabriel Schneider | 2 days |
| * | | Mount dials its peer at once and fails if none answers; a peer out of reach i... | Gabriel Schneider | 2 days |
| * | | A look that goes to another pane leaves the looking pane's dot alone | Gabriel Schneider | 2 days |
| * | | A terminal keeps its tag and two body rows through drags, squeezes and a smal... | Gabriel Schneider | 2 days |
| * | | A pty/ctl winsize gives a terminal two rows at least, so it no longer reads b... | Gabriel Schneider | 2 days |
| * | | One rule for failing builtins: the write fails, one err, no msg | Gabriel Schneider | 2 days |
| * | | @p names a pane by its serial, as /index and the log do | Gabriel Schneider | 2 days |
| * | | /commands takes each word's own doc comment, whole, without citations | Gabriel Schneider | 2 days |
| * | | /commands says what each word does, and that the root's ctl takes Edit | Gabriel Schneider | 2 days |
| * | | A looked word selects its next place in its own pane, as acme's look3 | Gabriel Schneider | 2 days |
| * | | A file changed on disk never reloads over unsaved edits | Gabriel Schneider | 2 days |
| * | | A multi-line paste into Python's REPL runs whole, back at its prompt | Gabriel Schneider | 2 days |
| * | | pty/run's busy names the program holding the terminal | Gabriel Schneider | 2 days |
| * | | size says its limits, keeps every pane its rows, and ptys follow their panes | Gabriel Schneider | 2 days |
| * | | Tty and Shell refuse a directory: not a shell | Gabriel Schneider | 2 days |
| * | | A REPL paste's Enter waits on the clock, not on stale core time | Gabriel Schneider | 2 days |
| * | | A detached session with no frontend takes its size from the root ctl | Gabriel Schneider | 2 days |
| * | | Shell refuses a name that is no executable, and bare restores the default | Gabriel Schneider | 2 days |
| * | | No placement leaves a pane shorter than its tag and two rows | Gabriel Schneider | 2 days |
| * | | The default Shell is $SHELL, else /bin/sh | Gabriel Schneider | 2 days |
| * | | A command line cut across writes runs once whole, and look/exec answer per open | Gabriel Schneider | 2 days |
| * | | The workspace tag has /tagexec, every exec file reads back what it touched, a... | Gabriel Schneider | 2 days |
| * | | The look walk goes on from a restored dot both ways | Gabriel Schneider | 2 days |
| * | | The GUI goldens take the full-width tag wrap | Gabriel Schneider | 2 days |
| * | | The tree's README fits its 45 lines again, and fs-discovery-test knows the ne... | Gabriel Schneider | 2 days |
| |/ |
|
| *-. | Merge: 9P rounds 7-8 + layout files + loose ends + G3 cursor | Gabriel Schneider | 2 days |
| |\ \ |
|
| | * | | The QUIC listener tests are deterministic, and fs-test --quic passes | Gabriel Schneider | 2 days |
| | * | | The web harness Looks through the touch fixture its documented dump holds | Gabriel Schneider | 2 days |
| | |/ |
|
| * | | Restore keeps each pane's dot, as acme's dump does | Gabriel Schneider | 2 days |
| * | | A column has a ctl, an exec and an rmdir over 9P, and Restore maps its serial | Gabriel Schneider | 2 days |
| * | | A pane's last row of text is no resize handle; the grip is, and the GUI's rule | Gabriel Schneider | 2 days |
| * | | The tree serves the layout: /layout, /tag and /col/<n>/tag | Gabriel Schneider | 2 days |
| * | | A dump keeps the settings changed from a fresh session's, and Restore sets them | Gabriel Schneider | 2 days |
| * | | A send to Python's REPL runs once, the Enter after the paste, not in it | Gabriel Schneider | 2 days |
| * | | fs-test checks an unattended detached session expires its messages on its own | Gabriel Schneider | 2 days |
| * | | A tag that exactly fills its row stays one row, as acme's does | Gabriel Schneider | 2 days |
| |/ |
|
| *-. | Merge: 9P round 6 + empty columns + render (acme theme, grips, Lift, Motion) | Gabriel Schneider | 2 days |
| |\ \ |
|
| | | * | Motion flavours differ by design, and drive notice drops and pane moves | Gabriel Schneider | 2 days |