redweb 0.12.0 → 0.13.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +170 -9
- package/README.md +283 -629
- package/bin/redweb.js +11 -20
- package/client.d.ts +7 -2
- package/config/tsconfig.json +14 -14
- package/contract.d.ts +45 -0
- package/contract.js +5 -0
- package/docs/ACTION_INPUT_VERIFICATION.md +96 -0
- package/docs/ADMISSION_TIMEOUT_VERIFICATION.md +69 -0
- package/docs/AGENT_ACCESS.md +35 -0
- package/docs/AGENT_EVALUATION.md +58 -0
- package/docs/AGENT_READY_ACCEPTANCE.md +778 -0
- package/docs/APPLICATION_RECORDER_VERIFICATION.md +50 -0
- package/docs/BENCHMARK_VERIFICATION.md +307 -0
- package/docs/BROWSER_OWNER_VERIFICATION.md +191 -0
- package/docs/CLI.md +116 -0
- package/docs/CLIENT_DEVELOPMENT.md +152 -0
- package/docs/CLIENT_POLISH_VERIFICATION.md +282 -0
- package/docs/COVERAGE_COUNTER_VALIDATION.md +109 -0
- package/docs/COVERAGE_SCOPE_AUDIT.md +1183 -0
- package/docs/DEVELOPMENT.md +79 -0
- package/docs/DIAGNOSTIC_COMPATIBILITY.md +76 -0
- package/docs/DOCUMENTATION.md +37 -0
- package/docs/FEEDBACK_COMMAND_VERIFICATION.md +228 -0
- package/docs/GETTING_STARTED.md +58 -0
- package/docs/JSX_PERFORMANCE_VERIFICATION.md +59 -0
- package/docs/LIVE_HTML.md +169 -21
- package/docs/LIVE_HTML_LOAD_VERIFICATION.md +98 -0
- package/docs/MIGRATION.md +28 -0
- package/docs/MULTIPLAYER_OPERATIONS.md +26 -4
- package/docs/ORIGINAL_RECOVERY_VERIFICATION.md +100 -0
- package/docs/PACKAGED_EXAMPLE_VERIFICATION.md +126 -0
- package/docs/POLISH_RELEASE_CHECKPOINT.md +91 -0
- package/docs/PROCESS_CLEANUP_OBSERVATION.md +61 -0
- package/docs/PROCESS_REAPING_VERIFICATION.md +30 -0
- package/docs/PRODUCTION_READINESS.md +12 -2
- package/docs/RECOVERY_CLIENT_HEAP.md +201 -0
- package/docs/RECOVERY_CODE_ATTRIBUTION.md +174 -0
- package/docs/RECOVERY_CODE_CENSUS.md +158 -0
- package/docs/RECOVERY_COMPARISON.md +103 -0
- package/docs/RECOVERY_DEOPTIMIZATION.md +169 -0
- package/docs/RECOVERY_FOLLOWUP_SPIKE.md +147 -0
- package/docs/RECOVERY_INVESTIGATION.md +229 -0
- package/docs/RECOVERY_RUNTIME_CONTROLS.md +181 -0
- package/docs/RELEASE_TRUST.md +61 -0
- package/docs/ROOM_AUTHORIZATION.md +49 -0
- package/docs/RUNTIME_DIAGNOSTICS.md +78 -0
- package/docs/SERVER_RECOVERY_CANDIDATE.md +185 -0
- package/docs/SOAK_ROTATION_OBSERVATION.md +160 -0
- package/docs/SOAK_VERIFICATION.md +154 -0
- package/docs/SOCKET_CONTRACTS.md +39 -0
- package/docs/SPLIT_RECOVERY_COVERAGE.md +83 -0
- package/docs/SPLIT_RECOVERY_ERROR_HANDLING.md +67 -0
- package/docs/STARTER_COORDINATOR_VERIFICATION.md +112 -0
- package/docs/STARTER_LIFECYCLE_VERIFICATION.md +75 -0
- package/docs/STARTER_REPORT_RETENTION.md +73 -0
- package/docs/VERIFICATION_EVIDENCE.md +2 -0
- package/docs/generated.json +2154 -0
- package/docs/guides/chatroom.md +27 -0
- package/docs/guides/http-websocket.md +28 -0
- package/docs/guides/jsx-without-react.md +26 -0
- package/docs/guides/realtime-dashboard.md +29 -0
- package/docs/guides/typed-websockets.md +26 -0
- package/docs/reference.json +1207 -0
- package/docs/releases/0.13.0.json +2154 -0
- package/docs/releases/audit-0.13.0.json +1549 -0
- package/docs/snippets/room-access.tsx +51 -0
- package/docs/topics.json +21 -0
- package/examples/live-html/chatroom.js +207 -268
- package/examples/live-html/chatroom.tsx +167 -0
- package/examples/live-html/jsx-page.js +1 -1
- package/examples/live-html/jsx-page.tsx +1 -1
- package/examples/live-html/tsconfig.json +8 -7
- package/index.d.ts +170 -45
- package/index.js +2 -0
- package/jsx-dev-runtime.js +2 -2
- package/jsx-runtime.d.ts +7 -2
- package/package.json +88 -7
- package/recipes/add/artifact.test.cjs +57 -0
- package/recipes/add/live.tsx +18 -0
- package/recipes/add/socket-route.ts +24 -0
- package/recipes/chat/README.md +22 -0
- package/recipes/chat/app.test.cjs +105 -0
- package/recipes/chat/app.tsx +9 -0
- package/recipes/dashboard/README.md +43 -0
- package/recipes/dashboard/admin.ts +21 -0
- package/recipes/dashboard/app.css +16 -0
- package/recipes/dashboard/app.test.cjs +450 -0
- package/recipes/dashboard/app.tsx +86 -0
- package/recipes/dashboard/auth.ts +80 -0
- package/recipes/dashboard/cards.tsx +102 -0
- package/recipes/dashboard/rate-window.test.cjs +17 -0
- package/recipes/dashboard/store.ts +120 -0
- package/recipes/http-ws/README.md +11 -0
- package/recipes/http-ws/app.test.cjs +92 -0
- package/recipes/http-ws/app.tsx +36 -0
- package/recipes/realtime/README.md +8 -0
- package/recipes/realtime/app.test.cjs +15 -0
- package/recipes/realtime/app.tsx +28 -0
- package/recipes/shared/README.md +40 -0
- package/recipes/shared/app.css +8 -0
- package/recipes/shared/copy-assets.cjs +8 -0
- package/recipes/shared/network.cjs +59 -0
- package/recipes/shared/run-app.test.cjs +158 -0
- package/recipes/shared/run-app.ts +50 -0
- package/recipes/site/README.md +4 -0
- package/recipes/site/app.test.cjs +19 -0
- package/recipes/site/app.tsx +25 -0
- package/recipes/socket/README.md +39 -0
- package/recipes/socket/app.test.cjs +85 -0
- package/recipes/socket/app.tsx +30 -0
- package/recipes/socket/contract.ts +12 -0
- package/recipes/socket/handlers.ts +40 -0
- package/src/OwnedServerLifecycle.js +66 -0
- package/src/access/AccessPolicy.js +37 -0
- package/src/access/AuthenticationFailure.js +13 -0
- package/src/access/RequestFailure.js +33 -0
- package/src/access/failure-codes.json +25 -0
- package/src/async/BoundedOperation.js +62 -0
- package/src/cli/ActionReferences.js +193 -0
- package/src/cli/AdditionLayout.js +140 -0
- package/src/cli/FilePlan.js +94 -0
- package/src/cli/ProjectAddition.js +60 -0
- package/src/cli/ProjectConfig.js +26 -0
- package/src/cli/ProjectDoctor.js +112 -0
- package/src/cli/ProjectInitializer.js +20 -30
- package/src/cli/SourceInspector.js +207 -0
- package/src/cli/StaticSource.js +192 -0
- package/src/cli/arguments.js +62 -0
- package/src/cli/formatCommand.js +10 -0
- package/src/cli/run.js +57 -0
- package/src/cli/templates.js +86 -87
- package/src/context/RequestSnapshot.js +41 -0
- package/src/dataProperty.js +11 -0
- package/src/development/DevelopmentPageManager.js +48 -0
- package/src/development/Inspection.js +104 -0
- package/src/development/ObservedRenderer.js +42 -0
- package/src/development/description.js +35 -0
- package/src/development/loopbackRequest.js +27 -0
- package/src/development/refreshBrowser.js +96 -0
- package/src/development/refreshStyles.js +9 -0
- package/src/development/settings.js +17 -0
- package/src/docs/Documentation.js +182 -0
- package/src/htmx/ActionDefinition.js +44 -0
- package/src/htmx/Jsx.js +24 -8
- package/src/htmx/LiveHtmlServer.js +41 -19
- package/src/htmx/LivePage.js +63 -13
- package/src/htmx/PageIdentity.js +32 -0
- package/src/htmx/PageLifetime.js +37 -0
- package/src/htmx/PageManager.js +203 -74
- package/src/htmx/ReactiveRenderer.js +241 -0
- package/src/htmx/StaticExporter.js +1 -1
- package/src/htmx/TemplateRenderer.js +13 -7
- package/src/htmx/browserRuntime.js +2 -93
- package/src/htmx/metadata.js +19 -7
- package/src/validation/ActionInputError.js +12 -0
- package/src/validation/SchemaValidator.js +38 -0
- package/src/ws/AdmissionPolicy.js +24 -23
- package/src/ws/BaseSocketServer.js +53 -38
- package/src/ws/ContractValidationError.js +12 -0
- package/src/ws/HeartbeatMonitor.js +26 -8
- package/src/ws/ProtocolPolicy.js +1 -1
- package/src/ws/RoomAccess.js +82 -0
- package/src/ws/RoomRegistry.js +56 -6
- package/src/ws/RouteRuntime.js +56 -10
- package/src/ws/SocketContract.js +112 -0
- package/src/ws/SocketRoute.js +18 -0
- package/src/ws/protocol-schema.json +6 -1
- package/examples/live-html/chatroom.ts +0 -217
|
@@ -0,0 +1,1183 @@
|
|
|
1
|
+
# Coverage scope and remaining work
|
|
2
|
+
|
|
3
|
+
This inventory separates shipped authored code from verification machinery.
|
|
4
|
+
Passing behavior tests do not establish complete coverage; a coverage report's
|
|
5
|
+
instrumentation hash alone does not prove correspondence with current source.
|
|
6
|
+
No aggregate whole-repository 100% claim is made. This does not waive the open
|
|
7
|
+
coverage requirement in `AGENT_READY_ACCEPTANCE.md`.
|
|
8
|
+
|
|
9
|
+
Split-runner authored coverage is now complete in its maintained scope: 161
|
|
10
|
+
unit/native tests cover the original coordinator/worker plus policy/wrapper at
|
|
11
|
+
all-four 100% (457 statements / 170 branch outcomes / 86 functions / 388 lines).
|
|
12
|
+
Original-source maps are validated; synthetic units are not memory evidence.
|
|
13
|
+
The full Windows `df58f94` suite also passed, but that commit's Node 24 PR job
|
|
14
|
+
failed a soak delivery assertion. See `SPLIT_RECOVERY_COVERAGE.md` and
|
|
15
|
+
`SOAK_ROTATION_OBSERVATION.md`; source coverage does not waive this failure.
|
|
16
|
+
|
|
17
|
+
## Established scopes
|
|
18
|
+
|
|
19
|
+
### Original shared-process recovery verifier
|
|
20
|
+
|
|
21
|
+
`npm run verify:recovery:original:coverage` combines 28 explicit boundary units
|
|
22
|
+
with the existing 17-test verifier suite, including native CLI/socket/snapshot
|
|
23
|
+
checks. All 45 pass in 35.606s; authored scope is 112 statements / 71 branch
|
|
24
|
+
outcomes / 20 functions / 93 lines, all 100%. Units supply the source-matched
|
|
25
|
+
map; native child behavior is separate evidence, not instrumented coverage or
|
|
26
|
+
the full default memory workload. Equality regressions exposed a false rejection
|
|
27
|
+
at exactly 110%; exact integer-byte comparison fixes it without changing the
|
|
28
|
+
limit or any-cycle rule. The original diagnostic remains non-blocking and its
|
|
29
|
+
historical failures remain visible. See `ORIGINAL_RECOVERY_VERIFICATION.md` for
|
|
30
|
+
baseline failures, hashes, full-suite failures and the real session-test repair.
|
|
31
|
+
|
|
32
|
+
### Frozen Live HTML browser tool
|
|
33
|
+
|
|
34
|
+
`npm run verify:live-html:browser:coverage` runs the unchanged full Live HTML
|
|
35
|
+
browser CLI plus separate process/CDP/application boundary units. Its CI step
|
|
36
|
+
replaces the existing plain browser invocation rather than adding a duplicate
|
|
37
|
+
workload at that step. CI attempts to upload available coverage/native artifacts
|
|
38
|
+
even after failure; `full-native.log` is published only after native success and
|
|
39
|
+
validation. Failed commands retain their outer workspace and report diagnostics
|
|
40
|
+
in test/job output, but that temporary directory is not part of the CI artifact.
|
|
41
|
+
The native test uses real APIs, HTTP/WebSockets and Chromium with
|
|
42
|
+
original-filename in-memory instrumentation; it requires successful command
|
|
43
|
+
completion, the exact workload banner, and absence of known owned profile and
|
|
44
|
+
dashboard-workspace directories. Unexpected command, oracle or coverage failures
|
|
45
|
+
retain the outer workspace. The source and every statement/function/branch map
|
|
46
|
+
are checked against the unchanged original. No frozen file or timing limit was
|
|
47
|
+
edited; the test's outer command timeout is 180 seconds.
|
|
48
|
+
|
|
49
|
+
The first native run passed its behavior test in 26.790s (25,909ms workload) but
|
|
50
|
+
correctly failed coverage: 85.41% statements / 54.65% branches / 85.10% functions /
|
|
51
|
+
94.32% lines. That partial map is retained, not overwritten by a passing claim.
|
|
52
|
+
The final maintained run passed **52 tests in 27.384s** on Windows Node 22.21.0:
|
|
53
|
+
one full native workload and 51 explicit unit cases. The complete authored scope
|
|
54
|
+
is **336 statements / 86 branch outcomes / 47 functions / 282 lines, all 100%**.
|
|
55
|
+
Actual Windows Node 18.20.8 also passed the 51 units in 1.671s with the same scope
|
|
56
|
+
at 100%; the native test was explicitly skipped using the dashboard's canonical
|
|
57
|
+
Node engine requirement. That skip is not native browser/dashboard acceptance.
|
|
58
|
+
|
|
59
|
+
The unit harness deliberately does not implement a fake DOM: observations are
|
|
60
|
+
synthetic values used to check specific host errors. It uses one reusable
|
|
61
|
+
boundary class, a controlled clock, owned real files and original-source VM
|
|
62
|
+
instrumentation. Tests cover all failed observation assertions, listener and
|
|
63
|
+
HTTP/socket/CDP errors, launch retries/deadlines, transient and permanent profile
|
|
64
|
+
contention, cleanup aggregation, and generated eventual-expression behavior.
|
|
65
|
+
Embedded browser-string execution is not a hidden part of the authored Node
|
|
66
|
+
coverage denominator; the separate native workload remains necessary.
|
|
67
|
+
|
|
68
|
+
Independent review found no new test defects and verified all 47 authored
|
|
69
|
+
functions and exact map correspondence. Tests also characterize these existing
|
|
70
|
+
frozen-tool limitations; covering them does **not** fix them:
|
|
71
|
+
|
|
72
|
+
- Servers are acquired before the main cleanup boundary; partial startup can
|
|
73
|
+
leave earlier acquisitions and the profile behind.
|
|
74
|
+
- Synchronous socket close, browser stop or shutdown errors can skip later
|
|
75
|
+
cleanup and replace a primary error. Rejected shutdown promises are ignored.
|
|
76
|
+
- Browser stop can resolve after both waits without confirming exit. Native CLI
|
|
77
|
+
exit and absent directories are not independent proof of descendant cleanup.
|
|
78
|
+
- Partially opened pages are not closed on errors; pending CDP commands do not
|
|
79
|
+
reject on socket closure. HTTP/socket/CDP waits lack internal deadlines; the
|
|
80
|
+
outer test timeout does not repair them.
|
|
81
|
+
- Falsy thrown values can disappear. The success banner precedes cleanup, which
|
|
82
|
+
is why the native test also requires successful command completion.
|
|
83
|
+
|
|
84
|
+
These are source-derived, explicitly simulated counterexamples—not observed
|
|
85
|
+
failures of the native run or changes to the newer coordinator's independently
|
|
86
|
+
tested guarantees. Frozen code stays untouched.
|
|
87
|
+
|
|
88
|
+
Retained evidence under `coverage/frozen-live-browser-evidence/`:
|
|
89
|
+
|
|
90
|
+
| File | SHA-256 |
|
|
91
|
+
| --- | --- |
|
|
92
|
+
| `coverage-final.json` | `d3aa367c929498d6297f8fce2ad3c538529c94cfe6eb271095dd3f67fb435162` |
|
|
93
|
+
| `full-native.log` | `65e21284bbb593f7c09e7b7bcff89f937cbe5f58e3d8b80dd9b31c54f6b72c2d` |
|
|
94
|
+
| `baseline-coverage.json` | `f106ee7ed870500338560541793d6e2efdd34a7193ec9edda00726ef0dc4939f` |
|
|
95
|
+
|
|
96
|
+
The frozen source LF-normalized SHA-256 is
|
|
97
|
+
`3159843a23e11cacf83f84631c4697388badd182908864881cb86d9a028057e4`.
|
|
98
|
+
This closes the last enumerated frozen-tool direct-map gap, not whole-repository
|
|
99
|
+
coverage, the default throughput failure, original Linux cleanup observation,
|
|
100
|
+
client diagnostics, final release verification or public package/site alignment.
|
|
101
|
+
|
|
102
|
+
### Frozen browser evaluator
|
|
103
|
+
|
|
104
|
+
`verify:evaluation:controls:coverage` now measures both `validate.js` and
|
|
105
|
+
`verify.js` in one maintained gate. The shared test-only `FrozenCoverage` helper
|
|
106
|
+
accepts multiple selected original filenames, requires exactly one native CLI
|
|
107
|
+
coverage record, verifies every selected source/map and merges only explicitly
|
|
108
|
+
requested scopes. Preparation, trial and sealing tests retain single-file use;
|
|
109
|
+
no frozen source, checker identity or sealed evaluation record is rewritten.
|
|
110
|
+
|
|
111
|
+
The original eleven-case real Windows browser matrix is reused once. Four new
|
|
112
|
+
native CLI cases exercise actual npm builds, startup parsing/exit, invalid URLs,
|
|
113
|
+
and HTTP rejection. Recorded application PIDs must become absent without a
|
|
114
|
+
second signal; saved reports must match CLI output and contain no additional
|
|
115
|
+
cleanup failure or remaining profile. On Windows, the HTTP case specifically
|
|
116
|
+
requires the actual 404-versus-200 assertion in both the report and failed check,
|
|
117
|
+
with no acquired browser tabs. Elsewhere, it requires the exact unsupported
|
|
118
|
+
interface refusal. Independent review identified why accepting any failure at
|
|
119
|
+
the same check could conceal a different network failure; the stricter oracle
|
|
120
|
+
does not relabel such a failure passing. Unexpected outcomes preserve the
|
|
121
|
+
original captured command error and outer workspace.
|
|
122
|
+
|
|
123
|
+
Twenty-three explicit VM units supply browser/process boundaries and a controlled
|
|
124
|
+
clock, using real owned files. They are not browser or process integration
|
|
125
|
+
evidence. They cover handshake/data-stream deadlines, interception failure,
|
|
126
|
+
startup/build/CLI paths, listener rejection, independent cleanup attempts,
|
|
127
|
+
aggregate causes, optional reports, and standalone room inspection. The
|
|
128
|
+
high-volume event case verifies 30,030 received-event counts and exercises the
|
|
129
|
+
private buffer's saturation path; it does not directly measure that hidden
|
|
130
|
+
buffer's size. The original native assertions and timing limits are unchanged.
|
|
131
|
+
|
|
132
|
+
The initial 25-test native/existing-unit selection passed in 67.037s but correctly
|
|
133
|
+
failed coverage: evaluator 91.56% statements / 66.66% branches / 90.24% functions /
|
|
134
|
+
94.82% lines. The first 23 new units passed in 2.906s but still missed failed CLI
|
|
135
|
+
exit status (99.57/98.24/100/100). The four native failure cases completed that
|
|
136
|
+
path; the focused 27-test run passed in 7.894s. Full maintained evidence is
|
|
137
|
+
recorded below; these intermediate results are not whole-release acceptance.
|
|
138
|
+
|
|
139
|
+
The final unchanged-input maintained run passed 44 tests in 67.556s on Windows /
|
|
140
|
+
Node 22.21.0: five native CLI tests (one executes the eleven original controls)
|
|
141
|
+
and 39 explicit boundary units. Evaluator coverage is 237 statements / 57 branch
|
|
142
|
+
outcomes / 41 functions / 174 lines, all 100%; combined with the validator it is
|
|
143
|
+
261/71/45/193, also all 100%. The real control matrix took 59,742ms.
|
|
144
|
+
Retained evidence under `coverage/frozen-evaluator-evidence/`:
|
|
145
|
+
|
|
146
|
+
| File | SHA-256 |
|
|
147
|
+
| --- | --- |
|
|
148
|
+
| `coverage-final.json` | `6ea227a33425b26ea1d15552c84784153277cc2c6499cc471838cba6799f063b` |
|
|
149
|
+
| `native-control-report.json` | `d49e012a6a5756aa1d39e3c713bd23c9195a6e20430a084b091898532a97d2aa` |
|
|
150
|
+
| `frozen-evaluator-native/build-failure.json` | `96461915fb820bc1c53c0a773e5800937d9e8c2f1454f80134b2035ed2de60a5` |
|
|
151
|
+
| `frozen-evaluator-native/http-rejection.json` | `8b2ca9e78a6a79fbf9aa85780bdef64f33da131f4fa04b214bdf6625c6b85ae0` |
|
|
152
|
+
| `frozen-evaluator-native/invalid-url.json` | `ad03ab76518f7e05d4b4a8af16f9a0e7cf8ed3c2164a601e33ce42f7e815f8fc` |
|
|
153
|
+
| `frozen-evaluator-native/startup-exit.json` | `877ad0b31df0685cb2bd3de5565fcda737cdadfb94af52c3f079a45b36d05406` |
|
|
154
|
+
|
|
155
|
+
The unchanged evaluator's LF-normalized source SHA-256 is
|
|
156
|
+
`9008136ae8c7e29b5e05ca06247d84bc6721827abf534ab762dd52ba6aa81b53`;
|
|
157
|
+
validator identity remains the one recorded below. CI preserves the combined map
|
|
158
|
+
and native CLI reports separately from the other verifier scopes. Windows
|
|
159
|
+
evidence does not establish native Linux browser acceptance or resolve the
|
|
160
|
+
historical cleanup observation, throughput failure, or remaining release gates.
|
|
161
|
+
|
|
162
|
+
Single-file helper regressions also passed: preparation five tests in 13.119s;
|
|
163
|
+
process/sealing 40 tests with one skip in 7.986s; trial runner 23 tests in 9.996s.
|
|
164
|
+
Their copies in the same evidence directory are `preparation-regression.json`,
|
|
165
|
+
`process-seal-regression.json`, and `trial-regression.json`. All retain the exact
|
|
166
|
+
100% map hashes recorded in their individual sections below; the multi-file
|
|
167
|
+
helper refactor did not change those measured scopes.
|
|
168
|
+
|
|
169
|
+
### Frozen control validator
|
|
170
|
+
|
|
171
|
+
The validator-only `c4679a5` run of `verify:evaluation:controls:coverage` checked
|
|
172
|
+
the unchanged validator with one native CLI test and sixteen explicit
|
|
173
|
+
verifier-result/reporting-oracle units; the combined gate above retains them.
|
|
174
|
+
On Windows the native test executes all eleven original controls: four working
|
|
175
|
+
variants pass every browser check; seven deliberately broken variants fail at
|
|
176
|
+
their expected check. Actual HTTP/WebSockets, ephemeral interface inspection,
|
|
177
|
+
Chromium processes and filesystem operations are not mocked. Successful variants
|
|
178
|
+
require three browser versions and no unrun checks; all outcomes require no
|
|
179
|
+
additional cleanup errors or aggregate causes and no leftover owned profile.
|
|
180
|
+
This is evaluator validation, not a packed Redweb release or a new agent trial.
|
|
181
|
+
|
|
182
|
+
Elsewhere, the native test requires an ordinary CLI exit 1 with the exact
|
|
183
|
+
structured unsupported-interface refusal and failed loopback check. It does not
|
|
184
|
+
claim browser acceptance on Linux. Independent review found that matching only
|
|
185
|
+
the unsupported-platform message could accept a supervisor timeout or additional
|
|
186
|
+
cleanup failure. The stricter oracle rejects those outcomes and preserves the
|
|
187
|
+
original command error, including its captured stderr, alongside the assertion
|
|
188
|
+
failure. Unit regressions require that exact error identity. Unexpected native
|
|
189
|
+
failures conservatively retain the outer workspace, even if the frozen validator
|
|
190
|
+
failed before creating its final report. These are source-derived oracle
|
|
191
|
+
corrections, not observations of a native timeout or cleanup failure.
|
|
192
|
+
|
|
193
|
+
Boundary units separately cover import/CLI execution, optional report output,
|
|
194
|
+
the complete ordered matrix, verifier rejection, wrong pass/check results,
|
|
195
|
+
cleanup uncertainty, missing browser identity, and an actual existing report
|
|
196
|
+
that must remain byte-identical after `EEXIST`. Their supplied verifier results
|
|
197
|
+
are explicitly not browser evidence. A shared test-only outcome table keeps the
|
|
198
|
+
native and boundary assertions consistent without modifying the frozen control
|
|
199
|
+
matrix. Test infrastructure is not silently included in the library denominator.
|
|
200
|
+
|
|
201
|
+
Authored validator scope is 24 statements / 14 branch outcomes / four functions /
|
|
202
|
+
19 lines, all 100%. The final unchanged-input maintained run passed all 17 tests
|
|
203
|
+
in 60.969s on Windows / Node 22.21.0 / Chrome 152.0.7977.64. Its eleven native
|
|
204
|
+
controls took 59,549ms in total. Retained map
|
|
205
|
+
`coverage/frozen-controls-evidence/coverage-final.json` has SHA-256
|
|
206
|
+
`65e9475ba8a17ba6c0fbc2c20206a488b58c5f8da8043d4a200aa8f98588f4ae`;
|
|
207
|
+
native report `coverage/frozen-controls-evidence/native-control-report.json`
|
|
208
|
+
has SHA-256
|
|
209
|
+
`66106142dee8b9b54e6ab87cad4afa9bfb6e26a6d210e19c42aca2f549427f5c`.
|
|
210
|
+
The unchanged validator's LF-normalized source SHA-256 is
|
|
211
|
+
`ae50f008dce0dd72533c07eb0cb9b6ffb71055263acc992423af667bb0126955`.
|
|
212
|
+
CI bounds and retains this map separately; native Linux behavior remains subject
|
|
213
|
+
to its actual CI result, not inferred from the local Windows run.
|
|
214
|
+
|
|
215
|
+
The initial nine-test run passed in 60.921s before additional
|
|
216
|
+
immutable-report and stricter refusal-oracle units were added. Remaining frozen
|
|
217
|
+
Live HTML browser coverage and broader release obligations stay open; the
|
|
218
|
+
evaluator's previously open scope is now covered by the combined gate above.
|
|
219
|
+
|
|
220
|
+
### Frozen trial runner
|
|
221
|
+
|
|
222
|
+
`verify:evaluation:trial:coverage` passed 21 tests in 10.367s on Windows /
|
|
223
|
+
Node 22.21.0: seven existing real archive/file-lock checks, four real CLI checks,
|
|
224
|
+
five explicit copy/verifier/cleanup boundary units and five filesystem-backed
|
|
225
|
+
outer-wrapper retention units. The successful CLI case executes the unchanged
|
|
226
|
+
evaluator control using real HTTP/WebSockets and three actual Chromium profiles,
|
|
227
|
+
requiring all ten checks, no unrun checks, matching compiled/input hashes and
|
|
228
|
+
normal execution-directory removal. Its synthetic candidate archive is a
|
|
229
|
+
checker fixture, not an actual packed Redweb release or independently authored
|
|
230
|
+
agent submission. The frozen control's protocol code is copied unchanged.
|
|
231
|
+
|
|
232
|
+
Other native cases require failed npm build status, detection of build-time
|
|
233
|
+
source mutation, and rejection of altered installed bytes before result creation.
|
|
234
|
+
No compiler/process/filesystem/browser/transport APIs are mocked in these native
|
|
235
|
+
tests. Windows-only browser/interface and exclusive-file-lock cases are skipped
|
|
236
|
+
elsewhere; the remaining 19 cases cover the same authored runner scope, with
|
|
237
|
+
boundary units explicitly supplying unavailable platform faults and CLI success.
|
|
238
|
+
Linux CI remains the authority for native Linux execution, not the Windows result.
|
|
239
|
+
|
|
240
|
+
Authored coverage is 66 statements / 14 branch outcomes / six functions / 53
|
|
241
|
+
lines, all 100%. The initial eleven native checks passed but coverage failed at
|
|
242
|
+
98.48/92.85/100/98.11; missing catch/retention paths were not relabelled complete.
|
|
243
|
+
Retained map `coverage/frozen-trial-evidence/coverage-final.json` has SHA-256
|
|
244
|
+
`a7d323126b4eb8ebab4cf131856a9143fa014162fe0f82740c05f8331708cc42`;
|
|
245
|
+
unchanged LF-normalized source SHA-256
|
|
246
|
+
`9be48fe5153e505e112467bdfbc87b18da539ade5f1bf4b359fc6e600dad7e35`.
|
|
247
|
+
|
|
248
|
+
Independent review found a source-derived test-wrapper failure: an ordinary CLI
|
|
249
|
+
rejection could let its outer owner delete a deliberately retained execution.
|
|
250
|
+
The shared fixture helper now preserves that owner for recorded cleanup errors,
|
|
251
|
+
retained/unrecorded execution directories or unreadable evidence. Original CLI
|
|
252
|
+
errors survive report-read failures. Actual-filesystem regressions assert this
|
|
253
|
+
before their explicit file-only rescue; this was not an observed native cleanup
|
|
254
|
+
failure. No frozen implementation was changed. Shared fixture extraction keeps
|
|
255
|
+
the existing archive inputs unchanged and is test infrastructure, not silently
|
|
256
|
+
part of the library denominator. Process/sealing regression passed 40 tests with
|
|
257
|
+
one skip in 7.652s; its retained map
|
|
258
|
+
`coverage/frozen-trial-evidence/process-seal-regression.json` remains SHA-256
|
|
259
|
+
`cea882c6209d0dc9c03a28140ce81038cfbd613628ec3a04a8900c487d7f8b75`.
|
|
260
|
+
CI bounds and preserves this runner map separately; historical trial records,
|
|
261
|
+
remaining verifiers and broader release requirements remain untouched.
|
|
262
|
+
|
|
263
|
+
Trial-wrapper follow-up: the evaluator routes browser/profile cleanup failures
|
|
264
|
+
through `error` and sometimes `causes`, not application `cleanupError`. Therefore
|
|
265
|
+
the frozen runner can remove its execution directory while its browser profile
|
|
266
|
+
remains. Two new filesystem regressions failed on the original wrapper, both
|
|
267
|
+
with an error/causes report and without any report. The leftover-directory guard
|
|
268
|
+
now also recognizes `framework-acceptance-browser-*`; it preserves the original
|
|
269
|
+
CLI error and profile bytes without classifying message text. All 23 maintained
|
|
270
|
+
tests pass in 9.559s, retaining the identical runner map above. The two added
|
|
271
|
+
tests are file-only wrapper units, not observations of a native browser failure.
|
|
272
|
+
Frozen cleanup behavior and historical evaluations are unchanged.
|
|
273
|
+
|
|
274
|
+
### Frozen candidate preparation
|
|
275
|
+
|
|
276
|
+
`verify:evaluation:prepare:coverage` passed five tests in 12.289s on Windows /
|
|
277
|
+
Node 22.21.0. Two native tests use actual npm/tar/git execution: plain and
|
|
278
|
+
in-memory-instrumented CLI runs must produce matching archive, catalogue and
|
|
279
|
+
commit identities; a failed launch from an absent source directory must not
|
|
280
|
+
create a success manifest. Assertions verify emitted/on-disk manifest parity,
|
|
281
|
+
actual byte hashes, host metadata and empty trial directories. Temporary
|
|
282
|
+
artifacts are confined to the test's owned directory and removed afterward.
|
|
283
|
+
Frozen failed-preparation retention is not silently redefined as tool cleanup.
|
|
284
|
+
Three explicit subprocess-result units verify error/stderr/stdout precedence
|
|
285
|
+
and POSIX launch options; they are not native fault simulations.
|
|
286
|
+
|
|
287
|
+
The unchanged source covers 25 statements / eight branch outcomes / three
|
|
288
|
+
functions / 21 lines at 100%, including all three independently inventoried
|
|
289
|
+
functions. The previous existing-test baseline measured preparation at zero;
|
|
290
|
+
behavior-only success did not establish this scope. Retained map
|
|
291
|
+
`coverage/frozen-prepare-evidence/coverage-final.json` has SHA-256
|
|
292
|
+
`045d8055f326a8c9252426698bf12cbdc194e34856b856532b9d877377f520d1`;
|
|
293
|
+
unchanged LF-normalized source SHA-256
|
|
294
|
+
`9647fad32399076f10e5bafa29d65d9837f7f9066b82b3b989642ceb63d05106`.
|
|
295
|
+
|
|
296
|
+
The small `FrozenCoverage` test helper extracts the sealing test's existing
|
|
297
|
+
original-filename instrumentation, source-identity checks and exact map-shape
|
|
298
|
+
validation. It is test infrastructure, not silently included in the library
|
|
299
|
+
denominator. The maintained process/sealing regression passed 40 tests with one
|
|
300
|
+
skip in 8.054s; its complete map remains byte-identical, retained as
|
|
301
|
+
`coverage/frozen-prepare-evidence/process-seal-regression.json`, SHA-256
|
|
302
|
+
`cea882c6209d0dc9c03a28140ce81038cfbd613628ec3a04a8900c487d7f8b75`.
|
|
303
|
+
CI bounds and preserves the preparation map separately. No frozen source,
|
|
304
|
+
sealed evaluation, publication, new agent trial or acceptance limit changed.
|
|
305
|
+
|
|
306
|
+
### Explicit zero-budget page shutdown
|
|
307
|
+
|
|
308
|
+
The b2ca53a PR Node 18 [job](https://github.com/lakam99/redweb/actions/runs/33416866879/job/99569507960)
|
|
309
|
+
passed 1,770 tests with ten skips, but failed aggregate coverage at
|
|
310
|
+
99.92/99.97/99.89/99.91. Missing PageManager lines 532–534 and 540 identify render
|
|
311
|
+
drain timeout/reporting and outstanding render-page disposal. The existing native
|
|
312
|
+
test gives shutdown and aborted-render cleanup competing 20ms deadlines; either
|
|
313
|
+
can finish first. That explains a plausible coverage race, not proof of the
|
|
314
|
+
historical run's precise timer order or a runtime shutdown defect.
|
|
315
|
+
|
|
316
|
+
A focused unit uses real PageManager/LivePage ownership and controlled application
|
|
317
|
+
promises, with no timer/API mocks. Zero shutdown budget requires both timeout
|
|
318
|
+
causes and empty registries; application promises are released afterward. The
|
|
319
|
+
real-HTTP test now covers both zero and the existing 20ms budget, requiring the
|
|
320
|
+
nested render-timeout cause only for zero. Runtime source and limits are unchanged.
|
|
321
|
+
|
|
322
|
+
The full focused selection (all `tests/htmx`, `tests/unit/page-access.unit.test.js`,
|
|
323
|
+
and the page-access, live-html, reactive and runtime-diagnostics integration files)
|
|
324
|
+
passed 125 tests on Windows Node 18.20.8 in 11.199s and Node 22.21.0 in 10.285s.
|
|
325
|
+
PageManager covers 462 statements / 303 branches / 87 functions / 372 lines, all
|
|
326
|
+
100%. Both `coverage/page-shutdown-complete-node18/coverage-final.json` and
|
|
327
|
+
`coverage/page-shutdown-complete-node22/coverage-final.json` have SHA-256
|
|
328
|
+
`0e2653a6978178246aa8a73cefb1f5465bdd97713a93f034281fa9865335b344`;
|
|
329
|
+
unchanged LF-normalized source SHA-256
|
|
330
|
+
`8917ac1cb84cc6b5535c6aee95990842e374db06cb033e4d69e2a57ce3d47520`.
|
|
331
|
+
Earlier 38-test and 90-test partial selections passed behavior but failed coverage
|
|
332
|
+
because they omitted other existing PageManager paths; they are not acceptance
|
|
333
|
+
runs. The new tests are included by ordinary full-suite discovery. CI confirmation
|
|
334
|
+
and the broader release conjunction remain separate; no historical failure is erased.
|
|
335
|
+
|
|
336
|
+
### Isolated browser harness dependency correction
|
|
337
|
+
|
|
338
|
+
Both 665be56 workflows failed ([PR](https://github.com/lakam99/redweb/actions/runs/33415303095),
|
|
339
|
+
[push](https://github.com/lakam99/redweb/actions/runs/33415299477)). PR Node 22/24
|
|
340
|
+
and lifecycle logs identify `Cannot find module './lib/finishVerificationSummary'`:
|
|
341
|
+
the browser coordinator gained a shared dependency absent from the explicit
|
|
342
|
+
copied harness. Local browser-only success did not exercise that copy boundary.
|
|
343
|
+
b2ca53a also contains that omission; its earlier tool-coverage result is not a
|
|
344
|
+
passing isolated-package result.
|
|
345
|
+
|
|
346
|
+
The correction adds the unchanged helper to the copied set (26 to 27 files).
|
|
347
|
+
A TypeScript AST-based unit regression resolves every literal relative import
|
|
348
|
+
into `scripts/` or `tests/` from the real copied files and requires membership
|
|
349
|
+
in the fingerprinted input set. It fails on the preceding list. It does not
|
|
350
|
+
claim dynamic-import completeness or turn synthetic runtime-resolution fixtures
|
|
351
|
+
into integration tests. All 12 harness units pass in 1.483s, covering 53 statements,
|
|
352
|
+
11 branch outcomes, nine functions and 49 lines at 100%; the existing maintained
|
|
353
|
+
`verify:package:tools` command already includes this file and test selection.
|
|
354
|
+
|
|
355
|
+
The full `verify:package:coordinator:coverage` rerun passed 71 tests in 266.225s
|
|
356
|
+
on Windows / Node 22.21.0: the actual isolated package/registry-client workflow,
|
|
357
|
+
two real listener-cleanup cases and 68 explicit unit/filesystem cases. Normal TLS
|
|
358
|
+
verification used the system CA store; the environment override was restored.
|
|
359
|
+
Coordinator 173/69/12/162 and report helper 21/6/3/16 remain all-four 100%.
|
|
360
|
+
The owned temporary package workspace was removed normally. Runtime coverage
|
|
361
|
+
426/262/64/351 and refresh coverage 82/44/12/71 are complete; both refresh modes
|
|
362
|
+
observed actual back-forward-cache restoration. Real counter/chat, reconnect,
|
|
363
|
+
disconnect, authenticated dashboard and source-free generated applications passed.
|
|
364
|
+
|
|
365
|
+
Retained evidence:
|
|
366
|
+
|
|
367
|
+
- `coverage/package-harness-correction/harness-coverage.json`, SHA-256
|
|
368
|
+
`c5b127f32a3bd382328e157e51b249871c9850db2d9d7af278c7a61be1e8cccc`.
|
|
369
|
+
- `coverage/package-harness-correction/package-coverage.json`, SHA-256
|
|
370
|
+
`199e25f0d8f67c35119dbcd86e227ba6dace836aea14fe29e8d4f20d99791faa`.
|
|
371
|
+
- `coverage/packed-browser/2d7c8451-791e-4f36-9513-43f6fe67df54/report.json`, SHA-256
|
|
372
|
+
`7598586fece41f5ae55f187932ad25a281cae6361259681d22629b5c26901552`.
|
|
373
|
+
- Packed archive SHA-256
|
|
374
|
+
`c21f55ab86f74970a5cca9d4a93953e99d50ba17658e592b408807664c361f12`;
|
|
375
|
+
211 package files / 27 unchanged harness inputs, registry client 0.2.0 without
|
|
376
|
+
candidate override. The archive predates this evidence/documentation update,
|
|
377
|
+
and the browser report is phase-specific, not a transcript of the whole gate.
|
|
378
|
+
|
|
379
|
+
Independent review approved the dependency correction and regression boundary.
|
|
380
|
+
Original throughput/client/Linux-cleanup diagnostics remain open. No new hour
|
|
381
|
+
soak, publication, deployment, merge or whole-repository 100% is claimed.
|
|
382
|
+
|
|
383
|
+
### Frozen evaluation process and sealing tools
|
|
384
|
+
|
|
385
|
+
`npm run verify:evaluation:process:coverage` measures the existing process and
|
|
386
|
+
sealing implementations without rewriting either source or any sealed evaluation.
|
|
387
|
+
The final Windows / Node 22.21.0 selection passed 40 tests with one platform skip
|
|
388
|
+
in 7.634 seconds: 23 explicit OS/process-boundary units and 17 real process,
|
|
389
|
+
filesystem/archive, CLI and listener checks. The existing 15 tests had passed
|
|
390
|
+
behavior but measured only 84% statements, 59.37% branches, 100% functions and
|
|
391
|
+
91.07% lines; that baseline coverage command failed and remains distinct.
|
|
392
|
+
|
|
393
|
+
Both authored files now have all-four 100%: process 52 statements / 25 branch
|
|
394
|
+
outcomes / 12 functions / 36 lines; seal 23 / 7 / 7 / 20. The reviewer independently
|
|
395
|
+
matched all 19 AST functions and complete map inventories to unchanged source,
|
|
396
|
+
with no coverage-ignore directives. The maintained command repeats the tested
|
|
397
|
+
selection; CI retains its map separately from actual agent-evaluation results.
|
|
398
|
+
|
|
399
|
+
A small test-only CommonJS preload substitutes instrumented source in memory,
|
|
400
|
+
preserving the real CLI filename, `require.main`, dependency resolution and
|
|
401
|
+
filesystem paths. The native sealing test checks that recorded checker identity
|
|
402
|
+
matches the original file, validates the emitted map's original-source locations,
|
|
403
|
+
and proves a second invocation cannot overwrite the first seal. Its synthetic
|
|
404
|
+
archive is only byte-sealing input, not a valid npm package or new agent trial.
|
|
405
|
+
The test loader is test infrastructure, not silently part of the library scope.
|
|
406
|
+
Native interface inspection runs only on Windows; other platforms check explicit
|
|
407
|
+
rejection. Platform-boundary doubles are not claims of native cross-platform faults.
|
|
408
|
+
|
|
409
|
+
Retained map: `coverage/frozen-process-seal-evidence/20260831-1657/coverage-final.json`,
|
|
410
|
+
SHA-256 `cea882c6209d0dc9c03a28140ce81038cfbd613628ec3a04a8900c487d7f8b75`.
|
|
411
|
+
Unchanged source SHA-256 identities:
|
|
412
|
+
process `8bfbf3ad3887b7f215b14414cc9433c1a1f0776f109c41cf2f5c7a6d02ed340b`;
|
|
413
|
+
seal `46bf4a65fef83f43ab9a7ec9250c2eeada06d35ffb19acefd4f6d4cac87ce09e`.
|
|
414
|
+
This closes these two direct-map gaps, not the other frozen tools, original Linux
|
|
415
|
+
cleanup observation, client/throughput diagnostics or release alignment.
|
|
416
|
+
|
|
417
|
+
### Browser coordinator terminal evidence and direct coverage
|
|
418
|
+
|
|
419
|
+
The coordinator reuses `finishVerificationSummary` to preserve primary errors and
|
|
420
|
+
retained-workspace identity, normalize rejected values, and retry terminal report
|
|
421
|
+
publication once with failed status. Correction is best-effort: persistent writes
|
|
422
|
+
can leave stale/partial evidence, but the command still rejects. Ten new report regressions failed on the
|
|
423
|
+
preceding implementation. Application shutdown failure now attempts guarded
|
|
424
|
+
listener unref, preserving uncertainty rather than claiming termination. Redundant
|
|
425
|
+
mode/launch flags were removed after checking their reachable states; no browser
|
|
426
|
+
assertions, collection scopes, cleanup deadlines or performance limits changed.
|
|
427
|
+
|
|
428
|
+
The maintained `verify:browser:coordinator:coverage` combines the coordinator with
|
|
429
|
+
the four already-covered runtime/refresh helpers, replacing the two separate
|
|
430
|
+
native invocations inside the umbrella browser gate. Final Windows / Node 22.21.0 /
|
|
431
|
+
Chrome 152.0.7977.64 execution passed 109 tests in 81.961 seconds: 101 units and
|
|
432
|
+
eight native integrations, with the linked-source case explicitly enabled. The
|
|
433
|
+
separate collector selection passed 27 tests in 3.931 seconds. All five authored
|
|
434
|
+
files are 100% statements/branches/functions/lines: coordinator 187/69/35/143;
|
|
435
|
+
page owner 32/2/5/29; runtime helper 58/0/5/55; refresh controls 206/60/26/165;
|
|
436
|
+
refresh coverage helper 189/44/34/132. Embedded browser-expression execution is
|
|
437
|
+
not measured by this host map; separate frontend/refresh maps remain required.
|
|
438
|
+
|
|
439
|
+
Evidence: `coverage/browser-coordinator-evidence/20260831-1636/`.
|
|
440
|
+
The exact authored map SHA-256 is
|
|
441
|
+
`846afe1d2aa625c7250cbe41670ad6732cab341acfdda7ef759cce1d6a7a5e15`;
|
|
442
|
+
coordinator LF-normalized source SHA-256 is
|
|
443
|
+
`3086c58d65701eda7639fc526a3d5c675df5cb939d4c1846477ce7a45bbef645`.
|
|
444
|
+
Retained runtime report SHA-256:
|
|
445
|
+
`56f8c564e2f7546789a7f7f973fda967f717e7c0afb75a6f166086a9425a6cb5`;
|
|
446
|
+
refresh report:
|
|
447
|
+
`ba82d45ef3dc52014954230387bdf885401984d73b5f27b009c6621fe83d6a41`.
|
|
448
|
+
Runtime remains 426/262/64/351 and refresh 82/44/12/71, all 100%; both refresh
|
|
449
|
+
modes observed actual back-forward-cache restoration.
|
|
450
|
+
|
|
451
|
+
The installed-client-only diagnostic remains **failed**, at 93.76% statements,
|
|
452
|
+
89.57% branches, 100% functions and 96.04% lines. Its retained report SHA-256 is
|
|
453
|
+
`22d56f5d24daa3d732fb557021771e65b98573dd629854c4178a1934021bb104`.
|
|
454
|
+
The native regression requires a fresh report, completed protocol/network/selection
|
|
455
|
+
checks and exactly the coverage assertion failure; an additional reporting failure
|
|
456
|
+
cannot pass under the same primary message. This is not client coverage acceptance.
|
|
457
|
+
The separately enabled source CLI passed its actual client tests, source builds,
|
|
458
|
+
browser checks and 791/521/125/659 original-source scope at 100%. It requires
|
|
459
|
+
`REDWEB_VERIFY_CLIENT_SOURCE=1`, a linked checkout and development dependencies;
|
|
460
|
+
ordinary registry-only CI skips that extra case (108 tests plus one skip).
|
|
461
|
+
The standalone source gate is unchanged.
|
|
462
|
+
|
|
463
|
+
Failure history is retained: the first native baseline had three passing cases,
|
|
464
|
+
the known incomplete-client failure, and a new test-driver realm mismatch when
|
|
465
|
+
calling the source CLI within Jest. Running the actual CLI in its native process
|
|
466
|
+
corrected the driver without weakening source inventory assertions. Baseline host
|
|
467
|
+
coverage was 81.67/67.07/79.41/90.41%. A later 54-test run passed behavior but failed
|
|
468
|
+
97.36% coordinator branch coverage; the first 109-test combined run likewise
|
|
469
|
+
failed at 99.43% aggregate branches. Its map is retained under
|
|
470
|
+
`coverage/browser-coordinator-evidence/20260831-1635-partial/`. Removing unreachable
|
|
471
|
+
state and exercising signal termination completed the direct map; none of those
|
|
472
|
+
earlier commands is relabeled passing. Independent review corrected the source
|
|
473
|
+
test's CI prerequisites and the diagnostic's aggregate-error oracle before the
|
|
474
|
+
final run. Frozen tooling, original performance/Linux cleanup findings, and
|
|
475
|
+
publication alignment remain open.
|
|
476
|
+
|
|
477
|
+
### Package coordinator failure and coverage follow-up
|
|
478
|
+
|
|
479
|
+
The package coordinator now normalizes rejected values at browser/harness/report
|
|
480
|
+
boundaries and owns each example server immediately after acquisition. A small
|
|
481
|
+
local owner is shared by the example group and smoke example; every shutdown is
|
|
482
|
+
attempted independently and bounded, with uncertain cleanup retained. Render
|
|
483
|
+
waits are bounded. Success is printed only after workspace cleanup completes.
|
|
484
|
+
Consumer assertions, isolated registry-client resolution and browser workloads
|
|
485
|
+
are unchanged. Private exports are test seams, not public npm APIs.
|
|
486
|
+
|
|
487
|
+
Sixteen new regressions failed on the preceding implementation. Final Windows /
|
|
488
|
+
Node 22.21.0 / Chrome 152.0.7977.64 verification passed 71 tests in 265.812 seconds:
|
|
489
|
+
68 unit/filesystem cases and three native integration cases. Explicit dependency
|
|
490
|
+
doubles are unit tests, not no-mock integration. Native cases run the full packed
|
|
491
|
+
consumer/browser workflow and prove two real HTTP listeners are closed after a
|
|
492
|
+
later constructor or acceptance failure, before rescue cleanup. The full consumer
|
|
493
|
+
case follows the dashboard's Node floor and is skipped on unsupported Node versions;
|
|
494
|
+
native ownership cases still run there.
|
|
495
|
+
|
|
496
|
+
`npm run verify:package:coordinator:coverage` maintains 100% statements, branches,
|
|
497
|
+
functions and lines: coordinator 173/69/12/162, report helper 21/6/3/16. Retained map
|
|
498
|
+
`coverage/package-coordinator-final/coverage-final.json`, SHA-256
|
|
499
|
+
`199e25f0d8f67c35119dbcd86e227ba6dace836aea14fe29e8d4f20d99791faa`.
|
|
500
|
+
The baseline consumer passed, but its direct coverage command failed at
|
|
501
|
+
85.71/66.19/87.5/87.16%; it is not relabeled a passing command. The earlier unit-only
|
|
502
|
+
measurement also failed coverage before adding CLI and native consumer execution.
|
|
503
|
+
|
|
504
|
+
Packed report: `coverage/packed-browser/6579e832-9946-489c-b1cc-77c5bae47cda/report.json`.
|
|
505
|
+
The tested archive SHA-256 is
|
|
506
|
+
`d0a9795a7e35456105af26a5a36dcf9c44d2f20a3fcbfad44889b8e2acadc60f`;
|
|
507
|
+
it used registry redweb-client 0.2.0 without a candidate override. Acceptance,
|
|
508
|
+
runtime and refresh phases passed, with 211 package files and 26 harness files.
|
|
509
|
+
Generated frontend coverage remains 426/262/64/351 and refresh 82/44/12/71,
|
|
510
|
+
all 100%; both refresh modes observed actual cache restoration. This archive
|
|
511
|
+
predates the subsequent documentation/CI edits, not a final release artifact.
|
|
512
|
+
CI replaces the standalone package invocation and retains both authored and
|
|
513
|
+
packed-browser evidence. Remaining browser/frozen scopes and failed performance
|
|
514
|
+
diagnostics are not waived.
|
|
515
|
+
|
|
516
|
+
### Generated-app development verifier follow-up
|
|
517
|
+
|
|
518
|
+
The development coordinator now reuses `BrowserPages` for bounded acquisition
|
|
519
|
+
and ownership across both templates and standalone refresh controls. Late page
|
|
520
|
+
openings remain owned; an unsettled opening retains workspace uncertainty.
|
|
521
|
+
Port reservation handles listener and close errors and releases its local handle
|
|
522
|
+
after uncertain cleanup. Template failures are normalized before their captured
|
|
523
|
+
output is attached; watcher stdout/stderr/unref releases are independently
|
|
524
|
+
attempted. HTTP page close checks status/body completion and preserves concurrent
|
|
525
|
+
socket-release failures. These changes do not modify generated application/runtime
|
|
526
|
+
code, browser assertions, rebuild workloads or existing acceptance deadlines.
|
|
527
|
+
|
|
528
|
+
Nine new boundary regressions failed against the preceding implementation.
|
|
529
|
+
The existing fifteen outer-cleanup units had stopped during template setup and
|
|
530
|
+
did not cover these deeper paths. Final verification combines those fifteen with
|
|
531
|
+
sixteen explicit dependency-boundary units and four no-mock integrations: the
|
|
532
|
+
complete generated realtime/site watcher workflow in Chromium, actual port
|
|
533
|
+
rebind, an HTTP 500 with a real WebSocket, and an adverse DevTools peer followed
|
|
534
|
+
by natural subprocess exit and temporary-workspace removal. Late/pending page
|
|
535
|
+
timing is exercised at unit boundaries, not claimed as a native-browser fault.
|
|
536
|
+
|
|
537
|
+
Windows / Node 22.21.0 / Chrome 152.0.7977.64: 35 tests across three suites passed
|
|
538
|
+
in 71.327 seconds. Authored coverage is 217 statements, 39 branch outcomes,
|
|
539
|
+
38 functions and 170 lines, all 100%; no ignore exclusions. This instruments
|
|
540
|
+
construction, not execution, of browser-expression strings. Actual browser
|
|
541
|
+
checks remain required. The measured command is maintained as
|
|
542
|
+
`npm run verify:development:coverage`; CI uses it in place of the old standalone
|
|
543
|
+
development invocation and preserves its map on success or failure.
|
|
544
|
+
|
|
545
|
+
Retained map:
|
|
546
|
+
`coverage/development-coordinator-evidence/20260831-1558/coverage-final.json`,
|
|
547
|
+
SHA-256 `845db843f705dd889ef5d22082b07413c13256ed0403c80e1dc0b45752e3082c`.
|
|
548
|
+
Coordinator source SHA-256 (LF-normalized):
|
|
549
|
+
`a23bcd62dddb4fc8aca807682e63beba858e43aa96e8c222cbdd60a04afb7522`.
|
|
550
|
+
Independent review approved the acquisition/cleanup correction and new test
|
|
551
|
+
oracles. This removes the development coordinator from the missing-map inventory,
|
|
552
|
+
not the remaining browser coordinators or frozen tooling. The package coordinator
|
|
553
|
+
was subsequently covered above.
|
|
554
|
+
|
|
555
|
+
### Refresh verifier failure and coverage follow-up
|
|
556
|
+
|
|
557
|
+
`npm run verify:refresh:coverage` now covers both authored refresh helpers and
|
|
558
|
+
replaces the old refresh CLI invocation inside the browser coverage command.
|
|
559
|
+
The canonical plain/instrumented browser workload is still invoked once; a
|
|
560
|
+
separate native test exercises standalone controls with their default HTTP peer
|
|
561
|
+
and without supplemental checks. Real HTTP tests retain malformed, oversized,
|
|
562
|
+
aborted and valid uploads, listener conflicts and upgraded-socket cleanup.
|
|
563
|
+
Explicit unit doubles cover error boundaries; they are not no-mock integration.
|
|
564
|
+
|
|
565
|
+
The new regressions reproduced three evidence-handling defects: falsy rejected
|
|
566
|
+
values could be swallowed, socket release could replace collection/page-close
|
|
567
|
+
errors, and a controls failure could hide an earlier upload error. Both helpers
|
|
568
|
+
reuse the shared error normalizer/combiner. Browser behavior and acceptance
|
|
569
|
+
deadlines are unchanged. Independent review also required a bounded close and
|
|
570
|
+
independent socket release in the new standalone test driver; this was corrected
|
|
571
|
+
before the final run.
|
|
572
|
+
|
|
573
|
+
Final Windows / Node 22.21.0 / Chrome 152.0.7977.64 browser gate passed:
|
|
574
|
+
27 collector tests, five runtime-helper tests (7.180 seconds), and 52 refresh
|
|
575
|
+
tests (53.535 seconds). The two-file authored scope is 395 statements,
|
|
576
|
+
104 branch outcomes, 60 functions and 297 lines, all 100%. An independent AST
|
|
577
|
+
inventory confirmed all 26 controls and 34 coverage-helper functions; there are
|
|
578
|
+
no coverage-ignore exclusions. This map covers construction, not internal
|
|
579
|
+
execution, of embedded browser expressions. Generated refresh coverage remains
|
|
580
|
+
82/44/12/71 and runtime coverage 426/262/64/351, all 100%; both refresh modes
|
|
581
|
+
observed actual back-forward-cache restoration.
|
|
582
|
+
|
|
583
|
+
Retained evidence directory:
|
|
584
|
+
`coverage/refresh-verifier-evidence/50eccf7b-e6a3-4de4-8bd8-6eea319bdb72/`.
|
|
585
|
+
SHA-256 identities:
|
|
586
|
+
|
|
587
|
+
- Authored `coverage-final.json`: `e1681a8656ab89951f29ac4f82fcff47e79c1f633d2de72f134a78b4ce2ae5c1`.
|
|
588
|
+
- `refresh.json`: `22b89f04c38478c3e0464774d8f8ebe1077a021b1753a06a254d962717b34e66`.
|
|
589
|
+
- `runtime.json`: `0574735a7144d2b6b46fdcaf1956495ad6e874c21c43bcf304a95d3596742b69`.
|
|
590
|
+
- Controls source, LF-normalized: `4602557d0a287e3155d7681edb6c5514ba31bef44425f683cb10974a37aed006`.
|
|
591
|
+
- Coverage helper source, LF-normalized: `cfb8297b7167354f48320dee6518eb2930f3ff1bf1e2a1814e4a926d6413b4e4`.
|
|
592
|
+
|
|
593
|
+
CI retains the authored map with the existing browser artifact. This removes only
|
|
594
|
+
these two helpers from the missing-map inventory, not the coordinators or frozen
|
|
595
|
+
tooling below. Performance, original Linux cleanup and publication remain
|
|
596
|
+
separate open evidence requirements.
|
|
597
|
+
|
|
598
|
+
### Dashboard verifier follow-up
|
|
599
|
+
|
|
600
|
+
`npm run verify:dashboard:coverage` measures the authored dashboard verifier
|
|
601
|
+
separately. Twenty-four explicitly isolated boundary units cover setup, readiness,
|
|
602
|
+
late/unsettled page acquisition and cleanup. The `unref` case failed on the old
|
|
603
|
+
source: secondary handle-release failure escaped before `cleanupFailure` was set,
|
|
604
|
+
replacing the primary error. A nested guard now retains both cleanup failures
|
|
605
|
+
while preserving the primary error. This double fault was reproduced at an API
|
|
606
|
+
boundary, not claimed as an observed native Node failure.
|
|
607
|
+
|
|
608
|
+
Three no-mock integrations cover the actual generated dashboard's Chromium,
|
|
609
|
+
SQLite, authentication, private card updates and draft-preserving logout/re-login;
|
|
610
|
+
adverse DevTools HTTP setup with natural subprocess exit; and Windows file-lock
|
|
611
|
+
retention. The browser test independently shuts down Chromium and confirms
|
|
612
|
+
temporary-directory removal. Native dashboard checks respect the starter's Node
|
|
613
|
+
requirements; the file-lock case is Windows-only. The new CI gate preserves its
|
|
614
|
+
coverage artifact on success or failure.
|
|
615
|
+
|
|
616
|
+
Windows / Node 22.21.0: 27 tests / 2 suites passed in 60.683 seconds. Direct
|
|
617
|
+
coverage is 101 statements, 14 branch outcomes, 14 functions and 82 lines, all
|
|
618
|
+
100%. Preserved map:
|
|
619
|
+
`coverage/dashboard-verifier-evidence/72e59434-6d51-491d-89f3-89534a184b09/coverage-final.json`,
|
|
620
|
+
SHA-256 `d486205c7c8549e2fe5487b29c4d8f4405ba074406a0da730d8401b06ab2eeb3`.
|
|
621
|
+
Verifier source SHA-256 (LF-normalized):
|
|
622
|
+
`007d5ca646f3eb182b75b1bc9c84db19f1977b0b70780b694aaaacad95eb6aed`.
|
|
623
|
+
This measures host-side authored code, including construction of browser strings,
|
|
624
|
+
not an execution coverage map for those strings. It does not replace the separate
|
|
625
|
+
frontend map, complete library regression, package or performance acceptance.
|
|
626
|
+
|
|
627
|
+
### Refresh history observation follow-up
|
|
628
|
+
|
|
629
|
+
The refresh verifier now persists the actual `bfcacheRestored` boolean separately
|
|
630
|
+
for plain and instrumented modes. Browser cache admission is not part of required
|
|
631
|
+
case parity: navigation and resumed polling remain mandatory. These observations
|
|
632
|
+
are recorded after successful mode completion, including cleanup and collection;
|
|
633
|
+
a failure earlier in the mode may leave its observation only in the console.
|
|
634
|
+
Two explicit report-boundary units retain asymmetric false/true outcomes and
|
|
635
|
+
reject a failed mode. A no-mock integration runs the canonical HTTP/Chromium
|
|
636
|
+
workload and reads the resulting report from disk.
|
|
637
|
+
|
|
638
|
+
Local verification: 3 tests / 2 suites passed in 37.541 seconds. Preserved report
|
|
639
|
+
`coverage/refresh-observation-evidence/d1704e74-90a0-48e3-aae6-f4bc73c6948c/report.json`
|
|
640
|
+
has SHA-256 `28a4edc0e32ddb0c10e7b4dc2b78c35a8ec313e0ca8a03ecdffea81c211072ab`.
|
|
641
|
+
Both modes actually observed cache restoration in Chrome 152.0.7977.64 on
|
|
642
|
+
Windows. The unchanged generated refresh source retains 82 statements,
|
|
643
|
+
44 branch outcomes, 12 functions and 71 lines at 100%; source SHA-256
|
|
644
|
+
`d8a14c1b44dab03f1fd6a62ef4b6721bb5e4baa9348b5f2e93a7fa2316bf8cd0`.
|
|
645
|
+
This does not establish complete direct coverage of the two private refresh
|
|
646
|
+
verification helpers, a fresh full regression, or performance acceptance.
|
|
647
|
+
|
|
648
|
+
### Previously established coverage
|
|
649
|
+
|
|
650
|
+
- Library: all 91 files in the configured root-entrypoint / `src/**/*.js` scope,
|
|
651
|
+
5,449 statements, 4,046 branches, 978 functions and 4,468 lines, all 100%.
|
|
652
|
+
Latest full local evidence: 1,486 tests/142 suites for the source set in `bf01c2a`,
|
|
653
|
+
with two POSIX-only skips, including the
|
|
654
|
+
benchmark, terminal-interruption, generator, memory, load and navigation corrections. Exact
|
|
655
|
+
scoped/full-run results are below; the preceding runtime/resource/package checkpoint remains
|
|
656
|
+
in `ADMISSION_TIMEOUT_VERIFICATION.md`.
|
|
657
|
+
Exact current full-run and native linked-client evidence is in
|
|
658
|
+
`FEEDBACK_COMMAND_VERIFICATION.md` and `BROWSER_OWNER_VERIFICATION.md`;
|
|
659
|
+
this head's hosted checks remain separate.
|
|
660
|
+
The preceding `377f029`, `1697f33` and `726b9a3` hosted checks passed. The preceding isolated package
|
|
661
|
+
evidence is in `ACTION_INPUT_VERIFICATION.md`; its hosted checks and evidence follow-up passed.
|
|
662
|
+
The preceding clean load/memory/recovery/soak/audit checkpoint and passing
|
|
663
|
+
workflows remain in `PACKAGED_EXAMPLE_VERIFICATION.md`.
|
|
664
|
+
- Shipped `bin/redweb.js`: separate real-subprocess CLI gate, all four 100%.
|
|
665
|
+
- Six starter applications and shared `run-app.ts`: original-TypeScript gate,
|
|
666
|
+
104 tests per mode, 600 statements, 299 branches, 160 functions and 472 lines,
|
|
667
|
+
all 100%. Includes the canonical chatroom component.
|
|
668
|
+
- Client authored source: 791 statements, 521 branches, 125 functions and 659
|
|
669
|
+
lines at 100%, with 77 tests per mode plus native browser acceptance. Published
|
|
670
|
+
client 0.2.0 runtime bundles match the tested build.
|
|
671
|
+
- Emitted frontend and development refresh: separate native-browser gates,
|
|
672
|
+
all-four 100%; not inferred from coverage of strings that generate scripts.
|
|
673
|
+
- Site documentation: seven declared modules at 100% line/branch/function
|
|
674
|
+
coverage, six tests and real HTTP/build checks; not whole-site coverage.
|
|
675
|
+
- Server recovery policy/coordinator/CLI and authored split coordinator/worker:
|
|
676
|
+
maintained CI coverage command, 161 tests/ten suites, 457 statements,
|
|
677
|
+
170 branch outcomes, 86 functions and 388 lines, all 100%. See
|
|
678
|
+
`SPLIT_RECOVERY_COVERAGE.md` for exact report identity and native/unit boundaries.
|
|
679
|
+
- Shipped `recipes/shared/copy-assets.cjs`: `npm run verify:assets:coverage`
|
|
680
|
+
now measures the original source under c8 through actual subprocess/filesystem
|
|
681
|
+
tests and requires all-four 100% in CI. Nested CSS/HTML copying, excluded source
|
|
682
|
+
files, existing compiled-code preservation, stylesheet replacement and a missing
|
|
683
|
+
source failure are checked without mocks. This closes one of the initial eight
|
|
684
|
+
shipped-source gaps.
|
|
685
|
+
- Both `recipes/add` authored templates: the existing addition matrix now runs
|
|
686
|
+
each generated page, component and socket route normally and instrumented,
|
|
687
|
+
using actual HTTP/WebSocket tests in CJS/ESM and standard/legacy decorator modes.
|
|
688
|
+
All twelve generated artifacts require complete original-source coverage.
|
|
689
|
+
Unit coverage of template generation remains in the library scope.
|
|
690
|
+
|
|
691
|
+
Addition evidence: all six enclosing tests passed in 87.697 seconds on Windows,
|
|
692
|
+
Node 22.21.0 / TypeScript 5.9.3. Each page/component covers three statements/lines
|
|
693
|
+
and two functions; each socket route covers four statements/lines and two
|
|
694
|
+
functions (no authored branches). All four metrics are 100% for each artifact.
|
|
695
|
+
Reports under `coverage/addition-source/` retain pre-build source/test/template/
|
|
696
|
+
compiler-config and collector fingerprints, plain/instrumented outcomes and raw
|
|
697
|
+
child maps, including failure evidence outside disposable workspaces. Run IDs:
|
|
698
|
+
`851bfab5-4ebf-45e9-917e-07935946a060` (CJS standard),
|
|
699
|
+
`8a047f5d-5c49-4371-b6be-5b20d5f461d6` (ESM standard),
|
|
700
|
+
`5d36acc9-7a40-4a06-a46b-2de3069103cd` (CJS legacy),
|
|
701
|
+
`c11c44cf-656d-4f45-8d56-e493d8444c11` (ESM legacy).
|
|
702
|
+
The independent critic approved the source correspondence, failure reporting,
|
|
703
|
+
module-format handling and bounded process cleanup. Both CI runs at `0ca4a7f`
|
|
704
|
+
also passed; the addition extension above follows that checkpoint.
|
|
705
|
+
|
|
706
|
+
Asset-copier evidence (Windows/Node 22.21.0): two integration tests pass; all eight
|
|
707
|
+
statements/lines, three branches and one function are covered. Original source
|
|
708
|
+
SHA-256: `5e340377eec8a59b64e0dc0d5791de0826dec8b82d40c3502b67eda6f7aaefee`.
|
|
709
|
+
Report `coverage/recipe-assets/coverage-final.json` SHA-256:
|
|
710
|
+
`bc857afaed89d95aea1bfa448641f5ac2433467e8eed75afbeec99d2ad12c280`.
|
|
711
|
+
|
|
712
|
+
The subsequent complete local regression at `db9e469` passed 925 tests/88 suites
|
|
713
|
+
in 455.485 seconds with all-four 100% library coverage; report SHA-256:
|
|
714
|
+
`38aec4ec3b394f15fa96bfc11d87683a1da83ff9c0fd37f8b21a7a47815e0cab`.
|
|
715
|
+
Both [PR CI](https://github.com/lakam99/redweb/actions/runs/33354236822) and
|
|
716
|
+
[push CI](https://github.com/lakam99/redweb/actions/runs/33354234299) passed all
|
|
717
|
+
Node 18/20/22/24 and lifecycle jobs. The asset-copier tests above were added after
|
|
718
|
+
that full run and passed separately; they are not retroactively included in 925.
|
|
719
|
+
|
|
720
|
+
The exact historical package/client/browser/starter identities and mock boundaries
|
|
721
|
+
remain in `CLIENT_POLISH_VERIFICATION.md`, `POLISH_RELEASE_CHECKPOINT.md` and the
|
|
722
|
+
acceptance work log. Integration uses actual networking, processes, files and
|
|
723
|
+
browsers. Explicit unit fault injection is not called mock-free integration.
|
|
724
|
+
|
|
725
|
+
## Shipped-source audit gaps closed
|
|
726
|
+
|
|
727
|
+
The standalone-example gate now measures these five original authored modules:
|
|
728
|
+
|
|
729
|
+
```text
|
|
730
|
+
examples/live-html/cards.ts
|
|
731
|
+
examples/live-html/components.ts
|
|
732
|
+
examples/live-html/counter.ts
|
|
733
|
+
examples/live-html/jsx-page.tsx
|
|
734
|
+
docs/snippets/room-access.tsx
|
|
735
|
+
```
|
|
736
|
+
|
|
737
|
+
Generated example `.js` files are compiled derivatives of their maintained
|
|
738
|
+
TypeScript, not independent authored implementations. Their compilation and
|
|
739
|
+
runtime behavior remain verified by the same unchanged real-network suite against
|
|
740
|
+
ordinary and instrumented builds, in standard and legacy decorator modes. The
|
|
741
|
+
existing original-source collector covers 56 statements, 20 branches, 25 functions
|
|
742
|
+
and 47 lines, all 100%. Each run executes 28 tests across three suites; retained
|
|
743
|
+
Jest JSON reports enforce matching inventories, passing statuses and no skips.
|
|
744
|
+
Launcher defaults, signal handlers and authorization truth tables have explicitly
|
|
745
|
+
separate unit stubs. HTTP, sockets, page actions, authentication, joining,
|
|
746
|
+
broadcast and revocation use actual implementations in integration tests.
|
|
747
|
+
|
|
748
|
+
Final focused matrix: two outer tests pass in 27.915 seconds, Windows/Node22.21.0.
|
|
749
|
+
Reports under `coverage/example-source/<run>/report.json`:
|
|
750
|
+
|
|
751
|
+
| Mode | Run | SHA-256 |
|
|
752
|
+
| --- | --- | --- |
|
|
753
|
+
| Standard | `87bee699-81ae-47d0-aef4-92eba2efddd8` | `dd708de4786da5beb470b02fd87440be225576290a9f24a7d91bb1d122abdc00` |
|
|
754
|
+
| Legacy | `c1d64975-5ecf-4ebb-bda1-66bb6fa8cedc` | `75eeb3ecaca08efee1e9d79f3bd75d8206105839b437d24963c8906dfe42ca24` |
|
|
755
|
+
|
|
756
|
+
The shared room verifier was extracted rather than duplicating its integration
|
|
757
|
+
checks. Review uncovered a cleanup flaw: a rejected peer close could skip server
|
|
758
|
+
shutdown and hide the primary error. Both cleanup operations are now attempted
|
|
759
|
+
independently, preserving all failures. Eight unit failure combinations plus the
|
|
760
|
+
real source-free room integration pass. `npm run verify:room:coverage` enforces
|
|
761
|
+
all-four 100% in CI: 47 statements, six branches, five functions and 40 lines.
|
|
762
|
+
Source SHA-256: `5484a90e42a45d51552a5bd80796f2c25e0f71cf999f25055edd461469808094`.
|
|
763
|
+
Report `coverage/room-verifier/coverage-final.json` SHA-256:
|
|
764
|
+
`c1360e5405610039332629493eab4c4aa61b449f96b74b2d1fac7916904830e0`.
|
|
765
|
+
|
|
766
|
+
Together with asset copying and addition templates, this closes the initial eight
|
|
767
|
+
shipped-source audit gaps. It does not close the private-tool inventory below or
|
|
768
|
+
claim whole-repository coverage.
|
|
769
|
+
|
|
770
|
+
## Private tools with existing complete scoped reports
|
|
771
|
+
|
|
772
|
+
These report directories contain all-four 100% maps for the listed files.
|
|
773
|
+
They are separate measurements, not a merged coverage total. Report-to-source
|
|
774
|
+
correspondence must be retained from the relevant recorded input/checkpoint before
|
|
775
|
+
using an old report to certify new edits.
|
|
776
|
+
|
|
777
|
+
| Report under `coverage/` | Files (under `scripts/`) |
|
|
778
|
+
| --- | --- |
|
|
779
|
+
| `package-tools` | `lib/ClientCandidate.js`, `lib/InstalledClient.js`, `lib/PackedBrowserHarness.js`, `lib/preservePackedBrowserReport.js`, `lib/verificationError.js`, `lib/compile-consumer.js`, `lib/verify-documentation.js`, `lib/verify-starter.js` |
|
|
780
|
+
| `memory-tools` | `memory-worker.js`, `verify-memory-overhead.js`, `lib/MemoryMeasurement.js`, `lib/VerificationWorkspace.js` (updated owner; evidence below) |
|
|
781
|
+
| `server-recovery-acceptance` | `lib/ServerRecoveryCandidate.js`, `lib/ServerRecoveryPolicy.js`, `verify-server-recovery.js`, `diagnostics/recovery-split.cjs`, `diagnostics/recovery-split-worker.cjs` (current scope in `SPLIT_RECOVERY_COVERAGE.md`) |
|
|
782
|
+
| `browser-collector` | `lib/BrowserCoverage.js`, `lib/ApplicationCoverage.js`, `lib/assertCoverageFile.js` (current validation evidence in `COVERAGE_COUNTER_VALIDATION.md`) |
|
|
783
|
+
| `browser-commands` | `lib/browserCommands.js`, `lib/verify-action-feedback.js` (unit and actual Chromium/server cases; see `FEEDBACK_COMMAND_VERIFICATION.md`) |
|
|
784
|
+
| `application-collector` | `lib/ApplicationCoverage.js` |
|
|
785
|
+
| `room-verifier` | `lib/verify-room-example.js` |
|
|
786
|
+
| `tool-source/<run>` | `build-live-html-examples.js`, `generate-docs.js`, `generate-protocol-types.js` (separate reports below) |
|
|
787
|
+
| `client-check-preflight` | `lib/ClientSourceCoverage.js`, `lib/reportCommand.js` |
|
|
788
|
+
| `compatibility-capture-runtime` | `diagnostics/ClientHeapCapture.cjs` |
|
|
789
|
+
| `code-attribution-native` | `diagnostics/CodeAttribution.cjs`, `diagnostics/HeapCodeComparison.cjs`, `diagnostics/HeapSnapshotGraph.cjs`, `diagnostics/recovery-heap-graph.cjs`, `diagnostics/recovery-heap-summary.cjs` |
|
|
790
|
+
| `recovery-deopt-native-final` | `diagnostics/DeoptimizationCensus.cjs`, `diagnostics/recovery-code-summary.cjs` |
|
|
791
|
+
|
|
792
|
+
The independent critic confirmed the five attribution/graph files are unchanged
|
|
793
|
+
since reviewed checkpoint `8a15569`, the two deoptimization parsers since
|
|
794
|
+
`8b4694c`, and capture since `daacdac`. Do not substitute the older
|
|
795
|
+
`client-source-collector` report for expanded checkout validation or the older
|
|
796
|
+
`recovery-native-exact` map for the later shared-graph extraction.
|
|
797
|
+
|
|
798
|
+
## Generator checkpoint: ba4a0bc
|
|
799
|
+
|
|
800
|
+
The example builder now rejects invalid compiler options and configurations that
|
|
801
|
+
emit no JavaScript. Windows malformed-config paths are normalized before asking
|
|
802
|
+
TypeScript to format diagnostics, avoiding its internal path assertion. Actual
|
|
803
|
+
compiler tests cover `.js`, `.mjs`, `.cjs`, type errors, skipped emission and
|
|
804
|
+
non-emission, import rewriting, missing/stale output and CRLF equivalence.
|
|
805
|
+
The documentation generator's existing release/snapshot/README checks are reused
|
|
806
|
+
with explicit released/unreleased fixtures, not duplicated or dependent on the
|
|
807
|
+
repository remaining unreleased. Protocol output is checked against exact types.
|
|
808
|
+
|
|
809
|
+
`npm run verify:build:coverage` runs identical real CLI cases against ordinary and
|
|
810
|
+
original-source-instrumented scripts. It reuses `ApplicationCoverage` and the
|
|
811
|
+
managed workspace owner. Fixture files, compiler, original script, test, collector
|
|
812
|
+
and helper inputs are fingerprinted. Each instrumented invocation, including an
|
|
813
|
+
expected command failure, must produce exactly one validated raw coverage map;
|
|
814
|
+
ordinary invocations must produce none. Matched command inventories and source
|
|
815
|
+
correspondence are required before accepting complete coverage. Reports survive
|
|
816
|
+
temporary-workspace cleanup. CI retains them for 30 days on success or failure.
|
|
817
|
+
|
|
818
|
+
Final focused run: 12 passing tests/four suites in 26.592s, Windows/Node22.21.0,
|
|
819
|
+
TypeScript5.9.3. Three unrelated documentation tests are intentionally filtered by
|
|
820
|
+
this command, not counted as passing. Integration uses actual compiler, files and
|
|
821
|
+
processes, with no API mocks. Five explicitly labelled unit fault cases inject
|
|
822
|
+
falsy thrown values; real-process negative controls remove/duplicate/add owned
|
|
823
|
+
report files to prove invalid evidence is rejected. The critic approved the
|
|
824
|
+
implementation, cleanup budgets and actual PR head.
|
|
825
|
+
|
|
826
|
+
| Original script | Statements | Branches | Functions | Lines | Child reports |
|
|
827
|
+
| --- | ---: | ---: | ---: | ---: | ---: |
|
|
828
|
+
| `build-live-html-examples.js` | 35 | 18 | 8 | 28 | 16 |
|
|
829
|
+
| `generate-docs.js` | 50 | 37 | 7 | 42 | 41 |
|
|
830
|
+
| `generate-protocol-types.js` | 13 | 6 | 1 | 12 | 7 |
|
|
831
|
+
|
|
832
|
+
Every listed metric is 100%. Reports under `coverage/tool-source/<run>/report.json`:
|
|
833
|
+
|
|
834
|
+
| Script | Run | SHA-256 |
|
|
835
|
+
| --- | --- | --- |
|
|
836
|
+
| Example builder | `6d6d82f8-db83-456a-b429-58d8613a6f00` | `c48f5076a0e325e2cd93ea2b015c327e0e319fa0317cfec1eb4903563789dec1` |
|
|
837
|
+
| Documentation | `6df5c048-eab7-4462-8108-008dd0f32658` | `d8f8a7a69848000006f34ae4b2276183948313fe71fccefe260772ddcbb8c2ab` |
|
|
838
|
+
| Protocol types | `74c46f2f-ea89-4814-849c-01d70d13b86f` | `6f35424ef444a384a04f287b88249c63481d00381d7552689313c4bfde3d4fd0` |
|
|
839
|
+
|
|
840
|
+
All current tooling hashes, paired inventories and 64 raw-report hashes were
|
|
841
|
+
rechecked after this run. Full local regression at the same code checkpoint
|
|
842
|
+
passed all 951 tests/95 suites in 517.317s, including normal pretest/generated/type
|
|
843
|
+
checks. Library counts remain those listed above, all-four 100%.
|
|
844
|
+
`coverage/coverage-final.json` SHA-256:
|
|
845
|
+
`24b22792ad69ee6460f2282814046ccb6c53796be25008bb11b0c9389d62e456`.
|
|
846
|
+
Hosted PR33358575524 and push33358573729 subsequently passed, as did the evidence
|
|
847
|
+
follow-up `3c4010e` PR33359014962 and push33359012472. No new runtime/resource/long-soak result, npm publication, deployment
|
|
848
|
+
or merge is claimed by this build-tool increment.
|
|
849
|
+
|
|
850
|
+
## Memory verifier correction: 7e94e99
|
|
851
|
+
|
|
852
|
+
An actual zero-client command previously exited zero with null per-connection
|
|
853
|
+
values and zero computed metadata. The correction validates positive safe counts,
|
|
854
|
+
derived capacity/trial arithmetic and finite budgets before launching workers.
|
|
855
|
+
Complete worker JSON must match the requested mode/count, contain a safe signed
|
|
856
|
+
heap delta and a finite per-connection value equal to that delta divided by count.
|
|
857
|
+
Invalid/duplicate JSON, missing trials and non-finite comparisons cannot pass.
|
|
858
|
+
|
|
859
|
+
The existing workspace owner runs sequential workers with 60-second deadlines.
|
|
860
|
+
Its new opt-in strict-output flag rejects a truncated stdout or stderr stream;
|
|
861
|
+
ordinary callers retain the existing bounded-tail behavior. Real child tests
|
|
862
|
+
prove that oversized junk followed by a valid JSON tail still fails strict mode.
|
|
863
|
+
Each worker owns peers before waiting for connection, attempts every peer/server
|
|
864
|
+
cleanup independently, and prints success only after cleanup. The existing nested
|
|
865
|
+
error formatter preserves primary and cleanup failures at the CLI boundary.
|
|
866
|
+
Defaults (500 clients, three alternating trials, 2,048-byte limit), batches,
|
|
867
|
+
sampling points, GC sequence, upper median and signed deltas are unchanged.
|
|
868
|
+
|
|
869
|
+
The actual uninstrumented default run passed: legacy 8,901.888, enabled 10,783.68,
|
|
870
|
+
and computed metadata 1,881.7919999999995 bytes/connection, below 2,048.
|
|
871
|
+
Small four-client integration fixtures verify mechanics, not this acceptance
|
|
872
|
+
budget. They launch real processes/sockets/GC for all nine feature modes and
|
|
873
|
+
invalid CLI inputs; no integration API mocks are used. Launcher, configuration,
|
|
874
|
+
report and injected cleanup-failure units are explicitly separate.
|
|
875
|
+
|
|
876
|
+
The initial scoped gate passed 68 tests/four suites in 41.838s. Full Windows
|
|
877
|
+
regression then passed all 1,001 tests/98 suites in 506.606s, including pretest and
|
|
878
|
+
type gates, with all-four 100% library coverage. Report SHA-256:
|
|
879
|
+
`761a9158ddd829a3aed9f81f8e3dd21aaa02f58bcea440daaf293c6e11f4cab3`.
|
|
880
|
+
All Node18/20/22/24 jobs passed in both [PR CI](https://github.com/lakam99/redweb/actions/runs/33359772699)
|
|
881
|
+
and [push CI](https://github.com/lakam99/redweb/actions/runs/33359769989).
|
|
882
|
+
Both lifecycle jobs failed coverage: Linux passed all 66 selected tests but skipped
|
|
883
|
+
two Windows-only file-lock cases, leaving the shared owner's removal-error branch
|
|
884
|
+
uncovered. Later lifecycle/package/browser steps were skipped, not passed.
|
|
885
|
+
|
|
886
|
+
The follow-up keeps the 100% threshold and adds two portable deletion-failure unit
|
|
887
|
+
cases plus two real POSIX nonempty/non-writable-directory cases. Root skips the
|
|
888
|
+
permission cases because its privileges bypass them; portable unit cases remain
|
|
889
|
+
active. Permission restoration and unit-spy restoration precede test cleanup.
|
|
890
|
+
The revised Windows gate passes 70 tests/four suites in 40.634s with two explicitly
|
|
891
|
+
skipped POSIX cases. These new cases are not retroactively included in 1,001 above;
|
|
892
|
+
hosted verification of the correction passed in both `e035657` runs. CI now retains memory coverage
|
|
893
|
+
maps on success or failure. The critic approved both actual code and this correction.
|
|
894
|
+
|
|
895
|
+
The maintained `npm run verify:memory:coverage` Jest/Istanbul scope is all-four100%:
|
|
896
|
+
163 statements, 93 branches, 30 functions and 139 lines across four files.
|
|
897
|
+
`coverage/memory-tools/coverage-final.json` SHA-256:
|
|
898
|
+
`30d70e08956b46e13bb4c004c60eed30a4f12ba56f47c1cfc20c18827980c395`.
|
|
899
|
+
|
|
900
|
+
| Source (under `scripts/`) | SHA-256 |
|
|
901
|
+
| --- | --- |
|
|
902
|
+
| `memory-worker.js` | `ad949d7061081df8b32f2e650d3c861f1e32aafaac1efef7bd164cb633a9441c` |
|
|
903
|
+
| `verify-memory-overhead.js` | `5f5aa797a68c0591695a39fcd497ab9b6590c7f0012dd5f457e16ccc21fb64f0` |
|
|
904
|
+
| `lib/MemoryMeasurement.js` | `f71d11dd56e18f8ab0e0a3252620d05bdd60f1f84864a39d0c9fe16809e3b1ae` |
|
|
905
|
+
| `lib/VerificationWorkspace.js` | `21ba3dea77089ef6ba90ae2cf5c93671ad5822251a014a4548ef04506ec6407c` |
|
|
906
|
+
|
|
907
|
+
An exploratory native c8 map was partial and is not represented as complete native
|
|
908
|
+
coverage. The above scope combines explicitly instrumented unit coverage with
|
|
909
|
+
separate actual process/socket integration. It does not replace the remaining
|
|
910
|
+
private-tool inventory, certify older owner maps against its new strict-output
|
|
911
|
+
code, or claim a new long soak/publication/deployment/merge.
|
|
912
|
+
|
|
913
|
+
## Load verification and navigation follow-up
|
|
914
|
+
|
|
915
|
+
The `e035657` push [33360581687](https://github.com/lakam99/redweb/actions/runs/33360581687)
|
|
916
|
+
passed every job. Its PR [33360585345](https://github.com/lakam99/redweb/actions/runs/33360585345)
|
|
917
|
+
passed memory coverage and all Node18/20/22/24 jobs, but failed the packed refresh
|
|
918
|
+
browser phase at a heading-readiness expression with `Uncaught`; soak was skipped.
|
|
919
|
+
The saved log does not retain the underlying browser exception. Two exploratory
|
|
920
|
+
streamed-document probes timed out before reaching that predicate and cleaned up;
|
|
921
|
+
they are not successful reproductions. A maintained real-HTTP/native-browser case
|
|
922
|
+
now establishes that the old expression throws a TypeError when the heading is
|
|
923
|
+
absent, while the shared null-safe predicate returns false until the exact heading
|
|
924
|
+
exists. Unrelated evaluation errors remain fatal. Both ordinary and instrumented
|
|
925
|
+
refresh runs pass (report `07037c8f-d4d9-4e22-9af6-1d2c921f6b7e`), retaining all-four
|
|
926
|
+
100% of the unchanged generated refresh source. CI retains packed-browser reports
|
|
927
|
+
on success and failure. The original CI failure is not relabelled passing.
|
|
928
|
+
|
|
929
|
+
An actual load run accepted `NaN` latency/throughput limits and exited zero. The
|
|
930
|
+
corrected policy rejects invalid limits before opening sockets, consumes exact
|
|
931
|
+
per-client outstanding IDs once, and requires finite complete results. Workload
|
|
932
|
+
defaults remain 32 clients, 100 messages each, 250ms p99 and 500 messages/second;
|
|
933
|
+
one request per client, JSON parsing before latency completion, the 30s response
|
|
934
|
+
deadline and original slow-consumer probe remain. Partial acquisitions settle
|
|
935
|
+
before cleanup. Socket close now waits for actual CLOSED state after termination;
|
|
936
|
+
a real paused-peer test failed before this fix. Synchronous close failures cannot
|
|
937
|
+
skip termination or abandon observers, and probe/cleanup failures remain visible.
|
|
938
|
+
|
|
939
|
+
`npm run verify:load:coverage` passes 41 tests/six suites in 40.628s on Windows,
|
|
940
|
+
Node22.21.0: 213 statements, 99 branches, 41 functions and 160 lines, all100% across
|
|
941
|
+
four files. Explicit coordinator/transport boundary units are separate from actual
|
|
942
|
+
WebSocket/CLI/timeout integration; no API mocks occur in those integration cases.
|
|
943
|
+
The coverage run is not the clean performance measurement. Report SHA-256:
|
|
944
|
+
`07c1e9e492ea88262c594114d62d73d1579d74fcbd2b23f3701da6ed465ab8be`.
|
|
945
|
+
|
|
946
|
+
| Source (under `scripts/`) | SHA-256 |
|
|
947
|
+
| --- | --- |
|
|
948
|
+
| `verify-load.js` | `551e318a275658d3cc70343ce26d838fe4ca45692c79038d2e05020e1555e8ef` |
|
|
949
|
+
| `lib/LoadMeasurement.js` | `4c6b23311a7db539c971df5676cd0df133f99861b042e6c4fbc3667dee6a36e2` |
|
|
950
|
+
| `lib/measureLoadTraffic.js` | `8e68504a61efcf21813779e37d413b5e8bd4b8692af6cc31469a478ae1351370` |
|
|
951
|
+
| `realtime-harness.js` | `12e5905b576cc861017a1a18393bac347d122db5a19e22a7804dbd65031add22` |
|
|
952
|
+
|
|
953
|
+
Before the critic's final synchronous-failure refinements, default load passed
|
|
954
|
+
6,659.875 messages/second and 6.4039ms p99; memory passed1,881.744 bytes/connection.
|
|
955
|
+
Server recovery delivered all7,400 replies, peaked109.0175% and finished97.1814%
|
|
956
|
+
of warm heap. The30s/16-client soak passed all eight trends, with4,352 sent and4,348
|
|
957
|
+
received (99.9081%, not lossless), zero final registries and100.3442% final warm heap.
|
|
958
|
+
The original shared-process recovery diagnostic failed its110% limit at111.4056%
|
|
959
|
+
despite finishing97.9749%; that remains visible and non-blocking by the approved
|
|
960
|
+
contract. These interim measurements do not certify the final helper hash above
|
|
961
|
+
or constitute a new60-minute soak. Final clean regression/hosted follow-up remains
|
|
962
|
+
pending at that interim checkpoint; no publication, deployment or merge is claimed.
|
|
963
|
+
|
|
964
|
+
Final `d576278` verification (Windows, Node22.21.0): the full command including
|
|
965
|
+
pretest/types passed1,045 tests/105 suites in570.020s, with two POSIX-only skips
|
|
966
|
+
and all-four100% of the unchanged91-file library scope. Full report SHA-256:
|
|
967
|
+
`b350add1cf03432f77ad0a8f0844195c25a56dabd1656ef4564d2f3e5c82746e`.
|
|
968
|
+
Both [PR33362263127](https://github.com/lakam99/redweb/actions/runs/33362263127)
|
|
969
|
+
and [push33362261457](https://github.com/lakam99/redweb/actions/runs/33362261457)
|
|
970
|
+
passed every Node18/20/22/24 and lifecycle job, including packed refresh, retained
|
|
971
|
+
coverage artifacts and the short soak. No selective retry hid the prior failure.
|
|
972
|
+
|
|
973
|
+
After other local test/package jobs exited, sequential uninstrumented checks
|
|
974
|
+
passed: default load5,683.736 messages/second,7.1724ms p99 and contained slow peer;
|
|
975
|
+
default500-client/three-trial metadata1,881.744 bytes/connection; server recovery
|
|
976
|
+
all7,400 replies, peak108.5190% and final96.9803% of warm heap, with empty registries.
|
|
977
|
+
Client113.0027% remains diagnostic, not server acceptance. HTML load passed200
|
|
978
|
+
expired renders/110 clients with8,058,856-byte heap delta; JSX10,000rows passed in
|
|
979
|
+
56.7ms with1.3MiB retained. The30s/16-client soak passed all eight resource trends,
|
|
980
|
+
4,368 sent/4,364 received (99.9084%, four missing—not lossless), zero final registries,
|
|
981
|
+
100.3000% final warm heap and handles1→2. This does not replace the historical60min
|
|
982
|
+
soak. Production audit reports zero vulnerabilities with certificate validation on.
|
|
983
|
+
|
|
984
|
+
The completed local package gate verified publishedclient0.2.0, all generated and
|
|
985
|
+
source-free consumers plus native browser acceptance/runtime/refresh. Archive hash
|
|
986
|
+
`0fb2dce8fdd6b51ed5b607e5bdb47bc2c5f893f96a823a40295fd06356aa6415` predates this
|
|
987
|
+
increment's README/evidence-only edits; runtime/harness fixes match the checkpoint.
|
|
988
|
+
Packed report `75975202-ee63-4880-ab92-91f6cf1e65ee`, SHA-256
|
|
989
|
+
`fc53aaedc67693c7b42774af7c7255761222ae7cb70f3f201465cb06cd4d2653`.
|
|
990
|
+
Hosted package checks above cover the committed documentation too. The senior
|
|
991
|
+
critic approved all20 remote changed-file blobs with no remaining findings.
|
|
992
|
+
Site checkpoint `20f56dd` synchronizes canonical docs locally:98pages/154assets,
|
|
993
|
+
all HTTP/link/download and atomic rollback checks, six tests/seven scoped modules
|
|
994
|
+
at100% line/branch/function coverage. No site deployment or npm publication occurred.
|
|
995
|
+
|
|
996
|
+
The documentation-only `4267db1` follow-through passed both hosted runs:
|
|
997
|
+
PR33363026371 and push33363023458, including every matrix and lifecycle job.
|
|
998
|
+
|
|
999
|
+
The subsequent disabled-feature benchmark increment closes unchecked worker
|
|
1000
|
+
values, unbounded response waits and incomplete reply accounting. Its six-module
|
|
1001
|
+
scope reaches all-four100% (204 statements/111 branches/30 functions/174 lines),
|
|
1002
|
+
52 unit and actual-network/process tests. The shared strict-output owner now also
|
|
1003
|
+
rejects truncation on failed exits; its updated memory-tool scope passes71 tests
|
|
1004
|
+
with two POSIX-only skips and all-four100%. See `BENCHMARK_VERIFICATION.md` for
|
|
1005
|
+
precise boundaries and retained performance results: the first default registry
|
|
1006
|
+
comparison passed, but the second failed the unchanged3% throughput limit at
|
|
1007
|
+
4.7850% regression. This remains an open performance result, not waived by
|
|
1008
|
+
coverage, an earlier pass or the separate recovery diagnostic decision.
|
|
1009
|
+
|
|
1010
|
+
Final benchmark implementation verification at `43c6d73`: full1,098 tests/110
|
|
1011
|
+
suites,614.552s, two POSIX-only skips and all-four100% library coverage. Both
|
|
1012
|
+
PR33365382012 and push33365378641 passed every hosted job. Sequential default
|
|
1013
|
+
load/memory/server-recovery, HTML/JSX, short-soak and audit checks also passed;
|
|
1014
|
+
exact counts/hashes and remaining throughput failure are retained in
|
|
1015
|
+
`BENCHMARK_VERIFICATION.md`. The critic approved all21 remote changed-file blobs.
|
|
1016
|
+
One bounded diagnostic profile pair found no candidate-specific hotspot and does
|
|
1017
|
+
not justify speculative runtime changes or waive the default benchmark failure.
|
|
1018
|
+
The local site was synchronized and tested at `caa166f`; nothing was published.
|
|
1019
|
+
|
|
1020
|
+
## Remaining private-tool measurement gaps
|
|
1021
|
+
|
|
1022
|
+
The unchanged application recorder now has a direct maintained source scope:
|
|
1023
|
+
six selected tests/two suites, six statements, two branches, one function and six
|
|
1024
|
+
lines, all 100%. The actual exit/pipeline checks remain separate from the direct
|
|
1025
|
+
callback unit. A native converter omitted the anonymous callback from its function
|
|
1026
|
+
denominator; that older zero-function map is diagnostic only, not accepted as
|
|
1027
|
+
authored function coverage. Source/report identity and scope are documented in
|
|
1028
|
+
`APPLICATION_RECORDER_VERIFICATION.md`. Eight unrelated cases are filtered.
|
|
1029
|
+
|
|
1030
|
+
The soak correction adds a direct maintained scope: 80 tests/four suites cover
|
|
1031
|
+
241 statements, 100 branches, 65 functions and 173 lines at all-four 100% across
|
|
1032
|
+
the coordinator, measurement policy and socket owner. Native undersampling
|
|
1033
|
+
reproduction, exact reply/ownership checks, preserved acceptance boundaries and
|
|
1034
|
+
short-run results are in `SOAK_VERIFICATION.md`. Full regression passed 1,246
|
|
1035
|
+
tests/119 suites with two POSIX-only skips and unchanged all-four 100% library
|
|
1036
|
+
coverage. This is not a new one-hour soak or a substitute for the unresolved
|
|
1037
|
+
benchmark result and remaining hosted/release gates.
|
|
1038
|
+
|
|
1039
|
+
The next Live HTML load correction closes its direct coverage gap:54 tests/three
|
|
1040
|
+
suites, all-four100% across the coordinator, bounded HTTP reader and client owner
|
|
1041
|
+
(195 statements,49 branches,52 functions,139 lines). Exact source/report hashes,
|
|
1042
|
+
native malformed-JSON reproduction, fixture correction and unchanged acceptance
|
|
1043
|
+
limits are in `LIVE_HTML_LOAD_VERIFICATION.md`. Clean default load passed200
|
|
1044
|
+
renders/110 clients with6,824,576-byte heap growth. The critic approved the scoped
|
|
1045
|
+
correction. The full regression then passed 1,152 tests/113 suites in 631.578s
|
|
1046
|
+
with two POSIX-only skips and all-four 100% library coverage; source/report
|
|
1047
|
+
identity is retained in that document. Hosted verification remains pending. This does not waive
|
|
1048
|
+
the separate unresolved benchmark throughput result.
|
|
1049
|
+
|
|
1050
|
+
The JSX performance verifier now has a maintained direct scope: 14 tests/two
|
|
1051
|
+
suites cover 27 statements, eight branches, four functions and 23 lines, all 100%.
|
|
1052
|
+
Exact markup validation replaces the demonstrated false-pass predicate, while
|
|
1053
|
+
timing and memory limits remain unchanged. Native CLI checks and explicit boundary
|
|
1054
|
+
units are separate; the critic approved the correction. See
|
|
1055
|
+
`JSX_PERFORMANCE_VERIFICATION.md` for hashes and measurement boundaries. These new
|
|
1056
|
+
tests are not retroactively included in the preceding full regression inventory.
|
|
1057
|
+
|
|
1058
|
+
The two split-runner files previously had only partial historical maps. Their
|
|
1059
|
+
current original-source maps are now complete in the maintained server recovery
|
|
1060
|
+
coverage gate; see `SPLIT_RECOVERY_COVERAGE.md`. Historical converted maps are
|
|
1061
|
+
not used as proof of the current authored function denominator.
|
|
1062
|
+
|
|
1063
|
+
The packaged-example probe, its dependency coordinator and guarded action helper
|
|
1064
|
+
now have a maintained exact source scope: 40 tests/five suites, 178 statements,
|
|
1065
|
+
44 branches, 20 functions and 150 lines, all 100%. Explicit fault units complement
|
|
1066
|
+
actual native peers and a clean packed/installed consumer that compiles and runs
|
|
1067
|
+
generated additions. The probe VM map is private outside its explicitly selected
|
|
1068
|
+
scope; the library denominator is unchanged. See `PACKAGED_EXAMPLE_VERIFICATION.md`.
|
|
1069
|
+
|
|
1070
|
+
The action-input verifier now has its own maintained scope: 42 unit/native tests
|
|
1071
|
+
across three suites cover 63 statements, eight branches, nine functions and
|
|
1072
|
+
53 lines at all-four 100%. Both source-free decorator compiler modes and the
|
|
1073
|
+
original action/context/revocation assertions remain in the native integration
|
|
1074
|
+
flow. Outer test budgets and cleanup were corrected without changing the inner
|
|
1075
|
+
limits. The final scope, isolated package and full regression gates pass.
|
|
1076
|
+
See `ACTION_INPUT_VERIFICATION.md`.
|
|
1077
|
+
|
|
1078
|
+
The starter measurement/authored coordinators now retain available raw
|
|
1079
|
+
reports before parsing or workspace cleanup. Their shared `reportCommand` helper
|
|
1080
|
+
has a maintained 15-test scope at all-four 100% (16 statements, eight branches,
|
|
1081
|
+
one function, 14 lines). See `STARTER_REPORT_RETENTION.md`.
|
|
1082
|
+
|
|
1083
|
+
Both coordinators and `lib/finishVerificationSummary.js` now also have a maintained
|
|
1084
|
+
direct scope: 56 tests/three suites, 180 statements, 34 branches, 25 functions and
|
|
1085
|
+
148 lines, all-four 100%. Actual copied applications reject source mutation after
|
|
1086
|
+
passing tests; native filesystem failures and explicit unit faults verify terminal
|
|
1087
|
+
report handling and retained cleanup evidence. These two coordinators are removed
|
|
1088
|
+
from the remaining list below. See `STARTER_COORDINATOR_VERIFICATION.md` for exact
|
|
1089
|
+
source/report identities and boundaries. The subsequent full regression includes
|
|
1090
|
+
these cases and passes 1,388 tests/132 suites with the unchanged library scope.
|
|
1091
|
+
|
|
1092
|
+
The lifecycle coordinator now has a maintained direct scope: 26 tests/two suites,
|
|
1093
|
+
42 statements, six branches, four functions and 39 lines, all-four 100%. A real
|
|
1094
|
+
empty-map false-green was corrected; the source-free emitted-JavaScript gate now
|
|
1095
|
+
requires a nonempty exact module and complete metrics. Only its temporary trailing
|
|
1096
|
+
source-map comment changes, with original/measured bytes retained. The CLI passes
|
|
1097
|
+
13 real tests and all-four 100% over 57 emitted statements/lines, 20 branches and
|
|
1098
|
+
four functions. See `STARTER_LIFECYCLE_VERIFICATION.md`; these later tests are not
|
|
1099
|
+
part of the preceding 1,388-test full inventory.
|
|
1100
|
+
|
|
1101
|
+
The packed-browser verifier and shared `BrowserPages` owner now have a maintained
|
|
1102
|
+
exact scope: 42 tests/four suites, 131 statements, 26 branches, 20 functions and
|
|
1103
|
+
103 lines, all-four 100%. Targeted browser-coordinator units and complete native
|
|
1104
|
+
runtime/refresh gates also pass, but do not close that entire coordinator's direct
|
|
1105
|
+
coverage gap. No frozen helper was changed. See `BROWSER_OWNER_VERIFICATION.md`
|
|
1106
|
+
for unit/native boundaries, retained identities and isolated-package distinctions.
|
|
1107
|
+
|
|
1108
|
+
The previously identified active verification/build coverage gaps were addressed
|
|
1109
|
+
incrementally below and in the newer established-scope entries above:
|
|
1110
|
+
|
|
1111
|
+
The client source coordinator is now measured separately by
|
|
1112
|
+
`npm run verify:client:coordinator:coverage`: 35 explicit dependency-boundary
|
|
1113
|
+
units plus three real preflight subprocess tests, covering 107 statements,
|
|
1114
|
+
19 branches, 14 functions and 95 lines at 100%. Its CI job retains that map.
|
|
1115
|
+
Two separate native Vitest fixtures reproduce worker-command/invalid-coverage
|
|
1116
|
+
failures and verify raw files survive confirmed temporary-workspace cleanup.
|
|
1117
|
+
They run in the full linked-client source command, not registry-only CI.
|
|
1118
|
+
The recorder/configuration strings still require real execution; this map does
|
|
1119
|
+
not claim coverage inside those generated programs or other browser drivers.
|
|
1120
|
+
See `CLIENT_DEVELOPMENT.md` for the maintained commands and retention boundary.
|
|
1121
|
+
|
|
1122
|
+
Verification on Windows/Node 22.21.0: the 38-test coordinator/preflight command
|
|
1123
|
+
passed in 4.006 seconds, map SHA-256
|
|
1124
|
+
`ad6e0c653993e37a9ac06c793a3550b5e9ff5b1e93658f88ef896bbc6845c55f`.
|
|
1125
|
+
The full source command also passed its 26 collector/preflight/report tests,
|
|
1126
|
+
both native failure fixtures (4.487 seconds), and all 77 client tests in each
|
|
1127
|
+
plain/instrumented mode plus actual HTTP/WebSocket/browser acceptance.
|
|
1128
|
+
Run `cb17c8ec-6c2c-4948-9c32-771571d35a19` retains five raw worker files;
|
|
1129
|
+
`coverage/client-source/<run-id>/summary.json` has SHA-256
|
|
1130
|
+
`aa3d0b371ec6f6885f8b3fcce87973cb136f007e599aabb944a071d39088fba5`.
|
|
1131
|
+
The authored-client scope remains 791 statements/521 branches/125 functions/659
|
|
1132
|
+
lines at 100%, with source-built plain bundles matching the published 0.2.0
|
|
1133
|
+
runtime identities. These results are not a new library regression/performance
|
|
1134
|
+
measurement or publication approval. The original throughput failure remains open.
|
|
1135
|
+
|
|
1136
|
+
The runtime-frame and page-ownership helper scopes are now covered by
|
|
1137
|
+
`npm run verify:browser:supplements`, which is part of the existing browser gate.
|
|
1138
|
+
Four explicitly isolated boundary units reject failed browser calls/assertions
|
|
1139
|
+
and missing sessions; one integration test invokes the unchanged canonical
|
|
1140
|
+
plain/instrumented runtime cases with real Redweb HTTP/WebSockets and Chromium.
|
|
1141
|
+
The two helper files are unchanged. Authored instrumentation measures all
|
|
1142
|
+
90 statements, two branches, ten functions and 84 lines at 100%, including five
|
|
1143
|
+
anonymous callbacks omitted by the initial native-converter function inventory.
|
|
1144
|
+
The native report's five-function denominator is retained as diagnostic only;
|
|
1145
|
+
it is not the acceptance map. Browser-expression strings are constructed here,
|
|
1146
|
+
not internally instrumented by this Node report; actual browser execution and
|
|
1147
|
+
the separate frontend map remain required.
|
|
1148
|
+
|
|
1149
|
+
On Windows/Node 22.21.0, the full browser coverage command passed 27 collector
|
|
1150
|
+
tests, the five supplement tests (7.369 seconds), and the separate refresh gate.
|
|
1151
|
+
Evidence is preserved under
|
|
1152
|
+
`coverage/browser-supplements-evidence/3ff15611-18b6-44a9-af71-3de942420521/`,
|
|
1153
|
+
including source identities and all three reports. Authored map SHA-256:
|
|
1154
|
+
`cb9029313165322379f9a0eb3d4057e2fccff7a11cd9ff37889b5e7342da22b6`.
|
|
1155
|
+
The canonical browser run `3ff15611-18b6-44a9-af71-3de942420521` passed seven
|
|
1156
|
+
ownership and thirteen runtime assertions per mode, plus the existing feedback,
|
|
1157
|
+
morph and native selection checks. Its separate frontend scope remains
|
|
1158
|
+
426 statements/262 branches/64 functions/351 lines at 100%. The refresh run
|
|
1159
|
+
`3b4be9fd-8406-4be6-81ca-742d89331341` retained all-four 100% and observed actual
|
|
1160
|
+
back-forward-cache restoration. CI retains the
|
|
1161
|
+
authored helper map with the existing browser evidence. Within that command,
|
|
1162
|
+
this replaces the runtime invocation rather than adding a second one; the
|
|
1163
|
+
full regression suite also discovers the new integration test. No new timing
|
|
1164
|
+
claim or performance-policy change is introduced.
|
|
1165
|
+
|
|
1166
|
+
The development-refresh coordinator's earlier fifteen-unit partial measurement
|
|
1167
|
+
is superseded only for its direct coverage claim by the complete authored map
|
|
1168
|
+
above. Earlier failure records remain historical evidence.
|
|
1169
|
+
|
|
1170
|
+
The frozen evaluation process, preparation, sealing, trial runner, control
|
|
1171
|
+
validator and browser evaluator now have the separate direct maps recorded above.
|
|
1172
|
+
The final enumerated frozen Live HTML browser tool now has its direct map above.
|
|
1173
|
+
|
|
1174
|
+
Keep frozen source/evidence unchanged. The evaluation fixture, recipe tests,
|
|
1175
|
+
shared test networking, repository tests/helpers and fixtures are test
|
|
1176
|
+
infrastructure, not silently part of the library denominator. The client’s
|
|
1177
|
+
standalone Node-only V8 diagnostic remains a separate known failure; original
|
|
1178
|
+
authored-source and browser coverage do not relabel it passing. Coverage work
|
|
1179
|
+
does not require restarting the deferred scientific runtime investigation.
|
|
1180
|
+
|
|
1181
|
+
Load policy, reply accounting and the enumerated helper/tool coverage are now
|
|
1182
|
+
recorded above. Final scope reconciliation and release gates remain required;
|
|
1183
|
+
valid historical workload results are not replaced by smaller coverage fixtures.
|