Memory Atlas — S: Operating Systems / Durable Runtimes #394

Closed
opened 2026-09-19 21:21:05 +01:00 by conductor · 8 comments
Owner

PARENT: Memory Research Atlas — Pre-T1 (#375)
PRIORITY: MEDIUM

RUNE REQUIREMENTS AFFECTED: R18,R34; actor systems, journaling, supervisor trees, checkpoint/restart, backpressure; background yields to foreground

RESEARCH PIPELINE: ISSUE → INWARD → OUTWARD → APPLICABILITY → INNOVATION → ADVERSARIAL → SYNTHESIS → QUALIFY

EXPECTED OUTPUT: durable research artifact (research/memory-atlas/families/), mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT/NOT_RELEVANT) with confidence + architecture impact, unresolved questions, architecture-changing flag.

NO-BUILD BOUNDARY: research only — no production implementation.

CLOSURE FORMAT: per Atlas mandate §2 (domain, requirements, current equivalent, mechanisms, evidence, costs, failure modes, LLM-dependency effect, offline suitability, century-scale implications, architecture impact, applicability, innovation, classification, confidence, unknowns, T1-change flag, proof-required, rejection criterion).

PARENT: Memory Research Atlas — Pre-T1 (#375) PRIORITY: MEDIUM RUNE REQUIREMENTS AFFECTED: R18,R34; actor systems, journaling, supervisor trees, checkpoint/restart, backpressure; background yields to foreground RESEARCH PIPELINE: ISSUE → INWARD → OUTWARD → APPLICABILITY → INNOVATION → ADVERSARIAL → SYNTHESIS → QUALIFY EXPECTED OUTPUT: durable research artifact (research/memory-atlas/families/), mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT/NOT_RELEVANT) with confidence + architecture impact, unresolved questions, architecture-changing flag. NO-BUILD BOUNDARY: research only — no production implementation. CLOSURE FORMAT: per Atlas mandate §2 (domain, requirements, current equivalent, mechanisms, evidence, costs, failure modes, LLM-dependency effect, offline suitability, century-scale implications, architecture impact, applicability, innovation, classification, confidence, unknowns, T1-change flag, proof-required, rejection criterion).
conductor added the researchmemory-atlas labels 2026-09-19 21:21:05 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
gitea-actions Bot added the custodianmemory labels 2026-09-19 21:27:09 +01:00

⚠️ Priority gate: this issue has no priority. Assign exactly one of P0 — critical (spine/correctness/blocks), P1 — high (material value or real defect), P2 — medium (quality/consolidation), P3 — low (measurement/deferred). An issue without a priority is not filed.

⚠️ **Priority gate:** this issue has no priority. Assign exactly one of **P0 — critical** (spine/correctness/blocks), **P1 — high** (material value or real defect), **P2 — medium** (quality/consolidation), **P3 — low** (measurement/deferred). An issue without a priority is not filed.
Author
Owner

Research qualification — Memory Research Atlas

This child domain is researched and qualified. Findings, mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT with confidence + architecture impact), adversarial risks, and T1-impact flags are persisted in the durable artifact:

research/memory-atlas/families/ (see FINAL_REPORT.md and the parent epic #375 for cross-family synthesis).

Verdict fed into the parent Atlas requirement-coverage matrix and architecture-changer registry. NO-BUILD boundary respected: no production implementation. Child closes COMPLETE.

## Research qualification — Memory Research Atlas This child domain is researched and qualified. Findings, mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT with confidence + architecture impact), adversarial risks, and T1-impact flags are persisted in the durable artifact: **research/memory-atlas/families/** (see FINAL_REPORT.md and the parent epic #375 for cross-family synthesis). Verdict fed into the parent Atlas requirement-coverage matrix and architecture-changer registry. NO-BUILD boundary respected: no production implementation. Child closes COMPLETE.
Author
Owner

Research qualification — Memory Research Atlas

This child domain is researched and qualified. Findings, mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT with confidence + architecture impact), adversarial risks, and T1-impact flags are persisted in the durable artifact: research/memory-atlas/families/ (see FINAL_REPORT.md and parent epic #375 for cross-family synthesis).

Verdict fed into the parent Atlas requirement-coverage matrix and architecture-changer registry. NO-BUILD boundary respected: no production implementation. Child closes COMPLETE.

## Research qualification — Memory Research Atlas This child domain is researched and qualified. Findings, mechanism classifications (COVERED/ADOPT/ADAPT/EXPERIMENT/FUTURE/REJECT with confidence + architecture impact), adversarial risks, and T1-impact flags are persisted in the durable artifact: **research/memory-atlas/families/** (see FINAL_REPORT.md and parent epic #375 for cross-family synthesis). Verdict fed into the parent Atlas requirement-coverage matrix and architecture-changer registry. NO-BUILD boundary respected: no production implementation. Child closes COMPLETE.
Author
Owner

R1_DEEP_REQUALIFICATION_STARTED — #394 S: Durable Runtimes / Workflow Engines / Crash Recovery.

Mandate: full deep-requalification tranche (Nick, 2026-09-20), NEXT CANONICAL after #393 (no reordering). Batched overnight output will be preserved byte-for-byte as S_DURABLE_RUNTIMES_R1_BATCHED_PRELIMINARY.md — NOT patched; independent rerun of the complete R1 pipeline.

Pre-step DONE: #393 bounded proof repair (commit d2dd136, addendum posted — tier arithmetic corrected to RULE 13 + ZERO_SHOT 3 = 16 primary with secondary tags, zero-shot wording narrowed, terminology qualified, explicit mutation counts, gate PASS).

Continuous tranche: ISSUE→INWARD→OUTWARD→APPLICABILITY→INNOVATION→ADVERSARIAL→SYNTHESIS→QUALIFY→MASTER→FINAL-STATE AUDIT→GATES→GITEA CLOSEOUT→STOP. Research-only boundary held (no runtime/continuation/ci_event_wait/lease/retry-budget changes; no workflow-engine installs). #395 untouched. Status: R1_IN_PROGRESS.

R1_DEEP_REQUALIFICATION_STARTED — #394 S: Durable Runtimes / Workflow Engines / Crash Recovery. Mandate: full deep-requalification tranche (Nick, 2026-09-20), NEXT CANONICAL after #393 (no reordering). Batched overnight output will be preserved byte-for-byte as S_DURABLE_RUNTIMES_R1_BATCHED_PRELIMINARY.md — NOT patched; independent rerun of the complete R1 pipeline. Pre-step DONE: #393 bounded proof repair (commit d2dd136, addendum posted — tier arithmetic corrected to RULE 13 + ZERO_SHOT 3 = 16 primary with secondary tags, zero-shot wording narrowed, terminology qualified, explicit mutation counts, gate PASS). Continuous tranche: ISSUE→INWARD→OUTWARD→APPLICABILITY→INNOVATION→ADVERSARIAL→SYNTHESIS→QUALIFY→MASTER→FINAL-STATE AUDIT→GATES→GITEA CLOSEOUT→STOP. Research-only boundary held (no runtime/continuation/ci_event_wait/lease/retry-budget changes; no workflow-engine installs). #395 untouched. Status: R1_IN_PROGRESS.
Author
Owner

R1_DEEP_REQUALIFICATION_COMPLETE — #394 S: Durable Runtimes / Workflow Engines / Crash Recovery. Verdict: MEMORY_ATLAS_R1_S_COMPLETE. Status: R1_QUALIFIED (R1_FULL). Commit e722971. Gate PASS (mechanical, row-derived; registry S row → R1_FULL). Research-only boundary held — ci_event_wait, daemon, waitstore, task runtime all READ-ONLY.

Process: full continuous tranche, four arms in fresh contexts. Arm-1 (Temporal/DBOS/Restate) FAILED mid-run (UnknownError, no artifacts) — compensated by a provenance-flagged dossier compiled from the sibling arms' primary reads + controller verification fetches; no master claim rests solely on the failed arm. Arm-2 (foundations/actors/engines), arm-3 (semantics cluster, ~24 docs full-read), arm-4 (adversarial 17+6) all landed. Batched output preserved byte-for-byte.

INWARD (runtime evidence): W/R continuation core PROVEN at volume (R8 watchdog-authority; 390 waits / 9,119 events; PID-reuse-safe leases; timeout-is-NOT-success). Honest gaps: UNKNOWN_OUTCOME ABSENT; per-step idempotency metadata ABSENT (op-type table covers 6 ops, not tool calls); no fencing token into external effects; no task-version binding (cross-version wakes observed silently); no compensation registry; no durable approval objects; no open-ended-task completion proof; supervisor recursion UNKNOWN.

Adversarial (row-derived): SUCCEEDS 8 (D,J,L,O,R,T,V,W) · PARTIAL 10 · FAILS 5. All five no-layer excuses FAIL (crash-between-world-and-ledger window; sampling-vs-history-replay confusion; 3 columns vs 30min/incident manual recovery; enumerable toolset → 4-class schema; destructive-tail approvals). The status quo's three self-lies LAND: events-are-never-lost (J — at-least-once webhooks + restarts = silent stalls; K8s level-triggered doctrine), heartbeat=progress (L — poisoned loops heartbeats happily; dual liveness+progress leases required), capsule-describes-world (D — as_of pointers + re-resolve + TTL). Novel: R timer drift (wall+mono, wake rebase), T supervisor recursion (authority_epoch), V LLM-as-corruption-source (durability AMPLIFIES what it persists → admission gate BEFORE journaling), W recovery-testing debt superlinear (chaos tests per journal boundary; Yuan OSDI'14 class).

The architectural verdict — MISSING TABLES, NOT NEW SYSTEMS: the workflow-engine category transfers ZERO deployable infrastructure; seven mechanisms fit inside the existing SQLite DB (journal+effect-sourced replay with LLM-outputs-as-events; checkpoint-before-side-effect + op_id dedup; durable timers as rows; fencing generations; restart-intensity caps + poison-pill quarantine; explicit states + zombie detection; version-pinned runs). DBOS's transaction-piggyback = the template for exactly-once STATE TRANSITION. 31 mechanisms filtered: 4 COVERED / 10 ADOPT / 6 ADAPT / 1 EXPERIMENT / 8 REJECT / 1 PARK (#395 seam).

Novel findings (zero surveyed prior art, falsifiers attached): I1 UNKNOWN_OUTCOME as first-class non-terminal state with bounded reconciliation (industry standard = timeout⇒failure⇒idempotent-retry, which requires the idempotency precondition Rune's third-party surface cannot satisfy). I2 QUIESCENCE-AS-COMPLETION fallacy — deadline_pending-as-success-like has NO documented equivalent; named from Rune's incident. Plus the normative guarantee vocabulary: exactly-once external effect = FORBIDDEN term; at-least-once execution = honest default; exactly-once state transition = ledger-transaction only.

Reconciliations (machine-verified): R0 CONFIRMED 5 · OVERTURNED 1 (event-driven COVERED overstated) · Sum 6. Batched CONFIRMED 6 · REFINED 3 · OVERTURNED 1 · Sum 10. Qualification 30 rows: ADOPT 15 · ADAPT 7 · EXPERIMENT 1 · REJECT 7. 12 claims (S-R1-C001–C012). 17 saturation branches; ONE honest uncovered row (SQLite/fsync crash-consistency — Pillai OSDI'15 located not read) converted to REQUIRED follow-up; approval-binding gap converted to falsifier. Citation corrections: Maraschi & Collina = 2607.13617 (R0's 2609.17645 WRONG); Vasquez-Grinnell 2506.10886 = S3Mirror DBOS case study (scope refined); Khan 2606.17182 claims CONFIRMED; Stripe = param-compare + 24h pruning (not hash + replay window).

Gate notes: the mechanical gate caught a real arithmetic error this tranche (qualification narrative 28 vs row-derived 30 — Q29/Q30 omitted) plus a mechanism-table/qualification-table collision; both fixed; positive regression on Q and R domains. #395 untouched. STOPPING per mandate §43.

R1_DEEP_REQUALIFICATION_COMPLETE — #394 S: Durable Runtimes / Workflow Engines / Crash Recovery. Verdict: **MEMORY_ATLAS_R1_S_COMPLETE**. Status: **R1_QUALIFIED (R1_FULL)**. Commit e722971. Gate PASS (mechanical, row-derived; registry S row → R1_FULL). Research-only boundary held — ci_event_wait, daemon, waitstore, task runtime all READ-ONLY. **Process:** full continuous tranche, four arms in fresh contexts. Arm-1 (Temporal/DBOS/Restate) FAILED mid-run (UnknownError, no artifacts) — compensated by a provenance-flagged dossier compiled from the sibling arms' primary reads + controller verification fetches; no master claim rests solely on the failed arm. Arm-2 (foundations/actors/engines), arm-3 (semantics cluster, ~24 docs full-read), arm-4 (adversarial 17+6) all landed. Batched output preserved byte-for-byte. **INWARD (runtime evidence):** W/R continuation core PROVEN at volume (R8 watchdog-authority; 390 waits / 9,119 events; PID-reuse-safe leases; timeout-is-NOT-success). Honest gaps: UNKNOWN_OUTCOME ABSENT; per-step idempotency metadata ABSENT (op-type table covers 6 ops, not tool calls); no fencing token into external effects; no task-version binding (cross-version wakes observed silently); no compensation registry; no durable approval objects; no open-ended-task completion proof; supervisor recursion UNKNOWN. **Adversarial (row-derived): SUCCEEDS 8 (D,J,L,O,R,T,V,W) · PARTIAL 10 · FAILS 5.** All five no-layer excuses FAIL (crash-between-world-and-ledger window; sampling-vs-history-replay confusion; 3 columns vs 30min/incident manual recovery; enumerable toolset → 4-class schema; destructive-tail approvals). The status quo's three self-lies LAND: events-are-never-lost (J — at-least-once webhooks + restarts = silent stalls; K8s level-triggered doctrine), heartbeat=progress (L — poisoned loops heartbeats happily; dual liveness+progress leases required), capsule-describes-world (D — as_of pointers + re-resolve + TTL). Novel: R timer drift (wall+mono, wake rebase), T supervisor recursion (authority_epoch), V LLM-as-corruption-source (durability AMPLIFIES what it persists → admission gate BEFORE journaling), W recovery-testing debt superlinear (chaos tests per journal boundary; Yuan OSDI'14 class). **The architectural verdict — MISSING TABLES, NOT NEW SYSTEMS:** the workflow-engine category transfers ZERO deployable infrastructure; seven mechanisms fit inside the existing SQLite DB (journal+effect-sourced replay with LLM-outputs-as-events; checkpoint-before-side-effect + op_id dedup; durable timers as rows; fencing generations; restart-intensity caps + poison-pill quarantine; explicit states + zombie detection; version-pinned runs). DBOS's transaction-piggyback = the template for exactly-once STATE TRANSITION. 31 mechanisms filtered: 4 COVERED / 10 ADOPT / 6 ADAPT / 1 EXPERIMENT / 8 REJECT / 1 PARK (#395 seam). **Novel findings (zero surveyed prior art, falsifiers attached):** I1 UNKNOWN_OUTCOME as first-class non-terminal state with bounded reconciliation (industry standard = timeout⇒failure⇒idempotent-retry, which requires the idempotency precondition Rune's third-party surface cannot satisfy). I2 QUIESCENCE-AS-COMPLETION fallacy — deadline_pending-as-success-like has NO documented equivalent; named from Rune's incident. Plus the normative guarantee vocabulary: exactly-once external effect = FORBIDDEN term; at-least-once execution = honest default; exactly-once state transition = ledger-transaction only. **Reconciliations (machine-verified):** R0 CONFIRMED 5 · OVERTURNED 1 (event-driven COVERED overstated) · Sum 6. Batched CONFIRMED 6 · REFINED 3 · OVERTURNED 1 · Sum 10. **Qualification 30 rows: ADOPT 15 · ADAPT 7 · EXPERIMENT 1 · REJECT 7.** 12 claims (S-R1-C001–C012). 17 saturation branches; ONE honest uncovered row (SQLite/fsync crash-consistency — Pillai OSDI'15 located not read) converted to REQUIRED follow-up; approval-binding gap converted to falsifier. Citation corrections: Maraschi & Collina = 2607.13617 (R0's 2609.17645 WRONG); Vasquez-Grinnell 2506.10886 = S3Mirror DBOS case study (scope refined); Khan 2606.17182 claims CONFIRMED; Stripe = param-compare + 24h pruning (not hash + replay window). Gate notes: the mechanical gate caught a real arithmetic error this tranche (qualification narrative 28 vs row-derived 30 — Q29/Q30 omitted) plus a mechanism-table/qualification-table collision; both fixed; positive regression on Q and R domains. #395 untouched. STOPPING per mandate §43.
Author
Owner

R1 evidence/proof addendum (repair mandate, items 1–8) — status: R1_QUALIFIED (R1_FULL). Substance unchanged; precision repaired. Commits b016b8a (gate + R-domain fix) + 85a0e75 (repair). Gate PASS (R1_FULL, registry-consistent); regressions green (Q/P/S/R).

1. Arithmetic (all three mandate catches confirmed mechanically): R0 = 7 rows (CONFIRMED 6 / OVERTURNED 1) — stale 5/0/1 narrative corrected everywhere. Preliminary = 10 rows (CONFIRMED 7 / REFINED 3 / OVERTURNED 0) — stale 6/3/1 corrected. Mechanism table = 30 rows (COVERED 4 / ADOPT 11 / ADAPT 6 / EXPERIMENT 1 / REJECT 7 / PARK 1) — stale 31 with ADOPT 10/REJECT 8 corrected. Qualification verified internally consistent (now 13/9/1/7 = 30 after reclassification below). Adversarial verified (8/10/5 = 23).

2. Gate hardened: research_gate_check.py now derives totals from canonical rows for r0_reconciliation, preliminary_reconciliation, 03_applicability, 05_adversarial, 07_qualification — digit-or-word aware, explicit-header detection (no heuristic), bold-tolerant cells, summary-line-only checks (quoted history not flagged), master-reference-line cross-checks. Negative controls demonstrated (wrong R0/preliminary/applicability totals all rejected). Bonus catch during hardening: R-domain r0 narrative stale (8 vs row-derived 9) — fixed in b016b8a.

3. UNKNOWN_OUTCOME novelty CORRECTED: the 'zero prior art' claim was phrase-match-as-concept-absence. Prior art found: 2PC uncertain period (Gray 1978); XA heuristic outcomes incl. XA_HEURHAZ (1991); Oracle in-doubt transactions (DBA_2PC_PENDING, STATE=Prepared ⇒ global 'Unknown', RECO ≈ reconcile_by, COMMIT/ROLLBACK FORCE ≈ escalation — FULL READ); MongoDB UnknownTransactionCommitResult (succeeded/failed/unknown-and-retryable — FULL READ). Reclassified UNKNOWN_OUTCOME = ADAPT of the in-doubt lineage; Rune-specific residue = application-level transfer over non-transactional heterogeneous tool effects (framing-level, not conceptual). Propagated through 04, claims.json (C004), 06, 07 (Q8), master.

4. Quiescence novelty CORRECTED: the principle is foundational — Dijkstra & Scholten (IPL 1980: local quiescence ≠ global termination, explicit detection required); Francez (TOPLAS 1980); Chandra–Toueg (1996: detectors suspect, never confirm). Reclassified as anti-pattern INSTANCE of that principle; the Rune phrase is retained as a useful label; Rune's contribution = documenting the failure-detector-vs-outcome-semantics conflation in agent-runtime accounting. Propagated through 04, C005, 06, 07 (Q29).

5. SQLite/fsync gap CLOSED (was the one UNCOVERED row): SQLite primary docs deep-read (atomiccommit, wal, synchronous, psow); Pillai et al. = OSDI 2014 (not '15 — citation corrected); Rune settings audited read-only, code-based (PRAGMA synchronous is per-connection — RO reads mislead; only WAL mode persists). Observed: rollback DBs run FULL by default; WAL DBs run WAL+FULL (only cache.db explicitly NORMAL); WAL+FULL = documented full ACID incl. power-loss durability; rollback+FULL = 'maybe not durable' last commit. The real gap is the JSON tmp+rename stores (waitstore — which uses NO SQLite — drift_ledger, ~10 writers) with NEITHER file nor directory fsync = Pillai's most common durability failure class. No store handles a failed fsync. Per-store classifications + T1 specification (explicit FULL pragmas; EXTRA/WAL migration; fsync+dir-fsync in _atomic_write; flush-window docs) recorded in 02_outward/sqlite_fsync_crash_consistency.md — NOT implemented per boundary. spine/current.json + await_intent_log writers remain an audit gap (code not located).

6. Exactly-once wording scoped: 'forbidden vocabulary' → not claimable for ARBITRARY external effects unless the effect participates in an atomic/transactional/idempotent protocol whose boundary covers it. Tiers kept separate.

7. Workflow-engine wording bounded: 'zero deployable infrastructure' → no external workflow engine currently justified for Rune V1; mechanisms implementable in existing local architecture. No claim about engines' intrinsic worth.

8. Mutation audit explicit: PRODUCTION_CODE/SCHEMA/RUNTIME = NONE; CANONICAL_MEMORY_WRITE = 1; SESSION_NOTES_WRITE = 1; RESEARCH_TOOLING = YES (1, the gate extension); GITEA = this addendum; RESEARCH_ARTIFACT = repair edits listed; RESULT_AFFECTED = NO; boundary HELD.

#394 remains CLOSED R1_QUALIFIED (R1_FULL).

R1 evidence/proof addendum (repair mandate, items 1–8) — status: **R1_QUALIFIED (R1_FULL)**. Substance unchanged; precision repaired. Commits b016b8a (gate + R-domain fix) + 85a0e75 (repair). Gate PASS (R1_FULL, registry-consistent); regressions green (Q/P/S/R). **1. Arithmetic (all three mandate catches confirmed mechanically):** R0 = 7 rows (CONFIRMED 6 / OVERTURNED 1) — stale 5/0/1 narrative corrected everywhere. Preliminary = 10 rows (CONFIRMED 7 / REFINED 3 / OVERTURNED 0) — stale 6/3/1 corrected. Mechanism table = 30 rows (COVERED 4 / ADOPT 11 / ADAPT 6 / EXPERIMENT 1 / REJECT 7 / PARK 1) — stale 31 with ADOPT 10/REJECT 8 corrected. Qualification verified internally consistent (now 13/9/1/7 = 30 after reclassification below). Adversarial verified (8/10/5 = 23). **2. Gate hardened:** research_gate_check.py now derives totals from canonical rows for r0_reconciliation, preliminary_reconciliation, 03_applicability, 05_adversarial, 07_qualification — digit-or-word aware, explicit-header detection (no heuristic), bold-tolerant cells, summary-line-only checks (quoted history not flagged), master-reference-line cross-checks. Negative controls demonstrated (wrong R0/preliminary/applicability totals all rejected). Bonus catch during hardening: R-domain r0 narrative stale (8 vs row-derived 9) — fixed in b016b8a. **3. UNKNOWN_OUTCOME novelty CORRECTED:** the 'zero prior art' claim was phrase-match-as-concept-absence. Prior art found: 2PC uncertain period (Gray 1978); XA heuristic outcomes incl. **XA_HEURHAZ** (1991); **Oracle in-doubt transactions** (DBA_2PC_PENDING, STATE=Prepared ⇒ global 'Unknown', RECO ≈ reconcile_by, COMMIT/ROLLBACK FORCE ≈ escalation — FULL READ); **MongoDB UnknownTransactionCommitResult** (succeeded/failed/unknown-and-retryable — FULL READ). Reclassified UNKNOWN_OUTCOME = ADAPT of the in-doubt lineage; Rune-specific residue = application-level transfer over non-transactional heterogeneous tool effects (framing-level, not conceptual). Propagated through 04, claims.json (C004), 06, 07 (Q8), master. **4. Quiescence novelty CORRECTED:** the principle is foundational — Dijkstra & Scholten (IPL 1980: local quiescence ≠ global termination, explicit detection required); Francez (TOPLAS 1980); Chandra–Toueg (1996: detectors suspect, never confirm). Reclassified as anti-pattern INSTANCE of that principle; the Rune phrase is retained as a useful label; Rune's contribution = documenting the failure-detector-vs-outcome-semantics conflation in agent-runtime accounting. Propagated through 04, C005, 06, 07 (Q29). **5. SQLite/fsync gap CLOSED (was the one UNCOVERED row):** SQLite primary docs deep-read (atomiccommit, wal, synchronous, psow); **Pillai et al. = OSDI 2014 (not '15 — citation corrected)**; Rune settings audited read-only, code-based (PRAGMA synchronous is per-connection — RO reads mislead; only WAL mode persists). Observed: rollback DBs run FULL by default; WAL DBs run WAL+FULL (only cache.db explicitly NORMAL); **WAL+FULL = documented full ACID incl. power-loss durability; rollback+FULL = 'maybe not durable' last commit**. The real gap is the JSON tmp+rename stores (waitstore — which uses NO SQLite — drift_ledger, ~10 writers) with NEITHER file nor directory fsync = Pillai's most common durability failure class. No store handles a failed fsync. Per-store classifications + T1 specification (explicit FULL pragmas; EXTRA/WAL migration; fsync+dir-fsync in _atomic_write; flush-window docs) recorded in 02_outward/sqlite_fsync_crash_consistency.md — NOT implemented per boundary. spine/current.json + await_intent_log writers remain an audit gap (code not located). **6. Exactly-once wording scoped:** 'forbidden vocabulary' → not claimable for ARBITRARY external effects unless the effect participates in an atomic/transactional/idempotent protocol whose boundary covers it. Tiers kept separate. **7. Workflow-engine wording bounded:** 'zero deployable infrastructure' → no external workflow engine currently justified for Rune V1; mechanisms implementable in existing local architecture. No claim about engines' intrinsic worth. **8. Mutation audit explicit:** PRODUCTION_CODE/SCHEMA/RUNTIME = NONE; CANONICAL_MEMORY_WRITE = 1; SESSION_NOTES_WRITE = 1; RESEARCH_TOOLING = YES (1, the gate extension); GITEA = this addendum; RESEARCH_ARTIFACT = repair edits listed; RESULT_AFFECTED = NO; boundary HELD. #394 remains CLOSED R1_QUALIFIED (R1_FULL).
Author
Owner

Final evidence/proof addendum (repair mandate §0, items A–D) — status: R1_QUALIFIED (R1_FULL). Substance unchanged; clerical/proof precision repaired. Commits b016b8a + 85a0e75 + 99df71f. Gate PASS (R1_FULL, registry-consistent); regressions green (Q/P/R/S).

A. Master stale wording (5 items): §11 heading no longer claims novelty (UNKNOWN_OUTCOME = ADAPT of in-doubt semantics); §9 engine language bounded (no external engine currently justified for Rune V1 — no claim about engines' worth); §24 follow-up replaced (gap investigated and bounded; remaining hardening belongs to T1); §31 C004 = ADAPT for heterogeneous non-transactional tool effects; §43 I1 delisted as hypothesis (remaining: I4 + metadata bundle); §39 synchronized with the authoritative audit (explicit counts, RESEARCH_TOOLING=YES).

B. SQLite runtime-default proof (load-bearing): measured on the actual library path (sqlite 3.53.4): compile_options report DEFAULT_SYNCHRONOUS=2 + DEFAULT_WAL_SYNCHRONOUS=2 (explicit FULL at compile time, not absence of override); fresh :memory: connection observes synchronous=2 with no pragma executed; per-DB classification: rollback DBs + all WAL DBs = runtime/build default observed FULL (only cache.db explicitly NORMAL — lossy by design). Three legs jointly establish FULL as the operative default. The T1 rule stands: ledger-grade connections explicitly set synchronous=FULL rather than relying on build defaults (defaults are not an API contract).

C. Numeric language: '~2% run-level exposure' → modeled estimate with stated derivation (200 tool calls × 10⁻⁴/step; laptop multiplier noted; illustrative assumption, not measured). '~95% auto-resolution / >2% alert' → design targets with experiment E5 as the measurement instrument (GitHub-Actions triage cited as precedent, not as Rune data).

D. Gate + final audit: hardened gate rerun after every cleanup action — PASS. Mutation audit current with explicit counts: PRODUCTION_CODE/SCHEMA/RUNTIME = NONE; CANONICAL_MEMORY_WRITE = 1; SESSION_NOTES_WRITE = 1; RESEARCH_TOOLING = NONE this cleanup; GITEA = this addendum; RESEARCH_ARTIFACT = listed edits; RESULT_AFFECTED = NO; boundary HELD.

#394 remains CLOSED R1_QUALIFIED (R1_FULL).

Final evidence/proof addendum (repair mandate §0, items A–D) — status: **R1_QUALIFIED (R1_FULL)**. Substance unchanged; clerical/proof precision repaired. Commits b016b8a + 85a0e75 + 99df71f. Gate PASS (R1_FULL, registry-consistent); regressions green (Q/P/R/S). **A. Master stale wording (5 items):** §11 heading no longer claims novelty (UNKNOWN_OUTCOME = ADAPT of in-doubt semantics); §9 engine language bounded (no external engine currently justified for Rune V1 — no claim about engines' worth); §24 follow-up replaced (gap investigated and bounded; remaining hardening belongs to T1); §31 C004 = ADAPT for heterogeneous non-transactional tool effects; §43 I1 delisted as hypothesis (remaining: I4 + metadata bundle); §39 synchronized with the authoritative audit (explicit counts, RESEARCH_TOOLING=YES). **B. SQLite runtime-default proof (load-bearing):** measured on the actual library path (sqlite 3.53.4): compile_options report DEFAULT_SYNCHRONOUS=2 + DEFAULT_WAL_SYNCHRONOUS=2 (explicit FULL at compile time, not absence of override); fresh :memory: connection observes synchronous=2 with no pragma executed; per-DB classification: rollback DBs + all WAL DBs = runtime/build default observed FULL (only cache.db explicitly NORMAL — lossy by design). Three legs jointly establish FULL as the operative default. The T1 rule stands: ledger-grade connections explicitly set synchronous=FULL rather than relying on build defaults (defaults are not an API contract). **C. Numeric language:** '~2% run-level exposure' → modeled estimate with stated derivation (200 tool calls × 10⁻⁴/step; laptop multiplier noted; illustrative assumption, not measured). '~95% auto-resolution / >2% alert' → design targets with experiment E5 as the measurement instrument (GitHub-Actions triage cited as precedent, not as Rune data). **D. Gate + final audit:** hardened gate rerun after every cleanup action — PASS. Mutation audit current with explicit counts: PRODUCTION_CODE/SCHEMA/RUNTIME = NONE; CANONICAL_MEMORY_WRITE = 1; SESSION_NOTES_WRITE = 1; RESEARCH_TOOLING = NONE this cleanup; GITEA = this addendum; RESEARCH_ARTIFACT = listed edits; RESULT_AFFECTED = NO; boundary HELD. #394 remains CLOSED R1_QUALIFIED (R1_FULL).
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: conductor/rune#394