Commit Graph

2547 Commits

Author SHA1 Message Date
Claude (adr009-zset-amend) 52453ca785 docs(adr): ADR 009 is accepted; Z-set weights are checked i64 and the group is partial (improvise-felo.4)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-10 11:14:46 -07:00
Claude (adr009-zset) d1665f6499 docs(zset): drop the withdrawn premise from the overflow paragraph (improvise-tk51)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-10 00:04:24 -07:00
Claude (adr009-zset) 6de889a116 test(zset): reach the overflow branches of sub and scale, and correct the policy's reason (improvise-tk51)
Adds sub and scale(-1) overflow examples and an i128-oracle property over
near-limit weights; injecting wrapping_{add,sub,mul,neg} now fails named
tests. context/code/zset.md no longer claims wrapping breaks retraction.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 23:57:04 -07:00
Claude (adr009-zset) 069d56bd9f fix(zset): a - a is zero at i64::MIN, and the partial group is stated (improvise-tk51)
Answers Copilot (SubAssign negated before consulting the held weight) and
Codex (checked arithmetic makes associativity order-dependent at the i64
boundary; documented as the intended policy and pinned by a test).

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 23:40:15 -07:00
Claude (adr009-zset) 1bb73cbe4f docs(zset): the reasoning, the evidence and the wasm gate entry (improvise-tk51)
Registers zset in nix/ci.nix's wasmCrates and the doc site, shortens the
comment runs, and fixes the clippy findings in the test crate.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 23:03:32 -07:00
Claude (adr009-zset) e15b285822 feat(zset): the Z-set group, map, filter, distinct and the stream operators (improvise-tk51)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:57:39 -07:00
Ed Langley 5f8c3f8c82 chore(merge): pull request #309 from fiddlerwoaroof/docs/felo4-adr-incremental-evaluation
docs(adr): ADR 009 incremental evaluation (proposed) (improvise-felo.4)
2026-10-09 22:50:58 -07:00
Ed Langley 1775dc7c2a Merge pull request #340 from fiddlerwoaroof/docs/condense-repo-map
docs(context): condense repo-map to a digest; move gotchas and inventory to their own pages
2026-10-09 22:49:32 -07:00
Claude (adr9-steward) 40792ee03e docs(adr): ADR 009 requires a zero-sign property test for sums
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:45:44 -07:00
Claude (adr9-steward) bb578d71e3 docs(adr): ADR 009 values compare by float rules, NaN canonical
NaN payloads are not preserved: every NaN is one canonical value in the
delta and crosses as ADR 005's `nan` token, so ADR 009 no longer changes
ADR 005 clause 11. Zeros follow IEEE: -0.0 equals +0.0, and a zero sum
takes the sign IEEE gives the same addends. The round-trip property test
asserts a NaN comes back as the canonical NaN.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:44:30 -07:00
Claude (adr9-steward) a9ee6f00d0 docs(adr): ADR 009 states twin-loss recovery and the store as an integrate trace (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:38:43 -07:00
Claude (adr9-steward) d61f5d74e6 docs(adr): ADR 009 permits disposable server-side twins of client state at an edge (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:36:04 -07:00
Claude (adr9-steward) b26c92faf7 docs(adr): ADR 009 states the model and view stores as conceptual boxes, not a network boundary (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:35:01 -07:00
Claude (adr9-steward) 14430b5628 docs(adr): ADR 009 requires self-contained operators and leaves width-hint placement to scheduling (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:32:37 -07:00
Claude (adr9-steward) b8a0b6a846 docs(adr): ADR 009 keeps the window out of a pushed filter and names query pushdown sources (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:31:45 -07:00
Claude (adr9-steward) 81f1b5e13a docs(adr): ADR 009 settles incremental cycles, a temporary Eager, and per-column width hints (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:28:52 -07:00
Claude (adr9-steward) 6bf899c9ec docs(adr): ADR 009 makes per-client filtering an operator in the graph (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:26:21 -07:00
Claude (adr9-steward) 978bd4c8c9 docs(adr): ADR 009 makes the session token transport only and keys shapes by the parsed query (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:25:22 -07:00
Edward Langley 16f40314fd docs(context): act on the adversarial review of the repo-map split
- AGENTS.md: "Three files" is now "These files"; the table lists five.
- Digests 43 and 45 regain the traps the review found missing.
- protocol.md and formula-and-io.md cite file-inventory.md for the Wasm
  appendix and the inventory, which moved there.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 22:23:59 -07:00
Claude (adr9-steward) 63ee13289b docs(adr): ADR 009 makes an edge a session rather than a two-hop path, and its clock causal (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:22:19 -07:00
Claude (adr9-steward) e720f7ca50 docs(adr): ADR 009 makes the formula language the query language and states the incremental principle (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 22:11:37 -07:00
Edward Langley cc113c732f docs(context): answer the review of the repo-map split
- repo-stats reads the gotcha list from context/gotchas.md (the digest in
  repo-map.md no longer measures the doc-growth signal) and reports it as
  `docs.gotchas`; the test fixture and its derived expectations follow.
- AGENTS.md and the wave agent-rules protect gotchas.md and
  file-inventory.md like the repo map they were split from.
- doc-site.md's publication table lists the two new pages.
- file-inventory.md's Context docs rows describe the three files correctly.
- the code-review skill points at gotchas.md for the long form.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 21:42:24 -07:00
Claude (adr9-steward) 13b3dff35e docs(adr): ADR 009 reads only committed state and sends a whole window when a range moved positions (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:35:35 -07:00
Claude (adr9-steward) 5239d3b95a docs(adr): ADR 009 aligns with ADRs 005, 006, 007 and 008 after the cross-read (improvise-felo.4)
Folds use the natural CellKey order and Seq is gone; no view action
reorders the store; rollback joins the per-command snapshot; a notice
per committed command, with a view-definitions flag; the non-finite
wire change to ADR 005 is stated; the watermark is the whole stamp and
corrections are restricted to the window; deltas cross a hop only after
commit; the totals overlay is conditional on ADR 008; this ADR owns the
text-width rule.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:31:39 -07:00
Claude (adr9-steward) 7ea88606e2 docs(adr): ADR 009 names the client's position a watermark (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:29:21 -07:00
Claude (adr9-steward) 2bea189c67 docs(adr): ADR 009 states correction as the Z-set difference target minus held (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:28:49 -07:00
Claude (adr9-steward) 731a04ecd5 docs(adr): ADR 009 answers stale state with an engine correction operation (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:26:59 -07:00
Claude (adr9-steward) 353352f89d docs(adr): ADR 009 gives merged notices a covered range, one shared notice log, and a clock per process (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:23:49 -07:00
Claude (adr9-steward) 5e94255c21 docs(adr): ADR 009 requires a lossless edge wire form with round-trip tests (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:22:50 -07:00
Claude (adr9-steward) f3a54d34e0 docs(adr): ADR 009 makes every operator edge network-transparent, over up to two hops and request/response transports (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 21:18:55 -07:00
Claude (adr9-steward) ee09edee0e Merge commit 'b0ae354f53f87465a408ada68c216ed7beec7424' into adr9-rev-steward 2026-10-09 21:17:49 -07:00
Edward Langley f0119a437d docs(context): condense repo-map to a digest; move gotchas and inventory to their own pages
repo-map.md was 173 KB (~43k tokens), too long to be part of every new
agent's context. The full gotcha text moves verbatim to context/gotchas.md
and the per-file inventory (with the old Wasm/CLI/Testing sections) to
context/file-inventory.md; the map keeps a one-or-two-line digest per
gotcha under the same numbers, so every `gotcha N` citation still resolves.

The doc-site manifest publishes the two new pages, and `gotchas` gets the
same gotcha-N anchors as `repo-map`.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-09 21:13:55 -07:00
Ed Langley b0ae354f53 Merge pull request #337 from fiddlerwoaroof/adr005/numtower
feat(numtower): ADR 005 step 1, the numeric tower crate (improvise-59nw.1)
2026-10-09 20:47:05 -07:00
Ed Langley c57069a359 Merge pull request #336 from fiddlerwoaroof/adr007/display-2b
feat: displays in the grid frame, page bar, records labels, item rows and CSV (improvise-cq1q.12)
2026-10-09 20:42:45 -07:00
Claude (adr9-steward) 1a7d2fbf85 docs(adr): ADR 009 aligns its ADR 007 statements with the accepted amendment (improvise-felo.4)
CellKey's order is the natural id order, a store reorder reassigns Seq,
CellKey pairs are (CategoryId, ItemHandle), and display suffixes are
computed by the client.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 13:34:45 -07:00
Claude (adr9-steward) 491266f2e8 Merge commit '0bbf82690c788a9fa99425c4511a12cb8487f222' into adr9-rev-steward
# Conflicts:
#	scripts/build-doc-site.mjs
2026-10-09 13:34:45 -07:00
Ed Langley 0bbf82690c chore(merge): pull request #326 from fiddlerwoaroof/docs/adr007-rev9
docs(adr): ADR 007 revision 9, answers 30-32, text fixes and Q23 (improvise-cq1q.1)
2026-10-09 12:34:26 -07:00
Claude (adr007-steward) bc08a1e41e docs(adr): list every place natural order changes, and define digit-run value (improvise-cq1q.1)
Status rows for records-mode order and fold order, the writer's other
sorted lines, GP fit row order, and two internal fingerprints. A digit
run compares by length after stripping leading zeros, then by bytes.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 10:26:20 -07:00
Claude (adr007-steward) 12642e40b6 docs(adr): ids sort in natural order everywhere (improvise-cq1q.1)
Defines natural order, applies it to the display suffix, and adds a
Status row for the conflict with CellKey's String::cmp order: RecordHash
values change and saved data lines reorder; the loader canonicalises.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 10:06:59 -07:00
Claude (adr007-steward) cb73ad3d55 docs(adr): the _Measure section lists every stored measure (improvise-cq1q.1)
Formula measures stay declared by their ## Formulas lines.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 10:06:14 -07:00
Claude (adr007-steward) c10eca98e0 docs(adr): keep the _Measure section for stored measures, and mark ADR 007's amendment accepted (improvise-cq1q.1)
The Opus review of 46c8a967: a new-version file had nowhere to declare
its stored measures. The ## Category: _Measure section stays and lists
them with displays and ids; its header declares nothing. Clause 6 says
input text means files and command-language text, distinct from
interactive typing. The sort note says plain string order, not numeric.

The user approved the amendment on PR #326 (2026-10-09), so its Status,
the accepted ADR's pointer, core.md section 20 and the doc-site title
no longer say proposed.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 10:04:28 -07:00
Claude (adr007-steward) 46c8a967bc docs(adr): a display suffix skips a number a literal display already holds (improvise-cq1q.1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:52:14 -07:00
Claude (adr007-steward) 1df5f99e35 docs(adr): equal displays in a scope are shown with a gapless " #2" suffix in id order (improvise-cq1q.1)
Replaces the "one permitted exception" to display uniqueness for a
formula beside a stored measure of the same name: Profit and Profit #2.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:50:15 -07:00
Claude (adr9-steward) 5923f039f7 docs(adr): ADR 009 makes the client pruning recipe conditional and restores the dropped-connection test (improvise-felo.4)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:45:46 -07:00
Claude (adr007-steward) 38058ec73f docs(adr): move ADR 007's amendment to its own file, stating only what it changes (improvise-cq1q.1)
On the user's instruction an ADR states only what its decision changes,
and mentions an existing convention only where it conflicts. The accepted
ADR 007 is restored to main's text plus a one-line pointer, so merging
this PR keeps it; the amendment is context/adr/007-stable-identities-
amendment-1.md (280 lines, from 784), with a table of the accepted rules
it replaces. The doc site lists the new file, and core.md section 20
points at it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:43:16 -07:00
Claude (adr9-steward) e7d9ad0d2a docs(adr): ADR 009 states only what the decision changes (improvise-felo.4)
Following the user's instruction, restated conventions and current
behaviour are removed except where the decision conflicts with them, and
the open questions are cut to the five design choices still open.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:42:23 -07:00
Claude (adr007-steward) 98db007e71 docs(adr): interactive input matches a display or an id when the pick is unambiguous (improvise-cq1q.1)
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:41:00 -07:00
Claude (adr007-steward) c7f8d0a3cd docs(adr): delete ADR 007's remaining open questions (improvise-cq1q.1)
The duplicate measure display follows from the profit-<n> rule and is
stated as its consequence; where stored measures are listed is the
format's existing concern; interactive typing is UI behaviour, not
identity. The Open questions section now says None.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:40:36 -07:00
Claude (adr007-steward) 4778d9741b docs(adr): virtual categories and measures are defined by criteria, never declared (improvise-cq1q.1)
Their ids and displays are hardcoded; an old file's _Measure names are
recognised, not migrated as declarations. Open question 2 narrows to
where a new-version file declares the stored measures.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:39:23 -07:00
Claude (adr007-steward) 209270542c docs(adr): a formula never merges into a stored measure; it takes profit-<n> (improvise-cq1q.1)
Clause 1 states it, with what removal leaves. Open question 1 is
replaced by the residue: two measures then share a display, which
clause 2's uniqueness rule forbids.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01VdfEGXA7aJ6ftMsCc9PJze
2026-10-09 09:38:06 -07:00