Repository navigation
Conversation
Proposes removing xorq cache nodes from builds: snapshots at compute_cache/result_cache/<content_hash>.parquet written by one tallyman-side writer, bare-read chaining through worthy parents, ensure_materialized as the single entry point that makes files exist, and a one-node view build for Buckaroo. Supersedes ADR-006 D4 and D8. scripts/spike_bare_read_chaining.py is the pre-check the ADR cites: a bare-read child's hash depends on the snapshot's path string only, the child is classified cheap, and nothing is written under XORQ_CACHE_DIR. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This was referenced Sep 18, 2026
The diff compare post (app.py:1237) is a second handoff besides load_session. Its expression is composed from cached_result_expr, so it is covered at post time; the eviction rule now includes diff sessions. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
D6 claimed Buckaroo never executes a Join on tallyman's behalf. That is true for entry grids only: _build_compare_expr posts the outer-join compare expression itself. Scope the claim and add the gap as an open question. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…), and defined terms From the grilling session. - Governing rule (Paddy): Buckaroo is a displayer that runs queries only for summary stats, sorting and paging; tallyman runs an entry's computation or a diff to completion before asking it to show anything. - Question 1 resolved under D5: the self-repairing build that ADR-006 decision D4 bought had one user, Buckaroo's replay, which the rule forbids, so nothing is given up. - D6 rewritten as the rule applied to entry grids; a cheap entry is handed as a view, pending confirmation (open question 4). - D10: every diff takes the promote path and is built before it is displayed; an unnamed diff is an ephemeral entry under compute_cache/, because the checkpoint commits every directory under entries/. - manifest.parents is shown incomplete: a promoted diff records no parent edges, which supports reading required snapshots from the build. - Adds a Terms section; every other ADR's decision label now carries its ADR number and what it decides. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Paddy: tallyman runs the query and materializes the parquet if necessary when the entry is created, and does not call Buckaroo to display an entry until that has finished. So a cheap entry's grid is handed the entry's own build as a view, and nothing is written when an entry is viewed. Closes open question 4. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…efore speed Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Contributor
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Draft ADR for discussion. Adds
plans/ADR-007-tallyman-owned-materialization.mdand the spike it cites,scripts/spike_bare_read_chaining.py. No behaviour change.The proposal removes xorq's cache from tallyman's data path.
rewrite_for_buildstops calling.cache()(the only place insrc/that creates a result cache node), and the things that call gave us for free get tallyman-owned replacements:CachedNode)manifest.snapshot_keyand asserted on readcompute_cache/result_cache/<content_hash>.parquet, a function of the hash (D2)ParquetStorageas a side effect ofcount().execute()materialize()used by the build and every heal, unique temp name,os.replace, per-hashflock(D4)ensure_materialized(), driven by the snapshot paths the build itself reads (D5)Revised 2026-09-20 in the grilling session. Three additions:
compute_cache/, because the checkpoint commits every directory underentries/. Promote becomes "put an alias on it".The ADR now has a Terms section, and every other ADR's decision label is written with its ADR number and what it decides.
Supersedes ADR-006 D4 and D8 if accepted. ADR-006 rejected bare-read chaining because "the pre-heal choreography stays load-bearing forever"; D5 answers that directly and states what is given up. The existing ADRs are not edited here. Their status lines change when this one is accepted.
Spike results (
uv run python scripts/spike_bare_read_chaining.py): the child's hash is unchanged when the snapshot's bytes change and changes when its path does; a child cannot be built while the parent's snapshot is absent; a filter plus a computed column over an aggregate's snapshot is classified cheap where the inlined design classifies it worthy; nothing is written underXORQ_CACHE_DIR.One of three ADR PRs from the 2026-09-18 cache audit. ADR-008 (row order of reads, #181) and ADR-009 (digest stability, #182) are separate PRs, so the references to them here do not resolve until those merge. The documents are independent. The implementation is not: the hash-changing parts of all three share one corpus rebuild (D9).
Checked locally:
ruff checkandruff format --checkon the script, the script runs from a clean temp dir, and every path and line reference in the ADR resolves on a tree with all three ADRs present. Docs-only, so CI was not watched.🤖 Generated with Claude Code