Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
44 commits
Select commit Hold shift + click to select a range
2ae3b37
feat: add agentic rewrite policy and glossary support
OneNoted Mar 13, 2026
8664f88
fix: stabilize agentic rewrite local behavior
OneNoted Mar 13, 2026
cccfae3
docs: add refactor roadmap
OneNoted Mar 15, 2026
b904cad
refactor: add library crate and thin binary entrypoints
OneNoted Mar 15, 2026
620acba
refactor: isolate binary-only startup code
OneNoted Mar 15, 2026
87e8b99
build: gate local rewrite behind feature
OneNoted Mar 15, 2026
3f91915
refactor: split agentic rewrite runtime and facade
OneNoted Mar 15, 2026
2c5a0b9
refactor: extract agentic rewrite store and admin helpers
OneNoted Mar 15, 2026
0fe8bf3
refactor: extract postprocess planning module
OneNoted Mar 15, 2026
1588f4b
refactor: extract postprocess rewrite execution
OneNoted Mar 15, 2026
61652fd
refactor: isolate postprocess finalization and add focused tests
OneNoted Mar 15, 2026
6333bb3
refactor: extract asr cleanup and validation modules
OneNoted Mar 15, 2026
de3bb4e
refactor: unify asr preparation and prewarm lifecycle
OneNoted Mar 15, 2026
b6aa8a5
refactor: extract asr execution and fallback policy
OneNoted Mar 15, 2026
98b251a
refactor: extract rewrite routing decisions
OneNoted Mar 15, 2026
891ad4a
refactor: extract rewrite prompt rendering
OneNoted Mar 15, 2026
1d29638
refactor: extract local rewrite engine
OneNoted Mar 15, 2026
93e1419
refactor: isolate rewrite output cleanup and keep a thin facade
OneNoted Mar 16, 2026
87dfdb2
refactor: split app controller from dictation runtime state
OneNoted Mar 16, 2026
3c7ac34
refactor: split personalization store and rewrite candidates
OneNoted Mar 16, 2026
f8ca3e4
refactor: split session persistence from backtrack planning
OneNoted Mar 16, 2026
5e666a6
refactor: split cleanup lexicon analysis and rendering
OneNoted Mar 16, 2026
1b9b90e
refactor: split config schema defaults and editing
OneNoted Mar 16, 2026
164cd7f
refactor: extract setup flow phases
OneNoted Mar 16, 2026
7e95e5b
refactor: unify model management workflows
OneNoted Mar 16, 2026
e0b0604
refactor: isolate shell completion installers
OneNoted Mar 16, 2026
0ad02ec
docs: derive config docs from canonical source
OneNoted Mar 16, 2026
45c8f68
refactor: extract injection adapter layer
OneNoted Mar 16, 2026
9925d75
refactor: split audio recorder and dsp helpers
OneNoted Mar 16, 2026
2240e7a
docs: retire stale status reporting checkpoint
OneNoted Mar 16, 2026
dd7fc27
build: stabilize whisper and local rewrite native builds
OneNoted Mar 16, 2026
32829b5
build: propagate cuda to local rewrite and add clean feature checks
OneNoted Mar 17, 2026
9e499e7
docs: align install docs with local rewrite feature flags
OneNoted Mar 17, 2026
c0e68ba
build: restore package verification for vendored whisper bindings
OneNoted Mar 17, 2026
635e64d
feat: redesign whispers OSD visual treatment
OneNoted Mar 17, 2026
1016472
release: prepare 0.1.1
OneNoted Mar 17, 2026
c0cfbdb
feat: port voice OSD redesign to release line
OneNoted Mar 17, 2026
7833511
feat: polish OSD layouts for release
OneNoted Mar 17, 2026
079ef34
fix: simplify OSD polish for release
OneNoted Mar 17, 2026
1d4b029
style: format rewrite worker modules for CI
OneNoted Mar 17, 2026
e921cfc
docs: simplify README
OneNoted Mar 17, 2026
d74f07c
fix: address PR review and CI issues
OneNoted Mar 17, 2026
4becc5e
fix: resolve remaining PR review and test failures
OneNoted Mar 17, 2026
5784d1f
fix: preserve session replacement on no-local-rewrite fallback
OneNoted Mar 17, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 5 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
[env]
WHISPER_DONT_GENERATE_BINDINGS = "1"

[patch.crates-io]
whisper-rs-sys = { path = "vendor/whisper-rs-sys" }
6 changes: 5 additions & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -58,13 +58,17 @@ jobs:
- name: Check osd feature only
run: cargo check --no-default-features --features osd

- name: Verify package (default publish surface)
- name: Check local rewrite feature only
run: cargo check --no-default-features --features local-rewrite

- name: Package tarball
run: cargo package --locked

- name: Check cuda feature only (if toolkit available)
run: |
if command -v nvcc >/dev/null 2>&1; then
cargo check --no-default-features --features cuda
cargo check --no-default-features --features cuda,local-rewrite
else
echo "CUDA toolkit not available on this runner; skipping cuda feature check"
fi
53 changes: 49 additions & 4 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

33 changes: 27 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,14 +1,25 @@
[package]
name = "whispers"
version = "0.1.0"
version = "0.1.1"
edition = "2024"
rust-version = "1.85"
description = "Speech-to-text dictation tool for Wayland"
license = "MPL-2.0"
repository = "https://github.com/OneNoted/whispers"
keywords = ["wayland", "speech-to-text", "whisper", "dictation", "voice"]
categories = ["accessibility", "multimedia"]
exclude = [".jj/", ".git/", "target/"]
include = [
"Cargo.toml",
"Cargo.lock",
"README.md",
"LICENSE",
"NOTICE",
"config.example.toml",
".cargo/config.toml",
"sounds/*.wav",
"src/**",
"vendor/whisper-rs-sys/**/*",
]

[dependencies]
# Async runtime
Expand All @@ -19,7 +30,7 @@ cpal = "0.17"

# Whisper transcription
whisper-rs = "0.15"
llama-cpp-2 = "0.1.138"
llama-cpp-2 = { version = "0.1.138", optional = true }

# uinput virtual keyboard for paste keystroke
evdev = { version = "0.13" }
Expand Down Expand Up @@ -63,11 +74,20 @@ console = "0.16"
wayland-client = { version = "0.31", optional = true }
wayland-protocols = { version = "0.32", features = ["client"], optional = true }
wayland-protocols-wlr = { version = "0.3", features = ["client"], optional = true }
font8x8 = { version = "0.3", optional = true }
fontdue = { version = "0.9", optional = true }

[features]
default = ["osd"]
cuda = ["whisper-rs/cuda", "llama-cpp-2/cuda"]
osd = ["dep:wayland-client", "dep:wayland-protocols", "dep:wayland-protocols-wlr"]
cuda = ["whisper-rs/cuda", "llama-cpp-2?/cuda"]
local-rewrite = ["dep:llama-cpp-2"]
osd = [
"dep:wayland-client",
"dep:wayland-protocols",
"dep:wayland-protocols-wlr",
"dep:font8x8",
"dep:fontdue",
]

[[bin]]
name = "whispers"
Expand All @@ -80,7 +100,8 @@ required-features = ["osd"]

[[bin]]
name = "whispers-rewrite-worker"
path = "src/bin/whispers-rewrite-worker.rs"
path = "src/bin/whispers-rewrite-worker/main.rs"
required-features = ["local-rewrite"]

[dev-dependencies]
httpmock = "0.7"
Loading