Commit Graph

690 Commits

Author SHA1 Message Date
Edward Langley 39821d5fb4 Compose the rename capture with vndi's generation and wdmp's placement
claim_as_read now takes the document generation read at open (#219,
improvise-vndi), so OpenedCoordinate captures it and the rename claims it.
A swap closes the rename editor, so no rival of that is observable;
a_document_swap_closes_an_open_rename_editor pins the precondition.

Since #230 (improvise-wdmp) the asker keeps its placement after a reframing
write, so the reorder test's re-entered editor can sit on Zed; its value
table now includes Zed.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:09:37 -07:00
Edward Langley 2aafff3b4c Merge commit '202e7eac637a95c8ac0814cb65a5739bcd3afe33' into tooling/dak5-ci-suites 2026-09-23 11:06:54 -07:00
Edward Langley 1501def5c2 check-ci-graph: a continued run: or a skipped need does not count
A plain scalar folds a deeper-indented next line into run:, so
`|| true` there made the counted call fail-open (improvise-1be2).
A job that needs a job under if: is skipped with it, directly or
transitively (improvise-bbwa). The unrun message now points at the
ci_suites row. tooling.md names the checkout-with-ref hole.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:06:47 -07:00
Edward Langley 790a33ba8e Merge gh/main 202e7eac into fix/hv0r-jpba-relays
Evidence: append/append in clients.md, gh/main's entries first.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:04:51 -07:00
Edward Langley e0dec9660e improvise-3kfc: a refusal settles what queued behind it; lockstep folds its own commands outgoing
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:03:53 -07:00
Edward Langley 006a156482 Merge gh/main (202e7eac) into fix/fdk1-coordinate-rename
ModelCommand is 26 with #214's ReplaceFormula: both sides had edited the
reduce.rs count to 25, which auto-merged unchanged; fixed by hand.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:02:40 -07:00
Edward Langley baabe1a9b1 Evidence and the argument for seeding a reopened editor from the host's answer (improvise-3uzg, improvise-xbgm)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 10:59:41 -07:00
Edward Langley 409ae6a8df Merge gh/main (202e7eac) into fix/oplp-followups
EOF conflict in context/test-evidence/clients.md: both sides appended
entries. Both kept.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 10:55:18 -07:00
Edward Langley 1d2032ef82 Merge remote-tracking branch 'gh/main' into fix/fy9o-reopened-editor-reseeded
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
#	crates/improvise-wasm-client/tests/lockstep.rs
2026-09-23 10:54:59 -07:00
Edward Langley 9975347b38 In a drill, tile select's fallback is a Label or _Index, not _Measure (improvise-h3cv)
command.md said the fallback is always _Measure. In _Drill, drill_steps
puts _Measure on Filter and tileable_cats drops Filter, so it is not a
tile. The Label rank and the _Index fallback are live exactly there.

Two TUI tests drive a real drill (>) and T: with a Label on None the
cursor opens on it, without one on _Index. Rivals: #231's
first-regular-else-zero and a Label ranked below _Index both fail the
first. They are not lockstep tests: a browser declines >.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 10:54:36 -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
Edward Langley ce7a57bb1f Merge gh/main (4502ed2b) into fix/oplp-followups
Conflict in context/code/formula-and-io.md: #214 added FormulaId to the
wire-type list, this branch added CategoryKind. Both kept.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 10:47:53 -07:00
Edward Langley 4f75fffcb9 improvise-h6z1: one fold memo per grid build, keyed by fold key and span
viewport::grid_body makes one FoldMemo and passes it to every cell and
total through GridLayout::evaluate_in / column_total, so a fold row's
formula chain is evaluated once across the row (9, not 45). The bench
gains a folded five-formula chain case; stored-only grids are unchanged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 09:09:34 -07:00
Edward Langley 23b8dbf56d Merge remote-tracking branch 'gh/main' into fix/zs2r-harness-lock-gate 2026-09-23 09:05:45 -07:00
Edward Langley c4450a4d68 A fast, offline gate for a stale harness/opfs-contract lock (improvise-zs2r) 2026-09-23 09:04:47 -07:00
Edward Langley 6c09f35f56 Merge commit '4502ed2b1178ebff92d341ab88567ab801534fd8' into wave/tej1-browser-delete-formula
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-23 09:01:20 -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 600d0a01d3 Merge commit 'a634b3f356bdbc725bf2c42bb5a56e0b2f2ef0eb' into fix/we1a-abort-refuses
# Conflicts:
#	context/test-evidence/command.md
2026-09-23 08:59:59 -07:00
Edward Langley 542dd9ce2e improvise-jpba: a relay heard while a frame is in flight outlives its refusal; evidence and docs
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:59:43 -07:00
Edward Langley dc944ea24b Document the RecordGone retry and the rename destination's basis
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:59:42 -07:00
Edward Langley d6706774a2 tooling: CI runs checkers.sh --ci <job>; the gate reads a table, not shell
improvise-st8q, improvise-tvte, from the #228 re-review at c1417359. The
maax parser still failed open. A bare checkers.sh inside a heredoc or a
folded run: value counted as every suite, and step and job if: were
ignored. Every round of parsing met another shell or YAML form, so the
parsing is gone.

checkers.sh holds a job-to-suites table (ci_suites), and each CI job
makes one call, `checkers.sh --ci <job>`. check-ci-graph.py counts a step
only when all of these hold: it sits inside steps: at step-key
indentation, its whole run: value is that call, the call names its own
job, and no if:, continue-on-error:, shell: or defaults: covers it. Every
other mention of scripts/checkers.sh is reported. A key with an inline
value owns deeper lines, and an open quote owns lines until it closes, so
heredocs, folds and quoted values are content, never structure.

There are 19 suite self-test cases and 7 rivals, each failing a case only
it can. The reviewer's heredoc, fold and if: attacks on the real ci.yml
now exit 1. checkers-test.sh gains five --ci cases. context/code/tooling.md
corrects two overstated claims ("--would-run anywhere is a usage error",
"fails closed").

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:59:18 -07:00
Edward Langley de1524c093 CategoryKind is a wire type again: TileEntry carries it
improvise-tt22 merged into gh/main while this branch was open and dropped
serde from core's document types, CategoryKind included, keeping only the
wire types (Axis, PageAxis). TileEntry now carries a CategoryKind, so it
joins them. formula-and-io.md's list of what remains is updated to say so.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:56:55 -07:00
Edward Langley 1b9a285802 Merge gh/main (5932ad74) into fix/fdk1-coordinate-rename
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:57 -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 1257789e33 Merge gh/main (ca2d1b19) into fix/fdk1-coordinate-rename
Composes fdk1's coordinate rename with #205's opened editor (improvise-ixxx):
a coordinate editor opens through opened_on and records SetOpenedEditor like
any value editor, and an untouched rename writes nothing, as the host's
CommitAndAdvance already did. The record/version capture for the basis claim
stays in ClientState::opened; context/code/clients.md argues why it cannot
live in OpenedEditor. Also: core.rs E0533 (CellId::Coordinate is a struct
variant since #197), and the ModelCommand count prose (25).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:51:44 -07:00
Edward Langley 9da9e08e57 Merge commit '5932ad749f0df01d4321cc961f57a488ab637dde' into fix/we1a-abort-refuses
# Conflicts:
#	context/test-evidence/command.md
#	crates/improvise-command/src/ui/app.rs
2026-09-23 08:51:42 -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 c9bbe32ec5 Merge remote-tracking branch 'gh/main' into fix/i3o5b-panel-dispatch-refuse
# Conflicts:
#	context/code/cli.md
#	context/test-evidence/command.md
#	crates/improvise-command/src/ui/app.rs
2026-09-23 08:49:08 -07:00
Edward Langley 66bd3fcbf2 Tile select ranks by CategoryKind, and the docs and tests catch up (oplp follow-ups)
improvise-bqm0: opening_tile fell back to tile 0, _Index, when a view had
no Regular category, so T Enter still emptied that grid. TileEntry now
carries the host's CategoryKind in place of `regular: bool`, and
opening_tile ranks Regular, then _Measure, then Label, then _Index/_Dim,
leftmost on a tie, through an exhaustive match. A bool could not express
the fallback without a client sniffing names. CategoryKind is re-exported
from the protocol so the wasm client names it through its one dependency.

improvise-52od: in every fixture the first Regular tile was also the first
tile on Row, so a rival `position(axis == Row)` passed the workspace. A
protocol unit test on a records-shaped bar and a lockstep case in records
mode now fail that rival; a no-regular unit test and lockstep case fail
#231's own `first regular, else 0`.

improvise-q69m: context/code/command.md said tile 0 is _Index and that
the fix would be the tile order, and clients.md's Rule 3 counterexample
named the leftmost tile. Both now describe opening_tile, and command.md
says why placing the cursor beat reordering: click targets are indices,
and the offered order is #192's pinned characterization.

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:54 -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
Edward Langley 426cce3732 Merge gh/main (5932ad74) into collapse-fu/wm20
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:38 -07:00
Edward Langley ce56e9b248 Merge gh/main (b4779ed) into tooling/dak5-ci-suites
Resolved context/test-evidence/tooling.md: gh/main's version, with
#226's bd-audit-ids entry, plus this branch's dak5 and maax entries.

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:29 -07:00
Edward Langley bdf2f2b76e Cite improvise-cwfj, the bead this remainder is tracked as 2026-09-23 08:48:12 -07:00
Edward Langley fb3da78741 improvise-wm20: a column total is its cell as if every drawn row were one fold
GridLayout::column_total asks Model::evaluate_spanning, whose Span adds to
#203's fold the categories a key omits. A formula is evaluated over the
pooled rows, a stored measure folds its records under its own aggregator,
text is unanimous or mixed, an error propagates, and _Measure on rows
leaves no strip (the user's rulings). Hidden rows stay out.

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:11 -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 2fa34359e3 context: panel and dispatch refusals; a bound key that will not build is a refusal (improvise-i3o5) 2026-09-23 08:44:44 -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 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 3475b02956 improvise-9trl: pin the remove-formula refusal and its exit code
A script that removes a formula that is not there now refuses and exits 1,
where it used to exit 0. The None arm had no test, so reverting it to a silent
no-op left the suite green.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:39:57 -07:00
Edward Langley f3069032f5 Merge remote-tracking branch 'gh/main' into fix/fy9o-reopened-editor-reseeded 2026-09-23 08:38:28 -07:00
Edward Langley 9a86981876 Merge branch 'wave/km71-edit-formula' into wave/tej1-browser-delete-formula
# Conflicts:
#	context/test-evidence/clients.md
2026-09-23 08:36:56 -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