mirror of
https://github.com/JuliusBrussee/caveman.git
synced 2026-09-14 18:02:35 +08:00
e4e4989085
Marker handling, both directions. `installOpencode` and caveman-init treated "both markers present" as a fence, so an orphan BEGIN or an END above a BEGIN ran the slice arithmetic on end === -1: AGENTS.md re-appended itself from byte 19 and compounded on every re-run, and a per-repo refresh would have replaced everything between an orphan BEGIN and a later block's END, user content included. Both now require exactly one matched pair, in order, and report damage instead of writing. Uninstall ordering. uninstall.sh/uninstall.ps1 deleted the hook files first and edited settings.json second, so a failed or refused edit left Claude Code pointing at scripts that no longer exist — `Cannot find module …caveman-activate.js` on every session start (#471). Settings first; files only once nothing references them. Neither script overwrites an existing .bak any more (it is the user's only pre-caveman copy), and a JSONC settings.json now aborts the edit with the working command instead of half-uninstalling. install.ps1's "already wired" probe matched the bare substring `caveman`, which any user hook mentioning the word in a path satisfies (#593) — it silently skipped wiring and left caveman inactive. It now probes for the exact script we write per event, mirroring install.sh. The SessionStart watchdog no longer claims `startup` when it fires. That is the one source that resets the mode, so a payload slow enough to time out on a compact/resume event dropped a mid-session `ultra` back to the default. An unknown source preserves a valid existing flag, and the deadline moves to 3s — still well inside the host's 5s budget, but above a cold Windows/AV start. caveman-init writes retry a rename that Windows loses to OneDrive/AV handles (EPERM/EBUSY/EACCES), the shrink MCP refuses an implausible .cmd shim before reading it, and pruneOrphanedManagedHooks no longer prunes a hook whose path is absolute on the other platform — existence is only knowable for our own. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SqmbqWDtNexzDfH5V3BMRz