Commit graph

1 commit

Author SHA1 Message Date
Ouroboros
506bccc7d6 fix(#1195): keep the server responsive while skills and history run
- F1: the historical model-send seal audit leaves the readiness path and runs
  as one session-custodied child per generation (ouroboros.startup_historical_audit),
  in its own process group; readiness, gateway requests, Panic and the forced
  emergency cleanup never wait on it.
- F3: the in-process extension execution barrier becomes a non-reentrant
  shared-reader/exclusive-writer lease: no-deps handlers overlap, a deps
  injection scope still excludes every reader across its await and cleanup.
- F4: execution hashes only the selected payload; peers are an immutable
  non-executable projection (skill_peer_inventory.py) sharing one conflict
  verdict (skill_conflicts.py); freshness on the next request is unchanged.
- F5: the Widgets list/preferences reads share the existing widget request
  timeout under one AbortController; a timeout keeps the last good cards and
  offers the existing Retry (widget_list.js owns the request seam); a cancelled
  body read stays a rejection and a malformed list is refused, so navigating
  away can never stop a kept-running frame.
- Regression: a custody-record failure inside spawn_supervised kills only the
  child's dedicated group, never the spawner's.

Version-neutral contributor candidate over official 3bdbfef5; release metadata
is allocated at integration. Investigation evidence and the separate
token-usage skill candidate stay on fix/issue-1195-responsiveness.

Co-authored-by: Ouroboros <311266734+ouroboros-agent@users.noreply.github.com>
2026-09-22 18:10:17 +03:00