add a detached-only session cleanup in BOTH surfaces — the cc shell kit and the
claudedo daemon — so stale detached claude-* sessions can be cleared from either.
- cc.sh: ccclean kills DETACHED claude-* sessions only (tmux #{session_attached}==0),
never attached; reports 'killed X, Y (2 detached); kept Z (attached)' or 'nothing to
clean'. complements cckl (kill ALL incl attached), which stays the deliberate typed
nuke. header updated; sources clean under bash + zsh.
- target.py: cleanup_detached() kills detached claude-* and returns (killed, kept)
lists. it and list_sessions() now share ONE tmux query, _claude_sessions(), which
returns (name, attached) pairs — single source for session enumeration.
- grammar: cleanup command (aliases detached/detach) routes to Action('system',
'cleanup') — daemon-control, never injects. bare 'cleanup' and 'system cleanup' both
accepted. 'clean'/'wipe' deliberately NOT used as aliases — they fuzzy-collide with
erase's 'clear'/'wipe' (0.8 ratio); 'detached' is distinct. confirm command added for
the opt-in confirm flow.
- daemon: system 'cleanup' -> _do_cleanup -> target.cleanup_detached, reports
'[SYSTEM] cleanup: killed ...; kept ... (attached)'. behavior.cleanup_confirm
(default false) announces and waits for a following 'confirm' before killing.
- CLI: 'claudedo cleanup' (self-contained tmux op, no running daemon needed).
safety model: detached-only means a misheard voice cleanup can NEVER kill the active
(attached) session. the only kill-attached path remains the shell cckl.
Signed-off-by: disqualifier <dev@disqualifier.me>
34 lines
715 B
TOML
34 lines
715 B
TOML
[build-system]
|
|
requires = ["setuptools>=61"]
|
|
build-backend = "setuptools.build_meta"
|
|
|
|
[project]
|
|
name = "claudedo"
|
|
version = "0.2.2"
|
|
description = "voice-control daemon for claude code (local STT -> tmux send-keys)"
|
|
readme = "README.md"
|
|
requires-python = ">=3.10"
|
|
license = { text = "Proprietary" }
|
|
authors = [{ name = "dsql" }]
|
|
dependencies = [
|
|
"sounddevice>=0.4.6",
|
|
"numpy>=1.24",
|
|
"faster-whisper>=1.0.0",
|
|
"tomli>=2.0; python_version < '3.11'",
|
|
]
|
|
|
|
[project.scripts]
|
|
claudedo = "claudedo.__main__:main"
|
|
|
|
[tool.setuptools]
|
|
package-dir = { "" = "src" }
|
|
|
|
[tool.setuptools.package-data]
|
|
"claudedo.sounds" = ["*.wav"]
|
|
|
|
[tool.setuptools.packages.find]
|
|
where = ["src"]
|
|
|
|
[tool.flake8]
|
|
max-line-length = 120
|