Skip to content

Merge everything into main (staging) - #45

Merged
RyanLin5967 merged 369 commits into
mainfrom
main-all
Oct 8, 2026
Merged

RyanLin5967 merged 369 commits into
mainfrom
main-all

Conversation

@RyanLin5967

Copy link
Copy Markdown
Owner

main-all: staging merge of every landable branch into main

This PR merges into main every branch on the list that git could merge cleanly. Each branch was merged one at a time, oldest work first, using only git object commands (merge-tree --write-tree and commit-tree). No checkout was used, and no conflict was resolved.

  • Base: origin/main 6bd2d690c4
  • main-all: 38f5df1759
  • main-all descends from origin/main through first parents (verified with git merge-base --is-ancestor), so main can fast-forward to it.
  • New to main: 46 merge commits, 369 commits in total; git diff --shortstat: 300 files changed, +61720/-810.
outcome count
merged 46
already contained 1
conflicted, skipped 53
excluded by classification (mutant, quarantine or superseded) 236

Read before landing: these hazards came in with the clean merges

Nobody has built main-all. A clean merge-tree only means git found no textual conflict. It does not mean the code compiles or the suite passes. No build was run on the Mac, by standing order, so this PR's CI run is the first build and the first test run.

  • depth-probe (tip 658af3f): the commit subject reads DELIBERATELY FAILING - do not merge. It adds tests/depth_probe.rs, which its body says "FAILS ON PURPOSE", and tests/depth_cost.rs.
  • D89-falsify (tip 3c2a132): the commit subject reads THROWAWAY, do not merge. It adds examples/d89_falsify.rs and examples/d89_falsify2.rs, plus raw output.
  • r11-dist.noindex: commit 85d4401 is titled MEASUREMENT ONLY (never lands). It adds pub static R11_ACCEPT_POLL to src/consensus/transport.rs, a switch that is off by default and, when on, restores the pre-F1 accept path (F1 mutant M1). It also adds a transport event trace and a role log to node.rs and transport.rs. r11-dist is still a live lane.
  • d138-measure-ship (tip 680f1ac): the commit body says Quarantined instrumentation; never lands. It adds a scan_count module to src/tel/log.rs. The classification chose this branch over d138-measure-new and d138-measure-old.
  • Red tests whose fixes did not merge: delete-insert-lookup (tip: "red test for a rolled-back INSERT's orphaned primary-index entry (UNBUILT, not run)"), whose fix branch rollback-index-orphan conflicted; and S18-mcts-topology ("the reclamation rule loses a grandchild on interior prune").
  • WIP-snapshot tips (both add only raw logs, no code): d207-transport-port 863d755 adds bench/d207/raw/RUN_log.txt, and d225-byte-split 422be66 adds bench/d225/red_a5.txt.
  • Many of the merged commits are labelled UNBUILT.

Merged (in order)

I15-review-probe 6332354b43 -> b989cea33f
I19-atk2-LENS 594638806b -> 7d5373bf95
I19-atk2-guard 8cf4cf9867 -> 44b854c8cd
I19-atk2-types ec2e0d9141 -> b12e2d316d
I19-atk4-LENS 7cc25ffcab -> 823384b7da
I19-atk4-durability 625aad314e -> 40f84d513c
F4-adversarial 0e534f964d -> d2acc5cb3b
F7-atk-forge f618973971 -> 5edb8e0b88
adv-vs-7bdfe77 0ddfea63e4 -> 1897f0a6f5
S18-mcts-topology d2e62d5da7 -> 9ee240e26e
depth-probe 658af3f38f -> 215d01586c
reads-limit-probe 8601876bf4 -> 8a0b51f44b
s18-storage-limits de156ca882 -> f4e2a17fc5
D61-write-curve ada9357da2 -> f352c48dad
d85-repro dc75771936 -> 57239138e3
D102-delta-write-path a35c76caa7 -> 39f00cf6a2
D115-artifacts 5ca301a8c3 -> fffeb3b37f
D89-falsify 3c2a1329a6 -> d4ab2e56f7
E6-outer-lock-count 3dea186e67 -> 7a2db9c063
review-cow-adv 5c37ffbeec -> aa8139ae80
CEILING-artifacts b5f97c2128 -> 8c7546616d
agent-acf966798a3979f57 0b15be08db -> adffcd07a6
d133-pending-len 7fd481cdd7 -> d206b7f6e9
d138-load-figure-fix 11247caced -> 5ed56fdcac
d138-measure-ship 680f1accd4 -> b0e94b25e7
d166-reap-depth-curve 3cc71be0fa -> 8c63c18dfd
w4-rescope-comments fd164e36c5 -> 7b59ff36ea
d170-adversary 2b50182d29 -> 96188984ec
d174-locality f70f3abfc0 -> b25cef03b6
d178-dml-index e9b2d48e8f -> 4b468f6d65
d184-followup-test-quality d62b4e7525 -> cddc015cec
d191-diff-applied 1950362210 -> e9f89468f3
d192-attest-size 58a458c05b -> b8cf944a39
wall17-diff-scan fcec288ffc -> 5fd4979c0b
d16-chain-arm c64e3b502c -> dda424100f
d207-transport-port 863d755327 -> 9252792664
d224-f1-accept.noindex e347342e22 -> 5838287a4e
d225-byte-split 422be66324 -> b0776926af
d231-build-stamp 0d56eeab35 -> f54a81b793
d235-rebuild-keeps-d16-pins cf7085b146 -> bea8e98e19
d244-publish-root 34c9f413dd -> 3d97ff32ec
d255-join-conjuncts f337998114 -> 5fada0076f
d270-catalog-persist-allocate-first da8e10cdc0 -> 40c9ff14c1
d280-orphan-wal f3c790092d -> 9a069b05cd
delete-insert-lookup 52b66d6b55 -> b6596bd266
r11-dist.noindex 4dbf846d2a -> 38f5df1759

Already contained in main

CEILING-artifacts-wt b5f97c2128

Conflicted and skipped (paths as reported by merge-tree)

38 of these conflict with origin/main itself. 20 of them carry the rollback-index-orphan (#16) stack, whose first commit is 74cff64 (delete-insert-lookup's failing-first tests). Those same 20, and only those, conflict in src/wal/recovery.rs. The stack's own base, delete-insert-lookup, merged cleanly, so main-all carries its red tests without the fix.

demo-transcript	DEMO.md examples/agent_isolation_demo.rs 
I15-probe-verify	cdc-consumer/sink.go src/agent_sql/runtime.rs src/replication/jsonl.rs src/wal/log.rs tests/integration_alter_column.rs 
F0b-log	scratchpad/f0b-mutants.py src/consensus/log.rs 
F3-transport	src/consensus/tests_transport.rs src/consensus/transport.rs 
F4-clusterstate	scratchpad/f4_mutants.py 
F5-membership	bench/evidence/mutants_f5.py 
F8-sim	PROGRESS.md 
f8rev-determinism	src/consensus/sim.rs 
f8rev-refnode	src/consensus/sim.rs 
S14-lazy-durability	src/branch/mod.rs src/branch/table_catalog.rs 
S15-runtime-at-1e6	examples/runtime_curve.rs 
D115-frame-clone	src/agent_sql/runtime.rs src/tel/log.rs 
D89-chunker	src/cow/chunker.rs 
D91-diff-skip	src/cow/diff.rs 
D129-effect-log-scan-count	src/tel/log.rs 
d173-adversary-2	tests/integration_cluster_agents.rs 
d176-merge-rowcount	examples/d176_merge_rowcount.rs src/execution/index_scan.rs src/planner/plan.rs 
d194-fork-snapshot	src/execution/index_scan.rs src/execution/sec_index_scan.rs 
d209-open-sweep-once	src/wal/recovery.rs 
d221-steady-sweep	src/wal/recovery.rs 
d232-arena-claim-order	src/wal/recovery.rs 
d263-free-after-durable-r4	src/wal/recovery.rs 
read-vs-n	src/wal/recovery.rs 
d208-root-cell-per-index-on-ed6e901	src/wal/recovery.rs 
d212-history-store	src/wal/recovery.rs 
d216-clean-restart	src/wal/log.rs src/wal/recovery.rs 
d225-on-16-preview-r7	src/wal/recovery.rs 
d229-crash-safe-frees	src/wal/log.rs src/wal/recovery.rs 
d230-on-rollback-index-orphan	src/wal/recovery.rs 
d239-on-16	src/wal/recovery.rs 
d250-drop-logged	src/wal/recovery.rs 
d252-caught-up-pin	src/wal/log.rs src/wal/recovery.rs 
d253-on-16	src/wal/recovery.rs 
d256-heap-page-validate	src/wal/recovery.rs 
d261-relocation-space	src/wal/recovery.rs 
d271-index-unattached	src/wal/recovery.rs 
d276-oversized-transaction	src/wal/log.rs src/wal/recovery.rs 
rollback-index-orphan	src/wal/recovery.rs 

15 merge cleanly into origin/main by themselves but conflict with branches merged earlier in main-all. Each line lists the earlier merged branches that touch the same path. These are candidates for the conflict, not a proven cause.

F7-atk-key: src/consensus/signing.rs<-[F7-atk-forge]
d148-durable-phase: src/tel/log.rs<-[d138-measure-ship,d207-transport-port,d224-f1-accept.noindex,r11-dist.noindex]
d183-drain-elide: src/branch/arena.rs<-[d133-pending-len]
d183-tail-replay: src/branch/arena.rs<-[d133-pending-len]
d219-provenance-sync: src/agent_sql/runtime.rs<-[d170-adversary,d191-diff-applied,d192-attest-size,d225-byte-split,d270-catalog-persist-allocate-first,wall17-diff-scan]
d233-free-at-empty: src/storage/index.rs<-[d225-byte-split]
d237-pin-leak: src/storage/index.rs<-[d225-byte-split]
d257-insert-bound: src/storage/index.rs<-[d225-byte-split]
d258-stage-atomic: src/agent_sql/runtime.rs<-[d170-adversary,d191-diff-applied,d192-attest-size,d225-byte-split,d270-catalog-persist-allocate-first,wall17-diff-scan]
d260-d262-new-page: src/storage/index.rs<-[d225-byte-split]
d268-power-loss-redo: src/cli/cli.rs<-[d244-publish-root,d280-orphan-wal] src/wal/recovery.rs<-[d225-byte-split,delete-insert-lookup]
lease-grace: src/branch/table_catalog.rs<-[d166-reap-depth-curve,d225-byte-split,d235-rebuild-keeps-d16-pins,d244-publish-root]
wall18-revert-rescan: src/agent_sql/runtime.rs<-[d170-adversary,d191-diff-applied,d192-attest-size,d225-byte-split,d270-catalog-persist-allocate-first,wall17-diff-scan] tests/integration_capability_envelope.rs<-[wall17-diff-scan]
wall19-attested-history: src/agent_sql/runtime.rs<-[d170-adversary,d191-diff-applied,d192-attest-size,d225-byte-split,d270-catalog-persist-allocate-first,wall17-diff-scan] src/branch/attest.rs<-[d192-attest-size]
wall21-reaped-subtree: src/branch/reaper.rs<-[d133-pending-len,w4-rescope-comments] src/branch/table_catalog.rs<-[d166-reap-depth-curve,d225-byte-split,d235-rebuild-keeps-d16-pins,d244-publish-root]

Excluded by classification (not merged)

CEILING-QUARANTINE-uncommitted  [QUARANTINE]
CEILING-adv  [QUARANTINE]
CEILING-park-or-structure  [QUARANTINE]
CEILING-resume  [MUTANT]
D100-cherryfix  [QUARANTINE]
D123-serial-attribution  [MUTANT]
D32-write-curve  [SUPERSEDED by main]
D35-gate-stubtouch  [MUTANT]
D55-pushdown  [SUPERSEDED by main]
D89-cid-after-chunker  [QUARANTINE]
D92-merge3  [SUPERSEDED by main]
D92-merge3-fix-quarantined  [QUARANTINE]
D93-delta-encoding  [QUARANTINE]
D94-dedup-prerebase  [SUPERSEDED by main]
D96-chunk-gc  [QUARANTINE]
D99-before-probe  [SUPERSEDED by main]
F7-skeptic-repro  [MUTANT]
I15-b11-alter-probe  [SUPERSEDED by main]
I15-refute-1191  [QUARANTINE]
I15-refute-count  [SUPERSEDED by main]
I15-refute-envelope-needle  [MUTANT]
I15-refute-funnel  [MUTANT]
I15-refute-hole3  [QUARANTINE]
I15-refute-msg-direction  [MUTANT]
I15-refute-plainconn  [QUARANTINE]
I15-refute-probe-conflation  [SUPERSEDED by I15-probe-verify]
I15-refute-retype  [QUARANTINE]
I15-refute-select-probe  [QUARANTINE]
I19-atk2-durability  [QUARANTINE]
I19-atk2-paths  [QUARANTINE]
I19-atk3-durability  [QUARANTINE]
I19-atk3-paths  [QUARANTINE]
I19-atk4-paths  [SUPERSEDED by main]
I20-adversarial  [QUARANTINE]
I20-fix-a1a2  [QUARANTINE]
I21-adv-f4-refusal  [SUPERSEDED by main]
I21-adv-f6-dropped-capture  [SUPERSEDED by main]
I21-adv-readrefusal  [SUPERSEDED by main]
I21-adv-writepath-deps  [SUPERSEDED by main]
S18-reclamation-probe  [QUARANTINE]
S19-depth-wall  [SUPERSEDED by main]
S19-trialmerge  [SUPERSEDED by main]
W4-root-cell-durable  [SUPERSEDED by main]
W4-standdown-count  [QUARANTINE]
agent-a3242b062ca90442e  [QUARANTINE]
b7-atk-cursor  [QUARANTINE]
b7-atk-egress  [QUARANTINE]
b7-atk-head  [QUARANTINE]
d138-measure-new  [SUPERSEDED by d138-measure-ship]
d138-measure-old  [SUPERSEDED by d138-measure-ship]
d148-quiet  [SUPERSEDED by d148-durable-phase]
d151-e6-measure  [SUPERSEDED by E6-outer-lock-count]
d151-e6-measure2  [SUPERSEDED by E6-outer-lock-count]
d173-adversary  [QUARANTINE]
d178-firecheck  [MUTANT]
d180-fixture-behind  [MUTANT]
d181-before-control  [MUTANT]
d183-pop-wip  [SUPERSEDED by main]
d183-reap-delta  [SUPERSEDED by d183-tail-replay]
d183-reap-delta-reverify  [SUPERSEDED by d183-tail-replay]
d183-reap-rewrite-counter  [SUPERSEDED by d183-tail-replay]
d208-root-cell-per-index  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-00f4c39  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-1aef92b  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-2c10f17  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-368d0e1  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-56f6752  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-71efc3b  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-7cede54  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d208-root-cell-per-index-on-8d492bf  [SUPERSEDED by d208-root-cell-per-index-on-ed6e901]
d209-mut-stamp-before  [MUTANT]
d209-mut-stamp-future  [MUTANT]
d212-revert-durable  [SUPERSEDED by d212-history-store]
d216-clean-restart-red  [MUTANT]
d221-mut-chase-top  [MUTANT]
d221-mut-full-scan  [MUTANT]
d221-mut-index-skips-replay  [MUTANT]
d221-mut-late-arm  [MUTANT]
d221-mut-no-giveback  [MUTANT]
d221-mut-no-inflight-skip  [MUTANT]
d221-mut-no-report  [MUTANT]
d222-fixture-within-walk  [MUTANT]
d222-fixture-within-walk-unguarded  [MUTANT]
d222-mut-both-before  [MUTANT]
d222-mut-ft-before  [MUTANT]
d222-mut-sec-before  [MUTANT]
d224-idle-failover  [SUPERSEDED by d224-f1-accept.noindex]
d225-on-16-preview  [SUPERSEDED by d225-on-16-preview-r7]
d230-mut-cli-exit-checkpoint-only  [MUTANT]
d230-mut-cli-exits-inline  [MUTANT]
d230-mut-delete-success-only  [MUTANT]
d230-mut-exit-checkpoint-before-persist  [MUTANT]
d230-mut-exit-no-flush  [MUTANT]
d230-mut-exit-no-repersist  [MUTANT]
d230-mut-exit-truncates-anyway  [MUTANT]
d230-mut-fulltext-sync-first-error  [MUTANT]
d230-mut-insert-success-only  [MUTANT]
d230-mut-readback-through-pool  [MUTANT]
d230-mut-sync-first-error  [MUTANT]
d230-mut-update-success-only  [MUTANT]
d230-red-at-base  [MUTANT]
d230-root-sync-on-exit  [SUPERSEDED by d230-on-rollback-index-orphan]
d230r-mut-checkpoint-ignores-debt  [MUTANT]
d230r-mut-drop-while-owed  [MUTANT]
d230r-mut-open-does-not-attach  [MUTANT]
d230r-mut-persist-keeps-pin-on-error  [MUTANT]
d230r-mut-persist-never-clears  [MUTANT]
d230r-mut-persist-never-owes  [MUTANT]
d230r-mut-undo-no-repersist  [MUTANT]
d230r-red-before-f2  [MUTANT]
d232-mut-absent-refused-at-open  [MUTANT]
d232-mut-append-keeps-image  [MUTANT]
d232-mut-catalog-first  [MUTANT]
d232-mut-drain-no-owner-check  [MUTANT]
d232-mut-drain-releases-into-gone  [MUTANT]
d232-mut-giveback-after  [MUTANT]
d232-mut-image-reserved-from-counter  [MUTANT]
d232-mut-install-writes-before-hold  [MUTANT]
d232-mut-load-reserved-from-field  [MUTANT]
d232-mut-no-owner-check  [MUTANT]
d232-mut-no-report  [MUTANT]
d232-mut-no-takeback  [MUTANT]
d232-mut-probe-counts-any-page  [MUTANT]
d232-mut-probe-stops-anywhere  [MUTANT]
d232-mut-publish-unpersisted  [MUTANT]
d232-mut-refusal-memory-only  [MUTANT]
d232-mut-reserve-after-persist  [MUTANT]
d232-mut-reserve-no-undo  [MUTANT]
d232-mut-rewrite-drops-flag  [MUTANT]
d232-mut-rewrite-keeps-image-zero  [MUTANT]
d232-mut-unreadable-is-gone  [MUTANT]
d239-floor-before-recovery  [SUPERSEDED by d239-on-16]
d239-in-open-recovered  [SUPERSEDED by d239-on-16]
d239-mut-cli-reserve-after-rebuild  [MUTANT]
d239-mut-helper-ignores-corrupt  [MUTANT]
d239-mut-helper-reserves-nothing  [MUTANT]
d239-mut-no-cli-reserve  [MUTANT]
d239-mut-no-pgserver-reserve  [MUTANT]
d239-mut2-cli-reserve-after-rebuild  [MUTANT]
d239-mut2-helper-ignores-corrupt  [MUTANT]
d239-mut2-helper-reserves-nothing  [MUTANT]
d239-mut2-no-cli-reserve  [MUTANT]
d239-mut2-no-pgserver-reserve  [MUTANT]
d239-mut2-no-table-dump-reserve  [MUTANT]
d239-mut3-cli-reserve-after-rebuild  [MUTANT]
d239-mut3-helper-high-water  [MUTANT]
d239-mut3-helper-ignores-corrupt  [MUTANT]
d239-mut3-helper-reserves-nothing  [MUTANT]
d239-mut3-no-cli-reserve  [MUTANT]
d239-mut3-no-pgserver-reserve  [MUTANT]
d239-mut3-no-table-dump-reserve  [MUTANT]
d239-mut4-cli-reserve-after-rebuild  [MUTANT]
d239-mut4-helper-high-water  [MUTANT]
d239-mut4-helper-ignores-corrupt  [MUTANT]
d239-mut4-helper-reserves-nothing  [MUTANT]
d239-mut4-no-cli-reserve  [MUTANT]
d239-mut4-no-crash-mid-merge-reserve  [MUTANT]
d239-mut4-no-pgserver-reserve  [MUTANT]
d239-mut4-no-table-dump-reserve  [MUTANT]
d239-on16-mut-no-reserve  [MUTANT]
d239-on16-mut-reserve-after-rebuild  [MUTANT]
d239-on16-mut-reserve-after-recover  [MUTANT]
d239-red-repaired  [SUPERSEDED by d239-floor-before-recovery]
d239-red-repaired2  [SUPERSEDED by d239-floor-before-recovery]
d239od-mut-no-reserve  [MUTANT]
d239od-mut-reserve-after-rebuild  [MUTANT]
d239od-mut-reserve-after-recover  [MUTANT]
d239od2-mut-no-reserve  [MUTANT]
d239od2-mut-reserve-after-rebuild  [MUTANT]
d239od2-mut-reserve-after-recover  [MUTANT]
d239od3-mut-no-reserve  [MUTANT]
d239od3-mut-reserve-after-rebuild  [MUTANT]
d239od3-mut-reserve-after-recover  [MUTANT]
d244-mut-cli-exits-inline  [MUTANT]
d244-mut-durable-skips-publish  [MUTANT]
d244-mut-exit-publish-not-synced  [MUTANT]
d244-mut-exit-skips-branch-publish  [MUTANT]
d244-mut-pgserver-skips-publish  [MUTANT]
d244-mut-publish-on-success-only  [MUTANT]
d244-mut-swap-before-write  [MUTANT]
d244-red-at-base  [SUPERSEDED by d244-publish-root]
d246-pgserver-provenance  [QUARANTINE]
d249-alter-encodable  [SUPERSEDED by d270-catalog-persist-allocate-first]
d252-caught-up-pin-red  [SUPERSEDED by d252-caught-up-pin]
d253-truncate-fence  [SUPERSEDED by d253-on-16]
d254-catalog-persist-bound  [SUPERSEDED by d270-catalog-persist-allocate-first]
d255-red-a2  [SUPERSEDED by d255-join-conjuncts]
d255-red-a4  [SUPERSEDED by d255-join-conjuncts]
d263-free-after-durable  [SUPERSEDED by d263-free-after-durable-r4]
d263-mut-fold-survives-failure  [MUTANT]
d263-mut-never-folds  [MUTANT]
d263-mut-no-quarantine  [MUTANT]
d263-r4-mut-fold-survives-failure  [MUTANT]
d263-r4-mut-never-folds  [MUTANT]
d263-r4-mut-no-quarantine  [MUTANT]
d263-rv1-mut-armed-checkpoint-no-fold  [MUTANT]
d263-rv1-mut-gives-back-on-failure  [MUTANT]
d263-rv1-mut-image-omits-held  [MUTANT]
d263-rv1-mut-never-gives-back  [MUTANT]
d263-rv1-mut-no-epoch-retain  [MUTANT]
d263-rv1-mut-no-load-clear  [MUTANT]
d263-rv1-mut-no-quarantine  [MUTANT]
d271-a1-mut-attach-outside-unit  [MUTANT]
d271-a1-mut-free-after-failed-persist  [MUTANT]
d271-a1-mut-refusal-keeps-tree  [MUTANT]
d271-a1-red-at-base  [MUTANT]
d271-mut-attach-outside-unit  [MUTANT]
d271-mut-create-keeps-tree-on-attach-failure  [MUTANT]
d271-mut-refusal-keeps-tree  [MUTANT]
d271-red-at-base  [MUTANT]
d276-oversized-transaction-red  [SUPERSEDED by d276-oversized-transaction]
d65-reopen-curve  [SUPERSEDED by read-vs-n]
demo-ten-criteria  [QUARANTINE]
quarantine-I21-adv-writepath-deps  [QUARANTINE]
quarantine/E79c-1956Z-dead-pass  [QUARANTINE]
quarantine/E79c-dead-pass-2026-09-02  [QUARANTINE]
quarantine/E79c-partial-20260903  [QUARANTINE]
quarantine/S20-firecheck-uncommitted-2026-09-19  [QUARANTINE]
quarantine/S20-lockorder-foreign  [QUARANTINE]
quarantine/W4-worktree-collision-unreviewed  [QUARANTINE]
quarantine/d5-core-newtype-uncommitted-2026-09-19  [QUARANTINE]
review-chunker-attack  [QUARANTINE]
s5-intern-arm  [QUARANTINE]
s5-intern-arm-QUARANTINE-20260923  [QUARANTINE]
s5-intern-arm-QUARANTINE-v2-20260923  [QUARANTINE]
skeptic-f7-dirperm  [QUARANTINE]
trial-demo-transcript  [SUPERSEDED by main]
w4-check3-rederive  [QUARANTINE]
wf_55040bb0-1e7-1  [SUPERSEDED by d208-root-cell-per-index]
wf_7e899897-0f5-2  [QUARANTINE]
wf_7e899897-0f5-3  [QUARANTINE]
wf_e78d06ad-550-1  [SUPERSEDED by main]
wf_e78d06ad-550-2  [SUPERSEDED by main]
wf_e78d06ad-550-3  [SUPERSEDED by main]
wip-20260928/ferrodb-d179-adversary  [QUARANTINE]
wip-20260928/ferrodb-d271.noindex  [QUARANTINE]

Branches on origin that neither list names

  • agent-isolation: already an ancestor of main.
  • D35-C1-pagetable, D60-depth-probe, D81-baseline, trial-demo-merge, w4-statement-fork-lock: each one's merge-tree with origin/main gives exactly main's tree (2aacf74), so their content is already on main. They were not merged.
  • demo-e2e: git cherry marks its only commit - (patch-equivalent on main). Merging it conflicts in src/agent_sql/dispatch.rs, runtime.rs, binder.rs, parser.rs and scanner.rs. Not merged.
  • All 228 local-only branches are ancestors of origin/main.

…and exact mutant values

Corrects A2.4 (G0 proves a dirty tree, not which mutant), A2.5 (G4b's real
reason) and M9's scope as a negative control. Registers exact counts for
M1/M2/M3/M8/M9, a G7 check after the sweep-2 probe, and the script's restore
by bytes, pinned HEAD, whole-tree cleanliness, source-decided slot state,
baseline equality, pinned env and warning-free M5. Nothing compiled or run.
…act values and baseline identity

Per PREREG amendment 3 (77b6369). Harness: G7 also after the sweep-2 probe.
firecheck.py: writes back the bytes it read (no git index lock) with SIGTERM
and SIGHUP ignored meanwhile; pins HEAD and checks every verdict's sha;
refuses any modified tracked file; decides the slot state from D200's marker
symbol in src/; checks A3.2's exact values for M1/M2/M3/M8/M9; requires the
two baselines' measured/slots/verdict lines to be identical; pins
D16_PERSIST=1 and records RUSTFLAGS; saves build logs; exits 3 on a signal.
M5 is warning-free. Nothing compiled or run.
…ocale-decoded text

The sources hold non-ASCII; a text round trip depends on the locale's
encoding and newline translation, either of which could leave a restored
file differing from HEAD. Nothing compiled or run.
…t proposal, and the disk stores the largest entry a frame carries

- a_membership_the_wire_cannot_carry_is_refused_at_proposal_and_never_reaches_the_log: 1025
  learners; today on_propose appends it.
- a_wal_batch_one_byte_over_a_frame_is_refused_at_proposal_and_one_at_the_limit_is_admitted:
  boundary pinned as literals (budget 8,388,531, WalBatch overhead 29); today the over case is
  appended.
- the_largest_entry_one_frame_can_carry_is_storable_and_reads_back (tests_log): today the disk
  refuses it (MAX_ENTRY_BYTES sits ~4 KiB below the wire).

Compile against 5a86ad8. Additions only; never compiled or run.
…, the disk-limit decision, counted send refusals, corrections (21 -> 13 bytes; M27 was killable), mutants M28-M34, before the fix
…est Q's stale 'count and nothing else' comment

As registered in PREREG amendment 8 (7f6d6c5), re-review R4 and R5. Test E gains one premise
assertion; test Q changes only its comment. Never compiled or run.
…k accepts all a frame carries; count every refused send

- transport::admit_entry: encode_entry's own refusals (a configuration over MAX_CONFIG_NODES, a
  name over u16) and append_entries_budget; on_propose runs it before append_own_entry and refuses
  with Action::Refuse, so neither the in-memory tail nor the disk sees an entry the wire cannot
  carry. append_own_entry's doc names who admits for it.
- log::MAX_ENTRY_BYTES = MAX_FRAME_BYTES (was - 4096): a disk frame is at most its wire entry + 8,
  so the disk now stores everything any frame can carry. Its check stays as the log's write/read
  pairing (MAX_FRAME), a condition strictly looser than admission, so neither masks the other.
- Transport::send counts unencodable and unaddressable refusals (refused_after_stop already was),
  so node.rs's 'counted by the transport' is true; comments there, in send's doc and the module
  header say which meter.
- replicate::slice_from's doc corrects the false 'never binds on an entry the log admitted'.

Never compiled or run.
… entry no frame carries is still offered alone (T5)

T4 needs the new accessors, so its red evidence is mutants M32/M33. T5 seeds around admission on
purpose and kills M27, whose earlier 'survives by design' reason was false (PREREG amendment 8).
Additions only; never compiled or run.
…rded, 29 mutants re-cut (M28-M34 added), commands per module, before any run
…s true

From lane D73's observations (report section 9), verified by reading:
- the module header said every way a message can be lost has a counter. Frames already handed to
  the kernel are untracked (TCP gives no receipt): a dying connection loses its buffers uncounted,
  including the first frame written after the peer's idle close. So do receive-side closes on an
  unknown tag, an undecodable or truncated frame. The header now says which losses are counted and
  which cannot be.
- idle_deadline said closing costs only a reconnect. Followers send each other nothing while a
  leader holds, so their connections to each other are idle-closed, and a failover's first two
  campaign frames between survivors are lost (one uncounted, one lost_in_flight).
- Counters: 'drops and refusals are counted' narrowed to those this transport decides on.

Docs only; never compiled.
…ified (O-2 is D207, fixed; O-1 verified by reading; loss docs narrowed), mutants re-cut from 749d399
…could never fire; restore semantics

Logs that A3.4's identity check was implied by per-baseline registration and
its claim false; the check is removed. Registers blocking (not ignoring)
signals during restore, an atomic restore that preserves a foreign edit as
evidence, and exit-code precedence. Nothing compiled or run.
…, keeps foreign edits, drops a check that could not fire

Per PREREG amendment 4 (d7823b1). Restore writes a sibling temp file and
os.replace()s it, with SIGTERM/SIGHUP blocked (delivered after, not lost);
a file changed by another writer mid-run is saved as evidence before HEAD's
bytes go back, and the run stops. Terminated is a BaseException so no
except-Exception can mislabel a signal; SIGINT exits 3; an interrupt verifies
the last mutated file against HEAD. Refuses a failed D200 git grep and
unknown VALUES keys; re-checks tree and HEAD before the final baseline. The
baseline-identity comparison is removed: it was implied, so it could never
fire. Nothing compiled or run.
…link arrives on the first attempt

The link carries one frame, stays silent until the receiver idle-closes it (observed through
idle_closed and live_inbound_conns), then one frame is sent. Today it is written into the closed
connection and lost uncounted. Compiles against 1b8d290; additions only; never compiled or run.
…deadline/2 with its bounds, counters and mutants N1-N5, before the fix
…re writing, and redial if the peer closed it

- sender_loop: before the first write after a gap of idle_probe_gap (idle_deadline / 2), a
  non-blocking peek for the peer's EOF (peer_has_closed). If the link is closed, it redials first
  and carries the frame to the new connection, so nothing is lost. Busy links never reach the gate.
- idle_probe_gap documents both bounds: above the longest gap on a busy link (a heartbeat, 150 ms at
  the defaults, so the gate is 200 heartbeats away) and at most idle_deadline, under the stated
  premise of symmetric idle_deadline. It also names the residual race near the peer's close.
- counters idle_probes and idle_redials, with accessors and Debug.
- the idle close's comment no longer claims silence proves a peer is gone; D223's docs on the idle
  close's cost are updated.

Never compiled or run.
…ol), an idle-closed link is probed once and redialled

Both read the new counters, so their red evidence is the mutants N1-N5. Additions only; never
compiled or run.
…rded, mutants N1-N5 cut and apply-checked, collateral, errata
…mic apply, one verified exit path

Nothing compiled or run.
…e verified exit path

Per PREREG amendment 5 (0fe4f75). The first SIGTERM/SIGHUP/SIGINT ignores
the rest and unwinds; apply and restore both run with those signals held;
HEAD's own bytes are not a foreign edit; the file is verified against HEAD
before any claim that it was restored; finish() is the one exit path and
lets a tree not at HEAD override every other outcome. Nothing compiled or
run.
…nt lists for arms A, P and M, one 'outcomes K=' line per K after the table (PREREG amendment 1, observation only; no existing line changed)
… makes an older build refuse the log (F2); the unsigned maximum is delivered and stored (F6)

- a_frame_over_the_pre_d223_read_bound_makes_an_older_build_refuse_the_log: red at 1b8d290 (the
  header stays version 1, which a pre-D223 build accepts and then trims the frame).
- a_log_of_ordinary_frames_stays_readable_by_an_older_build: the control, green at 1b8d290.
- a_checkpoint_keeps_the_mark_while_a_large_frame_survives: red at 1b8d290.
- no_crash_can_leave_a_large_frame_under_a_header_an_older_build_accepts: a fault sweep over the
  first large append, both durability models; red at 1b8d290 on its unfaulted run.
- the_largest_entry_an_unsigned_frame_carries_is_delivered_and_stored (F6): green at 1b8d290; its
  red is the surviving mutant MAX_ENTRY_BYTES = MAX_FRAME_BYTES - 69.

All read the header bytes, not the log, for the version. Additions only; never compiled or run.
…sion plan and the rolling-upgrade statement, F3-F6 plans, mutants M35-M40, before the fixes
…ad bound is format version 2, which an older build refuses

- VERSION 2 and LEGACY_VERSION 1; the header carries its version and decode accepts both. A new
  log starts at 1, so a log that never held a large frame can still be downgraded.
- Before the first frame over LEGACY_READ_BOUND (8,384,576, the pre-D223 MAX_FRAME, a literal)
  is written, the log switches to version 2 through the same two-file switch a checkpoint uses,
  so no crash can leave that frame under a header an older build accepts. Checkpoints keep the
  version they find.
- The switch is extracted from discard_prefix unchanged into RoundLog::switch, one copy of the
  ordering, with the caller named in its errors.
- MAX_FRAME is now format version 2's literal read bound (8,388,672), with compile-time asserts
  that MAX_ENTRY_BYTES + 64 fits it and that the legacy bound sits below it.

A pre-D223 build's Header::decode refuses version 2 with Corrupt at open, where it used to trim a
large frame and every round after it. Never compiled or run.
… running node; node.rs's loss comment narrowed

- transport::TransportCounters, a read-only copy of every meter (Transport::counters), exposed as
  Node::transport_counters. A copy rather than &Transport, whose send and shutdown take &self.
  Debug now also prints refused_after_stop.
- node.rs perform: the comment no longer claims every lost queued frame is counted. It names what
  is counted and what is not (TCP losses after a successful write, frames queued at shutdown, a
  push that races a shutdown).

Never compiled or run.
…adable from a running node

A node whose configuration names peers it holds no address for campaigns once; its refused
pre-votes must show as unaddressable through Node::transport_counters. Needs the new accessor, so
its red evidence is mutant M40. Additions only; never compiled or run.
…er derived from the consensus disk bound

MAX_APPEND_BYTES becomes MAX_FRAME_BYTES - 4096 directly: the value it had. Its reason (a TEL delta
larger than one consensus entry could never be shipped) needs a bound at or below what one entry
in one Append carries, and consensus::log::MAX_ENTRY_BYTES is now the whole frame, which is above
that. TEL behaviour is unchanged; the compile-time assert against MAX_RECORD still holds. Never
compiled or run.
…MAX_SIDECAR_BYTES derivation, membership's 'appends every command')

Comments only; never compiled.
… not only NotLeader

Comment only; never compiled.
@RyanLin5967
RyanLin5967 merged commit 38f5df1 into main Oct 8, 2026
0 of 3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant