Commit Graph

1697 Commits

Author SHA1 Message Date
Edward Langley 6b3b9f03de Merge remote-tracking branch 'gh/main' into fix/6yvg-dz8c-json-float
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/command.md
2026-09-22 22:57:58 -07:00
Ed Langley b4f58e9c35 Merge pull request #187 from fiddlerwoaroof/fix/hzjo-determinism-law
hzjo: the determinism law, over every command and independent contexts
2026-09-22 22:52:22 -07:00
Ed Langley 98d10ca591 Merge pull request #180 from fiddlerwoaroof/fix/help-keys-checks
Help and advertised-key checks that can see what they claim (wk18, 3t5x, 3ij0, jhdf)
2026-09-22 22:44:46 -07:00
Edward Langley cfcc9bff97 Correct the determinism law's width-guard and analyzer claims (improvise-b9f2) 2026-09-22 22:43:14 -07:00
Edward Langley de49716a41 Merge remote-tracking branch 'gh/main' into fix/hzjo-determinism-law
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:42:42 -07:00
Ed Langley fdc8e91383 Merge pull request #192 from fiddlerwoaroof/fix/jgzw-tile-virtuals
jgzw: keep _Index/_Dim tileable, and pin the offered set by name
2026-09-22 22:41:32 -07:00
Ed Langley a2f3c8d3e5 Merge pull request #193 from fiddlerwoaroof/fix/view-history
improvise-lrrx/8nd9: view history does not survive a document swap, and a refused step leaves no frame
2026-09-22 22:37:55 -07:00
Edward Langley 3390ab0394 Merge gh/main into fix/jgzw-tile-virtuals
Resolves the append-at-EOF conflict in context/test-evidence/command.md by
keeping both sides: gh/main's version plus this branch's tile.rs section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:32:54 -07:00
Edward Langley 95bd593dbe Merge remote-tracking branch 'gh/main' into fix/help-keys-checks
# Conflicts:
#	context/test-evidence/clients.md
#	context/test-evidence/protocol.md
2026-09-22 22:30:19 -07:00
Edward Langley c1932094d0 Merge gh/main into fix/view-history; point the client-stack claim at improvise-lxg0
The evidence file is gh/main plus this branch's five entries, inserted at
their original anchor. command.md no longer claims a client's history
cannot hold a dead name: fresh_view seeds a phantom Default frame
(improvise-lxg0, not fixed here).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:30:18 -07:00
Edward Langley 0825f9984d rustfmt the determinism law's width guard (improvise-e1sm) 2026-09-22 22:29:09 -07:00
Ed Langley d1c4884399 Merge pull request #196 from fiddlerwoaroof/fix/projection-identities
improvise-exdg/7xyx: a coordinate cell is CellId::Coordinate; FrameGroup::cat deleted
2026-09-22 22:28:36 -07:00
Ed Langley b59af2dfe0 Merge pull request #199 from fiddlerwoaroof/fix/i0v9-second-tab-lock
The worker's status claims success only on its first frame (improvise-i0v9)
2026-09-22 22:28:12 -07:00
Edward Langley f3932c1ca5 Merge remote-tracking branch 'gh/main' into fix/hzjo-determinism-law
# Conflicts:
#	context/code/command.md
#	context/test-evidence/command.md
2026-09-22 22:24:38 -07:00
Edward Langley f24944b437 WIP: determinism law docs — measured catch rate, execute-not-apply scope (improvise-e1sm) 2026-09-22 22:23:26 -07:00
Edward Langley c70c428c47 WIP: determinism law drills every item of the document (improvise-e1sm) 2026-09-22 22:22:29 -07:00
Edward Langley feefe17d53 Merge remote-tracking branch 'gh/main' into fix/6yvg-dz8c-json-float
# Conflicts:
#	context/test-evidence/command.md
#	context/test-evidence/tooling.md
2026-09-22 22:19:30 -07:00
Edward Langley 95a35e8cce Every JSON parser reads numbers exactly, and the check derives its crates (improvise-6yvg, improvise-dz8c)
improvise-6yvg reproduced. A JSON import in improvise-command and a legacy
JSON .improv load in improvise-io stored 0.24815714285714285 as
0.24815714285714283 in each crate's own test build. The root binary's
`improvise import` used the same lossy parser. Now float_roundtrip is on every
normal serde_json dependency in the workspace: root, improvise-command,
improvise-io, and the optional test-support dependency of improvise-protocol.

improvise-dz8c: the hand-listed cargo-tree check over three frame-parsing
crates is replaced by tests/json_numbers.rs. It reads
`cargo metadata --no-deps` and names every package, including target-specific
entries, whose normal serde_json dependency lacks the feature. The rule and why
it beats "parses a frame", the build graph, and enabling the feature once in
the protocol crate are in context/code/protocol.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:19:05 -07:00
Ed Langley 608ba6a6c8 Merge pull request #195 from fiddlerwoaroof/wire2/59q8
Source scanner: bound test-only items by brackets, evaluate cfg predicates (59q8)
2026-09-22 22:15:24 -07:00
Ed Langley bd95044a6e Merge pull request #182 from fiddlerwoaroof/fix/yf7p-cursor-is-the-only-context
yf7p: no registration can overwrite a parsed field
2026-09-22 22:14:51 -07:00
Ed Langley 810077a0d0 Merge pull request #181 from fiddlerwoaroof/wire2/bok4
A model effect that cannot do what it names refuses its frame (bok4)
2026-09-22 22:13:43 -07:00
Edward Langley aeb88e3eac Merge gh/main into fix/jgzw-tile-virtuals
Resolves the append-at-EOF conflict in context/test-evidence/command.md by
keeping both sides: gh/main's version plus this branch's tile.rs section.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:11:35 -07:00
Edward Langley d5854bc11c Merge remote-tracking branch 'gh/main' into fix/i0v9-second-tab-lock
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 22:11:29 -07:00
Edward Langley c960713f8c The worker's status claims success only on its first frame (improvise-i0v9)
The worker transport wrote "in-page worker · <doc>" when it spawned the
worker, before anything had answered, so a tab whose worker could not start
showed a success-looking status over a blank page. It now writes "starting
the worker · <doc>…", and createShell's arm() takes an `answer` that sawFrame
writes on the first frame, but only while the watchdog is still armed. A
ReadOnly or SeedMissing notice lands BEFORE the Snapshot, and fail() has
already disarmed, so the claim cannot overwrite the precise reason.

The two-tab spec now logs every #status and denies both the premature claim
and "did not answer" before the page clock is walked. A new spec pins the
exact status sequence on the writable path. Reasoning:
context/code/clients.md, "The watchdog".

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:10:29 -07:00
Ed Langley a164726fbd Merge pull request #183 from fiddlerwoaroof/fix/y1av-cursor-off-zero
y1av: seat the at-cursor panel tests off index 0
2026-09-22 22:09:55 -07:00
Ed Langley 1a6b877482 Merge pull request #194 from fiddlerwoaroof/fix/umi4-edit-seed
improvise-umi4: an editor opens on the value, not on its rounded Display
2026-09-22 22:06:30 -07:00
Edward Langley 2619d1710d Merge gh/main (#190) into wire2/bok4
Only conflict was context/test-evidence/command.md: both sides inserted a
section before the same heading, and both kept in full (gh/main's first).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:05:18 -07:00
Ed Langley 5bcc3cacdd Merge pull request #186 from fiddlerwoaroof/fix/edpl-pr-watch-unknown
pr-watch: wait out UNKNOWN and the needs: gap, pass only an allowlisted state (improvise-edpl, improvise-zlj2)
2026-09-22 22:05:10 -07:00
Ed Langley 1158c23d7b Merge pull request #190 from fiddlerwoaroof/fix/6oy4-4w09-wire-numbers
Numbers survive the JSON wire; a NaN cell quiesces (improvise-6oy4, improvise-4w09)
2026-09-22 22:03:33 -07:00
Edward Langley f8f4dd5fa0 Merge remote-tracking branch 'gh/main' into fix/view-history
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:02:49 -07:00
Edward Langley 54ef80d960 Merge remote-tracking branch 'gh/main' into wire2/bok4
# Conflicts:
#	context/test-evidence/command.md
2026-09-22 22:01:23 -07:00
Edward Langley 6b3dd8ca3e improvise-exdg: correct the paste claim against #184, and name improvise-kkcy
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:58:43 -07:00
Edward Langley f24882766e Merge remote-tracking branch 'gh/main' into fix/help-keys-checks
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 21:57:17 -07:00
Edward Langley 23a3c4d269 Merge remote-tracking branch 'gh/main' into fix/projection-identities 2026-09-22 21:57:04 -07:00
Edward Langley 25a06d52ff improvise-7xyx: delete FrameGroup::cat and the echo it promised
The field's doc comment said a client echoes it back in ToggleGroup, but
resolve.rs has no toggle-group arm and neither renderer read it. Deleting
it is the minimal honest answer: composing `z` in a browser needs its own
design (the TUI places the cursor on the layout the toggle will produce),
and the operand should come back with that consumer. The h0iv test now
asserts whole-header equality, which is stronger than the (cat, name)
pair it compared.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:56:53 -07:00
Edward Langley 7935b006eb Drop the Welcome page's key tip rather than deriving it
As a derived keys row it gave Welcome a row with a description, and
harness/tests/help.spec.js holds Welcome to prose; CI failed on it at
544744c. Help mode's status hint already derives next-page.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:56:38 -07:00
Edward Langley 04230a7548 Merge remote-tracking branch 'gh/main' into fix/edpl-pr-watch-unknown 2026-09-22 21:56:21 -07:00
Edward Langley a4fa3ae174 pr-watch: wait on green-but-BLOCKED, the needs: gap before a required check registers (improvise-zlj2, improvise-h3ni)
The required Browser harness check comes from a job that needs: build, so for
a moment per push every registered check is green and GitHub says
MERGEABLE/BLOCKED. #186 at 128a2a0 refused that and exited 1 on healthy PRs.
BLOCKED with no failed check is now waited on (exit 3 if it never clears).
Adds the gap sequence from PR #189's real rollup, and a head moving during
the UNKNOWN wait. Corrects tooling.md's claim that nothing else produces
BLOCKED, the evidence entry's rival-2 claims, and the fixture wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:56:15 -07:00
Edward Langley 43ba5e6151 Bound test-only items by brackets and evaluate cfg predicates in the source scanner (improvise-59q8)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:55:32 -07:00
Edward Langley 44a183aa26 Merge remote-tracking branch 'gh/main' into fix/6oy4-float-roundtrip
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 21:54:12 -07:00
Edward Langley bb1a05674c improvise-exdg: a records coordinate cell projects CellId::Coordinate
A drawn coordinate cell projected id: None, which ADR 002 and gotcha 42
define as "no projected cell". Absence was encoding a permission (the
host's). It is now its own kind, carrying no operand because no client
composes a coordinate rename. render.rs::editable is an exhaustive match
so the next variant must be classified. Paste, clear and edit are
unchanged: every write path still matches Record alone. The test that
pinned the bug (a_coordinate_column_is_projected_with_no_identity) is
replaced by one that enumerates the whole records grid.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:54:11 -07:00
Edward Langley 3bcd8774cb WIP pr-watch: failing cases for the needs-gap BLOCKED and a head moving during UNKNOWN (improvise-zlj2, improvise-h3ni)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:53:01 -07:00
Edward Langley 0680f65da8 Merge remote-tracking branch 'gh/main' into fix/umi4-edit-seed
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:52:26 -07:00
Edward Langley 54d9cc85de WIP: 59q8 red tests
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:52:01 -07:00
Ed Langley da2e5ab9e5 Merge pull request #189 from fiddlerwoaroof/fix/5fzx-skill-symlinks
CI / Build all bundles (push) Has been cancelled
CI / Test and lint (host) (push) Has been cancelled
CI / wasm32 check (browser bundle crates) (push) Has been cancelled
CI / Browser JS unit tests (node --test) (push) Has been cancelled
CI / Knowledge base consistency (push) Has been cancelled
CI / Lint the harness crate (push) Has been cancelled
CI / Browser harness (OPFS contract + shell) (push) Has been cancelled
CI / Deploy to GitHub Pages (push) Has been cancelled
skills: symlink the three hand-kept .claude copies; code-review points at the one gate list (improvise-5fzx, improvise-vjus)
2026-09-22 21:50:42 -07:00
Ed Langley 9aa3581c2d Merge pull request #184 from fiddlerwoaroof/fix/6p8q-records-yank-paste
TUI records-mode yy/p resolve the real record; p declines aggregates (improvise-6p8q, l4mp)
2026-09-22 21:50:15 -07:00
Edward Langley 141e41ec4b improvise-umi4: an editor opens on the value, not on its rounded Display
CellValue's Display writes a non-whole number {:.4}, and every editor seed
was that string, so i then Enter on an untouched 1.23456789 stored 1.2346,
in the TUI (pivot and records) and in the browser, which seeds from the
projected edit_text. CellValue::edit_text is now the one home of the seed:
the shortest decimal that reads back as the same f64 (non-finite values
take the core.md §16 token). display_value_in's two arms and
cell_display's records arm all go through it; the now-orphaned
GridLayout::resolve_display is removed.

Text that reads as a number (007) is exact in the seed but still
reclassified by typed(); filed as improvise-ixxx.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:49:20 -07:00
Edward Langley 0a6e940dc5 Merge remote-tracking branch 'gh/main' into fix/yf7p-cursor-is-the-only-context 2026-09-22 21:48:14 -07:00
Edward Langley 300bf613fc Merge remote-tracking branch 'gh/main' into fix/view-history 2026-09-22 21:47:46 -07:00
Edward Langley 12171fb335 Merge remote-tracking branch 'gh/main' into wire2/bok4
# Conflicts:
#	crates/improvise-command/src/ui/effect.rs
2026-09-22 21:47:23 -07:00