Files
hermes-agent/tests
teknium1 a1b997beb9 fix(update): one receipt entry per repair outcome; reason no longer printed twice
Follow-up to the two salvaged commits (#111419 @Ckarey007, #111521 @wangtaotaotao95),
which both edit `_stage_candidate_venv` and were merged keep-both:

- `_record_runtime_repair` (new topical helper next to `_run_runtime_repair`): a
  `failed`/`safe`/`repaired` repair is one `sqlite_runtime_repair` step; a
  `skipped`/`not-applicable` repair is one skip WITH its reason instead of a red
  step plus a skip. Every pip/non-venv install runs the hook and would otherwise
  carry a failed-looking step in every receipt.
- The sync rejection's reason now travels into `RuntimeRepairResult.detail`, which
  `_report_runtime_repair_failure` prints and the receipt records, so the extra
  console print in `_stage_candidate_venv` is dropped (it duplicated the ℹ line).
- Tests trimmed to invariants: the child-reason test asserts the reason on the
  rejection the repair returns (the exception carries it now); the receipt test
  covers failed step / repaired step / skipped skip and the no-receipt no-op.
  Dropped: the 4-case stage-rejection walk (the same chain is covered by the
  existing `_repair_under_lock` tests whose rejection now carries the reason).
2026-09-15 18:28:03 -07:00
..
…