Skip to content

Persist Skill installation progress and recovery receipts - #1593

Merged
Open-Squilla merged 16 commits into
mainfrom
fix/skill-install-operation-recovery
Sep 16, 2026
Merged

Open-Squilla merged 16 commits into
mainfrom
fix/skill-install-operation-recovery

Conversation

@Open-Squilla

@Open-Squilla Open-Squilla commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

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.

@Open-Squilla
Open-Squilla force-pushed the fix/skill-install-operation-recovery branch from d5fb85f to cae1636 Compare September 9, 2026 11:41
@Open-Squilla
Open-Squilla force-pushed the fix/skill-install-operation-recovery branch from cae1636 to bbd5bd5 Compare September 9, 2026 11:57
@Open-Squilla
Open-Squilla force-pushed the fix/skill-install-operation-recovery branch from bbd5bd5 to 2c8315e Compare September 9, 2026 12:24
@Open-Squilla
Open-Squilla force-pushed the fix/skill-install-operation-recovery branch from 2c8315e to c7aeead Compare September 9, 2026 12:58
@Open-Squilla
Open-Squilla added this pull request to the merge queue Sep 16, 2026
@Open-Squilla
Open-Squilla removed this pull request from the merge queue due to a manual request Sep 16, 2026
@github-actions

Copy link
Copy Markdown

Merge queue CI: cancelledrun 35085250213, attempt 1.
Tested queue candidate: ffb74ec24937028aa0169896419be2e2f0da0a9d. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@Open-Squilla
Open-Squilla added this pull request to the merge queue Sep 16, 2026
@github-actions

Copy link
Copy Markdown

Merge queue CI: successrun 35092700161, attempt 1.
Tested queue candidate: cd427b2ed3a17f1bad01d8d2a74f62145a0e4183. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@github-actions

Copy link
Copy Markdown

Merge queue CI: successrun 35094668441, attempt 1.
Tested queue candidate: 711ae0abb309e05b7379d9a55210e94881c05649. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@github-merge-queue
github-merge-queue Bot removed this pull request from the merge queue due to failed status checks Sep 16, 2026
@github-actions

Copy link
Copy Markdown

Merge queue CI: failurerun 35097221592, attempt 1.
Tested queue candidate: 7558091c6c3381c8b61239305e389721cc9c7fb2. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@Open-Squilla
Open-Squilla added this pull request to the merge queue Sep 16, 2026
@Open-Squilla
Open-Squilla removed this pull request from the merge queue due to a manual request Sep 16, 2026
@Open-Squilla
Open-Squilla added this pull request to the merge queue Sep 16, 2026
@github-actions

Copy link
Copy Markdown

Merge queue CI: successrun 35111887283, attempt 1.
Tested queue candidate: 5033c9f012a76345cf252c8e9bc75a4aecfdf194. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@github-actions

Copy link
Copy Markdown

Merge queue CI: successrun 35114203534, attempt 1.
Tested queue candidate: 12c405a6eefca74d462cadca1132dee4dae0312a. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

@github-actions

Copy link
Copy Markdown

Merge queue CI: successrun 35119021168, attempt 1.
Tested queue candidate: 7ac8b378d48f022839f9bd06db99bb3d1f023e0e. This result belongs to that combined tree, not necessarily the PR's current head.

The run summary lists reused suites and executed checks. A green PR check alone does not mean queue validation has passed.

Merged via the queue into main with commit 7ac8b37 Sep 16, 2026
80 of 82 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant