mg/FIELDNOTES

Build history / Sonaweft

Building Sonaweft: speech, source and recovery

The local CLI, actual cloud speech, optional review and the problems resolved before publication.

Source chronology

The original instascript command and import paths remain compatible. Hosted workbench 7fde01a added the upload/review/export workflow. 5ac1d7c added the original completed audio example; handoff 68b8472 normalized artifacts and corrected the provider reference. The old optional Claude/vault documents are archives, not required setup.

1. Preserve source and recover work

The standalone CPU CLI uses FFmpeg/FFprobe and faster-whisper. Immutable original recognition, separate corrections, generated notes and sourced questions became distinct artifacts. Private checkpoints, exclusive locks, completion hashes and atomic publication support deliberate recovery; cross-path perceptual deduplication is not promised.

Versioned exports include Markdown/text/JSON/SRT/VTT and instascript-export/v1 provenance/hashes. A complete export is separate from implementing a future importer in Noteweld.

2. Run actual cloud recognition and bounded review

The hosted FastAPI service uses separate Sonaweft ledger/media/model volumes. An on-demand Modal L4 loads the pinned large-v3 model revision in the cloud. The local MX350 does not host those weights. Optional DeepSeek text review has explicit consent, bounded text/output and schema/source-quote checks. Audio is not sent to that text API.

An original generated two-sentence recording was transcribed on local CPU, the Nix-built CLI and the cloud GPU. Actual configured DeepSeek Flash review succeeded; the advanced model was listed by the API, not inference-benchmarked. The combined cloud pipeline and public upload/correction/export journey passed.

3. Add accounting and public evidence

The single ledger writer reserves a quoted amount once and settles only a completed selected package. Failures release reservations; explicit retry may reuse retained recognition. Paddle product/prices and a paused notification were configured separately from Pageweft. Fresh transaction/adjustment reads enforce server-owned intent, owner, product and environment. No shared wallet is implemented.

Fifty-two automated checks, source CI and real hosted browser acceptance are recorded in the release . Those payment API tests are mocked. An actual encrypted remote financial snapshot was decrypted into a disposable SQLite clone and passed integrity/balance checks; it does not restore expired media.

Successful commands

Start with Python 3.13 and separately available FFmpeg/FFprobe. Install only the extras needed for the selected local/cloud workflow.

python3.13 -m venv .venv
.venv/bin/python -m pip install '.[web,cloud]'
bin/sonaweft recording.mp3 --out ./out
python -m unittest discover -s tests -q
node --check sonaweft_web/static/app.js
node --check sonaweft_web/static/checkout.js
.venv/bin/python -m modal deploy app.py

recording.mp3 is a placeholder for an authorized local recording, not a distributed third-party fixture. The deployment requires owner authentication and the already-established session/payment/LLM secrets. Provider values stay server-side. The tested Nix route was:

nix build .#default --no-link

The resulting CLI actually processed the generated recording; no NixOS rebuild was needed. Owner reports and encrypted snapshots use scripts/operations.py; the exact incident/payment sequence is in operations .

Recorded failures and fixes

Observed problemImplemented correction
Cloud exception/NumPy values could not cross the function boundaryReturn native JSON values and a plain error envelope; rerun actual combined cloud processing
PyAV 19 broke the tested pip speech dependency combinationPin pip/cloud to tested PyAV 15.1.0; keep Nix’s separately validated compatible pair distinct
Nix dynamic-library discovery hit SIGPIPE in the launcherCorrect the discovery path and run the Nix-built CLI on the original audio
A completed audio sample needed actual evidence rather than an illustrative VTTPublish the original generated recording, real recognition/review and a manifest-verified bundle; verify playback/seek/download

No long/noisy/audio-accent benchmark, diarization, hosted arbitrary-URL import, immediate self-service deletion or live merchant approval is implied. Checkout remains closed until actual account and payment acceptance.

← All Sonaweft documentsBack to top ↑