core/docs/analysis
Shay efd280d45f
feat(l10): autonomous idle frontier-contemplation — the always-on life learns on its own (#758)
* feat(l10): autonomous idle frontier-contemplation — the always-on life learns on its own

Frontier survey move #2, path (c): give the always-on idle life a stream of experience via
SYMBOLIC intake (not the afferent→field seam, which is deferred pending a commensurability
ruling — docs/analysis/afferent-field-ingest-scope-2026-06-15.md). The idle heartbeat
converges (idle_tick drains a finite backlog + saturates is-a closure, then does nothing
forever); this makes it autonomously MINE its frontier with no user turn.

Reuse-heavy (the mechanism largely existed): a gated idle pass wires ADR-0080 contemplation
into the always-on loop.

- core/config.py: contemplate_frontier_during_idle (default off → no behavior change).
- chat/runtime.py: idle_tick pass 2b — when on, runs core.contemplation.run_contemplation()
  (mines the checked-in frontier-compare reports) and persists a reviewable ContemplationRun
  to <engine_state>/contemplation_runs/idle_<substrate_hash>.json. IDEMPOTENT per frontier
  (an already-mined frontier is not re-persisted → the life converges, no churn) and MEMOIZED
  per session (the static frontier is mined once, not re-read every beat). SPECULATIVE-only
  (ADR-0080: ContemplationFinding.__post_init__ RAISES if not SPECULATIVE → wrong=0 by
  construction; never ratified here — the HITL path is untouched). IdleTickResult gains
  frontier_findings.
- chat/always_on.py: run_continuous did_work + HeartbeatRecord count frontier work, so the
  heartbeat/soak convergence (H3) stays honest.
- core/cli.py: `core always-on --contemplate-frontier` (explicit learning-daemon mode) +
  honest per-beat log ("+N findings").

Adversarial 3-lens review (wrong=0/convergence, determinism/trust-boundary, test-vacuity)
found 7; fixed the real ones: the MEDIUM torn-write (write_contemplation_run is now atomic
temp+os.replace — the indefinite-uptime daemon expects SIGKILL mid-write, and the skip-guard
would never repair a torn canonical file), the gitignore breadth (contemplation_runs/ at any
engine-state root), the 64-bit filename truncation (full substrate_hash), and the
re-mine-every-beat cost (session memoization). Deferred + documented: the shared
contemplation miner embeds absolute report paths in finding CONTENT — a portability wrinkle
that does NOT affect wrong=0/convergence/soak determinism (those key on the content-only
substrate_hash) and touches shared code + its test surface; a follow-up.

Tests (non-vacuous): 7 — off-by-default (no behavior change), mines-when-enabled,
findings-SPECULATIVE (wrong=0), converges-idempotent, heartbeat-mines-then-converges,
mines-once-per-session (memoization), atomic-no-orphan. 55 idle/contemplation/always-on +
96 invariants/contemplation + 28 smoke green; `core always-on --contemplate-frontier` mines
end-to-end. engine_state contemplation_runs are per-life runtime state (gitignored).

* fix(l10): isolate idle frontier pass + persist frontier_findings (#758)

Three review blockers on the autonomous idle frontier-contemplation pass:

1. Daemon isolation. idle_tick's pass 2b called run_contemplation /
   write_contemplation_run bare inside the always-on loop (run_continuous
   wraps idle_tick in nothing but an exit-checkpoint finally), so a malformed
   frontier report or a transient FS fault would propagate out and KILL the
   continuous life. Wrap the optional pass best-effort (the exit-checkpoint
   boundary idiom): degrade to 0 findings + RuntimeWarning, leave did_work
   untouched, let a later beat retry.

2. Durable did_work explanation. HeartbeatRecord carried frontier_findings
   but serialize_report omitted it and AlwaysOnReport had no run total, so
   lived_life.json could show did_work=true with facts=0/proposals=0 and no
   persisted cause. Persist frontier_findings per-record + total_frontier_findings.

3. Honest HITL claim. The docstring/CLI/config said findings are "reviewable
   via the HITL path", but the existing HITL queue + workbench reader scan
   <repo>/contemplation/runs while the pass writes <engine_state>/contemplation_runs/.
   Narrow the claim to "persisted reviewable artifact, not yet in the HITL
   queue" (wiring that discovery is a follow-up).

Tests: 4 new non-vacuous regressions (mining-failure degrade, write-failure
degrade, always-on loop survives frontier failure, lived_life persists
frontier_findings) — all fail against the unpatched pass. 38 L10/always-on/
workbench tests green.
2026-06-14 23:59:49 -07:00
..
adr-0184-replay-provenance-equivalence-harness-2026-06-10.md test(derivation): add ADR-0184 semantic replay equivalence harness 2026-06-10 14:35:22 -07:00
adr-0184-s3-s5-candidate-source-boundary-2026-06-10.md feat(derivation): define semantic-ledger candidate source boundary 2026-06-10 13:17:53 -07:00
afferent-field-ingest-scope-2026-06-15.md feat(l10): autonomous idle frontier-contemplation — the always-on life learns on its own (#758) 2026-06-14 23:59:49 -07:00
AGI-candidacy-autonomous-improvement-roadmap-2026-06-05.md
ask-runtime-wiring-missing-boundary-2026-06-10.md docs(ask): document missing runtime ASK provider boundary 2026-06-10 09:23:04 -07:00
ask-serving-integration-scoping-2026-06-08.md docs(epistemic): scope ASK and VERIFIED serving gates 2026-06-08 22:22:35 -07:00
ask-serving-integration-scoping-2026-06-09.md docs(epistemic): tighten pass_manager scoping wording and use relative links 2026-06-09 09:26:49 -07:00
cmb-a-combined-rate-ruler-2026-06-08.md feat(combined-rate): CMB-a — combined-rate setup ruler (model + gold + oracle) 2026-06-08 06:58:17 -07:00
cmb-lookback-review-2026-06-08.md docs(cmb): lookback review + fix single-agent-attribution hygiene hazard (H3) 2026-06-08 13:27:17 -07:00
combined-rate-capability-ledger-2026-06-08.md docs(comprehension): freeze combined-rate (R4) v1 — capability ledger + non-claims (CMB-e) 2026-06-08 14:13:39 -07:00
composition-capability-scope.md
composition-wall-execution-plan-2026-06-03.md
comprehension-capability-ledger-2026-06-07.md docs(comprehension): whole-system organ capability ledger + fix ADR-0211 number collision 2026-06-08 06:15:51 -07:00
comprehension-coverage-wall-map-2026-06-14.md docs(analysis): wall map — the recognizer/coverage wall is COMPOSITION 2026-06-14 15:10:30 -07:00
comprehension-organ-capability-ledger-2026-06-08.md docs(comprehension): freeze combined-rate (R4) v1 — capability ledger + non-claims (CMB-e) 2026-06-08 14:13:39 -07:00
comprehension-primitive-inventory.md
D-close-consolidation-design-2026-06-06.md feat(determine): idle deductive consolidation — the loop learns from determined facts (Step D) 2026-06-06 12:28:09 -07:00
deductive-logic-phase-2-benchmark-runway-2026-06-04.md
E-estimation-design-2026-06-06.md feat(determine): calibrated disclosed estimation — the engine earns the right to guess (Step E) 2026-06-06 13:49:07 -07:00
epistemic-coherence-architecture-2026-06-14.md docs(analysis): finding — speculative epistemic ceiling does NOT blunt learning 2026-06-14 14:58:10 -07:00
extraction-richness-audit-2026-06-03.md
field-reasoner-wedge-design-and-falsification-2026-06-04.md
field-wedge-ablation-result-2026-06-04.md
gsm8k-lift-program-strategy-2026-06-04.md
holonomy-resonance-proof-not-robust-2026-06-14.md fix(holonomy): downgrade non-robust resonance proof to honest tripwires + record finding 2026-06-14 14:06:51 -07:00
L10-continuity-spike-design-2026-06-05.md
L10-runtime-scoping-2026-06-05.md
L10-shapeBplus-persistence-scope-2026-06-05.md
math-serving-seam-design-2026-06-06.md feat(derivation): math-serving reach seam — select_self_verified is policy-aware (ADR-0206 §5) 2026-06-06 15:46:14 -07:00
oov-grounding-determinism-morphology-affinity-collapse.md
phase2-general-comprehension-organ-scope-2026-06-05.md
pivot-to-deductive-logic-2026-06-04.md
proposal-review-idle-integration-2026-06-08.md docs(proposal-review): idle-integration boundary ledger (IT-c) 2026-06-07 22:33:17 -07:00
proposal-review-reporter-2026-06-07.md docs(proposal-review): boundary ledger — read-only reporter, not idle_tick, not L10 (RPT-d) 2026-06-07 21:44:07 -07:00
q1-d-ask-bus-delivery-scoping-2026-06-08.md docs(epistemic): record accepted Q1-D delivery decisions 2026-06-09 09:16:24 -07:00
q1-epistemic-question-articulation-v1-scoping-2026-06-08.md docs(scoping): epistemic disclosure bus (Stage 2 / VERIFIED v1) + Q1 question-articulation briefs 2026-06-08 14:53:47 -07:00
question-layer-gap-survey.md
r1-inventory-ledger-2026-06-07.md feat(comprehension): inverse reader frame — base of a more/fewer-than (PR-7b / R2 C0) 2026-06-07 07:06:26 -07:00
r2-inventory-ledger-2026-06-07.md docs(comprehension): whole-system organ capability ledger + fix ADR-0211 number collision 2026-06-08 06:15:51 -07:00
r3-1-router-integration-2026-06-08.md feat(contemplation): wire R3 into the multi-organ router + pass manager (R3.1) 2026-06-08 02:05:34 -07:00
r3-2-unit-conversion-2026-06-08.md feat(rate): exact time-unit conversion for single-rate (R3.2b-e) 2026-06-08 05:43:51 -07:00
r3-rate-inventory-ledger-2026-06-08.md feat(rate): R3 inventory ledger + failure-family wiring (R3e) 2026-06-07 23:12:23 -07:00
real-gsm8k-capability-measurement-2026-06-04.md
REALIZE-R1-DETERMINE-scope-2026-06-06.md
REALIZE-scope-2026-06-06.md
relational-grounding-extension-2026-06-04.md
replay-moment-backend-scoping-2026-06-12.md feat(workbench): sealed single-turn replay backend — GET /replay/{turn_id} (Wave R3) 2026-06-12 17:15:39 -07:00
router-organ-hygiene-invariant-2026-06-08.md test(contemplation): standing router-organ-hygiene invariant 2026-06-08 05:28:06 -07:00
solver-operation-coverage.md
stage2-disclosure-bus-implementation-map-2026-06-09.md docs(stage2): map disclosure-bus implementation state and next slices 2026-06-09 11:32:00 -07:00
stage2-epistemic-disclosure-bus-verified-v1-scoping-2026-06-08.md docs(scoping): lock VERIFIED as a distinct disclosure mode, not APPROXIMATE (review fix) 2026-06-08 15:00:38 -07:00
universal-structure-and-field-symbol-coherence-gate-2026-06-04.md
VERIFIED-canonical-comparison-scoping-2026-06-06.md docs(analysis): VERIFIED producer — validate-first verdict is DO NOT BUILD (comprehension-bound) 2026-06-06 16:09:41 -07:00
verified-serving-wiring-scoping-2026-06-08.md docs(epistemic): scope ASK and VERIFIED serving gates 2026-06-08 22:22:35 -07:00
verified-serving-wiring-scoping-2026-06-09.md docs(verified): scope serving-time verification gate 2026-06-09 09:41:34 -07:00
wiring-promotion-gate-brief-2026-06-03.md