Repository navigation
Persist unchanged recovery scan clocks through witnessed anchors #10
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Windows persistent recovery timing | |
| on: | |
| push: | |
| branches: | |
| - acceptance/context-recovery/** | |
| paths: | |
| - lib/proxy/context-recovery-anchor-wire.js | |
| - lib/proxy/context-recovery-anchor.js | |
| - test/context-recovery-anchor-wire.test.js | |
| - lib/proxy/context-recovery-anchor-contract.js | |
| - lib/proxy/context-recovery-anchor-admission.js | |
| - lib/proxy/context-recovery-storage-owner.js | |
| - test/context-recovery-anchor-clock.test.js | |
| - .github/workflows/windows-persistent-recovery-timing.yml | |
| - lib/proxy/context-recovery-read-settlement.js | |
| - lib/proxy/context-recovery-root-reader.js | |
| - lib/proxy/context-recovery-root-storage.js | |
| - lib/proxy/context-recovery-storage-sqlite.js | |
| - test/context-recovery-read-settlement.test.js | |
| - test/context-recovery-storage-blobs.test.js | |
| - test/context-recovery-codex-summary.test.js | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| jobs: | |
| core-wbipc: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| sample: [1, 2, 3] | |
| runs-on: windows-latest | |
| timeout-minutes: 15 | |
| defaults: | |
| run: | |
| shell: pwsh | |
| steps: | |
| - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2 | |
| with: | |
| persist-credentials: false | |
| - uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0 | |
| with: | |
| node-version: 22 | |
| cache: npm | |
| - name: Prepare locked source and native prerequisites | |
| run: | | |
| $ErrorActionPreference = 'Stop' | |
| npm ci | |
| if ($LASTEXITCODE -ne 0) { throw 'Dependency preparation failed.' } | |
| npm ci --prefix plugins/hpm-local-evidence --ignore-scripts | |
| if ($LASTEXITCODE -ne 0) { throw 'Fixture preparation failed.' } | |
| rustup default stable | |
| if ($LASTEXITCODE -ne 0) { throw 'Toolchain preparation failed.' } | |
| node scripts/prepare-context-recovery-native.js | |
| if ($LASTEXITCODE -ne 0) { throw 'Native preparation failed.' } | |
| node scripts/prepare-evidence-gateway.js | |
| if ($LASTEXITCODE -ne 0) { throw 'Gateway preparation failed.' } | |
| - name: Execute the complete original Core and WBIPC test file | |
| run: | | |
| $ErrorActionPreference = 'Stop' | |
| node --require ./test/helpers/physical-test-temp.cjs --test --test-concurrency=1 test/client-context-target.test.js test/context-recovery-codex-summary.test.js | |
| if ($LASTEXITCODE -ne 0) { throw 'Core or persistent recovery failed its original assertions.' } | |
| - name: Record the verification boundary | |
| if: always() | |
| run: | | |
| @( | |
| 'Three independent hosted runners, each executes both complete Core/WBIPC and Codex-summary files once; no test filtering or retries.' | |
| 'Original 5000 ms requests, native worker, DPAPI, OS anchor and durable acknowledgements are retained.' | |
| 'All upstreams are owned synthetic fixtures. No real model request is made.' | |
| 'This is an independent Windows diagnostic; complete Verify and formal Windows qualification remain required.' | |
| 'No credentials, original content, native replies or databases are uploaded.' | |
| ) >> $env:GITHUB_STEP_SUMMARY |