- 3 equal stacked feed panes on right (Kimi/Claude/Gemini)
- Gemini service status, stats, and queue in ops-panel
- Gemini live log feed with color highlighting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- claude-loop.sh: use `env -u CLAUDECODE` before launching claude CLI
to prevent "nested session" detection error
- ops-helpers.sh: add gemini wake/kill/assign/queue commands (from user edit)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- claude-loop.sh: parallel dispatch loop (N workers, default 3) with
file-based locking, rate-limit detection + backoff, priority-sorted
issue picking across all Gitea repos, auto-merge on success
- ops-panel.sh: add Claude worker status, stats, and queue sections
- ops-helpers.sh: add ops-wake-claude, ops-kill-claude,
ops-assign-claude, ops-claude-queue commands
- ops-dashboard-v2.sh: 4-pane layout with dual Kimi + Claude feeds
- .gitignore: whitelist ops scripts for source control
- timmy-loopstat.sh: add to source control
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
New:
kimi-loop.sh — Kimi Code CLI dispatch loop (fixed: no double logging,
idle state logs once then goes quiet, uses kimi not claude)
consolidated-cycle.sh — sonnet dev cycle (watchdog + dev + philosophy)
efficiency-audit.sh — zombie cleanup, plateau detection, recommendations
Fixes in kimi-loop.sh:
- log() writes to file only (no more double lines)
- idle queue logs once then goes silent until work appears
- all claude references removed, uses kimi CLI
Custom skin: ~/.hermes/skins/trismegistus.yaml
- Emerald Tablet color palette (sea green, emerald, gold)
- Alchemical spinner: transmuting, divining, consulting the tablet
- Mercury symbol (☿) throughout — prompt, response labels, wings
- Banner hero with AS ABOVE / SO BELOW motif
- Welcome: 'As above, so below. What needs doing?'
- Goodbye: 'The work continues. ☿'
- tower-hermes.sh: health check, pause file, exponential backoff, message held on failure
- tower-timmy.sh: same pattern for Ollama backend, messages held not lost
- timmy-loop.sh: pause after 2 consecutive cycle failures, backoff probe
- tower-watchdog.sh: respect .paused files, don't restart paused loops
Behavior:
1 failure → log warning, retry next turn
2 failures → enter pause, write .paused file, probe with backoff
Backend returns → auto-resume, clear pause file
Watchdog sees .paused → skip that loop, don't fight the pause
Messages from the other side → held in inbox, not lost
- FALSEWORK.md: Full audit of API costs per component, migration plan
for shifting load from Claude to local models incrementally
- start-dashboard.sh: Launches tmux layout with only zero-cost panes
active (status, loopstat). Loop and chat panes held until manual start.
- tower-timmy.sh: No changes (already source-controlled)
Falsework principle: build on cheap/local scaffolding, upgrade to
Claude only where quality demands it.
Session resume lines, tool traces, and session rename output
were leaking into the messages passed between agents. Added
grep filters to strip them from ask_hermes/ask_timmy output.
Also switched from set -e to avoid exits on non-zero from
first-run --continue calls.
Two-pane tmux session with file-based message passing:
- tower-hermes.sh: Hermes side (cloud/Claude)
- tower-timmy.sh: Timmy side (HERMES_HOME=~/.timmy)
- tower-watchdog.sh: self-healing, restarts dead panes
- tower-session.sh: tmux bootstrap script
Communication via ~/.tower/*.msg files.
Both agents maintain named sessions (tower-hermes, tower-timmy)
for conversation continuity across restarts.
Timmy doesn't have Gitea access in CLI chat mode. Instead of asking
him to check for PRs (which he can't), we fetch the latest merged PR
and commit summary ourselves and ask for his opinion on the change.
- Kimi writes to files in place, not stdout — check git diff after
- Ideal scope: one focused task per invocation with file paths + context
- Parallel: run multiple kimi tasks with & and wait, no rate limits
- Cycles can now tackle 1-3 issues if independent
- Re-emphasized: do NOT write code yourself, delegate to Kimi
16 cycles, zero actual Kimi invocations. Hermes kept deciding
every fix was 'surgical' and burning Anthropic tokens on everything.
New prompt: delegation is MANDATORY, not optional. Only exception
is changes under 5 lines. If Hermes catches itself writing code,
it must stop and delegate.