Commit Graph

1915 Commits

Author SHA1 Message Date
Edward Langley 9eb83538fe A message beside its open editor stands in the browser too (improvise-1x9h)
The toast hid every status after six seconds, so a refusal the user was
still fixing vanished with its prompt open: su4u's bug on a timer. The
browser now asks the TUI's question. EditorSession moves into
improvise-protocol, ClientState records which editor a status was
written in, and RenderModel::status_stands tells the toast to hold it
until that editor closes.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 18:08:26 -07:00
Edward Langley 09db8eb0cd The same mode is not the same editor: a message does not follow a commit (improvise-sx7h)
#257 restored a stale message whenever the mode after a key equalled the
mode before it. Editing and RecordsEditing commit with CommitAndAdvance,
which re-opens an equal AppMode on the next cell. So the message followed
the editor from cell to cell until Esc. The reviewer's repro was R, o, 5,
Tab: "Added new record row", or o's "That record row is already here"
refusal, survived the Tab.

press now compares an EditorSession, made of the things an opening sets:
- the whole AppMode, not its variant;
- the cursor cell, which is a cell editor's target;
- the editor's seed, which EnterEditAtCursor re-seeds from the cell, so a
  commit that re-opens on the same cell (Tab in the last column) is new.

A generation counter was rejected: editors are opened by more than one
effect, and a counter in each is a hand-kept list. The view was left out:
no minibuffer key can switch it and stay.

Tests:
- four press scenarios: the two records repros, Enter in a plain grid,
  and Tab in the last column;
- a direct check that ItemAdd on another category is another editor.

Rivals: mode-only (#257 as pushed), no cell, no seed and discriminant
each fail a distinct step.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 17:18:44 -07:00
Edward Langley 2b1c5bf7ad A minibuffer refusal stands while the user fixes it (improvise-su4u)
#233 clears the status message at the start of every TUI keypress. In a
text-entry mode the message sits beside the prompt, and a formula that
does not parse keeps the editor open with the error. So the error
vanished on the first correcting key.

press now remembers the mode and the message. It clears the message as
before and dispatches the key. It puts the stale message back only if
the key left the user in the same text-entry mode and wrote no message
of its own. Editing keys keep the refusal on screen, a key's own message
still wins, and leaving the minibuffer (a successful commit or Esc)
drops it.

The mode check is observed, not predicted: which keys commit is the
keymap's knowledge, and the TUI loop does not copy it.

Rivals, each injected into press and restored: never restoring (#233),
restoring over a key's own message, and restoring whatever the mode each
fail a distinct step of the test.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:33:00 -07:00
Ed Langley 202e7eac63 Merge pull request #219 from fiddlerwoaroof/fix/vndi-edit-generation
improvise-vndi: an inline edit opened before a document swap is refused
2026-09-23 10:50:14 -07:00
Ed Langley 0ff17c0f0e Merge pull request #240 from fiddlerwoaroof/fix/ugj4-jibp-mouse-editor
Mouse editor: seed from the target, report the first edit (improvise-ugj4, improvise-jibp)
2026-09-23 10:49:45 -07:00
Ed Langley 799a81aed6 Merge pull request #235 from fiddlerwoaroof/collapse-fu/b114
improvise-b114/xur5: no coordinate of a wire write may name a group
2026-09-23 10:49:18 -07:00
Ed Langley b8a4849622 Merge pull request #233 from fiddlerwoaroof/fix/cq3d-status-expiry
A TUI status message lasts until the next key, then the hint returns (cq3d)
2026-09-23 10:48:51 -07:00
Ed Langley d3f03f8c01 Merge pull request #241 from fiddlerwoaroof/fix/djcn-canonical-debug
Make Model's Debug exhaustive and the Debug fingerprint canonical across instances (improvise-djcn)
2026-09-23 10:48:23 -07:00
Ed Langley c26f016968 Merge pull request #243 from fiddlerwoaroof/fix/c0aj-walk-tracked-documents
every_shipped_document_loads walks the index, not a .gitignore reading (improvise-c0aj)
2026-09-23 10:47:56 -07:00
Ed Langley 4502ed2b11 Merge pull request #214 from fiddlerwoaroof/wave/km71-edit-formula
improvise-km71: edit a formula from the formula panel, in place
2026-09-23 09:00:07 -07:00
Edward Langley 228f130e61 evidence: an entry for the shape test that cites it (improvise-c0aj) 2026-09-23 08:58:41 -07:00
Ed Langley a634b3f356 Merge pull request #230 from fiddlerwoaroof/fix/wdmp-asker-cursor
improvise-wdmp: a reframing browser frame keeps the asker's own placement
2026-09-23 08:58:28 -07:00
Edward Langley 6dceaad1c7 every_shipped_document_loads walks the index, not a .gitignore reading (improvise-c0aj) 2026-09-23 08:56:26 -07:00
Edward Langley 4e52d06838 WIP red: four ways of shipping a document the .gitignore walk misses (improvise-c0aj) 2026-09-23 08:54:15 -07:00
Edward Langley 35013b6bda Evidence, docs and the bundle surface for the mouse editor's seed and first edit (improvise-ugj4, improvise-jibp)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:52:26 -07:00
Edward Langley 463bef149d Merge commit '5932ad749f0df01d4321cc961f57a488ab637dde' into wave/km71-edit-formula
# Conflicts:
#	crates/improvise-protocol/src/lib.rs
2026-09-23 08:51:45 -07:00
Edward Langley 6d5b4e328a improvise-km71: serde back in improvise-formula for FormulaId alone
tt22 removed the formula crate's serde dependency with the legacy JSON loader,
keeping serde only where a type crosses the wire. FormulaId crosses the wire, so
it is the third such type. No derive goes back on the formula AST.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:50:53 -07:00
Edward Langley fa3735b068 Merge gh/main (5932ad74) into fix/wdmp-asker-cursor
Resolves context/test-evidence/command.md: both sides appended at EOF;
kept gh/main's entries, then this branch's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:49:29 -07:00
Edward Langley 3a4b0eac69 Keep the fixture's doc to two lines (improvise-djcn)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:49:20 -07:00
Edward Langley f14a7f5f7a Merge gh/main ca2d1b19 into fix/vndi-edit-generation
socket.rs: EditTarget takes the union (document_generation, cell, version,
opened); typed_target_frame keeps #205's untouched early return, then claims
as read at the captured generation. Evidence appended after gh/main's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:48:46 -07:00
Ed Langley 5932ad749f Merge pull request #231 from fiddlerwoaroof/fix/oplp-tile-cursor
Tile select opens on the first regular category, not _Index (oplp)
2026-09-23 08:48:09 -07:00
Edward Langley 47bab86a50 Document the canonical Debug fingerprint and its evidence (improvise-djcn)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:47:21 -07:00
Ed Langley b4779edb0b Merge pull request #236 from fiddlerwoaroof/fix/i3o5-set-status-refusals
The collapsed-group and three paste declines refuse, so they exit 1 and reject a frame (improvise-i3o5)
2026-09-23 08:47:18 -07:00
Edward Langley fa0af07988 Merge remote-tracking branch 'gh/main' into fix/ugj4-jibp-mouse-editor 2026-09-23 08:45:28 -07:00
Ed Langley ca2d1b19ef Merge pull request #226 from fiddlerwoaroof/tooling/52eq-audit
tooling: the dead-ID audit compares positively and is a checked script (52eq)
2026-09-23 08:45:15 -07:00
Edward Langley 6096c03caa Make Model's Debug exhaustive and the Debug fingerprint canonical across instances (improvise-djcn)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:45:14 -07:00
Edward Langley 37a64445e0 Merge commit 'c6de77dbde8d05ba287cb69d92c230089098916f' into wave/km71-edit-formula
# Conflicts:
#	context/code/command.md
2026-09-23 08:42:50 -07:00
Ed Langley c6de77dbde Merge pull request #234 from fiddlerwoaroof/fix/qlrh-walk-harness-fixtures
every_shipped_document_loads walks what .gitignore un-ignores, harness/fixtures included (improvise-qlrh)
2026-09-23 08:42:02 -07:00
Ed Langley aa96cd6404 Merge pull request #224 from fiddlerwoaroof/wave/tt22-no-legacy-json
.improv is the only native format: remove the legacy JSON document loader (improvise-tt22)
2026-09-23 08:41:29 -07:00
Edward Langley 6c181a9c11 Merge gh/main (e406edc8) into fix/wdmp-asker-cursor
Resolves context/test-evidence/command.md: both sides appended at EOF;
kept gh/main's entries, then this branch's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:40:49 -07:00
Edward Langley 5c19fdd4be Merge gh/main (bb5dfe5c) into collapse-fu/b114
#217 has landed; this PR now carries only b114 and xur5.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:36:55 -07:00
Edward Langley 7b045567c6 Merge remote-tracking branch 'gh/main' into fix/i3o5-set-status-refusals 2026-09-23 08:36:45 -07:00
Edward Langley b060d4cc65 improvise-xur5: pin the fold record written with an undrawn measure
The reviewer's probe_fold_hidden_measure, over its three rows (hidden,
bogus, no measure). The b114 group rule refuses all three; removing it
fails this test and the b114 test and nothing else.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:36:37 -07:00
Edward Langley 961b0c01f8 context: i3o5's four conversions, and what the refuse sweeps cannot see 2026-09-23 08:36:35 -07:00
Edward Langley 5960fe8f0a Merge gh/main (e406edc8) into fix/oplp-tile-cursor
Clean merge, no conflicts.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:35:24 -07:00
Ed Langley bb5dfe5c04 Merge pull request #232 from fiddlerwoaroof/collapse-fu/d7aj
improvise-d7aj: pin the fold memo to the whole key, and the diamond (stacked on #203)
2026-09-23 08:35:17 -07:00
Ed Langley cc9bc41092 Merge pull request #217 from fiddlerwoaroof/collapse-fu/ciw8
improvise-ciw8: a wire write reaches only a cell the host projects as a Record
2026-09-23 08:34:49 -07:00
Edward Langley 2f7d9c8c5a WIP: the collapsed-group and three paste declines refuse (improvise-i3o5) 2026-09-23 08:33:54 -07:00
Edward Langley 8747074e52 Seed the mouse editor from its target, and mark the target on the first edit (improvise-ugj4, improvise-jibp)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:33:40 -07:00
Edward Langley bd49de6b48 improvise-4vw8: click_formula opens the editor, as Enter does
The doc comment still said a formula-row click was navigation only.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:32:06 -07:00
Edward Langley e5b18d3499 Merge remote-tracking branch 'gh/main' into wave/km71-edit-formula
# Conflicts:
#	context/test-evidence/command.md
#	crates/improvise-protocol/src/reduce.rs
2026-09-23 08:32:01 -07:00
Edward Langley c4877456a4 WIP red: mouse editor stale seed and touched (improvise-ugj4, improvise-jibp) 2026-09-23 08:30:51 -07:00
Edward Langley d24dc8ec61 Merge gh/main (968f65af) into tooling/52eq-audit
Resolves context/test-evidence/tooling.md: both sides appended at EOF;
kept gh/main's entries, then this branch's. AGENTS.md and ci.yml merged
without conflict.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:30:40 -07:00
Edward Langley 872f9bc07b improvise-b114: no coordinate of a wire write may name a group
App::group_refusal asks the document, not the layout, whether any
coordinate names a group rather than an item, and runs first in
unwritable: a measure-half fold hides from both the stored arm and the
projection. Rival (rule removed) fails the new test and nothing else.
command.md and the ciw8 fold evidence now say the aggregate arm guards
only the None-axis case.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:29:28 -07:00
Edward Langley 91c80cb7e6 Merge remote-tracking branch 'gh/main' into fix/qlrh-walk-harness-fixtures 2026-09-23 08:28:38 -07:00
Ed Langley e406edc8e8 Merge pull request #203 from fiddlerwoaroof/collapse-fu/eccl
improvise-eccl/f2oo: a fold evaluates formulas over itself and covers only drawn members
2026-09-23 08:28:26 -07:00
Edward Langley 5cd00770cf Merge #217 head (52fa3976) into collapse-fu/b114
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:28:16 -07:00
Edward Langley 4d2252373e every_shipped_document_loads walks what .gitignore un-ignores, harness/fixtures included (improvise-qlrh)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:26:48 -07:00
Edward Langley 0ec808f7a5 Merge gh/main (968f65af) into fix/vndi-edit-generation
Resolves context/test-evidence/clients.md: both sides appended at EOF;
kept gh/main's entries, then this branch's.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:25:13 -07:00
Ed Langley 194d8f529c Merge pull request #205 from fiddlerwoaroof/fix/ixxx-untouched-commit
An untouched cell edit writes nothing (improvise-ixxx)
2026-09-23 08:24:48 -07:00