ReviewOS

also looking at this

stacks/drone

feat: continue unresolved runtime update maintenance

#59
Merged chris wants to merge codex/runtime-maintenance-continuations into main
21 files +1097 -40
.github/workflows/ci.ymlmodified+51-0
Changes to .github/workflows/ci.yml
@@ -43,9 +43,21 @@ jobs:
4343 if-no-files-found: ignore
4444 retention-days: 7
4545 path: ${{ runner.temp }}/runtime-host-file-limit-evidence
46 - name: Verify explicit maintenance handoff interruption and fresh-process recovery
47 env:
48 RUNTIME_MAINTENANCE_EVIDENCE: ${{ runner.temp }}/runtime-maintenance-evidence
49 run: bun test tests/unit/updates-maintenance-cuts.test.ts
50 - uses: actions/upload-artifact@v4
51 if: always()
52 with:
53 name: runtime-maintenance-evidence
54 if-no-files-found: ignore
55 retention-days: 7
56 path: ${{ runner.temp }}/runtime-maintenance-evidence
4657 - run: ./buddy test
4758 env:
4859 RUNTIME_HOST_FILE_LIMIT_EVIDENCE: ${{ runner.temp }}/runtime-host-file-limit-full-evidence
60 RUNTIME_MAINTENANCE_EVIDENCE: ${{ runner.temp }}/runtime-maintenance-full-evidence
4961 - uses: actions/upload-artifact@v4
5062 if: always()
5163 with:
@@ -53,6 +65,13 @@ jobs:
5365 if-no-files-found: ignore
5466 retention-days: 7
5567 path: ${{ runner.temp }}/runtime-host-file-limit-full-evidence
68 - uses: actions/upload-artifact@v4
69 if: always()
70 with:
71 name: runtime-maintenance-full-evidence
72 if-no-files-found: ignore
73 retention-days: 7
74 path: ${{ runner.temp }}/runtime-maintenance-full-evidence
5675 - run: bun run runtime:cli
5776 - name: Verify signed test-image staging through the portable CLI outside the checkout
5877 run: bun tests/fixtures/updates/qualify.ts "$RUNNER_TEMP/runtime-update-qualification" "$GITHUB_WORKSPACE/storage/runtime-build/cli/drone"
@@ -68,6 +87,18 @@ jobs:
6887 run: bun tests/fixtures/updates/qualify-candidates.ts "$RUNNER_TEMP/runtime-candidates-qualification" "$GITHUB_WORKSPACE/storage/runtime-build/cli/drone"
6988 - name: Verify host slots, observed health and interrupted recovery with a copied standalone CLI
7089 run: bun tests/fixtures/updates/qualify-host-slots.ts "$RUNNER_TEMP/runtime-host-slots-qualification" "$GITHUB_WORKSPACE/storage/runtime-build/cli/drone" "$GITHUB_WORKSPACE"
90 - name: Verify explicit maintenance and format-4 runtime health through a copied CLI
91 run: bun tests/fixtures/updates/qualify-maintenance.ts "$RUNNER_TEMP/runtime-maintenance-cli" "$GITHUB_WORKSPACE/storage/runtime-build/cli/drone"
92 - uses: actions/upload-artifact@v4
93 if: always()
94 with:
95 name: runtime-maintenance-cli-evidence
96 if-no-files-found: ignore
97 include-hidden-files: true
98 retention-days: 7
99 path: |
100 ${{ runner.temp }}/runtime-maintenance-cli
101 !${{ runner.temp }}/runtime-maintenance-cli/drone
71102 - uses: actions/upload-artifact@v4
72103 if: always()
73104 with:
@@ -434,6 +465,26 @@ jobs:
434465 - run: bun install --frozen-lockfile
435466 - run: cp .env.example .env
436467 - run: ./buddy key:generate
468 - name: Qualify actual ENOSPC and fresh runtime recovery in a private filesystem
469 shell: bash
470 run: |
471 set -euo pipefail
472 sudo --non-interactive env RUNTIME_HOST_ENOSPC_TEST=1 RUNTIME_HOST_ENOSPC_EVIDENCE="$RUNNER_TEMP/runtime-host-enospc" unshare --mount --propagation private --fork "$(command -v bun)" test ./tests/integration/runtime-host-storage.test.ts
473 - name: Make the owned filesystem campaign artifacts readable by the runner
474 if: always()
475 shell: bash
476 run: |
477 set -euo pipefail
478 if sudo --non-interactive test -d "$RUNNER_TEMP/runtime-host-enospc"; then
479 sudo --non-interactive chown -R --no-dereference "$(id -u):$(id -g)" "$RUNNER_TEMP/runtime-host-enospc"
480 fi
481 - uses: actions/upload-artifact@v4
482 if: always()
483 with:
484 name: runtime-host-enospc-evidence
485 if-no-files-found: ignore
486 retention-days: 7
487 path: ${{ runner.temp }}/runtime-host-enospc
437488 - name: Qualify accepted purge with real process and mount isolation
438489 run: sudo --non-interactive env PUBLIC_SAFETY_PURGE_NAMESPACE_TEST=1 unshare --fork --pid --mount-proc "$(command -v bun)" test ./tests/integration/public-safety-purge.test.ts
439490 firmware: