mirror of
https://github.com/JuliusBrussee/caveman.git
synced 2026-08-11 13:21:09 +02:00
- extract mode parsing into src/hooks/caveman-parse.js, consumed by both the Claude tracker and the opencode plugin — fixes the three #602 drifts (brevity triggers missing, bogus level overwrote flag with default, independent modes unreachable via expanded templates) - unwrap Claude Code's <command-name>/<command-args> slash envelope: real slash-UI /caveman <level> and /caveman off were silent no-ops (#537); foreign envelopes skip natural-language detection entirely - SessionStart branches on payload source: startup resets to configured default, resume/clear/compact preserve a valid existing flag (#691) - scheduled-task prompts (<scheduled-task marker) skip flag mutation and reinforcement so unattended runs aren't hijacked - per-turn reinforcement honors repo-local defaultMode off via getDefaultMode(cwd) gate — read-only, never deletes the shared flag (#634; rejects #532's cross-session flag deletion) - reinforcement anchor shrunk ~57%, opencode line kept identical (#660) - statusline setup nudge shown once, gated by .caveman-nudge-shown (#661) - /caveman-stats delivered via hookSpecificOutput.additionalContext so the macOS desktop app renders it (#618) - safeWriteFlag: retry rename on Windows sharing violations, always unlink temp in finally — no more .caveman-active.<pid>.<ts> litter (#511 #578) - statusline.sh exits 0 on empty suffix file — non-zero exit was hiding the whole status bar (#711) - cavecrew-model-overrides resolves plugin root across layouts; env model overrides were a silent no-op (#645) - opencode dev-tree loader: base require on the loaded file so caveman-parse's relative require resolves in both layouts Supersedes PRs #623 #674 #700 #691 #634 #660 #661 #692 #632 #622 #657 #578 #511 #645 #590 #498 #501 with local implementations. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016ySX6TBWZuvFze4ajf7Hpf