Commit Graph

252 Commits

Author SHA1 Message Date
Edward Langley d0e36142ff Merge fix/hv0r-jpba-relays (37dbf02e) into fix/xd3q-reset-clobbers-pipelined-placement
# Conflicts:
#	context/test-evidence/clients.md
2026-09-24 02:04:55 -07:00
Edward Langley 37dbf02e4e Merge gh/main (220abc61) into fix/hv0r-jpba-relays
# Conflicts:
#	context/test-evidence/clients.md
#	crates/improvise-protocol/src/client.rs
2026-09-24 02:00:09 -07:00
Edward Langley 75ce42309a Merge fix/hv0r-jpba-relays (361ba50e) into fix/xd3q-reset-clobbers-pipelined-placement
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-23 23:11:00 -07:00
Edward Langley 271f34978b Merge gh/main (666de199) into fix/fy9o-reopened-editor-reseeded
This head already carries #272 (p6v6), merged at d9c65181.

Conflicts:
- resolve.rs advanced: main's `reopened_at` (decline an aggregate or a
  formula's result) now takes this branch's `writes` and answers the
  decline arm first, then `awaiting_seed` or `opened_on(state, ..)`, as
  the #282 review prescribed for this combination.
- context/test-evidence/{clients,command}.md: both sides' entries kept.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 23:07:51 -07:00
Edward Langley 361ba50e6c Merge gh/main (666de199) into fix/hv0r-jpba-relays
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-23 23:07:10 -07:00
Ed Langley eb9ec7e98b Merge pull request #277 from fiddlerwoaroof/fix/enz6-advance-onto-fold
No editor re-opens on a cell i declines: a fold or a formula's result (improvise-enz6)
2026-09-23 22:41:16 -07:00
Ed Langley 4e8c5d4c9e Merge pull request #252 from fiddlerwoaroof/fix/pr8t-nacd-item-coordinates
Refuse a wire write unless every coordinate names an item (improvise-nacd, improvise-pr8t)
2026-09-23 22:39:11 -07:00
Ed Langley 2700afc027 Merge pull request #239 from fiddlerwoaroof/collapse-fu/wm20
improvise-wm20: a column total is its cell as if every drawn row were one fold
2026-09-23 22:38:33 -07:00
Ed Langley 90ea08beaf Merge pull request #249 from fiddlerwoaroof/fix/m6op-measure-agg-fixture
improvise-m6op: the cross-instance fixture carries measure_agg entries
2026-09-23 22:37:13 -07:00
Ed Langley 5074d66d10 Merge pull request #229 from fiddlerwoaroof/fix/we1a-abort-refuses
Pin that every aborting model effect also refuses (improvise-we1a)
2026-09-23 22:36:27 -07:00
Edward Langley aab62a362a improvise-enz6: pin the commit door directly, and write up the evidence
The advance no longer reaches the commit door on a fold or a formula's
cell, so the two older advance tests stopped seeing it (measured: the
cell_key rival passes them). Two tests seat the editor there directly.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 17:56:41 -07:00
Edward Langley 1a9d73259c Merge gh/main (202e7eac) into collapse-fu/wm20
# Conflicts:
#	context/test-evidence/command.md
2026-09-23 17:19:55 -07:00
Edward Langley e4b5ce9046 A relay heard while frames are in flight rebases the view on them (improvise-xd3q)
A pruning commit is answered with ResetCursor and an echo of its own
placement. A frame sent before that answer had already been folded
optimistically, and fold applied the relays straight onto view on top of
it. The echo is per frame, so the later placement was never re-sent: the
client sat at (1,0) while its mirror sat at (2,0), and the next write
landed on West where the TUI writes East.

#246 already queues each relay behind the head frame, so the queue holds
the right order. fold now rebuilds view as settled plus everything still
in flight whenever a relay queues, the same replay a refusal uses.
Replaying from settled, rather than re-applying what queued behind the
relay, is pinned by a ViewBack test: re-applying stepped back twice.

Stacked on #246 (fix/hv0r-jpba-relays, 790a33ba).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 17:19:22 -07:00
Edward Langley 076ead7c7c improvise-yb4b/b5dp: pin the scan against the per-member fold; record the ruling, the bench and the evidence
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:55 -07:00
Edward Langley 47b166eed9 Refuse a wire write unless every coordinate names an item
improvise-nacd and improvise-pr8t.

The b114 rule refused a coordinate that is a group. The invariant it
protects (improvise-gw18) is positive: every coordinate names an item.
Two writes onto a stored record fell in the gap and were accepted: a
measure that is no item at all (Bogus), and a parent group that holds no
item directly (Totals), where items_in_group is empty.

App::group_refusal becomes App::non_item_refusal. It refuses any
coordinate that is not in Model::effective_item_names for its category.
Formula targets count as _Measure items, so a write under a formula is
still refused by the Derived rule, with the true reason.

Tests:
- pr8t pins the same-name case: an item named like a group of its
  category is writable. Removing the old exemption fails it.
- nacd is red at 202e7eac for both Bogus and Totals.
- A third test pins that a formula cell is refused for the formula.

Two reduce.rs fixtures wrote _Measure=Revenue without the item. They now
add it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:20:51 -07:00
Edward Langley c0442e68da improvise-m6op: the cross-instance fixture carries measure_agg entries, so its sort is pinned
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 11:12:40 -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 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
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 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 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 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 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 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 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 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 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 f3069032f5 Merge remote-tracking branch 'gh/main' into fix/fy9o-reopened-editor-reseeded 2026-09-23 08:38:28 -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
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 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 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
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 a1b23c0595 Merge remote-tracking branch 'gh/main' into fix/fy9o-reopened-editor-reseeded
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-23 08:26:51 -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
Edward Langley 52fa3976bc Merge gh/main (705c92d9) into collapse-fu/ciw8
#197 changed project::cell_id to take &Model; aggregate_refusal and the two
sjdb tests now pass the host model. The text merge was clean there and did
not compile (E0308) until they did.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:24:24 -07:00
Edward Langley 0051e57341 Pin the touched reset on the editor an advance reopens (improvise-465t)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:20:36 -07:00
Edward Langley 8c797720ba Merge gh/main (705c92d9) into collapse-fu/eccl
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-23 08:20:12 -07:00
Edward Langley 38ec60616c Merge remote-tracking branch 'gh/main' into wave/tt22-no-legacy-json
# Conflicts:
#	context/test-evidence/command.md
2026-09-23 08:18:38 -07:00
Edward Langley 21e239dca5 Model's Debug renders its HashMaps in key order, so the effect fingerprints cannot flake (improvise-pc3b) 2026-09-23 08:15:57 -07:00