Commit Graph

1084 Commits

Author SHA1 Message Date
Edward Langley 92515d6271 Keep rename_coordinate's doc comment on the function
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:49 -07:00
Edward Langley d5da9747ee rustfmt
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:49 -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 efca099cae improvise-hv0r/jpba: relays settle after their frame; pin the echo's audience and kinds
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:17 -07:00
Edward Langley 3e435e88df Refuse a rename retry after RecordGone; check the rename's destination
improvise-20ek: a RecordGone on the record a rename named pins the editor's
target as Gone, so a retry declines instead of renaming whatever row the
cursor now sits on. RecordMoved still recaptures, which is the force.

improvise-milr: the server adds the rename's destination record, when it
exists and differs from the source, to the records a frame answers for
(records_at_stake). The client cannot compute that hash (ADR 002), so it
claims every record counter it held when the editor opened.

Also: ModelCommand has 25 variants, not 24.

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:12 -07:00
Edward Langley 0d14f49e51 WIP red: a retry after RecordGone, and a rename's unchecked destination (improvise-20ek, improvise-milr) 2026-09-23 08:58:21 -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 42aeeb6b03 rustfmt
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:53:43 -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 9948aaf55a rustfmt the wm20 totals tests
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:01 -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 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 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
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
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
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 a093d126bc Let the client bundle's wasm-opt accept saturating float conversion; rustfmt
landed_seed parses committed text with typed(), which puts
i64.trunc_sat_f64_s in the client bundle; the bundled wasm-opt rejects it
unless the feature is named, as the worker bundle already does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:44:56 -07:00
Edward Langley 301b1f8fc1 WIP: panel.rs declines and dispatch's arg-error arm refuse (improvise-i3o5) 2026-09-23 08:42:58 -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 85c483bd24 Tab at the rightmost column reopens on the value just written; pin the +cat clear (improvise-3tt4, improvise-5wai)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:38:25 -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
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 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
Edward Langley 60179150b8 improvise-wm20: red — the totals strip sums rows whatever the column is
Ratio 1.40 (pooled 0.80), Avg 45 (records mean 20), text 0.00, an error
row dropped, a strip under measures-on-rows, and a Max total that moves on z.

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:06 -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 66b6a973dd Merge commit 'e406edc8e846f147dc0828f7087ab2a4008a41c9' into fix/we1a-abort-refuses
# Conflicts:
#	context/test-evidence/command.md
2026-09-23 08:30:36 -07:00
Edward Langley 425a517426 Check in apply_effects that a model effect never aborts without refusing (improvise-lasd)
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:16 -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