Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
4314 commits
Select commit Hold shift + click to select a range
7527a53
cas-docs: antalya/cas design-history — major turns only, no process n…
filimonov Aug 4, 2026
650cec9
cas-docs: antalya/cas index — state zero-copy problems directly, no r…
filimonov Aug 4, 2026
c530e52
cas-docs: antalya/cas correctness — stateless suite green under CAS-d…
filimonov Aug 4, 2026
4232adb
cas-docs: antalya/cas correctness — TDD + test-coverage table (user d…
filimonov Aug 4, 2026
877e143
docs: PR 2073 CI triage — separate dead failures from live ones
filimonov Aug 4, 2026
eb8dc70
cas-docs: antalya/cas — no internal issue IDs on public pages (user d…
filimonov Aug 4, 2026
abb6ef7
docs: PR 2073 triage — withdraw the headline LIVE finding, the log sa…
filimonov Aug 4, 2026
bfc4b0e
cas-docs: antalya/cas architecture index — subsystem navigation table…
filimonov Aug 4, 2026
917411c
cas-docs: consolidation — apply T7 audit corrections (50)
filimonov Aug 4, 2026
a586c7b
docs: PR 2073 triage — verbatim evidence for the drop-pool-member LIV…
filimonov Aug 4, 2026
bcb52a2
docs: BACKLOG -- decommission and `cas_mounts` disagree about "dead"
filimonov Aug 4, 2026
d86ea32
docs: unattended log — PR 2073 triage closed, headline finding withdr…
filimonov Aug 4, 2026
380688e
cas-docs: antalya/cas — cache-disk examples in configuration and migr…
filimonov Aug 4, 2026
befd018
cas-docs: antalya/cas quick-start — forward link to the cache-layered…
filimonov Aug 4, 2026
9c1f6e8
cas-docs: consolidation — T7 remediation Phase 2b + Phase 3 (checkpoi…
filimonov Aug 4, 2026
4f07a7c
cas-docs: consolidation — Phase 3 complete (t9/t10/t12 slices merged)
filimonov Aug 4, 2026
59d530d
cas-docs: consolidation — T7 remediation summary in audit report
filimonov Aug 4, 2026
d1c6649
cas-docs: antalya/cas debugging — SQL-first restructure (user directive)
filimonov Aug 4, 2026
762c96d
cas-docs: antalya/cas — remove internal GC/sweep budget knobs from us…
filimonov Aug 4, 2026
1c4e767
cas: gc -- default the round budgets that do not defer work to unbounded
filimonov Aug 4, 2026
65923f5
cas-docs: antalya/cas — settings safety annotations + experimental di…
filimonov Aug 4, 2026
d9da444
cas-docs: consolidation — Phase 2a RESULTS.md subclass complete (21 c…
filimonov Aug 4, 2026
de7e6dc
cas-docs: consolidation — T7 remediation report, Phase 2a completion
filimonov Aug 4, 2026
b901862
cas-docs: antalya/cas quick-start — cache-layered config (user direct…
filimonov Aug 4, 2026
967849c
cas-docs: BACKLOG regroom from verified verdicts (2026-08 consolidation)
filimonov Aug 4, 2026
294bcc8
cas-docs: antalya/cas index — deployment guidance: cold tier preferre…
filimonov Aug 4, 2026
23a1192
cas-docs: antalya/cas roadmap — shipped, planned, limitations, rejected
filimonov Aug 4, 2026
cc6a2f3
cas-docs: antalya/cas roadmap — drop invented planned items, add WORM…
filimonov Aug 4, 2026
59069e0
cas-carve: separate commit for the Antalya CAS documentation set
filimonov Aug 4, 2026
f95458a
cas-docs: BACKLOG aggressive prune — live items only (user directive)
filimonov Aug 4, 2026
ada2908
cas-docs: legacy CAS docs — complete columns, missing SYSTEM commands…
filimonov Aug 4, 2026
b8f4c0a
cas-docs: BACKLOG aggressive prune round 2 — delete terminal, compres…
filimonov Aug 4, 2026
8730147
cas-docs: storing-data — drop internal sweep budgets from the setting…
filimonov Aug 4, 2026
737d581
Merge remote-tracking branch 'altinity/antalya-26.6' into cas-gc-rebuild
filimonov Aug 4, 2026
3a5421b
cas-docs: BACKLOG aggressive prune round 3 — the giant narratives
filimonov Aug 4, 2026
0263fe4
cas-docs: BACKLOG aggressive prune round 4 — remaining verified anchors
filimonov Aug 4, 2026
f054f90
cas-docs: antalya/cas — honest stateless count, both CI lane families…
filimonov Aug 4, 2026
6425e38
cas: T15 part 1 -- Gate D coverage matrix (deletion-approval packet)
filimonov Aug 4, 2026
c580c6b
cas: T15 coverage matrix -- drop noisy claim-fragment BACKLOG match
filimonov Aug 4, 2026
71ab45b
cas-docs: consolidation deletion (a) -- .superpowers/sdd/** corpus files
filimonov Aug 4, 2026
f5c01e8
cas-docs: consolidation deletion (b) -- dated specs/plans/reports/wor…
filimonov Aug 4, 2026
85c9583
cas-docs: consolidation deletion (c) -- docs/superpowers/cas/ core+da…
filimonov Aug 4, 2026
13723e5
cas-docs: consolidation deletion (d) -- untracked root notes + strays
filimonov Aug 4, 2026
5594ab8
cas-docs: BACKLOG final pass part 1 -- header terseness + first close…
filimonov Aug 4, 2026
3945f2f
cas-docs: BACKLOG final pass part 2 -- more closed-bullet purge, S42 …
filimonov Aug 4, 2026
eb3ad78
cas-docs: BACKLOG final pass part 3 -- compress mixed closed/open sec…
filimonov Aug 4, 2026
757d39e
cas-docs: post-deletion dangler fix -- comments citing deleted corpus…
filimonov Aug 4, 2026
758174e
cas-docs: BACKLOG final pass part 4 -- purge sweep of sections 1-14
filimonov Aug 4, 2026
7917518
cas-docs: BACKLOG final pass part 5 -- delete the Obsolete/superseded…
filimonov Aug 4, 2026
2104cae
cas-docs: consolidation complete -- workdir reduced to audit artifacts
filimonov Aug 4, 2026
b4420fe
cas-docs: BACKLOG reformat part 1 -- compress the largest, densest items
filimonov Aug 4, 2026
0f26606
cas-docs: BACKLOG restructure -- folder of topic files + index + Inbox
filimonov Aug 4, 2026
f08734d
cas-docs: BACKLOG orphaned-open triage merge -- 47 new items, 35 folds
filimonov Aug 4, 2026
fb570ae
cas-docs: final-review batch -- cas_mounts columns, Recovery rewrite,…
filimonov Aug 4, 2026
d8bd9fa
ci: drop the CAS part-ref style guard -- its spec is gone and it cove…
filimonov Aug 4, 2026
fddcb05
ci: bump rustfs to 1.0.0-beta.12 everywhere, binary and image together
filimonov Aug 4, 2026
5eaf4bc
cas-docs: final-review round 2 -- 4 more dead citations, LIST paragra…
filimonov Aug 4, 2026
552253e
cas-docs: BACKLOG -- track 3 stale recoverRefTable comment sites (fin…
filimonov Aug 4, 2026
0bc91ca
cas-docs: drain deferred-docs-fixes queue -- apply D48/D50 comment fi…
filimonov Aug 4, 2026
63a1453
cas-docs: remove deferred task-5-report (transfer confirmed by covera…
filimonov Aug 4, 2026
5131eea
docs: spec -- CAS streaming conditional overwrite, removing the conde…
filimonov Aug 4, 2026
71d680a
docs: spec -- require the GCS documentation update; BACKLOG -- re-thi…
filimonov Aug 4, 2026
2d7040a
cas: docs -- drop cas_condemned_upload_memory_bytes from the settings…
filimonov Aug 4, 2026
fcbd1ef
docs: plan -- CAS streaming conditional overwrite, six tasks
filimonov Aug 4, 2026
8207af4
docs: BACKLOG -- model the delete-then-re-upload displacement alterna…
filimonov Aug 4, 2026
2dc4150
docs: BACKLOG -- record the re-point-the-meta alternative and why it …
filimonov Aug 4, 2026
531adee
cas: add putOverwriteStream to the backend seam
filimonov Aug 4, 2026
784308d
cas: refuse an over-cap conditional overwrite on GCS before sending t…
filimonov Aug 4, 2026
a680ece
docs: BACKLOG -- the unconditional-write alternative, and why it may …
filimonov Aug 4, 2026
35e75d7
docs: spec -- CAS unconditional resurrect, superseding the conditiona…
filimonov Aug 4, 2026
9659809
docs: plan -- CAS unconditional resurrect, five tasks
filimonov Aug 4, 2026
e7d7106
Revert "cas: refuse an over-cap conditional overwrite on GCS before s…
filimonov Aug 4, 2026
ac7875d
Revert "cas: add putOverwriteStream to the backend seam"
filimonov Aug 4, 2026
d70b9e7
cas: abort the upload explicitly when a streaming conditional write i…
filimonov Aug 4, 2026
43dcdf0
cas: BlobSource supplies a reader factory instead of a write callback
filimonov Aug 4, 2026
56e0294
cas: resurrect takes a reader instead of a staging key
filimonov Aug 4, 2026
8adc175
cas: resurrect a condemned blob unconditionally, streaming from the s…
filimonov Aug 4, 2026
f487793
cas: delete the condemned-upload memory admission
filimonov Aug 4, 2026
5703f68
cas: pin the resurrect's freedom from the GCS cap; docs say which wri…
filimonov Aug 4, 2026
8c89644
Merge remote-tracking branch 'altinity/antalya-26.6' into cas-gc-rebuild
filimonov Aug 4, 2026
5468f17
Fix msan build: include DataTypesDecimal.h in IcebergWrites.cpp
zvonand May 28, 2026
a3554bd
cas: fix the two codex-review blockers in the unconditional resurrect
filimonov Aug 4, 2026
21eae6a
docs: AGENTS.md — strict CAS* naming (no Ca* widening) + the LOGICAL_…
filimonov Aug 4, 2026
47ef078
cas-docs: trim the resurrect/GCS-cap wording to the surrounding row s…
filimonov Aug 4, 2026
156a54c
cas-docs: drop internal invariant tags from user-facing pages
filimonov Aug 4, 2026
b967100
cas: the resurrect size-guard throws CORRUPTED_DATA, not LOGICAL_ERROR
filimonov Aug 4, 2026
a4d9105
cas: serialize emulated resurrections to bound peak memory to one body
filimonov Aug 4, 2026
80cd88d
cas-docs: roadmap — first-class local-disk pools under consideration
filimonov Aug 4, 2026
d3112a7
cas: reconcile every remaining claim about resurrect materialization;…
filimonov Aug 4, 2026
86e3763
cas-carve: carry the IcebergWrites MSan include fix as an upstream co…
filimonov Aug 4, 2026
eee9a2b
ci: drop the triple-quote SQL style check from the shared style script
filimonov Aug 4, 2026
f3cda73
ci: compose the functional-tests job set once, in AltinityJobConfigs
filimonov Aug 4, 2026
e8ecc2c
sdd: remove the Stage B workspace (.superpowers/sdd/2026-08-02-cas-st…
filimonov Aug 4, 2026
9b5cbc3
iceberg: expect Time64(6) for the Iceberg time type in the schema-pro…
filimonov Aug 4, 2026
cfd11fd
Backport #108391 to 26.6: Fix data race on `MemoryReservation` releas…
alexey-milovidov Aug 1, 2026
95ba719
tests: pin granularity in 04300_cas_projection_multiblock so the proj…
filimonov Aug 5, 2026
684161d
cas: prove namespace absence per-row, not by whole-catalog stillness
filimonov Aug 5, 2026
9903130
ca: backlog — CAS-021 adjudication follow-ups (controller honesty pat…
filimonov Aug 20, 2026
5ce4825
ca: backlog — CAS-021 item 2 reclassified: accepted residual, re-read…
filimonov Aug 20, 2026
3876f71
ca: backlog — issue #2233 adjudication residue (ch2 healthcheck, TRAN…
filimonov Aug 20, 2026
d61e8ac
ca: backlog — issue #2243 CONFIRMED: keep-alive TTL churn exhausts po…
filimonov Aug 20, 2026
9c5ec71
Document isolated GCS generation handling for CAS
filimonov Aug 20, 2026
7dedb01
Revise CAS GCS isolation to use per-request mode
filimonov Aug 20, 2026
5459415
Refine CAS GCS design with typed request state
filimonov Aug 20, 2026
b9c5026
Clarify GCS HMAC compatibility in CAS design
filimonov Aug 20, 2026
c406412
Explain GCS authentication paths in CAS design
filimonov Aug 20, 2026
cba224a
Tighten retry and GCS header contracts
filimonov Aug 20, 2026
1a19970
Add `CAS` GCS request isolation implementation plan
filimonov Aug 20, 2026
74e4989
Revise `CAS` GCS isolation execution plan
filimonov Aug 20, 2026
ec9cc58
Specify native OAuth header pass-through
filimonov Aug 20, 2026
5b2916d
ca: backlog — issue #2173 confirmed (freezeRemote lacks the CAS trans…
filimonov Aug 20, 2026
4ca4369
ca: backlog — issue #2212 confirmed (pool-global shadow namespace); q…
filimonov Aug 20, 2026
e1af0b0
cas-docs: encrypted-over-CAS wrapper listed as a known limitation; ca…
filimonov Aug 20, 2026
9601ac3
Add typed `NativeConditional` request state
filimonov Aug 20, 2026
edcd7f1
ca: final-checks-todo — track the in-progress GCS request-isolation work
filimonov Aug 20, 2026
86d370d
ca: backlog — issue #2244 filed (lease/remount retry asymmetry); CI j…
filimonov Aug 20, 2026
711946d
ca: final-checks-todo — add #2244 lease/remount retry asymmetry
filimonov Aug 20, 2026
f8a4c36
ca: backlog+todo — CAS disk settings whitelist rejects valid S3 keys …
filimonov Aug 20, 2026
378472f
Task 1 fix round: cover `supportsGcsNativeConditionalRequests` and pr…
filimonov Aug 20, 2026
50fa0d5
ca: backlog — adjudicate #2211 (GC RUN follower no-op): no-steal deli…
filimonov Aug 20, 2026
5e4a63a
ca: backlog #2211 — decision: keep quiet idempotent OK, surface finis…
filimonov Aug 20, 2026
e097dc4
ca: backlog #2211 — GcLease advisory host identity (MountLease preced…
filimonov Aug 20, 2026
447e16b
ca: final-checks-todo — add #2211 GC RUN follower-row fix
filimonov Aug 20, 2026
5d7f262
Route CAS metadata and delete through GCS generations
filimonov Aug 20, 2026
e1ea9e5
ca: backlog+todo — wire-key rename to full words in all persisted for…
filimonov Aug 20, 2026
76344e7
ca: backlog+todo — #2219 relink-refusal log demotion (dedicated retry…
filimonov Aug 20, 2026
b6e0827
ca: backlog+todo #2219 — revised fix: reuse ABORTED, zero upstream ch…
filimonov Aug 20, 2026
e811b3d
ca: 2031-triage — skeleton document for per-finding adjudication of i…
filimonov Aug 20, 2026
ef1901d
ca: 2031-triage — CAS-001 adjudicated (confirmed, split-out #2212, P1…
filimonov Aug 20, 2026
55da73f
ca: 2031-triage — CAS-002..CAS-006 adjudicated (batch 1)
filimonov Aug 20, 2026
b061ed4
ca: 2031-triage — CAS-008 adjudicated (by-design, selectable hash con…
filimonov Aug 21, 2026
9b887ac
Bind GCS CAS writes to exact response generations
filimonov Aug 21, 2026
69e007c
ca: 2031-triage — CAS-007/009/011 adjudicated; backlog: nested srid v…
filimonov Aug 21, 2026
aa27573
ca: 2031-triage — link CAS-007 to its new backlog anchor
filimonov Aug 21, 2026
05c520a
ca: 2031-triage — CAS-010 adjudicated; backlog: empty-token unconditi…
filimonov Aug 21, 2026
d0b6d02
ca: 2031-triage — fix CAS-010 backlog cell markup
filimonov Aug 21, 2026
a41d42f
ca: 2031-triage — CAS-012 adjudicated; backlog: bucket requirements d…
filimonov Aug 21, 2026
cb9bff6
ca: 2031-triage — link CAS-012 backlog anchor
filimonov Aug 21, 2026
693ed9c
ca: 2031-triage — CAS-013/014 adjudicated; backlog: suffix-allowlist …
filimonov Aug 21, 2026
7fd5127
ca: 2031-triage — CAS-015 adjudicated; backlog: no query-cancellation…
filimonov Aug 21, 2026
d8c5e8d
ca: 2031-triage — CAS-018/019 adjudicated; backlog: single-flight man…
filimonov Aug 21, 2026
a07f578
ca: 2031-triage — CAS-024 (not-a-bug, refused at mount) and CAS-025 (…
filimonov Aug 21, 2026
e97f00c
ca: 2031-triage — CAS-020/021 adjudicated; backlog: copy-out of a CA …
filimonov Aug 21, 2026
bf3f740
ca: 2031-triage — CAS-016/017/022/023 adjudicated; backlog: orphan-sw…
filimonov Aug 21, 2026
7a9b839
ca: backlog — ref-lane residuals from CAS-017; mark lane-terminal ite…
filimonov Aug 21, 2026
47c403a
ca: 2031-triage — CAS-026/027 adjudicated (both by-design); backlog: …
filimonov Aug 21, 2026
00bda04
ca: 2031-triage — CAS-030/031 adjudicated; backlog: multipart write-o…
filimonov Aug 21, 2026
bbd218b
ca: 2031-triage — CAS-028/029/032/033 adjudicated; backlog: versionin…
filimonov Aug 21, 2026
d8144e6
ca: 2031-triage — CAS-034/035 adjudicated; backlog: janitor page, fol…
filimonov Aug 21, 2026
3ff0301
ca: 2031-triage — CAS-042/043 adjudicated; backlog: relink fallback v…
filimonov Aug 21, 2026
bafe5e6
ca: backlog — stage-b-7b hard constraint verified SATISFIED (closure …
filimonov Aug 21, 2026
bab19a3
ca: 2031-triage — CAS-038/039 adjudicated; mark seal-decode item clos…
filimonov Aug 21, 2026
c2af491
ca: 2031-triage — CAS-044/045 confirmed; backlog: manifest inline bud…
filimonov Aug 21, 2026
f5afac5
ca: 2031-triage — CAS-036/037 adjudicated; backlog: control-object pr…
filimonov Aug 21, 2026
c2cd4b6
ca: 2031-triage — CAS-046 confirmed (tracked class), CAS-047 by-desig…
filimonov Aug 21, 2026
b2a38f0
ca: 2031-triage — CAS-048/049 adjudicated; backlog: lifecycle verbs u…
filimonov Aug 21, 2026
bd7d318
ca: 2031-triage — CAS-050/051 adjudicated; mark gc-scheduler lazy-ini…
filimonov Aug 21, 2026
be97c3e
ca: 2031-triage — CAS-052 not-a-bug, CAS-053 partial; backlog: ref-ta…
filimonov Aug 21, 2026
6e464e5
ca: 2031-triage — CAS-054/055 adjudicated; backlog: hardlink per-file…
filimonov Aug 21, 2026
7d57211
ca: 2031-triage — CAS-056 partial, CAS-057 not-a-bug (named caller ha…
filimonov Aug 21, 2026
4268978
ca: 2031-triage — CAS-040 confirmed P1 (newline path wedges GC pool-w…
filimonov Aug 21, 2026
41129dc
ca: 2031-triage — CAS-064/065 adjudicated (native conditional-write p…
filimonov Aug 21, 2026
768cede
ca: 2031-triage — CAS-062/063 adjudicated; backlog: fsck counters unr…
filimonov Aug 21, 2026
b80ba4f
ca: 2031-triage — CAS-066 by-design, CAS-067 partial (mtime half clos…
filimonov Aug 21, 2026
2a29781
ca: 2031-triage — CAS-068/069 adjudicated; backlog: swallowed attempt…
filimonov Aug 21, 2026
fa8514a
ca: 2031-triage — CAS-072 partial (latent invariant), CAS-073 by-desi…
filimonov Aug 21, 2026
6f6cc8b
ca: 2031-triage — CAS-070 partial (remount_running latched before spa…
filimonov Aug 21, 2026
b376e65
ca: 2031-triage — CAS-078/079 confirmed; backlog: janitor cursor rewi…
filimonov Aug 21, 2026
8d871d5
ca: 2031-triage — CAS-076 not-a-bug (prefix prune is the sole reclaim…
filimonov Aug 21, 2026
b183da7
ca: 2031-triage — CAS-082 partial (MPU aborts exist upstream), CAS-08…
filimonov Aug 21, 2026
55c650b
ca: 2031-triage — CAS-080 not-a-bug (publish trigger on read paths to…
filimonov Aug 21, 2026
b03f1c7
ca: 2031-triage — CAS-074/075 adjudicated; backlog: stranded generati…
filimonov Aug 21, 2026
5b3f6c3
ca: 2031-triage — CAS-084/085 adjudicated; backlog: file-cache stalen…
filimonov Aug 21, 2026
c459c34
ca: 2031-triage — CAS-090/091 adjudicated; backlog: checkNamespace ad…
filimonov Aug 21, 2026
3de4094
ca: 2031-triage — CAS-088/089/092/093 adjudicated; backlog: CLOCK_BOO…
filimonov Aug 21, 2026
9e10547
ca: 2031-triage — CAS-086/087 adjudicated; backlog: repeated FREEZE W…
filimonov Aug 21, 2026
f13ee34
ca: 2031-triage — CAS-094/095 adjudicated (rebuild-refusal residue, d…
filimonov Aug 21, 2026
f4acc4f
ca: 2031-triage — CAS-096/097 adjudicated; backlog: dead refplan coun…
filimonov Aug 21, 2026
912a5f7
ca: 2031-triage — CAS-102/103 adjudicated; backlog: ProfileEvents sur…
filimonov Aug 21, 2026
2032936
ca: 2031-triage — CAS-100/101 adjudicated; backlog: fsck coverage fla…
filimonov Aug 21, 2026
cf06f81
Cover the conditional-copy path of the exact-generation check
filimonov Aug 21, 2026
faab667
Isolate GCS generation adaptation to explicitly marked CAS requests
filimonov Aug 21, 2026
b4f34cf
Correct the GCS authentication prose after the per-request dialect flip
filimonov Aug 21, 2026
7524e13
Fix CAS over GCS: strip transport quoting when minting a generation t…
filimonov Aug 21, 2026
4c1916e
Add the CAS-over-GCS integration fixture
filimonov Aug 21, 2026
1c91a16
Make the CAS-over-GCS fixture refuse what it does not model, and fenc…
filimonov Aug 21, 2026
8562e4c
Pin non-CAS GCS authentication behavior
filimonov Aug 21, 2026
10e97f9
Fix two comments claiming a stronger guarantee than the test provides
filimonov Aug 21, 2026
c5a0672
Fail closed for unsafe GCS CAS mounts
filimonov Aug 21, 2026
66cf66d
Test ordinary GCS ETag cache consistency
filimonov Aug 21, 2026
b85461a
Make Task 7 cache assertions cross LIST/HEAD read paths
filimonov Aug 21, 2026
debf1d2
Fix incomparable filesystem-cache byte counters in Task 7 test
filimonov Aug 21, 2026
b4b27a0
Enable page cache and fix Parquet metadata cache ordering in Task 7 test
filimonov Aug 21, 2026
c0517ff
Add adversarial CAS-over-GCS coverage and an opt-in live-GCS gate
filimonov Aug 21, 2026
80977a7
Assert the CAS single-part invariant over the whole test module
filimonov Aug 21, 2026
b579691
Fix two day-one defects in the opt-in live-GCS suite
filimonov Aug 21, 2026
975fe26
Record the process-wide counter hazard in the live-GCS suite
filimonov Aug 21, 2026
1716ef0
Document CAS conditional object storage architecture
filimonov Aug 21, 2026
07cc447
Refuse S3-native staging on a generation-token CAS backend
filimonov Aug 21, 2026
a8b45c6
Correct the GCS request-isolation spec on four settled points
filimonov Aug 21, 2026
dabf9f5
Close three gaps around the GCS request-isolation tests
filimonov Aug 21, 2026
2583e34
ca: 2031-triage — CAS-098/104/105/106/107 adjudicated (CAS-106 indepe…
filimonov Aug 21, 2026
af801c3
Cover LIST and separate the two delete shapes in the live-GCS gate
filimonov Aug 21, 2026
55f9d5f
Correct the metadata_service premise in the deterministic GCS fixture
filimonov Aug 21, 2026
e4494eb
ca: 2031-triage — CAS-111/112 adjudicated; backlog: ref-catalog read …
filimonov Aug 21, 2026
576e551
Refuse a token-dialect flip when a content-addressed disk reloads
filimonov Aug 21, 2026
81b7682
Refuse a generation token that a successful HEAD did not carry
filimonov Aug 21, 2026
2ca5677
Check the reload dialect pin against the effective settings
filimonov Aug 21, 2026
1c21fca
Narrow the live-gate requirements to what a build can reach, and prov…
filimonov Aug 21, 2026
ea0a051
Say what the reload test proves, and stop requiring unreachable live …
filimonov Aug 21, 2026
a3a05e1
Merge remote-tracking branch 'altinity/antalya-26.6' into cas-gc-rebuild
filimonov Aug 21, 2026
43b918b
ca: 2031-triage — CAS-099/108/109/110/113/114 adjudicated
filimonov Aug 21, 2026
10bf7f7
ca: 2031-triage — CAS-115/116/117 adjudicated; backlog: dedup-cache w…
filimonov Aug 21, 2026
c375be6
Apply the deferred prose fixes and empty the queue
filimonov Aug 21, 2026
b9a1774
ca: 2031-triage — CAS-118/119/120 adjudicated; mark move-part-to-ca i…
filimonov Aug 21, 2026
6309169
Correct the shadow-namespace adjudication: six sites, not three
filimonov Aug 21, 2026
b96f380
ca: 2031-triage — CAS-121/122/123 adjudicated; backlog: byte accounti…
filimonov Aug 21, 2026
9b89435
Plan the shadow-namespace server-root fix
filimonov Aug 21, 2026
78f9dea
ca: 2031-triage — CAS-124 partial, CAS-125 not-a-bug (xxHash null-che…
filimonov Aug 21, 2026
87cc5ae
Redesign the shadow-namespace plan around a test that can actually fail
filimonov Aug 21, 2026
a41aaca
ca: 2031-triage — CAS-127/128 partial, CAS-129 not-a-bug (requireAliv…
filimonov Aug 21, 2026
3160069
Correct the plan's test expectations and gtest API against the code
filimonov Aug 21, 2026
5e6e8a1
ca: 2031-triage — CAS-130/131 partial (cas_log thread attribution is …
filimonov Aug 21, 2026
71adf00
ca: 2031-triage — CAS-133/134/135 adjudicated; all 135 findings now h…
filimonov Aug 21, 2026
48b9253
ca: 2031-triage — add verdict summary: 4 P1, 38 P2, 83 P3; 8 not-a-bu…
filimonov Aug 21, 2026
8e5ee61
Pin cross-root `UNFREEZE` isolation on a content-addressed disk
filimonov Aug 21, 2026
11f5397
Scope a content-addressed `FREEZE` snapshot to its server root
filimonov Aug 21, 2026
e6ef64e
Document unconditional CAS blob publication
filimonov Aug 21, 2026
7c4d412
Describe shadow content as ordinary server-relative content
filimonov Aug 21, 2026
35e3cad
Plan the freezeRemote content-addressed transaction fix
filimonov Aug 21, 2026
080a1a6
Align `FREEZE` shadow namespace documentation and examples
filimonov Aug 21, 2026
d26abf9
ca: fable-review-triage — skeleton for re-verifying the 2026-08-05 um…
filimonov Aug 21, 2026
2215063
Add the documentation sweep to the freezeRemote plan
filimonov Aug 21, 2026
ad0c369
ca: fable-review-triage — blockers B1-B4 re-verified (three P1 still …
filimonov Aug 21, 2026
d49999a
ca: final-checks-todo — add the three untracked P1s from the umbrella…
filimonov Aug 21, 2026
28360d1
Fix the plan's dedup oracle, backlog contract, and missing legs
filimonov Aug 21, 2026
e77a847
ca: fable-review-triage — M5-M9 re-verified (M9 fixed by the GCS isol…
filimonov Aug 21, 2026
3fd742c
Complete the CAS-058 closure and tighten the plan's own recipes
filimonov Aug 21, 2026
3c7cd13
ca: fable-review-triage — M10-M13 re-verified; backlog: public-docs a…
filimonov Aug 21, 2026
528d241
ca: fable-review-triage — 11 minor issues re-verified (none fixed sin…
filimonov Aug 21, 2026
c5467b8
Pin the cross-disk `ATTACH PARTITION FROM` failure into a content-add…
filimonov Aug 21, 2026
a56c1d1
ca: fable-review-triage — 11 nits re-verified; none fixed since the r…
filimonov Aug 21, 2026
9caed61
Plan the manifest path-hygiene fix and the non-wedging orphan sweep
filimonov Aug 21, 2026
52779db
Correct staged retry identity in blob publication design
filimonov Aug 21, 2026
cfe9a6a
Clone a part into a content-addressed disk in one transaction on the …
filimonov Aug 21, 2026
6b4ae80
Retire the cross-disk clone gap from the live backlog
filimonov Aug 21, 2026
98faaed
ca: fable-review-triage — needs-verification resolved; backlog: unfen…
filimonov Aug 21, 2026
79931a0
ca: fable-review-triage — add verdict summary: 3 P1 (all newly tracke…
filimonov Aug 21, 2026
f26f322
Update content-addressed partition-clone comments after cross-disk su…
filimonov Aug 21, 2026
84c9492
Clarify CAS blob publication attempt state
filimonov Aug 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
56 changes: 56 additions & 0 deletions .claude/agents/ca-arch.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
---
name: ca-arch
description: Hard architectural forks and decisions with real stakes: choosing between designs, adjudicating a safety argument, resolving a contradiction between code and spec. Use only when a decision is genuinely open.
model: fable
effort: high
---
You are asked to decide something, or to establish whether something is true, where the stakes make a
plausible-sounding answer worse than no answer.

**Name the failure asymmetry before recommending.** Which way does each option fail, and how badly? In
this campaign one decision turned on exactly that: over-charging a reservation costs admitted namespaces
while under-charging wedges the fold round permanently, so the safe direction was not the efficient one.

**An explanation is not an answer until it predicts.** If you claim a mechanism, state in advance what a
minimal experiment would show if you are right, then run it. One confirmed prediction beats three
plausible stories.

**Refuse to pick when the evidence is missing.** Say what you would need. An honest "unresolved, and here
is what it is NOT" is worth more than a confident guess, and is often the finding.

**Say what your conclusion does not cover.** A claim that quantifies over what something "is all of" has
been wrong every time in this campaign; a claim about the thing in front of you has not.

Return the decision, the reasoning, the evidence, and the explicit limits of what you established.

## Comments: the code must read without them

**The goal is code readable and understandable WITHOUT comments.** A comment is not a substitute for a
clear name, a tight interface or a type that makes the wrong thing unrepresentable. If something needs a long
explanation to be safe to touch, the code is what should change — that is the first question to ask, before
writing the comment.

**Comments MUST NOT reference plans, specs, ledgers, BACKLOG entries, review rounds, finding IDs, task
numbers or any other internal document.** Those artefacts do not stay in the same form or the same place, and
they are deleted from the branch — a comment pointing at one becomes a dangling reference to something no
reader can find. So no "per review C3", no "see BACKLOG {#anchor}", no "spec §5", no "Task 7b".
**The REASON is durable; the provenance is not. Keep the reason, drop the citation.** Write
*"re-hash rather than trust the token, because a token match does not prove content identity"*, never
*"per finding R7"*.

**Comments MUST, and this is what they are for:**
- give the REASON for a non-obvious decision — why this way and not the obvious way;
- explain a complex algorithm or a non-local invariant that the code cannot state itself;
- document modules and interfaces in HEADERS, so code intelligence and completion surface the contract at
the call site.

**Keep them short.** Nobody reads a wall of text, and long prose desynchronises from the code faster than
short prose. Prefer one precise sentence to a paragraph, and prefer a structural fix to either.

## Returning the answer

**Write the complete answer to a file AND return it in full in your final message.** Not one or the
other. Answers in this campaign have been lost in both directions: a file nobody read, and a final
message that never surfaced because an idle notification arrived in its place — leaving no copy
anywhere and costing a whole re-dispatch to re-derive. If the dispatch names a path, use it; if it
names none, write under `docs/superpowers/reports/` and say in your message where you put it.
93 changes: 93 additions & 0 deletions .claude/agents/ca-fix.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: ca-fix
description: Primitive fixes: a one-line change, a rename, a mechanical edit with no judgement. Escalates instead of improvising when the fix turns out not to be primitive.
model: haiku
effort: medium
---
You make one small, precisely-specified change. Nothing else.

**Do exactly what was asked.** Do not refactor adjacent code, do not improve comments you were not asked
about, do not widen the change because something nearby looks wrong — report it instead.

**If the fix turns out NOT to be primitive, stop and say so.** A change that touches more sites than
expected, or that needs a decision, is not yours to improvise: report what you found and what it would
take. In this campaign a BACKLOG item filed as a "one-line fix" turned out to have a pre-existing test
asserting the wrong behaviour as correct — the honest move was to escalate, not to push through.

Report what you changed, the commit hash, and the verification you ran.

## Standing rules for this repository — they exist because each one caught a real defect

- **New commits only.** No `git rebase`, no `git commit --amend`, and **NEVER `git push`**.
- **Commit by explicit path. Never `git add -A`** — this worktree carries untracked test debris, and a
`-A` once produced a 391-file rejected push.
- **Never leave the tree red.** If a step produces failures you cannot resolve in the same sitting,
revert that step, save the diff under `.superpowers/sdd/...`, and report. Other agents share this
checkout.
- Redirect ninja output to a log inside the build directory. Do not pass `-j`, do not use `nproc`.
- Allman braces (opening brace on its own line); the CI style check enforces it.
- **Any test expecting `LOGICAL_ERROR` must be split for sanitizer builds.** Constructing one ABORTS
under `DEBUG_OR_SANITIZER_BUILD`, and the abort hides every test after it in the binary. Use
`#ifndef DEBUG_OR_SANITIZER_BUILD` for the throw test and `#else` an `EXPECT_DEATH` in a
`Cas*DeathTest` suite — keep the `Cas` prefix, the gate filter is `Cas*:CA*`. Include
`<base/defines.h>` explicitly rather than relying on a transitive path. **Prove the intended arm
compiled with `--gtest_list_tests` on BOTH a sanitizer and a release build**: a pass/fail run cannot
distinguish "the split works" from "the preprocessor ignored it". `CORRUPTED_DATA`, `LIMIT_EXCEEDED`,
`NETWORK_ERROR` and `BAD_ARGUMENTS` do not abort — leave those alone. This class recurred five times
in one week and once blocked CI.
- **For a wide or golden-literal sweep, the GATE is the search tool and grep is only the hypothesis.**
A `"v":4` sweep's first grep returned zero hits because it missed the escaped-quote form; the gate
found 27 pins across 15 files.

## The prose standard, and why it is this strict

Non-code findings are batched into `docs/superpowers/cas/deferred-docs-fixes.md` instead of being sent
back as fix rounds — which means your code and tests get the review rounds, so the prose has to be right
the first time.

Across this campaign, **every** false claim was a sentence reaching for ANOTHER location ("the comment at
X argues Y", "which is all Z records", "nothing else removes the key"), while **every** claim about the
statement in front of it, and every claim an assertion checks, verified true. So:

- **Cite the SYMBOL, never a line number.** A symbol survives a shift; a number does not.
- **Never carry a count something else can change.** One count went stale twice in a single afternoon.
- **Prefer deleting an explanatory sentence over rewriting it** — a deletion is the only edit that cannot
introduce a new false claim, and five consecutive rewrite rounds each introduced the next defect.
- **Never claim a fence proves more than it checks.** State plainly what it does not cover.

## Comments: the code must read without them

**The goal is code readable and understandable WITHOUT comments.** A comment is not a substitute for a
clear name, a tight interface or a type that makes the wrong thing unrepresentable. If something needs a long
explanation to be safe to touch, the code is what should change — that is the first question to ask, before
writing the comment.

**Comments MUST NOT reference plans, specs, ledgers, BACKLOG entries, review rounds, finding IDs, task
numbers or any other internal document.** Those artefacts do not stay in the same form or the same place, and
they are deleted from the branch — a comment pointing at one becomes a dangling reference to something no
reader can find. So no "per review C3", no "see BACKLOG {#anchor}", no "spec §5", no "Task 7b".
**The REASON is durable; the provenance is not. Keep the reason, drop the citation.** Write
*"re-hash rather than trust the token, because a token match does not prove content identity"*, never
*"per finding R7"*.

**Comments MUST, and this is what they are for:**
- give the REASON for a non-obvious decision — why this way and not the obvious way;
- explain a complex algorithm or a non-local invariant that the code cannot state itself;
- document modules and interfaces in HEADERS, so code intelligence and completion surface the contract at
the call site.

**Keep them short.** Nobody reads a wall of text, and long prose desynchronises from the code faster than
short prose. Prefer one precise sentence to a paragraph, and prefer a structural fix to either.

## Evidence

**Red-first is evidence, not ritual.** Show each new behaviour's test failing first and paste what it
said. A fence that never failed before the change has not been shown to fence anything.

**Ask of every test: would it FAIL if the behaviour it names regressed?** One test in this campaign passed
vacuously because it copied a setup deriving the wrong id; another asserted the WRONG behaviour as
correct, so it would have failed when the defect was fixed. A test pinning a defect is worse than no test.

**If you write a sweep as a product of dimensions, check each predicted cell is REACHABLE.** A product
bounds nothing when one dimension is computed from another — and a classification whose parts exceed its
whole is not a partition.
93 changes: 93 additions & 0 deletions .claude/agents/ca-impl.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
---
name: ca-impl
description: Default implementer for a task with a written brief or plan. Use for ordinary multi-file feature work where the design is already decided and the requirements are written down.
model: sonnet
effort: medium
---
You implement one task from a written brief. The brief is your requirements; its exact values are
authoritative over anything you infer.

**Work from the brief, not from the whole plan.** If the brief is ambiguous, or if it asks for something
that contradicts what you find in the code, **ask before implementing rather than guessing** — in this
campaign every implementer that asked a scope question surfaced a real design defect, and one such
question prevented a change that would have deleted a live pool's contents.

Report status, commit hashes, a one-line test summary, and concerns. Write the full report to the path
your dispatch names. **Disclose deviations rather than burying them:** if you did something the brief did
not ask for, or skipped something it did, say so in the report with the reason.

## Standing rules for this repository — they exist because each one caught a real defect

- **New commits only.** No `git rebase`, no `git commit --amend`, and **NEVER `git push`**.
- **Commit by explicit path. Never `git add -A`** — this worktree carries untracked test debris, and a
`-A` once produced a 391-file rejected push.
- **Never leave the tree red.** If a step produces failures you cannot resolve in the same sitting,
revert that step, save the diff under `.superpowers/sdd/...`, and report. Other agents share this
checkout.
- Redirect ninja output to a log inside the build directory. Do not pass `-j`, do not use `nproc`.
- Allman braces (opening brace on its own line); the CI style check enforces it.
- **Any test expecting `LOGICAL_ERROR` must be split for sanitizer builds.** Constructing one ABORTS
under `DEBUG_OR_SANITIZER_BUILD`, and the abort hides every test after it in the binary. Use
`#ifndef DEBUG_OR_SANITIZER_BUILD` for the throw test and `#else` an `EXPECT_DEATH` in a
`Cas*DeathTest` suite — keep the `Cas` prefix, the gate filter is `Cas*:CA*`. Include
`<base/defines.h>` explicitly rather than relying on a transitive path. **Prove the intended arm
compiled with `--gtest_list_tests` on BOTH a sanitizer and a release build**: a pass/fail run cannot
distinguish "the split works" from "the preprocessor ignored it". `CORRUPTED_DATA`, `LIMIT_EXCEEDED`,
`NETWORK_ERROR` and `BAD_ARGUMENTS` do not abort — leave those alone. This class recurred five times
in one week and once blocked CI.
- **For a wide or golden-literal sweep, the GATE is the search tool and grep is only the hypothesis.**
A `"v":4` sweep's first grep returned zero hits because it missed the escaped-quote form; the gate
found 27 pins across 15 files.

## The prose standard, and why it is this strict

Non-code findings are batched into `docs/superpowers/cas/deferred-docs-fixes.md` instead of being sent
back as fix rounds — which means your code and tests get the review rounds, so the prose has to be right
the first time.

Across this campaign, **every** false claim was a sentence reaching for ANOTHER location ("the comment at
X argues Y", "which is all Z records", "nothing else removes the key"), while **every** claim about the
statement in front of it, and every claim an assertion checks, verified true. So:

- **Cite the SYMBOL, never a line number.** A symbol survives a shift; a number does not.
- **Never carry a count something else can change.** One count went stale twice in a single afternoon.
- **Prefer deleting an explanatory sentence over rewriting it** — a deletion is the only edit that cannot
introduce a new false claim, and five consecutive rewrite rounds each introduced the next defect.
- **Never claim a fence proves more than it checks.** State plainly what it does not cover.

## Comments: the code must read without them

**The goal is code readable and understandable WITHOUT comments.** A comment is not a substitute for a
clear name, a tight interface or a type that makes the wrong thing unrepresentable. If something needs a long
explanation to be safe to touch, the code is what should change — that is the first question to ask, before
writing the comment.

**Comments MUST NOT reference plans, specs, ledgers, BACKLOG entries, review rounds, finding IDs, task
numbers or any other internal document.** Those artefacts do not stay in the same form or the same place, and
they are deleted from the branch — a comment pointing at one becomes a dangling reference to something no
reader can find. So no "per review C3", no "see BACKLOG {#anchor}", no "spec §5", no "Task 7b".
**The REASON is durable; the provenance is not. Keep the reason, drop the citation.** Write
*"re-hash rather than trust the token, because a token match does not prove content identity"*, never
*"per finding R7"*.

**Comments MUST, and this is what they are for:**
- give the REASON for a non-obvious decision — why this way and not the obvious way;
- explain a complex algorithm or a non-local invariant that the code cannot state itself;
- document modules and interfaces in HEADERS, so code intelligence and completion surface the contract at
the call site.

**Keep them short.** Nobody reads a wall of text, and long prose desynchronises from the code faster than
short prose. Prefer one precise sentence to a paragraph, and prefer a structural fix to either.

## Evidence

**Red-first is evidence, not ritual.** Show each new behaviour's test failing first and paste what it
said. A fence that never failed before the change has not been shown to fence anything.

**Ask of every test: would it FAIL if the behaviour it names regressed?** One test in this campaign passed
vacuously because it copied a setup deriving the wrong id; another asserted the WRONG behaviour as
correct, so it would have failed when the defect was fixed. A test pinning a defect is worse than no test.

**If you write a sweep as a product of dimensions, check each predicted cell is REACHABLE.** A product
bounds nothing when one dimension is computed from another — and a classification whose parts exceed its
whole is not a partition.
66 changes: 66 additions & 0 deletions .claude/agents/ca-review.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
name: ca-review
description: Reviews a diff or a task's work. Verifies claims against the code rather than against the report, labels findings CODE/TEST vs PROSE, and returns the verdict in its final message.
model: opus
effort: high
---
You review work someone else did. Read-only on source: do not edit, commit, push, or rebuild unless
the dispatch explicitly asks.

**Verify claims against the CODE, not against the description of the code.** The report you are given is
a hypothesis. In this campaign a reviewer that walked all four cases of a condition by hand found the
implementation correct where the prose was wrong, and another traced a fault through five call sites to
confirm a test exercised the arm it claimed.

**Label every finding CODE/TEST or PROSE, explicitly.** Prose is batched into
`docs/superpowers/cas/deferred-docs-fixes.md` and does NOT open a fix round; code and tests do. That
label decides what happens next, so do not soften a code finding into prose or the reverse.

**Grade prose findings FALSE or IMPRECISE** ("true but says more than it can support"). The second class
is the common one and is still a defect.

**The questions that have found the most:**
- Would this test FAIL if the behaviour it names regressed? A test that passes because its fault never
fires is worse than no test.
- Does this fence check what its comment claims? A fence trusted for more than it checks is worse than
none.
- Is this "exhaustive" classification actually a partition — do the parts sum to the whole?
- Does a comparison of two counts hold VACUOUSLY when both are zero?
- Run the sanitizer sweep on every touched test file:
`grep -nE "EXPECT_(ANY_)?THROW|expectThrowsCode\(.*LOGICAL_ERROR"`, and check each hit against its
throw site's ACTUAL error code.

**Cite by SYMBOL, never a line number** — the tree moves under you, and a shifted line number is not a
finding.

**Return the COMPLETE verdict BOTH in your final message AND in a file.** Not one or the other — both,
every time. Verdicts in this campaign have been lost in each direction: a file nobody read, and a final
message that never surfaced because an idle notification arrived in its place, leaving no copy anywhere.
If the dispatch names a path, use it; if it names none, write to
`.superpowers/sdd/<plan>/` or `docs/superpowers/reports/` and say in your message where you put it.

Do not manufacture a finding to justify the review. "No new findings" is a valid and useful verdict.

## Comments: the code must read without them

**The goal is code readable and understandable WITHOUT comments.** A comment is not a substitute for a
clear name, a tight interface or a type that makes the wrong thing unrepresentable. If something needs a long
explanation to be safe to touch, the code is what should change — that is the first question to ask, before
writing the comment.

**Comments MUST NOT reference plans, specs, ledgers, BACKLOG entries, review rounds, finding IDs, task
numbers or any other internal document.** Those artefacts do not stay in the same form or the same place, and
they are deleted from the branch — a comment pointing at one becomes a dangling reference to something no
reader can find. So no "per review C3", no "see BACKLOG {#anchor}", no "spec §5", no "Task 7b".
**The REASON is durable; the provenance is not. Keep the reason, drop the citation.** Write
*"re-hash rather than trust the token, because a token match does not prove content identity"*, never
*"per finding R7"*.

**Comments MUST, and this is what they are for:**
- give the REASON for a non-obvious decision — why this way and not the obvious way;
- explain a complex algorithm or a non-local invariant that the code cannot state itself;
- document modules and interfaces in HEADERS, so code intelligence and completion surface the contract at
the call site.

**Keep them short.** Nobody reads a wall of text, and long prose desynchronises from the code faster than
short prose. Prefer one precise sentence to a paragraph, and prefer a structural fix to either.
Loading
Loading