Project Roadmap
Build a transcription app you want to use. Share it with the world. See what happens.
Guiding document: Principles
v1.0.0 Release
Release Goal: This project will reach v1.0.0 as part of a coordinated release with AirGap Deploy and AirGap Transfer.
v1.0.0 Scope: The MVP features documented in this roadmap.
Cross-Project Integration: v1.0.0 validates the integrated transcription deployment workflow works end-to-end.
Release Coordination: See Release Roadmap for cross-project timeline and integration milestones.
Target: Suite Milestone 5 (Month 10) — MVP Complete
Note: Development begins after AirGap Transfer is complete (Suite Milestone 5).
Current Status
Phase: Requirements Specified
Next: Begin MVP implementation
Requirements, design, and test specifications are complete and ready for implementation.
MVP Goal: A working app you can use daily.
MVP Scope
Feature |
Implementation |
|---|---|
Record audio |
Microphone → WAV file |
Transcribe |
Subprocess to whisper.cpp |
View result |
Tray menu + notification |
Copy text |
Hotkey + menu click |
History |
SQLite, shown in tray menu |
Settings |
Native dialog (whisper path, model path, hotkeys) |
Tray |
Background operation, status indicator |
Implementation Milestones
Milestone 1: Skeleton
Target: Suite Milestone 5 (early)
Goal: Tray icon appears.
Create Cargo project with dependencies
Create module files per SDD architecture
Initialize system tray with placeholder icon
Verify app runs and shows tray icon
Done when: Tray icon visible, right-click shows “Quit”.
Milestone 2: Recording
Target: Suite Milestone 5
Goal: Record voice to WAV file.
List audio input devices
Capture from default device
Write samples to WAV (16kHz mono)
Left-click tray toggles recording
Tray icon changes when recording (red)
Show recording duration in tray menu
Configurable recording duration limit (default: 120 min)
Audio input device selection in settings
Done when: Can record, find WAV file, play in system player.
Milestone 3: Transcription
Target: Suite Milestone 5
Goal: Get text from whisper.cpp.
Settings stored in SQLite
Settings dialog for whisper binary path
Settings dialog for model path
Validate both paths exist
Invoke whisper.cpp with configured paths
Capture and parse stdout for transcription text
Show notification with result preview
Handle transcription errors with system notification
Done when: Record → notification shows text.
Milestone 4: Persistence
Target: Suite Milestone 5
Goal: Save transcriptions, survive restart.
Initialize SQLite in app data directory
Create tables on first run (see SDD schema)
Save transcription after whisper completes
Load recent transcriptions into tray menu
Click menu item copies text to clipboard
“View History” opens native dialog with full list
Delete transcription from history dialog
Export transcription as .txt file from history dialog
Done when: Close app, reopen, history still there.
Milestone 5: Hotkeys
Target: Suite Milestone 5
Goal: Control without touching mouse.
Register
Ctrl+Alt+Rfor toggle recordingRegister
Ctrl+Alt+Cfor copy last transcriptionSettings dialog to change hotkeys
Handle registration failures gracefully
Done when: Can record and copy without touching mouse.
Milestone 6: Polish
Target: Suite Milestone 5 (Month 10) — MVP Complete
Goal: Comfortable daily use.
First-run: prompt for whisper paths if not set
Error notification when whisper not found
Error notification when recording fails
Show timestamp and preview on menu items
Tray icon shows busy state during transcription
Settings persist between runs
Sanitize file paths (reject
..)Use parameterized database queries
Verify no network calls under any circumstance
Offline build dependencies (cargo vendor)
Single-directory deployment support
Done when: Use it for a week without frustration.
Milestone 7: Testing & Documentation
Target: Suite Milestone 5 (Month 10) — MVP Complete
Goal: Comprehensive testing and documentation
Unit Tests:
Audio recording (device selection, WAV format)
Transcription (whisper.cpp invocation, output parsing)
Database (CRUD operations, transactions, parameterized queries)
Settings (persistence, validation, hotkey configuration)
Security (path sanitization, no network calls)
Integration Tests:
End-to-end: record → transcribe → save → retrieve
Multi-platform testing (Linux, macOS, Windows via CI)
Error scenarios (missing whisper binary, permission denied, disk full)
History management (large databases, deletion, export)
Documentation:
API documentation (rustdoc)
User guide — Getting started, configuration, usage
Developer guide — Architecture, contributing
Deployment guide — air-gap installation with AirGap Deploy
CI/CD:
Run tests on Linux, macOS, Windows
Clippy lints (deny warnings)
rustfmt checks
cargo-deny license checks
Release automation (GitHub releases)
Done when: 80%+ code coverage, complete documentation, CI/CD pipeline.
Definition of Done
MVP is complete when:
Press hotkey → recording starts (tray icon changes)
Press hotkey → notification shows transcription
Press hotkey → last text copied to clipboard
Recent transcriptions visible in tray menu
Click menu item → text copied to clipboard
Quit and reopen → history preserved
80%+ code coverage
Zero clippy warnings
All dependency licenses compatible with AGPL-3.0
Documentation covers all use cases
Use daily for one week without major issues
What’s NOT in MVP
Defer all of this until after shipping:
Error recovery beyond “show notification”
Dedicated accessibility features (screen reader support, etc.) – basic accessibility via customizable hotkeys is in MVP
Dark mode toggle (follow system is fine)
Performance optimization
Code signing (needed for distribution, not development)
Key Documents
Document |
Purpose |
|---|---|
Design principles (read first) |
|
Functional and non-functional requirements |
|
Architecture and component design |
|
Test cases with traceability |
See Also
Meta-Architecture — How Cleanroom Whisper fits in the AirGap suite
Specification Overview — Project statistics and traceability overview
AirGap Deploy — Deployment packaging tool
AirGap Transfer — Large file transfer companion tool
Progress Log
Date |
Activity |
|---|---|
2026-01-28 |
Created specification and documentation |
2026-01-31 |
Updated roadmap to align with 6-milestone release plan |
2026-02-16 |
Requirements specified and ready for implementation |