[loop] Hermes assigns tickets to Kimi by Gitea assignment, not tmux dispatch #227

Closed
opened 2026-03-15 17:45:29 +00:00 by hermes · 1 comment
Collaborator

What

The Hermes dev loop should assign work to Kimi by setting the Gitea issue assignee, not by typing commands into tmux panes.

Current (broken)

1. Hermes picks issue
2. Hermes writes prompt to /tmp/timmy-agents/kimi-0/prompt.txt
3. Hermes types 'kimi --print-file prompt.txt' into tmux pane
4. Hermes blocks for 20 minutes polling tmux capture-pane
5. Hermes extracts result, pushes, files PR as hermes
6. Timeout kills hermes (code 142)

New (simple)

1. Hermes triages issues
2. For Kimi-scoped work: PATCH /issues/{id} with {"assignee": "kimi"}
3. Hermes moves on to its own work — does NOT wait
4. Kimi's own loop picks up assigned issues
5. Kimi branches, codes, tests, pushes, opens PR
6. Hermes reviews PRs from kimi on next cycle

What Changes in the Loop Prompt

Remove all tmux send-keys / capture-pane Kimi dispatch logic. Replace with:

To delegate to Kimi:
  1. Confirm the issue is well-scoped (1-3 files, clear acceptance criteria)
  2. Add a comment with specific instructions
  3. Assign to kimi via API: PATCH /issues/{id} {"assignees": ["kimi"]}
  4. Move on. Do NOT wait. Do NOT poll.
  
To check Kimi's work:
  1. Check for open PRs by kimi
  2. Review and merge, or request changes

Scope

  • Loop prompt rewrite (remove tmux dispatch, add Gitea assignment)
  • ~30 min change
## What The Hermes dev loop should assign work to Kimi by setting the Gitea issue assignee, not by typing commands into tmux panes. ## Current (broken) ``` 1. Hermes picks issue 2. Hermes writes prompt to /tmp/timmy-agents/kimi-0/prompt.txt 3. Hermes types 'kimi --print-file prompt.txt' into tmux pane 4. Hermes blocks for 20 minutes polling tmux capture-pane 5. Hermes extracts result, pushes, files PR as hermes 6. Timeout kills hermes (code 142) ``` ## New (simple) ``` 1. Hermes triages issues 2. For Kimi-scoped work: PATCH /issues/{id} with {"assignee": "kimi"} 3. Hermes moves on to its own work — does NOT wait 4. Kimi's own loop picks up assigned issues 5. Kimi branches, codes, tests, pushes, opens PR 6. Hermes reviews PRs from kimi on next cycle ``` ## What Changes in the Loop Prompt Remove all tmux send-keys / capture-pane Kimi dispatch logic. Replace with: ``` To delegate to Kimi: 1. Confirm the issue is well-scoped (1-3 files, clear acceptance criteria) 2. Add a comment with specific instructions 3. Assign to kimi via API: PATCH /issues/{id} {"assignees": ["kimi"]} 4. Move on. Do NOT wait. Do NOT poll. To check Kimi's work: 1. Check for open PRs by kimi 2. Review and merge, or request changes ``` ## Scope - Loop prompt rewrite (remove tmux dispatch, add Gitea assignment) - ~30 min change
Author
Collaborator

Resolved by ~/.hermes/bin/kimi-loop.sh (same implementation that closed #228).

The new flow:

  1. Hermes assigns issue to kimi via Gitea API: PATCH /issues/{id} {"assignees": ["kimi"]}
  2. Kimi's loop polls Gitea every 2 minutes for assigned issues
  3. Kimi picks up the work, creates worktree, codes, tests, pushes, opens PR
  4. Hermes reviews the PR next cycle

No tmux dispatch. No blocking. Pure Gitea-based coordination. Closing.

Resolved by `~/.hermes/bin/kimi-loop.sh` (same implementation that closed #228). The new flow: 1. Hermes assigns issue to kimi via Gitea API: `PATCH /issues/{id} {"assignees": ["kimi"]}` 2. Kimi's loop polls Gitea every 2 minutes for assigned issues 3. Kimi picks up the work, creates worktree, codes, tests, pushes, opens PR 4. Hermes reviews the PR next cycle No tmux dispatch. No blocking. Pure Gitea-based coordination. Closing.
Sign in to join this conversation.
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#227