hermes: preserve results and prevent duplicate fanout #15
Loading…
x
Reference in New Issue
Block a user
No description provided.
Delete Branch "fix/hermes-result-decomposition-reliability"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Outcome: hardens Hermes exact-run result replay, staged-journal recovery, automatic orphan reclamation, and automatic decomposition against crash, identity, provenance, and concurrency failures. This branch is rebased directly on current main
ab346f5550, which contains merged PR #13.Retirement recovery now covers both board/.retire.* and board/quarantine/.retire.*. New and legacy valid staged pending, prepared, committed, and conflict artifacts are bound to their reconstructed canonical names, protected by the pending guard, restored without premature execution, and retained under bounded conflict/quarantine GC. Repeated staging preserves the original canonical digest across every generation. Quarantining an already staged artifact reuses the single board quarantine directory, preventing recursive quarantine/quarantine trees. A bounded progress detector drains replacement churn and stops safely on unchanged storage failures.
Prepared-evidence recovery now opens one bounded raw recovery snapshot and carries that exact descriptor/device/inode through semantic classification, quarantine, DB finalization, and retirement. It loops atomic pathname replacements safely. A replacement cannot be reopened as the supposedly malformed source or discarded after DB completion; differing accepted results are preserved as explicit conflicts and the DB completion executes at most once.
Exact ended-run replay now permits unchanged ready, blocked, or loop-breaker triage state only when the exact run-ending event remains the latest status mutation inside the same BEGIN IMMEDIATE transaction. Comments and diagnostics do not invalidate accepted work. Specification, decomposition, unblock, reclaim, scheduling, or a newer claim makes stale replay fail closed. Successful triage replay updates the original run row in place and preserves exact task/event/hook provenance; it never synthesizes a run.
Validation at exact head
5db9f94618: focused Hermes lane/recovery suite 126 passed; full testing/tests 350 passed; explicit race/crash/disk-bound selection 38 passed; Ruff, py_compile, git diff --check, current-main ancestry/tree verification, and diff secret-pattern scan passed. Exact pinned running source/image sha256:37ebf720c783ae908a602916ffccf88d43d205a157957f5dc4b487867aee45e7 passed all 15 SQLite/decomposition regressions with byte-identical copied patch/regression hashes. Current-main merge tree and HEAD tree are botha5e172557f.No image build, merge, deployment, reconciliation, or live workload mutation was performed.
hermes: preserve results and prevent duplicate fanoutto WIP: hermes: preserve results and prevent duplicate fanout9793b1435etocf4def1d77cf4def1d77to2caad7e7692caad7e769to5db9f946185db9f94618to7609cd77e8hermes-automation referenced this pull request2026-08-17 10:14:46 +00:00
7609cd77e8to1ba9f13959WIP: hermes: preserve results and prevent duplicate fanoutto hermes: preserve results and prevent duplicate fanout