# Harness CHANGELOG The ClaudeTools harness version marker (`.claude/harness/VERSION`). Bump on every fleet-visible behavioral change so a session can detect whether it is running the new or old harness during a heterogeneous rollout. See `specs/claudetools-harness-optimization/`. ## 1.0.0 — 2026-06-08 - Task 0.5: VERSION marker established (this file). - Task 0.6: out-of-band recovery script `.claude/scripts/force-pull-raw.sh` added. - (Earlier) Syncro billing SSOT resolved: `add_line_item` is normal billing; timers are outlier-only (explicit request). ## 1.1.0 — 2026-06-08 - Task 1: submodule-safe sync — `sync.sh` now unstages submodule gitlinks (unless `--with-submodules`), eliminating the manual detach-to-pin dance before /save. - Task 4: `harness-guard.sh` wired into `sync.sh` pre-commit, WARN-ONLY (logs conflict markers / unencrypted sops / private keys to .claude/harness/guard.log; does not block unless HARNESS_GUARD_FATAL=1; SKIP_HARNESS_GUARD=1 bypasses). ## 1.2.0 — 2026-06-08 - Task 2: wiki synthesis DECOUPLED from /save (the concurrent-recompile conflict source). /save now only writes the log + syncs and emits the exact /wiki-compile command to run. /wiki-compile is now SERIALIZED (per-article coord lock, TTL orphan-evict, coord-down = warn+proceed) and STAGED (writes .claude/wiki_staging/-.md -> review diff -> apply to live -> commit -> release lock). No blind background auto-merge. ## 1.3.0 — 2026-06-08 - Task 6: CLAUDE.md split into lean CORE (1.2k tokens, always loaded) + CLAUDE_EXTENDED.md (full manual, on-demand). Saves ~3.7k tokens per CLAUDE.md injection; nothing lost. - Task 9 (P2): delegation re-tuned in CORE — act directly by default; delegate only for high-volume output, blast radius >3 files/layers, domain shift, or parallel work. ## 1.4.0 — 2026-06-08 (P1+P2+P3 complete) - Task 5: one-line registry descriptions on the 8 biggest skills (remediation-tool, gc-audit, packetdial, memory-dream, human-flow, self-check, impeccable, mailprotector). Skill-description injection ~3320 -> ~2123 tokens (~36% cut); keyword triggers preserved; frontmatter valid. - Task 7: thinned `/save` + `/sync` bodies — they point to `sync.sh` as the single source instead of re-documenting its internals; load-bearing LLM-judgment parts (Phase 0 save-vs-sync, cross-user note display, exit-75 reporting) kept verbatim. The mechanical sync never depends on an LLM step. - Task 10 (P3): `session-logs/YYYY-MM/` adopted as a FORWARD convention for new logs (recall = scoped grep over month folders, no monolithic index); existing flat logs untouched (grep covers both). Recall order (wiki -> CONTEXT/log -> coord) already lives in CORE. - Deterministic Bash fix: `now-phoenix.sh` helper added — fixed UTC-7 epoch math, replaces the unreliable `TZ=America/Phoenix date` (silently returns UTC on Git-Bash). `--iso/--date/--datetime/ --fmt` formats. `post-bot-alert.sh` already uses `jq -nc --arg` (verified, no change needed). - Deferred (unchanged): full Python port = separate spec; Task 8 shard command bodies; promote guard to FATAL after a clean warn window; schedule memory-dream --apply-safe per-machine.