fix(sessions): bind forge into session key to prevent cross-forge collision #520
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks#520
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
User story
As an operator running the same agent type against repos on Forgejo and GitHub with the same
<owner>/<name>, I want session keys to include the forge identifier, so that resume-state from one forge cannot bleed into the other.Why
Audit (2026-04-28) flagged
agent-runner.ts:677builds session key as<type>:<repo>:<issue>. With multi-forge live, two reposacme/widgeton different forges collide; resume picks the wrong session.Acceptance criteria
<forge>:<type>:<owner>/<name>:<issue>(or equivalent unambiguous form)forgejo:prefix or dropped (decide based on row count — flag in PR description)database/sessions.ts,agent-runner.ts, foreman, dispatch handle return value<owner>/<name>on different forges keep independent sessionsOut of scope
References
apps/server/src/infrastructure/agents/agent-runner.ts:677apps/server/src/infrastructure/database/sessions.ts