Skip to content

hive: author as the hanthor-hive-agent App on the tuna-os spokes - #372

Closed
hanthor wants to merge 1 commit into
masterfrom
hive/app-identity
Closed

hanthor wants to merge 1 commit into
masterfrom
hive/app-identity

Conversation

@hanthor

@hanthor hanthor commented Nov 10, 2026

Copy link
Copy Markdown
Owner

What

On the three tuna-os spokes (reef, school, hub):

  • set github.app_slug: hanthor-hive-agent
  • set github.app_authored_prs: true
  • clear project.ai_author

Why

  • Reply loop: the spokes set app_id: 3942065 but no app_slug, so hive used the public default hivecommons-hive[bot]. It never recognised its own hanthor-hive-agent[bot] comments, treated its own unpark replies as unanswered, and replied again every sweep. Tavern#299, corral#607, corral#634 and bluefin-cli#295 each got 320+ copies of one reply, 40-58 a day.
  • Ignored commands: with ai_author: hanthor, hive treats @hanthor as itself, so /hive decision, /hive approve and /fixed from @hanthor are refused.
  • Agent authorship: with ai_author empty and app_authored_prs: true, EffectiveAIAuthor() returns hanthor-hive-agent[bot], so agents author as the App.
  • Slug check: gh api apps/hanthor-hive-agent returns id 3942065, owner tuna-os.

The code fix for the loop is proposed upstream in hivecommons/hive#17512. This config change stops the loop without waiting for that release.

Apply to the running spokes (this file alone does nothing)

The ConfigMap is only a seed. Each hive restores /data/hive.yaml.runtime over it on restart. So for each namespace (hive-reef, hive, hive-hub):

ns=hive-reef   # then: hive, hive-hub
kubectl -n "$ns" exec deploy/hive -- cat /data/hive.yaml.runtime > "/tmp/$ns.runtime.bak"
# In /data/hive.yaml.runtime, make the same three edits as this PR:
#   project.ai_author: ""
#   github.app_slug: hanthor-hive-agent
#   github.app_authored_prs: true
# (dashboard settings, or kubectl cp out, edit, kubectl cp back)
kubectl apply -f talos-k8s/hive/spokes/<spoke>/manifest.yaml
kubectl -n "$ns" rollout restart deploy/hive

Expected effect and trade-off

  • Loop stops: the new-comment count for the day on the four issues above stops growing after one sweep.
  • Commands work: /hive commands from @hanthor are acted on.
  • Older PRs: agent PRs opened earlier under the hanthor account no longer count as the hive's own, so fix loops and the duplicate-PR guard ignore them. Accepted trade-off.

reef, school and hub set app_id 3942065 but no app_slug, so the hive
assumed the public hivecommons-hive[bot] login and never recognised its
own hanthor-hive-agent[bot] comments. Its unpark replies never counted as
answered, and it posted the same reply 40-58 times a day on four issues.

Set github.app_slug: hanthor-hive-agent (verified: GET /apps/
hanthor-hive-agent returns id 3942065) and clear project.ai_author with
app_authored_prs: true, so agents author as the App bot and /hive
commands from @hanthor are honoured instead of refused.

Signed-off-by: James Reilly <jreilly1821@gmail.com>
@hanthor

hanthor commented Nov 10, 2026

Copy link
Copy Markdown
Owner Author

Closing: this edited the retired AWS Talos manifests (talos-k8s/hive/spokes, "historical reference only"). The Hives run as Docker Compose services in /srv/hives on spindle.

Applied live on spindle at 2026-11-10T20:17Z instead (seed and runtime, with school and reef stopped during the edit):

  • school: github.app_slug: hanthor-hive-agent (was ""), app_authored_prs: true, project.ai_author: ""
  • reef: app_authored_prs: true, project.ai_author: "" (its app_slug: tuna-reef-hive was already right)
  • hub: unchanged

Backups: /srv/hives/backups/{school,reef}-hive.yaml.{runtime,seed}.20261110T201713Z

@hanthor hanthor closed this Nov 10, 2026
@hanthor
hanthor deleted the hive/app-identity branch November 10, 2026 20:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant