generated from eblume/project-template
A macOS global quick-capture popover to retire Todoist. New `heph-quickadd` crate: an always-warm eframe/egui agent that registers ⌘' (global-hotkey, Carbon — no Accessibility permission) and toggles a hidden, pre-created window visible + focused on press — never spawning on the keypress, so it's a muscle reflex. A single field live-parses Todoist-style inline syntax via the shared parser; chips show ⚑ attention · 📁 project · ⏰ do-date · ↻ recurrence as you type. Enter saves optimistically (hide now, task.create on a bg thread; a failed RPC re-shows with the text restored). #project autocomplete (Tab/↑↓/click; focus-locked so Tab completes instead of traversing). Example hints rotate, fading in only after ~2s idle. Parser lifted from heph-tui into hephd's lib (hephd::quickadd) so the TUI and the popover share one parser. hephd supervises the helper as a child in local mode on macOS (opt-in HEPH_QUICKADD=1, set by the installed launchd plist) — one service to manage, no second launch agent; the helper self-exits when orphaned so killing hephd leaves nothing behind. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
58 lines
1.3 KiB
TOML
58 lines
1.3 KiB
TOML
[workspace]
|
|
resolver = "2"
|
|
members = [
|
|
"crates/heph-core",
|
|
"crates/hephd",
|
|
"crates/heph",
|
|
"crates/heph-tui",
|
|
"crates/heph-quickadd",
|
|
]
|
|
|
|
[workspace.package]
|
|
edition = "2021"
|
|
version = "0.0.0"
|
|
license = "LicenseRef-Proprietary"
|
|
publish = false
|
|
authors = ["Erich Blume <blume.erich@gmail.com>"]
|
|
rust-version = "1.85"
|
|
|
|
[workspace.dependencies]
|
|
rusqlite = { version = "0.32", features = ["bundled"] }
|
|
ulid = "1"
|
|
thiserror = "2"
|
|
anyhow = "1"
|
|
pulldown-cmark = { version = "0.13", default-features = false }
|
|
rrule = "0.13"
|
|
yrs = "0.26"
|
|
chrono = { version = "0.4", default-features = false, features = ["clock"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
tokio = { version = "1", features = [
|
|
"rt-multi-thread",
|
|
"net",
|
|
"io-util",
|
|
"macros",
|
|
"sync",
|
|
"time",
|
|
] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
clap = { version = "4", features = ["derive"] }
|
|
ratatui = "0.29"
|
|
fs4 = "0.12"
|
|
axum = "0.8"
|
|
jsonwebtoken = { version = "10", features = ["rust_crypto"] }
|
|
keyring = { version = "3", features = [
|
|
"apple-native",
|
|
"sync-secret-service",
|
|
"crypto-rust",
|
|
"vendored",
|
|
] }
|
|
ureq = { version = "3", features = ["json"] }
|
|
reqwest = { version = "0.13", default-features = false, features = [
|
|
"json",
|
|
"query",
|
|
] }
|
|
|
|
[profile.release]
|
|
lto = "thin"
|