# Linux developer handoff ยท Preview 0.1.2 Updated September 7, 2026. This release updates the developer handoff, not the Linux inference service. The Node.js service and CLI remain the 0.1.1 text/memory implementation. No native Linux voice, image or desktop UI implementation is added. The browser release record identifies `20260907-composer-v1` as the latest published workshop update. Standard speaking/listening and the Local AI controls are published; cloning and image generation remain development experiments. Publication does not establish Linux compatibility or physical microphone acceptance. ## Capability inventory | Capability | Current implementation | Linux work to carry forward | |---|---|---| | Text and private memory | Kit: SmolLM2-360M-Instruct CPU q4; bge-micro-v2 q8 semantic recall. Typed facts, provenance, fixed refusals for missing/conflicting facts; explicit general chat without private memory. | Preserve existing API, loopback authentication, fact grounding and local storage. Browser memory interchange is not implemented. | | Local AI controls | Browser: Text, Speak, Listen status/progress tiles; Load/Stop; serialized startup. Text starts first; readiness within 10 seconds permits optional voice loading, subject to data-saving preference and slow-load cutoff. | Implement equivalent lifecycle and cancellation in the Linux UI; Stop retains installed files. Loading a listening model never grants microphone permission or starts capture. | | Speaking | Published browser Kokoro 82M q8, pack 1.0.0; Heart, Michael, Emma, George; preview, speed/voice choice, playback, WAV download and optional chat read-aloud. Model/profile files: 94,453,730 bytes. | Port file-based speech generation first, then playback and composer integration. Browser WASM runtime is separate from the kit's native text runtime. | | Listening | Published browser Whisper tiny.en q8, pack 1.0.0; audio import, push-to-talk, cancellation, transcript placed in composer for review. Files: 43,538,547 bytes. | Port file transcription first; then Linux microphone capture, permissions, resampling and cleanup. Physical microphone end-to-end acceptance remains pending. | | Composer | Published browser My AI selector, send arrow, model-aware microphone/speaker controls, mute state and accessible labels. | Preserve review-before-send and keyboard/screen-reader operation in the Linux UI. | | Optional model packs | Browser SHA-256/size-verified manifests, independent download/version/removal, cancel/retry, cache completeness checks. | Adapt CacheStorage to protected disk storage; do not mark ready until all files verify. Disk installation and runtime loading are separate states. | | Contribution export | Browser local JSON preview/download: release identity, prompt/result, selected metrics, rating/correction. No automatic upload, training service or memory export. | Preserve exact-content review; exclude personal memory, reference recordings and voice profiles. Treat typed prompt/result content as potentially personal. | | Voice cloning | Development-only Pocket TTS English INT8, pack 0.1.1; session-only reference/profile, consent checkbox, reference playback, generation and Forget. Files: 146,262,285 bytes. | Separate opt-in experiment. Similarity acceptance is pending; forget/cancel must clear session data and obsolete jobs. Not a released Linux feature. | | Icon/image generation | Development-only SD-Turbo ONNX/WebGPU, pack 0.1.1; seed, 512/128 PNG export. Files: 2,516,154,832 bytes. | Research reference only. Current samples fail the clean-icon quality bar; the recorded research-only license excludes this candidate from production. Choose/review an appropriate model before a production port. | | Networking and desktop | Kit includes draft ANT documents and a signed synthetic fixture. | Peer discovery, attestation, replication, replay/reconnect protocol and desktop application remain unimplemented. | Sizes exclude runtime/dependency downloads. Optional packs are not fetched by `npm run models`; that command remains text/embedding-only. No model weights are bundled. Browser-relative pack URLs describe that application, not a promise that experimental files are publicly hosted. ## Reference source in the ZIP `reference/snapshot.json` lists exact copied paths and SHA-256 hashes. The snapshot includes local source changes, so a Git revision alone would not identify its contents. These files are porting references, not a standalone browser application or native Linux library. Browser DOM, Workers, Web Audio, CacheStorage and WebGPU require host-specific adapters; the Razor view requires the full ASP.NET application. - `reference/WyckAi.Node/wwwroot/js/model-packs.js`, `model-queue.js`, `local-models.js`, `local-model-widget.js`: installation, scheduling, state and controls. - `local-voice.js`, `voice-worker.js`, `voice-ui.js`, `speech-end.js`: WAV/audio conversion, worker contract, capture, read-aloud and interruption. - `contribution.js`: reviewable export schema and allowed metrics. - `clone-ui.js`, `session-voices.js`, `prototype-pack.js`, `creative-ui.js`: development-only cloning lifecycle. - `icon-worker.js`, `icon-ui.js`, `icon-math.js`: research-only image pipeline. - `reference/voice-build/`: pinned dependency lock, runtime build/staging recipes, four exact release manifests, acceptance evidence and notices guidance. Rebuild from the full repository layout; compiled runtimes, weights and dependency folders are excluded. - `reference/tests/`: browser logic regression tests. From `reference`, run `node --test tests/*.test.mjs` with Node 22. These tests do not prove native Linux inference. The four pack manifests retain upstream revisions where recorded, hashes, byte sizes and available license metadata. Read upstream license files and preserve runtime/model notices before redistribution; an empty license field is not a license grant. THIRD-PARTY.md covers the existing text kit. The source acceptance record contains historical measurements; do not apply its device timings or earlier test counts to a new Linux build. ## Suggested implementation sequence and acceptance 1. Reproduce the existing text baseline on Ubuntu 24.04 and Arch x86-64 with Node 22. Run contract tests, dependency checks, exact model verification, API smoke and evaluation with external networking disabled. The September 6 CI evidence belongs to 0.1.1, not a newly implemented port. 2. Add independent speaking/listening disk packs and isolated model workers. Test corrupt/truncated files, cancelled downloads, retry, missing assets, concurrent operations, unload/reload and worker failure. Retain loopback/token protections; do not expose the existing API to browsers by removing Origin checks. 3. Demonstrate Kokoro text-to-WAV and Whisper WAV-to-text on Linux with actual hashes, OS, hardware, startup/latency and memory measurements. Verify inference with external networking disabled. Test each voice and missing/unsupported input, not just successful startup. 4. Integrate the composer and controls. Verify transcript review, send, reply, optional read-aloud, mute, stop during load/generation, late-result suppression and recovery. Capture must require explicit user action. Test real microphone permission grant/denial, cancel while permission is pending, device removal and release of every audio track. 5. Verify contribution preview/export, private-memory exclusion, reference/profile exclusion and Forget. Test Linux UI keyboard access and narrow screens. Preserve the existing saved facts during upgrades; never overwrite a user's data directory with release files. 6. Evaluate cloning separately with permitted recordings and explicit similarity judgments. Keep the current icon candidate research-only. Record model/license decisions and held-out quality evidence before promoting either experiment. Report kit and pack versions, hashes, runtime versions, OS/architecture, hardware, exact steps and actual results. Never infer Linux support from a browser demo or a passing mock test. ## Updating an existing 0.1.1 installation This handoff release does not require reinstalling your working text service. Extract 0.1.2 to a separate directory to read the new guide and references. If adopting its text starter, stop the old service and explicitly configure `WYCK_DATA_DIR` and `WYCK_MODEL_DIR` to your existing protected directories; retain a private backup and run only one service per data directory. No data migration or new API endpoints are introduced.