121 lines
5.7 KiB
Markdown
121 lines
5.7 KiB
Markdown
# Thisper Status
|
|
|
|
This is the single source of truth for current delivery status.
|
|
|
|
Current release state: `desktop typed-workflow release candidate`
|
|
|
|
Phase 2 feature scope is implemented. The remaining work is validation and release-policy closure, not missing core desktop functionality.
|
|
|
|
## Completed
|
|
|
|
### Desktop MVP Foundation
|
|
|
|
- Status: `completed`
|
|
- Rationale: The desktop app, main rewrite UI, mode selector, copy flow, and diff review are implemented and in active use.
|
|
- Acceptance condition: User can paste text, rewrite it, inspect diff, and copy output without leaving the app.
|
|
- Repo pointer: `src/`, `index.html`, `src/styles.css`, `src-tauri/src/lib.rs`
|
|
|
|
### Provider Abstraction And Gemini Integration
|
|
|
|
- Status: `completed`
|
|
- Rationale: Rewrite logic is abstracted behind a provider trait and Gemini is implemented as the current backend.
|
|
- Acceptance condition: Main UI and cross-app rewrite both run through the provider boundary instead of hard-coded prompt logic in the UI.
|
|
- Repo pointer: `src-tauri/src/translator.rs`, `src-tauri/src/gemini.rs`, `src-tauri/src/lib.rs`
|
|
|
|
### Native Secure Credential Storage
|
|
|
|
- Status: `completed`
|
|
- Rationale: API key storage now uses native platform protection instead of a misleading generic claim. On Windows this is DPAPI-encrypted app-local storage; other supported desktop platforms continue to use the native credential backend.
|
|
- Acceptance condition: Saving a key through Settings persists it securely across app restarts and the key is never written in plaintext.
|
|
- Repo pointer: `src-tauri/src/credentials.rs`, `src-tauri/src/lib.rs`, `README.md`
|
|
|
|
### Global Shortcut And Clipboard Rewrite
|
|
|
|
- Status: `completed`
|
|
- Rationale: `Ctrl + Alt + R` captures selected text, rewrites it in `Preserve Voice`, and pastes only after a full rewrite succeeds.
|
|
- Acceptance condition: Cross-app rewrite works without deleting the original selection before the provider finishes.
|
|
- Repo pointer: `src-tauri/src/lib.rs`, `README.md`
|
|
|
|
### Tray And Background Operation
|
|
|
|
- Status: `completed`
|
|
- Rationale: Thisper supports tray-based lifecycle management and continued hotkey operation while the window is hidden.
|
|
- Acceptance condition: Closing the window hides to tray after the first hint, tray actions restore or quit correctly, and the hotkey remains active while hidden.
|
|
- Repo pointer: `src-tauri/src/lib.rs`, `src/main.ts`, `index.html`, `src/styles.css`
|
|
|
|
### Runtime Observability
|
|
|
|
- Status: `completed`
|
|
- Rationale: In-memory runtime metrics track rewrite attempts, success/failure counts, last error, last model, and last rewrite duration without storing raw user text.
|
|
- Acceptance condition: Frontend can query and display runtime status locally.
|
|
- Repo pointer: `src-tauri/src/lib.rs`, `src/main.ts`
|
|
|
|
### Protected URL Preservation
|
|
|
|
- Status: `completed`
|
|
- Rationale: Links are now treated as protected content and may not be silently removed during rewrites.
|
|
- Acceptance condition: If a rewrite tries to drop a protected URL, it fails instead of returning altered text.
|
|
- Repo pointer: `src-tauri/src/gemini.rs`, `README.md`
|
|
|
|
### License Audit Automation
|
|
|
|
- Status: `completed`
|
|
- Rationale: npm and Rust license audit commands are wired into the repo.
|
|
- Acceptance condition: `licenses:npm`, `licenses:rust`, and `licenses:all` are available and documented.
|
|
- Repo pointer: `package.json`, `src-tauri/deny.toml`, `README.md`
|
|
|
|
## Remaining Before General Release
|
|
|
|
### Legacy Hardware Validation Pass
|
|
|
|
- Status: `remaining`
|
|
- Rationale: The implementation is in place, but the acceptance report still depends on a structured pass against the target hardware profile.
|
|
- Acceptance condition: The validation checklist is executed and the report is updated with explicit observed results.
|
|
- Repo pointer: `LEGACY_HARDWARE_VALIDATION.md`
|
|
|
|
### Commercial License Allowlist Decision
|
|
|
|
- Status: `remaining`
|
|
- Rationale: Audit automation exists, but the final commercial policy for weak-copyleft and platform-stack licenses is intentionally not locked yet.
|
|
- Acceptance condition: A written allowlist decision is made and the Rust audit configuration is aligned with that decision.
|
|
- Repo pointer: `src-tauri/deny.toml`, `README.md`
|
|
|
|
## Queued After Release Candidate
|
|
|
|
### Speech Input Phase
|
|
|
|
- Status: `queued`
|
|
- Rationale: Speech is the next planned phase after the current desktop release candidate is validated.
|
|
- Acceptance condition: Release-candidate validation is closed and the speech scope starts from the queued plan.
|
|
- Repo pointer: `PHASE3_SPEECH_PLAN.md`
|
|
|
|
### High-Value Detail Protection Expansion
|
|
|
|
- Status: `queued`
|
|
- Rationale: URLs are protected now, but broader protected terms, factual token preservation, and drift flags are still future trust refinements.
|
|
- Acceptance condition: Add protected-term rules, token-preservation checks, and a stricter retry path without breaking current flows.
|
|
- Repo pointer: `communication_translator_project_plan.md`
|
|
|
|
## Deferred / Explicitly Out Of Scope
|
|
|
|
### Mobile Platforms
|
|
|
|
- Status: `deferred`
|
|
- Rationale: Android and iOS are not part of the current desktop release candidate.
|
|
- Acceptance condition: Revisit after speech planning and desktop validation.
|
|
- Repo pointer: `PHASE3_SPEECH_PLAN.md`
|
|
|
|
### Local Models And Multi-Provider Routing
|
|
|
|
- Status: `deferred`
|
|
- Rationale: The provider boundary exists, but local execution and multi-provider fallback are not required for the current desktop release candidate.
|
|
- Acceptance condition: Re-enter scope only after the current desktop workflow is fully validated.
|
|
- Repo pointer: `src-tauri/src/translator.rs`
|
|
|
|
### Major UI Redesign
|
|
|
|
- Status: `deferred`
|
|
- Rationale: Current priority is reliability, trust, and release readiness, not visual redesign.
|
|
- Acceptance condition: Only revisit after release-candidate validation and trust refinements.
|
|
- Repo pointer: `src/`, `index.html`, `src/styles.css`
|