51 lines
4.1 KiB
Markdown
51 lines
4.1 KiB
Markdown
# Phase 0 user-run evidence and probe correction
|
|
|
|
**Result:** Partial feasibility demonstrated; worklet load failed; GC1 remains incomplete\
|
|
**Source:** JSON supplied by the user from probe version 1\
|
|
**Run started:** `2026-09-05T02:13:55.036Z` (September 4 in America/Los_Angeles)\
|
|
**Raw evidence:** [user-run JSON](2026-09-04-user-run.json)
|
|
|
|
The raw evidence is preserved with its original field values, including the misleading `worklet: "not tested"` status. No agent browser navigation or workaround was used to obtain this result.
|
|
|
|
## What this run establishes
|
|
|
|
| Observation | Assessment |
|
|
| --- | --- |
|
|
| `protocol: "file:"`, Chrome 152 user agent, `secureContext: true` | The user loaded the probe directly from disk in a secure context |
|
|
| Both exhibits present; Blue Study selected | File import and selection produced the shown library state |
|
|
| `indexedDB: "opened and read"`, `saves: 2` | The probe reports an opened database and two completed save transactions |
|
|
| `audioState: "running"`, sample rate 48000 | The audio context was unlocked and running |
|
|
| Three `AbortError` entries for module loading | Worklet loading failed; it was attempted despite the stale status label |
|
|
| `restored: false` | This document load did not restore cached state; it does not establish a full-restart test or prove persistence failure |
|
|
| Both activity values and master volume still at defaults | Distinctive edited preference restoration has not been demonstrated |
|
|
| `onlineFlag: true`, authored-network count 0 | No offline test is established; the count is a source-level declaration, not a network trace |
|
|
| Directory import not tested; storage injection false | These checks remain pending |
|
|
|
|
The v1 worklet attempt occurs before oscillator creation and before enabling suspend/resume. Each shown exception therefore prevented that invocation from scheduling its tone and enabling those controls. A running context is not evidence of audible output.
|
|
|
|
## Root cause status
|
|
|
|
The cause of module-load failure is not established. Chromium uses the reported AbortError wording for worklet module-load failures; it does not uniquely identify CSP, origin behavior, or a processor-code defect. See the [Chromium diagnostic change](https://chromium.googlesource.com/chromium/src/+/963f877152d08f60e3f8bd60f1958ddcebce3b0f).
|
|
|
|
The [Fetch Standard](https://fetch.spec.whatwg.org/#concept-request-destination) associates `audioworklet` requests with `script-src`. This probe already permits `blob:` in `script-src`. That is insufficient to diagnose this run, but does not justify assuming `connect-src 'none'` is the cause or weakening the policy without evidence. Console details and captured policy violations are the next diagnostic input.
|
|
|
|
## Probe version 2
|
|
|
|
The corrected [probe](../../../prototypes/phase0/XZBT-phase0-probe.html) separates native tone playback from worklet loading, enables suspend/resume after context unlock, and records explicit worklet attempt stages and failure state. It adds an explicit user-reported audible-tone checkbox and page CSP diagnostics. The database name, file path, loader strategy, and CSP remain unchanged.
|
|
|
|
**Version 2 artifact SHA-256:** `52DD9137A7584236D00A7BF5BBBDB8159B25D8F98605C88A849892835B8D0FE5`
|
|
|
|
Two stubbed Node control-flow regression tests passed using:
|
|
|
|
```text
|
|
node --test prototypes/phase0/audio-probe.test.mjs
|
|
```
|
|
|
|
They verify that worklet rejection cannot prevent tone scheduling or suspend/resume controls and that supplied CSP diagnostics are retained. The tests use fake APIs and do not verify browser loading, CSP enforcement, audio output, or persistence. Browser testing of version 2 is pending.
|
|
|
|
## Next manual check
|
|
|
|
Follow the [updated instructions](../../../prototypes/phase0/README.md). Test the native tone and worklet independently; include `workletAttempts`, `securityPolicyViolations`, and any additional console error in the next evidence. Test distinctive values and capture the next launch before importing again, confirming separately whether the browser was fully closed.
|
|
|
|
Phase 0 remains stopped at the unresolved worklet/loading and restart-persistence checks. No Phase 1 implementation has begun.
|