Repository navigation
fix(python): resume missing immutable portfolio artifacts safely - #1205
Conversation
|
2026-10-13 fail-closed release reconciliation Fresh state (06:31–06:32 UTC):
Fresh npm 10.8.2 production audit against lock SHA-256
Existing Dependabot PRs overlap exactly: #1129, #1127, #1102, #1130 and #1128. They are stale/UNSTABLE and must not be merged blindly or duplicated by overwriting their branches. #1129's npm-audit job proves the critical lock bump clears the current critical-only workflow gate, but it leaves the three high nodes and the workflow's stated Q3 2026 backlog deadline has passed. Release acceptance therefore requires one current-main npm-security owner to consolidate the fixes, reach zero current production audit findings (or obtain explicit authorized risk acceptance with compensating control/deadline), run affected workspace/packed-consumer tests, and pass every required hosted check. No generic |
|
Publication follow-through, 2026-10-13 11:28 UTC: head |
|
Release repair checkpoint (2026-10-13 11:42 UTC): head
Evidence and rollback: |
|
Automatic recovery supervisor started on October 13 at 12:33:40 UTC under the existing publication authorization. Owner: /root; this is now the sole merge/dispatch executor. No merge or upload has occurred. Reviewed head: Current gates: 85 successful checks, 7 expected conditional skips, 2 Rust shards still running in Workspace CI. Prior successful durations were about 62 minutes for the WASM shard and up to 76 minutes for heavy ML. All three recovery preflights and supply-chain audits pass. The supervisor polls every 10 minutes for up to four hours (deadline 16:33:40 UTC). It requires the full observed inventory of 94 checks and 12 workflows, all additional checks, review state and unchanged source identity. It performs at most one expected-head merge and one protected main recovery dispatch, reconciles uncertain responses without retry, and stops on failed gates or conflicting publishers. Only the known unchanged-version ordinary portfolio push is classified as nonpublishing. Publication success requires the recovery workflow's exact-file verification and all three fresh PyPI consumer jobs. Independent review and 24 mocked failure/reconciliation tests passed locally and on the execution host. Supervisor SHA-256: GitHub does not provide expected-base CAS for merge or expected-SHA CAS for main workflow dispatch. The supervisor checks immediately before and reconciles resulting tree/run identity afterward; this narrow service race remains a documented limitation. |
|
RuVector recovery supervisor evidence Owner: root |
|
RuVector recovery supervisor evidence Owner: root |
|
RuVector recovery supervisor evidence Owner: root |
|
October 14 verification update: this PR merged as Recovery run 38402061555 passed all three platform preflights and the frozen native audit, uploaded six additional wheels, then received PyPI HTTP 429, “Too many new projects created,” at ruvector-rvf. The supervisor stopped without retry. Fresh registry verification finds 8/22 original files with exact hashes/sizes and none yanked: attention, cluster, core, gnn, graph, rerank, router and ruvllm wheels at 0.2.0. Three wheels and all eleven sdists remain missing. Final post-publication platform jobs were skipped, not passed. Fresh Linux CPython 3.12.3 / native 0.1.3 verification: 38 unchanged contract tests, eight README quickstarts, pip check and the exact gist pass. pip-audit 2.10.1 reports zero known vulnerabilities across 43 installed dependencies, with no skipped distributions. Coverage limits and reproducible commands are in draft evidence PR #1218, head Existing gist updated, then fetched back and rerun successfully: https://gist.github.com/ruvnet/2491c7631bf3e186e815196f52fd8954 revision No active publisher found; no upload, rerun, supervisor or new package was started today. No applicable fixed reset time is established. The next owner must recheck ownership, exact missing files and release gates before protected recovery; do not blindly replay the stopped supervisor or evade the project-creation limit. |
The companion 0.2.0 release stopped after uploading attention and cluster wheels because PyPI returned HTTP 429 while creating the next project. Blind retries would collide with immutable files, and rebuilding current main would change the original native dependency from 0.1.3 to 0.1.4.
This PR safely resumes the 22 original artifacts from source
fccf36e9a76d35bce6750dfd3b25802cae3d683b, run 38169271248, artifact 11713787141. Archive SHA256:b4c92cae86c753305abef7aad395fdd9d91c7e84c3c887342defa7a3e4607241.Changes:
Validation and current state (2026-10-13):
3b37b41b8ebdf88c5556891ecaeb669d400526ae. CI: recovery 38391969695, supply-chain 38391969628, Workspace CI 38391969737. No merge, dispatch or upload has occurred. Two matching files and 20 missing files were last verified on PyPI.Evidence:
python/portfolio/evidence/2026-10-13-release-repair.mdplus prior frozen inventory/security records. Failed or pending gates stop promotion even where GitHub does not enforce them. No retry loop, skip-existing workaround, credential expansion or fabricated rate-limit cooldown is used.Rollback: stop the recovery workflow and revert this PR through review. Preserve original artifacts/receipts. Published files cannot be overwritten; any post-release failure requires stopping promotion and evaluating yanking or a separately reviewed patch version. New packages remain deferred until this backlog is delivered.