Commit Graph

1670 Commits

Author SHA1 Message Date
Edward Langley 94e8f0f08e improvise-lnkb: the folded category reads as absent to IS and WHERE, as on None
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 23:25:54 -07:00
Edward Langley 689c7665da improvise-o1y0: a fold evaluates each formula once, memoised per evaluation
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 23:15:26 -07:00
Edward Langley 2a4f35d76f Merge remote-tracking branch 'gh/main' into collapse-fu/eccl 2026-09-22 22:38:42 -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 30187208d7 improvise-eccl: pool each distinct filtered context once (Codex review on #203)
An inline WHERE on the folded category rewrote every member context to the same item, so SUM(Revenue WHERE Month = Jan) on the Q1 fold counted Jan twice.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:35:12 -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
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 14acf46d77 clippy: slice from a reference
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:26:04 -07:00
Edward Langley 79175bbb58 improvise-eccl/f2oo: correct §14's premise and state the fold's coverage; evidence
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:24:21 -07:00
Edward Langley e3aa2ccb4b WIP improvise-eccl/f2oo: a fold evaluates its formula over the fold, and covers only drawn members
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:21:02 -07:00
Edward Langley b535245a21 Refactor: GridLayout::evaluate is the one evaluation of a pivot key
The grid, its totals, pruning, search and yank all read a key through the layout, so what a fold covers can have one home.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 22:17:35 -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 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 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 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
Edward Langley 99046f7c63 improvise-8nd9: a history step observes acceptance, not movement
A frame naming the view you are on is still a place (view + mode), and
the client's reduce_view::stepped steps onto it unconditionally. Observing
"active_view changed" dropped that frame on the host and so split host
from client; colon_view_back_respects_whether_history_exists caught it.
App::switch_to_view now says whether the document accepted the view, and
stepped_to asks that rather than re-deriving the condition.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:45:36 -07:00
Edward Langley c246dc1df6 improvise-umi4: WIP failing tests — an untouched edit must store the identical value
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:43:38 -07:00
Edward Langley ead796890b The aggregate paste decline no longer sends the user into a drill (improvise-48jd)
Inside a drill p declines too, so 'drill in to paste' led to a second refusal.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:43:19 -07:00
Edward Langley 62dba66232 Merge gh/main into fix/6p8q-records-yank-paste
Resolves the append-at-EOF conflict in context/test-evidence/command.md,
keeping gh/main's entries and 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-22 21:43:13 -07:00
Edward Langley ea1f2d313b improvise-lrrx/8nd9: view history does not survive a document swap
install_workbook clears view_back_stack and view_forward_stack beside
cursors, so `<` after LoadModel or AcceptWizardModel no longer walks
the outgoing document's views. ViewBack and ViewForward now observe the
switch as SwitchView does (improvise-swzk): a frame the document refuses
is consumed, leaves no frame behind, and restores no mode. Each fix holds
without the other.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:43:10 -07:00
Edward Langley 07d9732b7a Refuse DeleteView of an absent view and AddFormula into an absent category (improvise-40j4)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:43:02 -07:00
Edward Langley 8fe55e0b4a Witness every bok4 refusal with a frame test (improvise-9fpl)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:42:05 -07:00
Ed Langley 800348ad11 Merge pull request #185 from fiddlerwoaroof/fix/headless-exit-extent
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
Headless CLI: pin the extent (up8g); exit 1 on a refusal, not an abort (c5ip, udt2)
2026-09-22 21:42:03 -07:00
Edward Langley 3c6001ac7b Merge remote-tracking branch 'gh/main' into fix/6oy4-float-roundtrip
# Conflicts:
#	context/test-evidence/command.md
#	context/test-evidence/protocol.md
2026-09-22 21:41:49 -07:00