Repository navigation
board: storage portability — Quack owns query semantics, the cycle seal owns durable commit, storage supplies capabilities - #1330
Conversation
… durable commit, storage supplies capabilities Architecture-only follow-up to #1328. Records the read boundary (a backend binds once before execution and never approximates Quack semantics), the write boundary (Rubicon amortizes transient folds into one durable sparse commit; 64k parallelism and Kanban are never storage requirements), NodeGuid × Version vs backend physical history, the existing seams that already bind before execution (quack::lower, mask-risc validate, Activation::resolve_for_context), and non-binding backend mappings for Lance/MOCA, RocksDB, Iceberg, DuckDB and S3. Flags an open conflict: the proposed durable field-granular merge-on-read write is not what contract::alpha implements (row-granular claims, unclaimed = None never base, discardable). Not renamed or resolved here. No code, no trait, no backend. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
|
Navigate logical layers of code changes, visualize relationships, and explore their blast radius. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configuration
📒 Files selected for processing (2)
Included review availability: This review used your included allowance. 1 included review remains after this review. Your included PR review attempts over the past 7 days set your current allowance at 2 reviews per hour. 📝 WalkthroughWalkthroughThe pull request adds an architecture and source-audit document about Quack’s query contract, current cycle-based persistence path, and possible backend mappings. It also adds the document to the board entries index. No storage implementation changes are included. ChangesQuack Storage Portability
Priority: ⬇️ Low Estimated code review effort: 2 (Simple) | ~10 minutes Change: Other Suggested reviewers: Merge Risk: ⚪ Minimal · up to This change adds and indexes an architecture document, with no reported storage implementation changes or actionable merge-blocking risk. 🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
A rabbit reads the query lanes, Comment |
Bugbot couldn't run - usage limit reachedBugbot is counted against Cursor usage for this user or team, and this run hit a usage or spend limit. A user or team admin can review and increase usage limits in the Cursor dashboard. (requestId: bb99c574-48cf-4ac1-8832-826eb9d371f9) |
…nchanged, durable boundary is the cycle seal Alpha is authoritative and not redefined: a discardable transient overlay of whole-row attention claims (stamp only, no payload, no field data). Rubicon in code is the Planning -> CognitiveWork phase crossing, not the durable write; the amortizing write boundary is persist_sink's cycle seal (one WAL write per cycle) behind the existing WalSink seam, implemented by LanceCycleWriter, at row granularity. Field-level dirtiness is tracked nowhere; SparseDelta is architecture vocabulary only, derivable at DetachedCycleBatch::freeze by comparing final images against base_version. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
…tion and the cycle seal Rubicon commits intent, revision judges the result, the cycle seal commits state. Records advance_on_revision's routing (accepted -> Commit; eligible without counterfactual or NoIncrease -> Plan -> Planning; Suspend holds), that revision.rs and advance_on_revision have no production caller, and that today's seal is driven by artifact casts with Kanban moves applied post-seal, so it is not gated on revision acceptance. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
This is an architecture-only follow-up to #1328, which had already merged and so could not be amended. One board entry; no code, no trait, no backend. Alpha, Rubicon and
revision.rsare unchanged and not redefined.Rubicon commits intent. Revision judges the result. The cycle seal commits state.
Storage portability
Queryis independent of physical storage. Storage format is replaceable; query semantics are not.persist_sink's cycle seal: many casts → one WAL write → oneDatasetVersion. Rubicon, in current code, is the pre-execution Planning → CognitiveWork crossing, and revision is the post-action judgment. Neither is the write.(cycle, batch_hash)is today's semantic generation andDatasetVersionis physical history; they are deliberately distinct. A futureNodeGuid × Versionlineage extends this and never aliases backend snapshot, file or sequence ids.quack/tests/duckdb_differential.rs).Source audit
revision.rsis pure policy.GadamerRevision::reviseproduces aRevisionDelta.RevisionVerdict::is_acceptable()holds only forIncreaseEligiblewith counterfactualNecessary.KanbanColumn::advance_on_revision: accepted →Commit; eligible-but-unattacked orNoIncrease→Plan;Suspend→ hold. Revision never prunes.Evaluation → Commit, ride along inSweepSlot::paired_moveand are applied after the seal.Commitcolumn's "calcify" step is itself declared, not implemented.SweepSlot.row, with one final image per dirty row per cycle. The only attribute-level change model isdir-sim's in-memoryOverlay/Change::SetAttribute.quack::lower, mask-riscvalidate,Activation::resolve_for_context;WalSink, implemented byLanceCycleWriter.DetachedCycleBatch::freeze→WalSink::commit_cycle. Changed coordinates are derivable there by comparing each row's final image againstCycleFrame.base_version. That comparison does not exist today.Not here
No RocksDB, Iceberg, DuckDB or S3 backend, no
Storagetrait or capability enum, and noSparseDeltatype. Alpha, Rubicon,revision.rs, the split-tunnel writer and the cycle writer are unchanged. Revision does not persist, and the seal does not evaluate. No performance claim.🤖 Generated with Claude Code
https://claude.ai/code/session_01G22yT6htkcdyXsihxxXdrg
Summary by CodeRabbit