Commit Graph

1565 Commits

Author SHA1 Message Date
Ed Langley c28b81a6de Merge pull request #173 from fiddlerwoaroof/fix/df2w-i0v9-browser-page
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
df2w: an open, empty formula panel is drawn in the browser
2026-09-22 21:25:46 -07:00
Ed Langley fbe7459cc6 Merge pull request #178 from fiddlerwoaroof/fix/dsxq-yank-value-proj
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
Browser yy yanks the projected value, not the edit text re-parsed (improvise-dsxq)
2026-09-22 21:24:18 -07:00
Ed Langley 398caf6462 Merge pull request #175 from fiddlerwoaroof/docs/wave-agent-rules
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
wave skill: agent standing rules move into the repo; one home for the brief checklist (improvise-1f8e)
2026-09-22 21:21:43 -07:00
Ed Langley 9325ba5ecf Merge pull request #170 from fiddlerwoaroof/fix/90ea-fmt-root-package
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
fmt-workspaces: a case per package, and refuse a package no root reaches (improvise-90ea)
2026-09-22 21:19:07 -07:00
Ed Langley 97f4b1b648 Merge pull request #174 from fiddlerwoaroof/wire2/gho5
Rolled-back-load tests witness that the load ran (gho5)
2026-09-22 21:17:51 -07:00
Edward Langley 9f3f53095b Merge remote-tracking branch 'gh/main' into docs/wave-agent-rules 2026-09-22 21:15:28 -07:00
Edward Langley a622d17a64 wave agent-rules: restore base check and hand-back identifiers; attribution from the brief (improvise-uj4k, improvise-1o0y)
The move in b6d2c47 dropped two items from the old brief lists: the agent
checking its base against the named commit, and reporting branch, head SHA,
PR number and per-ticket changes. The attribution line now comes from the
brief, so the shared file stays agent-neutral and ours still open with
"Posted by Claude".

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:15:27 -07:00
Edward Langley de73ad9205 Merge remote-tracking branch 'gh/main' into fix/df2w-i0v9-browser-page 2026-09-22 21:15:17 -07:00
Edward Langley d11d2ac1f7 Merge remote-tracking branch 'gh/main' into fix/90ea-fmt-root-package
# Conflicts:
#	context/test-evidence/tooling.md
2026-09-22 21:13:08 -07:00
Edward Langley 3039ce8e58 Merge gh/main into fix/df2w-i0v9-browser-page
Conflict only in context/test-evidence/clients.md, both appended at EOF:
kept df2w's two entries and ktlk's section, whole.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:12:41 -07:00
Ed Langley 9e78051be6 Merge pull request #171 from fiddlerwoaroof/fix/2bac-commit-cell-edit-args
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
improvise-2bac: the interactive arm is parse-then-context, so explicit args can't be demoted
2026-09-22 21:11:37 -07:00
Edward Langley 5d1bf75271 Merge remote-tracking branch 'gh/main' into fix/dsxq-yank-value-proj
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 21:11:31 -07:00
Edward Langley 351a0adc5d fmt
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:10:28 -07:00
Edward Langley 625c11319a fmt-workspaces: exit 2 means no verdict, not no output (improvise-ximf)
The unreached-package arm exits 2 and names the package's Cargo.toml, so the
usage text's "NO file is named" was false for it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:09:46 -07:00
Ed Langley a120540e32 Merge pull request #169 from fiddlerwoaroof/fix/ktlk-editor-one-home
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
The editor overlay and Enter read one buffer (improvise-ktlk)
2026-09-22 21:08:56 -07:00
Edward Langley c88b4b5d69 docs: CellDisplay::value and the dsxq evidence
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:08:20 -07:00
Edward Langley 99797918bc WIP: project the evaluated value; yank copies it
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:05:25 -07:00
Ed Langley 4d71c019cb Merge pull request #168 from fiddlerwoaroof/fix/web3-s8h7
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
s8h7: i on an aggregate names drill, in help and in the browser
2026-09-22 21:04:45 -07:00
Edward Langley 912e25a0ac Rolled-back-load tests witness that the load ran (improvise-gho5)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:04:07 -07:00
Edward Langley b6d2c47ae3 wave skill: one home for the brief checklist and the agent rules (improvise-1f8e)
.agents/skills/wave is the one copy; .claude/skills/wave is a symlink to it,
as beads-merge already is. SKILL.md holds the brief checklist, agent-rules.md
the agent-side rules, and AGENTS.md points at both instead of carrying a third
list. The bd-generated Session Completion block is overridden in agent-rules.md
rather than hand-edited (improvise-x1uk).

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:04:01 -07:00
Edward Langley 772c695d3e WIP: lockstep yy/p cases where edit text and value disagree (failing)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:02:48 -07:00
Edward Langley 2186e3d77b df2w: rustfmt
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:02:04 -07:00
Edward Langley 7eed469970 Merge remote-tracking branch 'gh/main' into docs/wave-agent-rules 2026-09-22 21:00:51 -07:00
Edward Langley 7ce778fca2 wave skill: the agents' standing rules move into the repo
.claude/skills/wave/agent-rules.md replaces /tmp/salvage/standing-rules.md.
SKILL.md and AGENTS.md point to it instead of restating it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 21:00:27 -07:00
Ed Langley f909cadf90 Merge pull request #167 from fiddlerwoaroof/docs/commit-frequently
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
docs(agents): commit frequently, so the work is safe in git
2026-09-22 21:00:01 -07:00
Ed Langley 34b56bca07 Merge pull request #166 from fiddlerwoaroof/fix/usus-kb-shrink-guard
kb: refuse a write that leaves kb.pl short of HEAD; publish by rename (improvise-usus)
2026-09-22 20:59:49 -07:00
Edward Langley d9b10905d0 improvise-2bac: context docs, evidence, fmt
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:58:34 -07:00
Edward Langley 808cbb7d92 fmt-workspaces: refuse a package no workspace root reaches (improvise-90ea)
The fixture loop covers every package the fixture has; this covers every
package the tree has. The review's skip-the-root rival now fails the real
repo's own gate (exit 2 naming Cargo.toml), not only the test suite.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:55:25 -07:00
Edward Langley 942211b921 df2w: an open, empty formula panel is drawn
views/formulas were empty-means-closed, so an open panel over a document
with no formulas built the same RenderModel as a closed one. Option<Vec<_>>
carries both facts in one field; the page hides on null.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:54:26 -07:00
Edward Langley bdf9bff472 The editor overlay and Enter read one buffer (improvise-ktlk)
PR #162 (improvise-xg1z) made render.rs paint edit_seed when Editing
arrived without its edit buffer, but commit and append-char still read
the absent buffer as the empty string. So the overlay showed the value,
Enter composed ClearCell, and a typed character replaced the text
instead of extending it: two derivations of what is in the editor.

The fold now seeds the missing buffer (ClientState::settle_editor, next
to settle_mode), and render.rs reads the buffer through read_buffer, as
commit does. edit_seed goes back to pub(crate) and no renderer calls it.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:53:51 -07:00
Edward Langley 36063da3c9 WIP improvise-2bac: tests for explicit args and gate/run agreement
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:53:45 -07:00
Edward Langley 334e218c7b s8h7: i on an aggregate names drill, in help and in the browser
In the TUI, EditOrDrill hands an aggregated cell to DrillIntoCell, so `i`
on an aggregate is drill by another door. The help page called it only
"Edit current cell", and the browser refused it in words unrelated to `>`'s,
so a user could not tell the two were one missing feature.

- help.rs: the edit-or-drill row says it drills into an aggregate.
- help.rs: Normal-mode Enter was captioned "Edit current cell (same as i)"
  but is bound to enter-advance alone, which only moves down; the row moves
  to Cursor movement and says so.
- resolve.rs: the Aggregate arm now reads "an aggregate is edited by
  drilling in — " + not_yet("drill"), the same sentence `>` uses.
- context/code/clients.md and the evidence entry reverse the recorded
  "different sentences on purpose" rationale, which was false about the TUI.
- harness/tests/drill.spec.js follows the new wording.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:53:18 -07:00
Edward Langley 7cc52bdb1d fmt-workspaces-test: one fault case per fixture package, root included (improvise-90ea)
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:51:59 -07:00
Edward Langley 1ee1f26c0d WIP df2w: an open empty panel is Some(vec![]), closed is None
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:50:48 -07:00
Edward Langley afba3fa0a6 WIP improvise-2bac: interactive arm is parse-then-contextualize
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:50:48 -07:00
Edward Langley ef16723b90 docs(agents): commit frequently, so the work is safe in git
User ruling. A worktree is not durable storage: an agent finished a whole
ticket with every gate green and lost all of it, uncommitted, when its
worktree was deleted during a disk cleanup. The brief template now requires a
WIP commit after the first green test and after every meaningful step, and
separates "do not merge to main" from pushing the agent's own branch, which is
encouraged.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:47:01 -07:00
Edward Langley a55b3c7147 kb: refuse a write that leaves the kb short of HEAD; publish by rename
scripts/kb add wrote onto a working-tree kb.pl that had lost 276 of its 801
clauses and reported success, because kb_consistent checks consistency, not
completeness (improvise-usus). Every write now runs kb-merge.pl `complete`
on the candidate before kb_consistent. It refuses unless every clause HEAD
has is still present by key, or its removal was recorded by `kb rm` in a
per-worktree ledger in the git dir, which prunes itself on every write.

The candidate is now built beside kb.pl, so publishing it is a rename(2)
rather than a possible cross-device copy that a kill could truncate.

Exit codes: 0 done, 1 refused, 2 usage, 3 HEAD's kb.pl unreadable. kb-test.sh
now builds its fixtures from HEAD and adds cases 18-22. Argument in
context/code/kb-tool.md, evidence and rivals in context/test-evidence/tooling.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-09-22 20:46:03 -07:00
Ed Langley 40b8913397 Merge pull request #165 from fiddlerwoaroof/docs/kb-fmt-and-collapse
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
docs: the fmt gate every brief prescribed, and the collapse ruling
2026-09-22 20:29:16 -07:00
Ed Langley 1d9855f881 Merge pull request #161 from fiddlerwoaroof/fix/hs0u-lut7-browser-prefix
Resolve prefix chords in the browser (improvise-hs0u, improvise-lut7)
2026-09-22 20:29:05 -07:00
Edward Langley 594734ad8d SetYanked is composed now, so it leaves the uncomposed list
A SEMANTIC merge conflict that auto-merged cleanly: PR #160 added
`vocabulary_is_composed.rs`, whose `NOT_COMPOSED` list names `SetYanked`
with the verdict "improvise-lut7: nothing resolves yank, so paste reads a
permanently empty slot". This branch is the fix for improvise-lut7, so
that entry is now false.

git reported no textual conflict — the two sides touched different files —
and `the_uncomposed_list_names_nothing_that_is_composed` caught it on the
merged tree, which is exactly the both-directions check #160 added it for.
Worth stating because the two PRs agree on the diagnosis: the list cites
the ticket this branch closes, and the guard is what turned that agreement
into a build failure rather than a stale sentence.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FC2jVn8Au7E9JPkw6bwXXH
2026-09-22 20:23:08 -07:00
Edward Langley e9f7327328 docs: the fmt gate every brief prescribed, and the collapse ruling
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
AGENTS.md's brief template now carries the gate list, because the one I had
been handing agents said `cargo fmt --all`, which reaches only one of this
repo's two workspace roots — and `cargo fmt -p opfs-contract` from the root
exits 1 as a usage error indistinguishable from a real verdict
(improvise-b4ks). Both spellings fail in the direction that looks like
success. The gate is `scripts/fmt-workspaces.sh`.

kb: the improvise-6qet ruling (a collapsed group is one aggregate row), and
the CI lane's doctrine on stubs and fixtures.

Also recovers kb.pl from a truncation: the working tree had lost 276 of 801
facts, most likely to a `kb replace` killed mid-write at a session boundary,
and `kb add` had written onto it with kb_consistent passing. Restored from
HEAD; this commit is 6 insertions, 0 deletions. Filed as improvise-usus.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-09-22 20:21:05 -07:00
Edward Langley 812f555958 Merge remote-tracking branch 'gh/main' into fix/hs0u-lut7-browser-prefix
# Conflicts:
#	context/test-evidence/clients.md
2026-09-22 20:19:38 -07:00
Ed Langley c26e9d3488 Merge pull request #164 from fiddlerwoaroof/edl.review
Edl.review
2026-09-22 20:18:52 -07:00
Edward Langley d0f2bf9789 chore: update cargo deps 2026-09-22 20:18:13 -07:00
Ed Langley 9430ac733c Merge pull request #163 from fiddlerwoaroof/fix/k84e-rebase-rollback
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
Test clause 4 over the Applied::Rebased path (improvise-k84e)
2026-09-22 20:17:55 -07:00
Ed Langley 46ad715e3a Merge pull request #162 from fiddlerwoaroof/fix/xg1z-editing-overlay
An editing overlay with no buffer shows the cell (improvise-xg1z)
2026-09-22 20:17:45 -07:00
Ed Langley 5c651a0815 Merge pull request #160 from fiddlerwoaroof/fix/m0sx-clearbuffer
Delete the invented Command::ClearBuffer, and guard the class (improvise-m0sx)
2026-09-22 20:17:35 -07:00
Ed Langley 5252cc0044 Merge pull request #159 from fiddlerwoaroof/fix/b4ks-fmt-workspaces
Split a fmt usage error from a fmt verdict across both workspace roots (improvise-b4ks)
2026-09-22 20:17:23 -07:00
Edward Langley 98bdad02dd chore: update cargo deps 2026-09-22 20:16:46 -07:00
Ed Langley d72a68e2ba Merge pull request #158 from fiddlerwoaroof/docs/kb-review-batch
docs(kb): what adversarial review found, and four vacuity shapes
2026-09-22 20:14:30 -07:00