ENGINEERING VERSION LOG · 2026.07
From dictation to a Voice Inbox
The mobile product should not duplicate desktop dictation. One recording becomes a useful object while preserving what the user actually said.
01 · PRODUCT HYPOTHESIS
Mobile needs its own interaction model
Desktop InkTyper sends speech into the active text field. Mobile is better framed as a Voice Inbox: each recording becomes a note, task, idea, or meeting record and then enters the appropriate workflow.
02 · DATA CONTRACT
The raw transcript is the immutable fact layer
Classification, titles, due dates, and formatting are derived views. They may be edited or regenerated, but never silently replace the original speech. The contract returns transcript, objects, quality, and timing_ms together.
03 · REFERENCE CLIENT
Validate the full path in a real client
- Authenticated cloud transcription.
- A local Voice Inbox with four object types.
- Editable transcript preview, copy, and system sharing.
- A simple local classifier first; schema-bound API output in production.
04 · B2B PILOT
Turn internal capability into a bounded evaluation
A pilot uses representative Chinese and English clips to compare latency, transcription quality, and structured output. Delivery may be a hosted endpoint or private Docker deployment; a technical evaluation comes before a commercial commitment.
EVIDENCE · DIAGNOSIS
What the evidence establishes—and what it does not
The experiment established one durable boundary: the raw transcript is the fact layer; tasks, titles, summaries, and formatting are derived views. Mobile should not copy the desktop overlay. It needs system-input, voice-inbox, and follow-on object workflows of its own.
OPERATIONS · OPEN WORK
Failure behavior and the next verification gate
Android can use an InputMethodService for system-wide entry. An iOS third-party keyboard cannot capture the microphone directly, so a companion app, Shortcut, or system entry point must record before the keyboard extension inserts a recent result. The B2B contract must preserve transcript, derived objects, quality, and stage timing.
- Failure visibility
- Every fallback needs a reason code and stage timing. A successful final transcript must not erase evidence that real-time, AI, or paste failed first.
- Release evidence
- Keep request ID, actual model, node, queue, upload, ASR, AI, and delivery timing together so a regression can be reconstructed end to end.