[loop] Kimi must be an independent Gitea contributor, not a tmux subroutine #226

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

Problem

Every commit and PR in the repo is authored by hermes. Kimi has zero PRs, zero commits, zero branches. Despite being "dispatched" via tmux, Hermes does all the git work — it polls Kimi's pane, extracts the result, pushes the branch, and files the PR as itself.

Kimi is being used as a dumb code generator, not an independent agent.

Root Cause

  1. Kimi's Gitea user was inactive — now fixed
  2. Kimi had no API token — now fixed (stored at ~/.hermes/kimi_token)
  3. Kimi has write access but the loop prompt never told Kimi to use it
  4. The workspace git config uses hermes credentials, not kimi's
  5. The loop prompt architecture treats Kimi as a subprocess, not a peer

New Architecture

Communication between Hermes and Kimi happens through Gitea, not tmux:

HERMES:                          KIMI:
1. Assign issue to kimi     →   (Kimi picks up assigned issues)
2.                               Creates branch kimi/issue-NNN
3.                               Does the work
4.                               Pushes branch
5.                               Opens PR (authored by kimi)
6. Reviews PR               ←   
7. Merges or requests changes

Hermes never touches Kimi's code. Kimi owns its branches and PRs.

Fixed Today

  • Kimi user activated
  • Kimi API token created (~/.hermes/kimi_token)
  • Kimi has write permission on repo

Still Needed

  • Kimi workspace git config uses kimi's credentials
  • Loop prompt rewrite — Hermes assigns, Kimi executes independently
  • Kimi's own loop that polls for assigned issues
## Problem Every commit and PR in the repo is authored by hermes. Kimi has zero PRs, zero commits, zero branches. Despite being "dispatched" via tmux, Hermes does all the git work — it polls Kimi's pane, extracts the result, pushes the branch, and files the PR as itself. Kimi is being used as a dumb code generator, not an independent agent. ## Root Cause 1. Kimi's Gitea user was **inactive** — now fixed 2. Kimi had **no API token** — now fixed (stored at `~/.hermes/kimi_token`) 3. Kimi has write access but the loop prompt never told Kimi to use it 4. The workspace git config uses hermes credentials, not kimi's 5. The loop prompt architecture treats Kimi as a subprocess, not a peer ## New Architecture Communication between Hermes and Kimi happens through Gitea, not tmux: ``` HERMES: KIMI: 1. Assign issue to kimi → (Kimi picks up assigned issues) 2. Creates branch kimi/issue-NNN 3. Does the work 4. Pushes branch 5. Opens PR (authored by kimi) 6. Reviews PR ← 7. Merges or requests changes ``` Hermes never touches Kimi's code. Kimi owns its branches and PRs. ## Fixed Today - [x] Kimi user activated - [x] Kimi API token created (`~/.hermes/kimi_token`) - [x] Kimi has write permission on repo ## Still Needed - [ ] Kimi workspace git config uses kimi's credentials - [ ] Loop prompt rewrite — Hermes assigns, Kimi executes independently - [ ] Kimi's own loop that polls for assigned issues
Author
Collaborator

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

Kimi is now an independent Gitea contributor:

  • Has its own tmux session (Kimi)
  • Uses its own git identity (kimi / kimi@localhost)
  • Pushes branches with kimi's token
  • Creates PRs as the kimi user
  • Currently has active worktrees: kimi-231, kimi-233

Hermes no longer does git work on Kimi's behalf. Closing.

Resolved by `~/.hermes/bin/kimi-loop.sh` (same implementation that closed #228). Kimi is now an independent Gitea contributor: - Has its own tmux session (`Kimi`) - Uses its own git identity (`kimi` / `kimi@localhost`) - Pushes branches with kimi's token - Creates PRs as the kimi user - Currently has active worktrees: `kimi-231`, `kimi-233` Hermes no longer does git work on Kimi's behalf. 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#226