Commit Graph

21 Commits

Author SHA1 Message Date
Alexander Whitestone
4f83465430 feat: add Gemini feed pane and stats to ops dashboard
- 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>
2026-03-22 18:58:30 -04:00
Alexander Whitestone
7e5ffe5b45 chore: add gemini-loop.sh and whitelist in gitignore
Track Gemini's dispatch loop alongside the other agent loops.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-22 18:53:01 -04:00
Alexander Whitestone
d71645a081 fix: unset CLAUDECODE env to allow nested claude sessions + add gemini ops commands
- 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>
2026-03-22 18:35:56 -04:00
Alexander Whitestone
1eb10f72bb feat: add Claude Code parallel worker loop + upgrade ops dashboard
- 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>
2026-03-22 18:06:38 -04:00
Alexander Whitestone
539969c45d feat: add all automation scripts to source control
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
2026-03-21 12:11:30 -04:00
Alexander Whitestone
3a9c15a98f feat: ops dashboard v2 + kimi-loop updates
New files:
  ops-dashboard-v2.sh — 3-pane tmux launcher
  ops-panel.sh — consolidated status view (services, kimi, PRs, queue, warnings)
  ops-helpers.sh — control functions (ops-wake-kimi, ops-merge, ops-assign, etc)
  ops-status.sh, ops-gitea.sh — v1 individual panels (kept for reference)

Updated:
  timmy-loop.sh — now uses Kimi Code CLI instead of Claude Code
  timmy-loop-prompt.md — VPS Gitea URL
  timmy-status.sh — VPS Gitea URL
2026-03-21 12:00:18 -04:00
Alexander Whitestone
26717d6fc1 ☿ Hermes Trismegistus skin — emerald and gold
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. ☿'
2026-03-18 20:41:06 -04:00
Alexander Whitestone
00b0dc8e38 graceful pause on backend failure for all loop scripts
- 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
2026-03-18 20:08:57 -04:00
Alexander Whitestone
0c4a7356c0 chore: sync tower-watchdog and tower-session updates 2026-03-18 18:55:58 -04:00
Alexander Whitestone
b71fa55946 Add falsework docs + start-dashboard.sh (API-aware launcher)
- 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.
2026-03-18 16:45:15 -04:00
Alexander Whitestone
3fe6e22ccf fix: strip hermes metadata from tower message passing
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.
2026-03-15 20:19:36 -04:00
Alexander Whitestone
48819eb36d feat: tower session — persistent Hermes ↔ Timmy conversation loop
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.
2026-03-15 20:15:33 -04:00
Alexander Whitestone
e1ba3fcf6b feat: update kimi-code skill with session persistence, file arch refactor issues #164-#170 2026-03-15 11:38:17 -04:00
Alexander Whitestone
8ddbe06d73 feat: add hermes-config-sync script for automated state persistence 2026-03-15 10:12:47 -04:00
Alexander Whitestone
6490954006 chore: sync all local state to source control
- bin: add hermes-claim, hermes-dispatch, hermes-enqueue (queue scripts)
- bin: update timmy-loop-prompt.md (Phase 1 fix-broken-PRs, --no-verify ban)
- bin: update timmy-loop.sh (timeout cleanup, claim TTL)
- bin: update timmy-status.sh (watchdog auto-restart for dead loop)
- bin: update timmy-tmux.sh (pane layout fixes)
- bin: update timmy-watchdog.sh (minor fixes)
- skills: add hermes-agent skill (was missing from repo)
- memories: sync MEMORY.md and USER.md to current state
- cron/channel_directory: sync runtime state
- .gitignore: whitelist new bin scripts, fix hermes-agent/ scope
2026-03-15 10:11:46 -04:00
Alexander Whitestone
ffb33de0ed chore: dev loop prompt rewrite + branch safety + tox conventions
- timmy-loop-prompt.md: full rewrite (76→209 lines) with PR-only workflow,
  tox environments, git hooks, Kimi dispatch safety block, conventional commits
- kimi-code skill: added Branch & Convention Safety section
- memories/MEMORY.md: updated with branch protection notes
- config.yaml: removed dead kimi API key
- cron/jobs.json: updated scheduled jobs
- channel_directory.json: minor update
- .gitignore: exclude queue/ and *.db
2026-03-14 21:28:16 -04:00
Alexander Whitestone
7102ee695a fix: feed Timmy the PR info directly instead of asking him to query Gitea
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.
2026-03-14 18:17:44 -04:00
Alexander Whitestone
65857f5b3e prompt: add Kimi scope guide, parallel execution, multi-issue cycles
- 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
2026-03-14 18:13:34 -04:00
Alexander Whitestone
d290d03bc5 fix: enforce Kimi delegation — Hermes was doing all coding itself
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.
2026-03-14 18:07:17 -04:00
Alexander Whitestone
0b066de1cc feat: add timmy loop infrastructure + config updates
Loop v2: timmy-loop.sh (20min timeout, claim TTL, cleanup, Timmy triage/review)
Status panel: timmy-status.sh (8s refresh, Ollama/dashboard/issues/system)
Prompt: timmy-loop-prompt.md (2.6KB, down from 6.2KB)
tmux layout: timmy-tmux.sh
Watchdog: timmy-watchdog.sh

Config: fallback_model chain (kimi-k2.5 -> local qwen3:30b)
        custom_providers updated to qwen3:30b
2026-03-14 18:00:32 -04:00
Alexander Whitestone
7a9acc8caa add: hermes-sync script for upstream rebase workflow 2026-03-14 14:43:52 -04:00