Repository navigation
Expand file tree
/
Copy pathwindows-persistent-io-coverage.yml
More file actions
184 lines (181 loc) · 9.09 KB
/
Copy pathwindows-persistent-io-coverage.yml
File metadata and controls
184 lines (181 loc) · 9.09 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
name: Windows coverage persistent I/O diagnostic
on:
push:
branches:
- acceptance/context-recovery/**
paths:
- lib/proxy/context-compaction-envelope.js
- lib/proxy/context-compaction-byte-budget.js
- lib/proxy/context-evidence-utf8.js
- test/context-compaction-envelope.test.js
- test/**
- scripts/run-unit-tests.js
- scripts/run-unit-test-shards.js
- lib/test-discovery.js
- lib/test-sharding.js
- lib/test-runtime.js
- package.json
- package-lock.json
- scripts/prepare-context-recovery-native.js
- lib/proxy/context-recovery-key-dpapi.js
- lib/proxy/context-recovery-key-contract.js
- 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
- lib/proxy/context-recovery-startup-sql-progress.js
- lib/proxy/context-recovery-storage-paths.js
- lib/proxy/context-recovery-private-path.js
- lib/proxy/private-path-native.js
- lib/proxy/secure-files.js
- lib/proxy/context-recovery-storage-progress.js
- lib/proxy/context-recovery-anchor-channel.js
- lib/proxy/context-recovery-anchor-protocol.js
- lib/proxy/context-recovery-storage-worker.js
- lib/proxy/context-recovery-storage.js
- lib/proxy/context-recovery-storage-inventory.js
- lib/proxy/context-recovery-storage-opening.js
- lib/proxy/context-recovery-root-storage.js
- lib/proxy/context-recovery-root-loading.js
- lib/proxy/context-recovery-sessions.js
- lib/proxy/context-recovery-storage-failure.js
- lib/proxy/context-recovery-storage-serial.js
- lib/proxy/context-recovery-storage-idle.js
- test/context-recovery-anchor-clock.test.js
- native/context-recovery-key/**
- test/helpers/recovery-owner-stage-probe.js
- test/helpers/recovery-anchor-stage-probe.js
- test/recovery-anchor-stage-probe.test.js
- test/recovery-owner-stage-probe.test.js
- .github/workflows/windows-persistent-io-coverage.yml
- scripts/capture-persistent-io-schema.ps1
- scripts/lib/persistent-io-schema*.psm1
- scripts/lib/persistent-io-schema-tdh*.cs
- scripts/lib/persistent-io-schema-tdh-child.ps1
- scripts/lib/persistent-io-schema-tests.cjs
- scripts/fixtures/persistent-io-schema.wprp
- scripts/check-persistent-io-capabilities.ps1
- scripts/lib/persistent-io-capabilities*.psm1
- scripts/capture-persistent-io.ps1
- scripts/check-coverage-io-receipt.cjs
- scripts/lib/coverage-io-capture.js
- scripts/lib/coverage-io-recorder-failure.js
- scripts/lib/coverage-io-windows.js
- scripts/lib/persistent-io-recording.psm1
- scripts/lib/persistent-io-binary.psm1
- scripts/lib/persistent-io-summary.js
- scripts/lib/persistent-io-association.js
- scripts/lib/persistent-io-association.psm1
- test/persistent-io-association.test.js
- test/persistent-io-association-powershell.test.js
- scripts/lib/persistent-io-windows.js
- test/persistent-io-windows.test.js
- scripts/lib/persistent-io-scheduling.js
- scripts/lib/persistent-io-scheduling.psm1
- test/persistent-io-scheduling.test.js
- scripts/lib/persistent-io-operation-summary.js
- test/persistent-io-operations.test.js
- scripts/summarize-persistent-io.cjs
- scripts/fixtures/persistent-file-io.wprp
- lib/proxy/context-recovery-read-settlement.js
- lib/proxy/context-recovery-storage-sqlite.js
- lib/proxy/context-recovery-storage-blobs.js
- test/context-recovery-read-settlement.test.js
- test/client-context-target.test.js
- test/coverage-io-capture.test.js
workflow_dispatch:
permissions:
contents: read
jobs:
minifilter-schema-discovery:
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: Verify the actual read-only schema host before dependencies
run: ./scripts/capture-persistent-io-schema.ps1 --preflight
- run: npm ci
- run: npm ci --prefix plugins/hpm-local-evidence --ignore-scripts
- run: node scripts/prepare-context-recovery-native.js
- name: Discover finite schemas during the original three complete test files
run: ./scripts/capture-persistent-io-schema.ps1
coverage-file-flush:
runs-on: windows-latest
timeout-minutes: 45
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 the original locked coverage 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.' }
- name: Execute complete original coverage commands with owned file recording windows
env:
HPM_COVERAGE_IO: ${{ github.sha }}
run: |
$ErrorActionPreference = 'Stop'
$PSNativeCommandUseErrorActionPreference = $false
if (Test-Path Env:\HPM_COVERAGE_IO_PROXY_WINDOW) { Remove-Item Env:\HPM_COVERAGE_IO_PROXY_WINDOW }
$env:HPM_COVERAGE_IO_STAGE = 'proxy'
$env:HPM_COVERAGE_IO_PROXY_WINDOW = 'native-publication-interruption'
npm run test:coverage
$coverageExit = $LASTEXITCODE
if ($coverageExit -ne 0) { [Console]::Error.WriteLine('coverage_original_stage_failed:stage=' + $env:HPM_COVERAGE_IO_STAGE) }
node scripts/check-coverage-io-receipt.cjs
if ($LASTEXITCODE -ne 0) { throw 'Coverage I/O observation was not completed safely.' }
if ($coverageExit -ne 0) { throw 'Original proxy coverage failed; I/O evidence does not override its failure.' }
Remove-Item Env:\HPM_COVERAGE_IO_PROXY_WINDOW
$env:HPM_COVERAGE_IO_STAGE = 'client'
npm run test:client:coverage
$coverageExit = $LASTEXITCODE
if ($coverageExit -ne 0) { [Console]::Error.WriteLine('coverage_original_stage_failed:stage=' + $env:HPM_COVERAGE_IO_STAGE) }
node scripts/check-coverage-io-receipt.cjs
if ($LASTEXITCODE -ne 0) { throw 'Client coverage I/O observation was not completed safely.' }
if ($coverageExit -ne 0) { throw 'Original client coverage failed; I/O evidence does not override its failure.' }
npm run test:frontend:coverage
if ($LASTEXITCODE -ne 0) { throw 'Original frontend coverage failed.' }
- name: Record the observation boundary
if: always()
run: |
@(
'Executes the complete original proxy, client and frontend coverage commands once each, in order, with original four-shard proxy coverage and all original assertions.'
'Proxy coverage selects exactly one complete native-publication-interruption file across the original four shards; client coverage retains serial client-context-target and publication-graceful-http windows. Selection changes recording ownership only; all native publication-interruption and other original tests retain their execution and assertions. A first observed fixture/request failure closes only its own recent ring window. No tests are filtered, retried or appended; a failed original stage still stops subsequent stages.'
'Original five-second HTTP and final durable ACK gates, worker, DPAPI, OS anchor and FULL/DELETE persistence remain unchanged.'
'WPR retains its own unique instance, 32 MiB circular buffers, bounded decoding and cleanup. Ring loss and tracing perturbation prevent completeness or stability qualification.'
'Read/write/info/delete/cleanup/close observations retain nonzero status counts; neither a VFS retry nor antivirus attribution is inferred.'
'All providers are synthetic. No raw ETL, decoded records, paths, keys, databases, originals or model replies are uploaded.'
) >> $env:GITHUB_STEP_SUMMARY
wpr-read-only-capabilities:
runs-on: windows-latest
timeout-minutes: 3
steps:
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
with:
persist-credentials: false
- name: Inspect existing WPR metadata without recording
shell: pwsh
run: ./scripts/check-persistent-io-capabilities.ps1