@@ -71,6 +71,13 @@ wall-clock deadline, worker crash, malformed protocol, or service disposal
7171terminates the generation. The placement benchmark must compare drain versus
7272restart under rapid edits before the executor policy is frozen.
7373
74+ The execution deadline belongs to the posted worker job, not to any attached
75+ consumer. Consumer cancellation never clears it. A draining operation retains
76+ the active lane until it returns or its generation is terminated; queued work
77+ has a separate wait deadline. Service disposal always terminates immediately.
78+ These rules prevent a cancelled hostile parse from occupying the only worker
79+ indefinitely.
80+
7481The safety deadline is separate from product latency targets. A deadline
7582failure never upgrades parser authority and an active request is not
7683automatically replayed after a crash or timeout.
@@ -182,7 +189,8 @@ run in CI. Source-workspace success is not packaging evidence.
182189
183190## Evidence required before session wiring
184191
185- A production-shaped fixture built from the exact ` npm pack ` archive must prove:
192+ A production-shaped fixture built alongside the exact ` npm pack ` archive must
193+ prove:
186194
187195- Core-only import emits no parser or worker bytes.
188196- PostgreSQL and BigQuery emit separate worker chunks.
@@ -216,37 +224,50 @@ Safety timeouts are not evidence that these product targets are met.
216224### Initial packed-consumer baseline
217225
218226The placement harness introduced with this decision builds the exact packed
219- archive, consumes it from an isolated Vite 8 fixture, serves the production
220- output with a same-origin CSP, and runs it in Chromium. Its first local
221- Node 24 / Chromium 149 / arm64 macOS sample recorded:
227+ archive, verifies its core import in an isolated fixture, and separately uses
228+ fixture-owned worker code with the pinned ` node-sql-parser ` dependency to prove
229+ consumer-side Vite 8 placement feasibility. It serves the production output
230+ with a same-origin CSP and runs it in Chromium.
231+
232+ The worker portion does not yet prove a packed optional parser integration;
233+ that entry does not exist. The protocol PR must move the worker implementation
234+ behind the packed package boundary and remove the fixture's direct parser
235+ dependency before making a public packaging claim.
236+
237+ The latest local Node 24 / Chromium 149 / arm64 macOS sample recorded:
222238
223239| Output | Raw | gzip |
224240| --- | ---: | ---: |
225- | Core-only fixture | 24,462 B | 7,477 B |
226- | PostgreSQL grammar plus worker entry | 318,628 B | 66,211 B |
227- | BigQuery grammar plus worker entry | 222,769 B | 49,492 B |
228- | Complete worker fixture | 567,271 B | 123,798 B |
241+ | Core-only fixture | 24,462 B | 7,475 B |
242+ | PostgreSQL transitive worker graph | 320,495 B | 67,214 B |
243+ | BigQuery transitive worker graph | 224,648 B | 50,205 B |
244+ | Complete worker fixture | 549,003 B | 117,941 B |
229245
230246The core module trace contained no ` node-sql-parser ` module. No dialect
231- resource loaded before explicit construction. PostgreSQL and BigQuery were
232- emitted as separate assets and both parsed successfully without changing the
233- main-window parser sentinel.
247+ resource loaded before explicit construction. A single static module worker
248+ loaded PostgreSQL and then BigQuery through separate literal lazy imports;
249+ both parsed successfully without changing the main-window parser sentinel.
250+ The per-dialect figures conservatively include their complete static
251+ transitive closures, with shared chunks also reported separately.
252+
253+ One sequential cold/warm run on the shared worker measured:
234254
235- Two consecutive cold/warm runs measured:
255+ | Dialect | Grammar load and initialization | First parse | First round trip | Warm parse | Warm round trip |
256+ | --- | ---: | ---: | ---: | ---: | ---: |
257+ | PostgreSQL | 8.7 ms | 2.6 ms | 11.5 ms | 0.2 ms | 0.3 ms |
258+ | BigQuery | 4.3 ms | 2.3 ms | 6.6 ms | 0.4 ms | 0.5 ms |
236259
237- | Dialect | Cold request range | Warm parse | Warm round trip |
238- | --- | ---: | ---: | ---: |
239- | PostgreSQL | 17.0–32.6 ms | 0.2 ms | 0.2–0.3 ms |
240- | BigQuery | 10.1–10.8 ms | 0.3 ms | 0.3 ms |
260+ The worker ready handshake took 7.0 ms in that run.
241261
242262These numbers establish packaging feasibility and initial size guards. They
243263are not percentile claims. Stable latency decisions require repeated,
244264cross-platform samples over the representative and adversarial corpus.
245265
246- The checked-in harness fails above 68 KiB gzip for the PostgreSQL assets,
247- 50 KiB for BigQuery, or 124 KiB / 590 KiB for the complete worker fixture in
248- gzip/raw form. These ceilings include small measurement headroom and are
249- placement-spike guards, not the final optional-integration bundle budget.
266+ The checked-in harness fails above 68 KiB gzip for the PostgreSQL transitive
267+ graph, 50 KiB for the BigQuery transitive graph, or 120 KiB / 570 KiB for the
268+ complete worker fixture in gzip/raw form. These ceilings include small
269+ measurement headroom and are placement-spike guards, not the final
270+ optional-integration bundle budget.
250271
251272## Implementation sequence
252273
0 commit comments