Second absorption of the frozen upstream line (23ab428f..db6d7cf8: 89
commits, 47 files) on top of the rc.10 hotfix tip, by the F2 rules (S1
upstream body in the owning leaf, S2 hand-merge, S3 only with proof;
retired 7.0 surfaces never return):
- PR #609 net-resilience: interactive transport-wait episodes bounded by
the task idle timeout with the typed task_incident/toast_once pair, a
bounded paid repeat after a typed post-dispatch transport death with a
round-keyed record that fences every other send, the shutdown-aware
supervisor crash counter and bounded lifespan join, Darwin keepalive
tuning. loop_transport/transport_custody/net_transport/loop_llm_call
land verbatim (same shapes on both sides); the loop.py deltas are
relocated into the v7 leaves (loop_round_limits, loop_model_call,
loop_delivery, loop_forced_finalization, loop_nudges, loop_messages,
loop_budget) with bodies AST-equal to upstream modulo the call-time
handles; _emit_overflow_retry_skipped stays a public helper (the v7
facade contract) and upstream's nested _skipped delegates to it.
- PR #614 update letter: ouroboros/update_letter.py and its web module
land verbatim; the new OUROBOROS_UPDATE_LETTER_TIMEOUT_SEC key and
get_update_letter_timeout_sec live in their v7 owners
(settings_defaults.py, runtime_limits.py, re-exported by config.py);
_supervisor_stop lives in server_process.py beside the restart events;
docs/PERSISTENCE.md gains the state/update_letter.json row and the
inventory pin moves to 286.
- Tests: the relocated run_llm_loop tests take the emit_progress
incident keyword (every one-argument progress fake in tests/ swept, a
gap upstream itself left in test_tree_cost_ceiling); the official-update
runtime-section test lands in tests/test_context.py; _MOVED_OWNERS
registers the relocated getter.
- Docs: ARCHITECTURE/DEVELOPMENT hunks land on the upstream text; the two
legacy timeout rows upstream's context still carries stay retired (7.0).
- Size ratchet regenerated; the band rationale for tests/test_update_letter.py
is carried verbatim from upstream.
Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
(cherry picked from f1-d01 commit 1039baed and squashed with the seam so the
manifest is self-consistent: the pick-time --theirs manifest predated the
D10/D11 hunks, and a follow-up regen would have left an inconsistent
intermediate commit - the 7d2dca49 class; recipe fixed to regen BEFORE
cherry-pick --continue.)
D01: loop.py 7003->865 + nine leaves, agent_dispatch + post_task_synthesis,
177 spans proof-green, zero live v7 deltas in the loop split (55 falsified
spans are all upstream drift), maximal declared sets per the D10 lesson,
HOT_CODE_PATHS closed over the nine loop leaves.
Seam: D11 six server leaves and D10 nine git leaves mapped (D01 mapped its
own eleven in-lane); server.py, tools/git.py, supervisor/git_ops.py split
rows retired - the remaining 21 split_pending rows are exactly the F2
hot-organ set. size_ratchet manifest regenerated by the official tool on the
merged tree. test_module_handle_extraction LEAVES = union of D10 and D01 row
sets (restored the git_ops_updates closing bracket the conflict marker had
split; 78 passed). Quotient report regenerated: 1426 strict module edges.