summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAge
* Release Pardes 0.24HEADrelease-0.24mainGabriel Schneider83 min.
| | | | Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Docs for 0.24: Ctrl-i's fallbacks (SPC j i, SPC j o, the side buttons), a ↵Gabriel Schneider108 min.
| | | | | | terminal's text edited as a copy, a tag's typed path surviving Esc, Get's order of refusals, the init file's errors when saved, --wait and --detach in words; the CHANGELOG's 0.24 section, the directory window moved there from 0.23 Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Round 40's doc findings: tutor 3.1 comes back with Esc from +Help, 5.2 ↵Gabriel Schneider114 min.
| | | | | | sweeps an anchored regex to Part 7's heading, 6.1 selects a name with m i W, 1.3 says a new terminal lists its directory; the guide's search row says n walks +Search and Enter moves the pane; a pane ctl's line has no newline, as acme's; a TODO(round40) on editing a tag's path Co-Authored-By: Claude Opus 5.5 <[email protected]>
* An Edit filter that can never be reaped no longer holds the Edit's answer: ↵Gabriel Schneider114 min.
| | | | | | at the limit the command's group is killed and reaped off the answer's path, the stdin writer owning its input, so a filter writing its own ctl with > or >> answers EIO at 10 s instead of hanging; a running Edit keeps its own copies of the names it reports, and the panes it changes refuse Del, delete, rmdir, Undo, Redo, Get and Zerox (busy, EBUSY); e and r say unreadable files in Get's words; the reference says both sides of a filter's own ctl write need <> Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A name typed into the tag's path survives Esc, pending, as any edit does: ↵Gabriel Schneider2 hours
| | | | | | the next Enter renames the buffer, a second Esc drops the draft, and a stray key meanwhile changes nothing but says so Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Insert on a terminal's text says it edits a copy, run with Tab or B2, that ↵Gabriel Schneider2 hours
| | | | | | the program's next drawing replaces, and that Ctrl-b types to the program Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Get of a file not there, or of a directory, says so before asking about ↵Gabriel Schneider3 hours
| | | | | | unsaved edits; the init file saved in a pane logs a bad line as err - init file line N, as startup does, its commands still not run again Co-Authored-By: Claude Opus 5.5 <[email protected]>
* pardes --wait with no FILE says it needs one; --detach over a name another ↵Gabriel Schneider3 hours
| | | | | | session's socket holds (a plain session is named by its pid) says so plainly, and any other failure of it in words, never a Zig error trace Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A Zerox twin's save no longer makes its other twin say reloaded: a watch ↵Gabriel Schneider3 hours
| | | | | | that finds the pane holding the disk's text already takes it as seen, silently Co-Authored-By: Claude Opus 5.5 <[email protected]>
* cloud9 re-pinned at fe9772b, whose 9ns invalidates a dead mount's entry off ↵Gabriel Schneider3 hours
| | | | | | the serving thread; selfmount kills a session under a burst of reads of it through the registry mount and checks every read returns Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A mouse report before the first row or column (SGR's 0, a drag past the ↵Gabriel Schneider3 hours
| | | | | | window's top or left, in cells or 1016's pixels) is the window's edge in the terminal and the ESP32 shells, never a panic that lost unsaved text; the GUI already clamped Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The reference takes rounds 38 and 39: a file read's directory, permission ↵Gabriel Schneider4 hours
| | | | | | and device refusals, an Undo back to unsaved edits being no change on disk, an Edit filter writing its own ctl without truncating, n in a command pane, a name write's one line, Putall's Zerox pair, bare Tab from the root ctl, and Get and e over a small scratch Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Round 39's small ones: a name write past its one line is refused by that ↵Gabriel Schneider4 hours
| | | | | | write; Get and Edit's e load over a scratch under 100 bytes unasked, as Del closes it; Putall saves a Zerox pair once; bare Tab on the root ctl says the width as from a pane, and a ctl check of Tab no longer sets it; a directory read is "is a directory" (EISDIR), an unreadable file "permission denied" (EACCES), Incl of a file "not a directory" (ENOTDIR), and a device "not a regular file", never read to the stream limit Co-Authored-By: Claude Opus 5.5 <[email protected]>
* n in a command pane walks its own file:line places first, whichever pane was ↵Gabriel Schneider4 hours
| | | | | | walked last: make's errors, then on through the other places as before Co-Authored-By: Claude Opus 5.5 <[email protected]>
* cloud9 re-pinned at e66b2cf, whose 9ns opens files with ↵Gabriel Schneider4 hours
| | | | | | FOPEN_PARALLEL_DIRECT_WRITES: an Edit filter writing, through a mount, the ctl its Edit came by (without truncating it) answers at once, not after 10 s; selfmount checks it Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A file whose disk text is what its unsaved pane was read or saved as is no ↵Gabriel Schneider4 hours
| | | | | | change on disk: an Undo back across Get file or Edit's e to unsaved edits no longer says the file changed, and Save writes it Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Edit's w to a file changed on disk since read is refused once, as Save is (w ↵Gabriel Schneider5 hours
| | | | | | again to overwrite), the rest of an X/'/w written and the refused named; Edit filters get a pane command's environment ($PARDES_MOUNT, $PARDES_9P, $PARDES_PID, $winid); an Edit with no commands runs beside one whose commands run unless it touches a file that one changes, refused busy (EBUSY) as is a second Edit with commands Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The site's downloads are rebuilt from the round-38 fixes: new sizes and ↵Gabriel Schneider5 hours
| | | | | | checksums Co-Authored-By: Claude Opus 5.5 <[email protected]>
* An Edit's held write: < | > commands no longer block their 9P connection ↵Gabriel Schneider5 hours
| | | | | | (answered like a held read, so a status read or a filter reading the session's own mount runs beside it), a Tflush or hang-up of the write kills the commands' process groups and changes nothing; e loads by Get's way (asked once, clean after, undo puts the name back); ~ in e r w f B; B checks every name first; an Edit that runs commands is a write of its own, refused up front with other lines; Edit's +Errors output keeps the keyboard where it was; X goes in pane order; a refused write open says its errno; the reference's Coming from acme rows say what Get file's undo, failure and directory refusal, Putall's answer, Zerox across Dump and Incl's directories now do Co-Authored-By: Claude Opus 5.5 <[email protected]>
* An undo step keeps no copy of the name: History keeps each name once, at the ↵Gabriel Schneider6 hours
| | | | | | rename that ends it, and a step its generation, so typing allocates a snapshot and nothing more (follows prwqwwxt); a rename of one Zerox twin is logged for each twin Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A refused Putall is answered once the other saves have landed; a bad Tab ↵Gabriel Schneider6 hours
| | | | | | width is invalid (EINVAL), from a pane's exec too; Incl refuses a relative or missing directory and takes - only alone Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Zerox twins survive a Dump and Restore: their text is dumped once, in the ↵Gabriel Schneider7 hours
| | | | | | first, each other twin names it (twin_of), and Restore puts them back on one buffer with their dots Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Undo after Get file or Edit's e puts the old name back with the old text and ↵Gabriel Schneider7 hours
| | | | | | | | | | its clean state, so a Save or Putall after it writes nothing over the loaded file; a Get file that fails, or is asked about unsaved edits, renames nothing; Get file in a directory pane is refused with how to open it ctl.getFile is the one load-under-a-name path: it reads first, then makes one undo step (whose snapshot now keeps the name and its saved state), renames and loads, and leaves the pane clean. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* An exec written back to event on a diff line (MX0 0) takes the word there, a ↵Gabriel Schneider7 hours
| | | | | | header's, a hunk header's or the marker's, never the address; only a look takes it Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The site's downloads are rebuilt from the acme-gaps line: new sizes and ↵Gabriel Schneider7 hours
| | | | | | checksums Co-Authored-By: Claude Opus 5.5 <[email protected]>
* ideas: an explicit pane picker (window mode with labels) for moving past raw ↵Gabriel Schneider7 hours
| | | | | | terminals Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Edit runs acme's file and shell commands: < | > through the session's Shell ↵Gabriel Schneider8 hours
| | | | | | off the loop (one undo step, a failure changes nothing, its stderr in +Errors, a 9P write answered when done), X and Y over the open text panes, b B D e r f w and the "file" address; checked against sam -d, and the reference's Edit section and Coming from acme row say so Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The reference's acme words and its Coming from acme rows say what Get, ↵Gabriel Schneider8 hours
| | | | | | Putall, Zerox, Tab, Incl, Load and Indent are now, and what covers Font, Send and ID; Load is tested as Restore Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Zerox opens a second pane on a file pane's buffer: one text, undo and ↵Gabriel Schneider8 hours
| | | | | | | | | | | | | | | | unsaved state, a scroll and a cursor each; an edit in either is spliced into both at File.setContentSpan, O(the edit) more, and what a Save, a get, the disk watch or a rename changes on one is copied to the rest after each step Twins share the content buffer, the History and, while it is one, the line index; the other twin's cursor and scroll move past the splice as acme moves a clone's q0. Del of one twin asks nothing while another holds the text, Exit lists the text once, and a closed twin keeps a copy of its own until it is torn down. Both are in the index, each its serial, one name. An event reader on one hears no edit made through another (first cut). A dump keeps the twins as two panes on the file, not linked again. perf: edit-twin, typing beside a twin of the 50k-line file, gated within 3x of edit-char in the same run; the three baselines re-recorded for it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Tab N sets a tab's width in cells, 1 through 16, in every pane, drawn and ↵Gabriel Schneider8 hours
| | | | | | | | | | | counted (wrapping, clicks, the cursor); bare Tab says it; the ctl read and a Dump keep it A session setting, not acme's per window: the width is read by File's pure width functions (~130 callers that are given no pane), so it is one value, config.tab_now, that Runtime.apply sets and a new session resets. A file:L:C column counts runes, as compilers do, and never depended on it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Incl dir ... adds directories a look at a name found nowhere else is tried ↵Gabriel Schneider8 hours
| | | | | | in, as acme's includename, <stdio.h> too; bare Incl lists them and Incl - empties them; the session's, seeded with /usr/include and /usr/local/include, kept in a dump; Indent's refusal says Enter keeps the indent always Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Enter, o and O give the new line the old one's indent as it is, tabs and ↵Gabriel Schneider8 hours
| | | | | | | | | all, as acme's autoindent does; a level more after an opening delimiter is a tab where the indent is tabs The indent was rebuilt as spaces, partial levels dropped, so a tab-indented line went on with spaces (or with one space, after Enter). Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Putall saves every pane holding unsaved edits to a file, each as its own ↵Gabriel Schneider9 hours
| | | | | | Save, a refused one said and the rest saved all the same Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Enter and Tab on a tag word tell an event reader as a click on it does, at ↵Gabriel Schneider9 hours
| | | | | | its place in the tag; only a look takes a diff line's address, an exec there takes the word (follows vpmzwuzk) Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Get reads a pane's file again, refusing unsaved edits once as Del does, and ↵Gabriel Schneider9 hours
| | | | | | Get file loads that file into the pane; in a directory pane it reads the directory again. Load is Restore, as Put is Save; Abort's refusal says it is acme's debugging word Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Back and Forward keep to the focused file: Ctrl-o, Ctrl-i, the mouse's side ↵Gabriel Schneider10 hours
| | | | buttons (now the tty's 8 and 9 too), the builtins and 9P go to the nearest place that way in this pane, else in this file in another pane, else of any file; JumpScope all takes every place in order as before
* ideas: a Send builtin as an action beside Repl, sending a selection to a ↵Gabriel Schneider10 hours
| | | | | | terminal now Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A look at a directory opens a pane listing it, as acme's directory window: ↵Gabriel Schneider10 hours
| | | | | | named dir/, its entries in acme's columns (bytewise, dotfiles kept, a directory's marked /), a look at an entry from there, Get or a look again reads it again, never dirty, Save refused; DirLook terminal keeps ls in a terminal Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A close's held last line runs before the close is answered when no editor ↵Gabriel Schneider10 hours
| | | | | | step is out, so its err is in the log by then; with a step out it still waits for that step (follows rzxqzosq; monkey9p's one_failure_rule) Co-Authored-By: Claude Opus 5.5 <[email protected]>
* One Look path: Enter, Tab and a bare Look take what a click at the cursor ↵Gabriel Schneider10 hours
| | | | | | | | | | | | | | | | | takes, a diff line's address included, and an event reader is told of them as of a click The keyboard expanded the cursor's word on its own (look.expandedSel), so a diff line's address (and a hunk line's code word, without its +/-) was the mouse's alone: Enter on `+line` looked for the text in the diff. Now exec.operandAt is the one expansion: pointerOperand is it with a gesture's selection borrowed, the Enter/Tab path and a bare Look (exec.currentOperand) are it from the cursor, and both dispatch through mouse.dispatchPointerBuiltin, so a pane with an event reader hears a key's look or exec as a click's. A test runs one diff line and one file:12:5: line through a B3 click, a B3 sweep, Enter, a bare Look, the look file and an event write-back, and asserts each lands in the same file, line and column. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Two scripting clips: edit-via-ctl (an Edit written to a pane's ctl from a ↵Gabriel Schneider10 hours
| | | | | | | | | | | shell, then one Undo) and wait-editor (git commit with EDITOR='pardes --wait', its message a pane, Save and Del) record_demos.py: Esc goes to the test window as CSI u (ESC [27u): a bare ESC byte waited in the stdin feed's parser and joined the next mouse event, which then typed itself into the pane. clips.toml lists both with landing = false. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The reference gains Coming from acme, one table of what differs for acme ↵Gabriel Schneider10 hours
| | | | | | users and scripts; the intros say modelled on acme's; Look says it has no plumber; the guide compares Esc with acme's and answers the acme question fairly; the OTRUNC sentence reads Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The tutor opens with its title alone, and the slogan lines go: setup's ↵Gabriel Schneider12 hours
| | | | | | opening, the guide's and reference's "carry" framings, the tutor's "Two carry the rest" Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide shows the where-commands-run, columns and search clips in place of ↵Gabriel Schneider12 hours
| | | | | | | | | | | | their TODOs #clip takes `wide: true` for a recording that needs the page's full width; the columns clip (80 columns split three ways) uses it, the others keep the 640 px inline width. An inline video takes its own shape from its poster rather than a fixed ratio. where-commands-run's caption is trimmed to eleven words. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* Three guide clips: columns (Newcol, a look into the new column, Alt-c), ↵Gabriel Schneider12 hours
| | | | | | | | | | search (Grep, n and N over +Search, a look at a hit) and where-commands-run (pwd from the column's tag and from a file's) record_demos.py: a clip may set its own window size (columns is 80x26, scaled to 960 wide), and col_tag_px finds a word in a column's tag. clips.toml lists the three with landing = false. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide's glossary is a definition list, and the site's tutor links its ↵Gabriel Schneider12 hours
| | | | | | | | | | | | pointers into the guide On the site the glossary is a <dl> of terms and meanings inside its <details>, with no stray count, so a text browser reads each term then its meaning. The tutor page links docs/typ/<chapter>.typ to that page, each "-> Guide: <section>" to the guide's section of that title (read from guide.typ's headings), and URLs; the tutor itself keeps its text. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide answers a first session: n walks a build's errors from its command ↵Gabriel Schneider12 hours
| | | | | | pane, a finished one is already normal, why make wants the project root, opening beside, a builtin's argument by mouse, 12G, and SPC ? is Help everywhere; the tutor's tagline and button names match the site, and the cheatsheet's tree gains data, look and exec Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide's Modes tables draw each mode's box, the unsaved pane's filled box ↵Gabriel Schneider12 hours
| | | | | | too, and Questions says what the name pardes names Co-Authored-By: Claude Opus 5.5 <[email protected]>
* A chapter can show a recording: #clip(name), used once for the chords in the ↵Gabriel Schneider12 hours
| | | | | | | | | | | | guide's mouse section #clip reads docs/site/media/clips.toml. On the site it is the landing's video (poster, autoplay muted loop playsinline, controls) with its caption, and the in-view script that plays it now runs on every page; in the book it is the poster at 7 cm with the caption. The guide shows the chords clip under its mouse table, in place of the TODO. Co-Authored-By: Claude Opus 5.5 <[email protected]>
* The guide opens with one line and the annotated pane, drops the glossary ↵Gabriel Schneider12 hours
| | | | | | entries its legend shows, loosens its first half into short sentences and tables, and ends with Questions Co-Authored-By: Claude Opus 5.5 <[email protected]>