Persist Skill installation progress and recovery receipts - #1593
Conversation
d5fb85f to
cae1636
Compare
cae1636 to
bbd5bd5
Compare
bbd5bd5 to
2c8315e
Compare
2c8315e to
c7aeead
Compare
…ration-recovery-reviewed
|
Merge queue CI: cancelled — run 35085250213, attempt 1.
The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: success — run 35092700161, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: success — run 35094668441, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: failure — run 35097221592, attempt 1.
The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
…ration-recovery-reviewed
|
Merge queue CI: success — run 35111887283, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: success — run 35114203534, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
|
Merge queue CI: success — run 35119021168, attempt 1. The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed. |
Skill installation now keeps a durable operation receipt when a connection drops, an RPC times out, or the Gateway restarts. The WebUI observes the existing operation after reconnecting, and repeated operation IDs return its canonical result.
Scope
Scope boundary: service-owned install tasks, SQLite operation receipts, transaction recovery, the optional skills.install.status RPC, and WebUI progress restoration. Failed or cancelled installs preserve their final rollback diagnostics; a durable rollback checkpoint closes the crash window before journal deletion. Uncertain recovery remains explicit. Refreshing the WebUI preserves every restored receipt.
Branch
Base branch: main
Target exception: N/A
#1592 is merged; this branch includes its main merge and follow-up token-fallback regression fix. #1594 builds Agent turn completion on these receipts.
Issue
Linked issue: None
If None, reason: make existing Skill installation outcomes consistent across disconnects, retries, cancellation, and restart.
Release Note
Release note: Skill installation progress and terminal receipts remain observable after reconnects; restart recovery distinguishes completed rollback from uncertain recovery. No version metadata change.
Tests
Ruff: full source and tests passed after merging current main.
Pytest: after merging current main, 103 operation, transaction, worker, RPC, Agent settlement, and compaction regressions passed. The combined stack also passed 399 installation and Agent regressions.
Build: WebUI build passed on the reviewed stack; 36 focused receipt and registry unit tests passed on this layer.
Regression tests: added for caller identity, duplicate requests, timeout, cancellation, rollback failure, result/status/replay agreement, and subprocess termination around journal removal.
Notes: generated contracts were reconciled with current main and passed determinism and validator checks on the reviewed stack. Updated-head CI supplies Linux, macOS, and Windows acceptance. Default tests remain offline, deterministic, credential-free, and fork-safe; prior PR-head CI is not evidence for this update.
Maintainer Live Check
Maintainer live check: no
Surface: N/A
Safety
Status queries are optional, read-only, and scoped by caller/profile/root. Existing installation calls remain non-idempotent without an operation ID. SQLite and journal persistence use the existing portable primitives. Rollback evidence is saved before deleting its journal, and failed persistence retains recovery evidence. Receipt limits and expiry remain enforced. No secrets, private transcripts, local artifacts, or machine-specific paths are included.
Third-Party Origin
Third-party origin: none
Original implementation; no third-party code copied.