summaryrefslogtreecommitdiff
path: root/src/CHANGELOG.md
diff options
context:
space:
mode:
authorGabriel Schneider <[email protected]>2026-09-03 13:30:15 -0300
committerGabriel Schneider <[email protected]>2026-09-03 13:30:15 -0300
commit3d8d4425c969d3df21915c9c14b144460a1c0086 (patch)
treef54635093525f610630a2ca850a73ecd2df7393e /src/CHANGELOG.md
parente6c9f1726cca910c464fc807aefebc404c8e7a12 (diff)
downloadpardes-3d8d4425c969d3df21915c9c14b144460a1c0086.tar.gz
pardes-3d8d4425c969d3df21915c9c14b144460a1c0086.zip
boot: the errors pane keeps the launch directory, and a typo inside pardes stays one line
Two defects in the +Errors boot, both found by adversarial re-review. The pane was opened with `dir = ""` — copied from the board's boot buffer, which can afford it because that platform has no filesystem — so its path came out `/+Errors` and `paneDir` answered `/`. An output pane's directory is where a `Grep` from it walks, where its `Newtty` spawns a shell and what its `Save` prefills, so the boot screen rooted all three at the filesystem root, and the one word the pane prints resolved against `/` and could never be clicked. The launch directory rides in `Options.missing` beside the word now, and the test asserts the pane's path rather than only its contents. A typo INSIDE pardes stacked a second full-screen UI. The hand-off block above resolves the word and sends it to the outer instance; `.none` sent nothing and fell through, which was harmless while the classification below refused it and became the one input that stacks the UI that block exists to prevent — with no shell pane in it, so the only way out is `Del`. Its own comment said as much and was falsified by the +Errors boot. `.none` is refused in that shell now, in one line and without a stack trace, and the outer session is not told: `Look` on a word naming nothing is not something to do to somebody else's session. Also recorded, not fixed: the commonest permission case never reaches the `.dir` arm this arm's comment defends. `look.isDir` probes with O_DIRECTORY| O_RDONLY, so a directory you cannot read resolves as `.file` and dies in `file_pane.open` with `error.OpenFailed` out of `main` — still a trace at a human, and a different fault than the one fixed here. Co-Authored-By: Claude Opus 5 (1M context) <[email protected]> Claude-Session: https://claude.ai/code/session_016Q4RATpafkwahrovHQLKRf
Diffstat (limited to 'src/CHANGELOG.md')
-rw-r--r--src/CHANGELOG.md13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/CHANGELOG.md b/src/CHANGELOG.md
index bb7e9ad5..2df1a82e 100644
--- a/src/CHANGELOG.md
+++ b/src/CHANGELOG.md
@@ -64,9 +64,16 @@
editor at all. A launch that names nothing now boots one `+Errors` pane
filling the window — acme's own vocabulary for output that came from the
program rather than from a word somebody clicked — saying `file or directory
- not found` and the argument AS TYPED. A `chdir` that fails on a directory
- that really is one is still `BadArgs`: that is a permission problem, not a
- typo, and the two want different answers.
+ not found` and the argument AS TYPED, in the directory it was typed in — an
+ output pane's directory is where a `Grep` from it walks, where its `Newtty`
+ spawns and what its `Save` prefills, so a pane rooted at `""` would have
+ pointed all three at `/`. A typo INSIDE pardes is refused by that shell in one
+ line instead: the hand-off block that keeps a pardes from stacking a second
+ full-screen UI inside a pane of the first says in its own comment that a word
+ naming nothing must not get through, and an `+Errors` boot would have made a
+ typo the one input that did. A `chdir` that fails on a directory that really
+ is one is still `BadArgs`: that is a permission problem, not a typo, and the
+ two want different answers.
- A filtered terminal costs what an unfiltered one does. `Filter`'s second
stage asked `RGB.contrast` for every cell it painted, and that call ends in