# Browser AI privacy source review

Reviewed: September 7, 2026. Evidence class: **source-reviewed**.

This record traces AI Creator's local-file Whisper flow and model-cache service worker, then compares a separately versioned external-generation adapter from the related browser editor. It is not a browser-network experiment, privacy certification or provider-retention audit. No inference ran for this review and no HAR was captured.

## Files

- `source-snippets.md`: seven exact excerpts, with original file locations and line/byte ranges.
- `source-review.json`: full-input SHA-256 values, excerpt hashes, source scope, findings and limitations. The site patch and cache inputs are September 7 working files, not a claimed immutable Git release. Their hashes identify the reviewed bytes.
- `data-flow.csv`: six source-derived operations and their boundaries. Every row is marked source-reviewed.
- `inspection-worksheet.csv`: a blank, eleven-phase worksheet for a new browser inspection. The observation fields are intentionally empty. Instructions are not test results.

The site's build imports `patchWhisperRuntimeAsset`, applies it to the recovered assets, and copies `scripts/model-runtime-cache.sw.js` to both `/onnxcache.sw.js` and `/model-cache-sw.js`. Verify the actual deployed asset bytes for your own session; this record does not assert that today's server matches the working source.

The Puter adapter is the archived source from MartinDelophy/ai-video-editor commit `3684ec4063583c66c80e34e90c655a71d65dad1b`. Its full SHA-256 is `993644ba2780b4294ea4df7f0d64a9bdb1242a73e4849ff2d49802db83f075cc`, matching the neighboring [generation-plugin manifest](../generation-plugin/source-manifest.json). The [MIT license](../generation-plugin/upstream/LICENSE) accompanies that source. This comparison does not imply that Whisper uses Puter.

## What the review found

The recovered file picker converts its selected File to a `blob:` URL. The patched action reads that URL, decodes audio at a requested 16 kHz sample rate and posts decoded samples to the worker. The worker invokes the Whisper pipeline on those samples and returns text. This establishes the source path, not a claim that every script or dependency on the page is incapable of network access.

The model-cache worker intercepts same-origin GET requests whose pathname ends in `.onnx`, `.bin`, `.wasm` or `.json`, or begins `/models/`. It skips requests carrying a Range header. It writes only successful basic responses. Its name is `ai-creator-models-v2`; `.json` matching can include non-model content. Requests this worker does not handle are not thereby blocked.

The related editor's adapter gives prompts and model choices to `puter.ai.txt2img` or `puter.ai.txt2vid` and reads the returned media. Its source establishes that SDK handoff, not the SDK's exact network payload, the provider's internal execution or retention/deletion guarantees.

## Repeat the browser inspection

Use a separate test profile and the public WAV linked from the article. Open DevTools before navigating to the tool. Capture the application/model-load baseline, save it, then clear the log and record file selection, transcription, a short idle period and a warm repeat. Record browser version, exact page URL, date, consent state and cache state. Inspect full destinations, query parameters, request payloads, initiators and applicable WebSocket messages. Do not interpret the Size column as a measurement of uploaded media.

Inspect Cache Storage and IndexedDB separately, plus local/session storage when present. In the disposable profile, close other same-site tabs and clear the relevant site stores. Refresh the storage views before rerunning the workflow, because revisiting the tool can repopulate its model cache. A cache-only deletion does not establish removal of other stores. Files exported to the operating system, saved logs and data on another provider origin need separate handling.

Return Network to All and remove text filters before exporting the full log. Chrome's sanitized HAR export removes sensitive headers by default, but inspect URLs and content before sharing. Retain the original privately if needed and clearly disclose redactions in any shared copy.

An acceptable conclusion must name the observed workflow and its excluded contexts. “No selected-media upload was observed during these captured actions” is narrower than “nothing ever leaves this device.” An offline repeat after preparation checks whether that run needs a live response; it does not establish what the earlier online phase transmitted.

## Documentation checked

- [Chrome Network tutorial](https://developer.chrome.com/docs/devtools/network)
- [Chrome Network reference: payloads, WebSockets and HAR export](https://developer.chrome.com/docs/devtools/network/reference)
- [Chrome Cache Storage inspection and deletion](https://developer.chrome.com/docs/devtools/storage/cache)
- [MDN blob URLs](https://developer.mozilla.org/en-US/docs/Web/URI/Reference/Schemes/blob)
- [MDN using Web Workers](https://developer.mozilla.org/en-US/docs/Web/API/Web_Workers_API/Using_web_workers)

These primary documentation pages explain the inspection controls and browser concepts. They do not certify AI Creator's deployed behavior.
