Work routed to a named session is invisible to its own hook: gc sling succeeds, gc hook --claim answers no_work #9
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?
A bead routed to a named session never becomes claimable.
gc slingwritesgc.routed_toand reports success,bdshows the bead open, unassigned andREADY, and
gc hook --claimon that very session answers{"action":"drain","reason":"no_work"}. The work is invisible to the only agentit was addressed to, and nothing anywhere reads as wrong.
This is ce-2qm's shape moved up one level. ce-2qm is an unrouted bead being
invisible to a pool. This is a routed bead being invisible to a named session,
which is worse, because the dispatcher did everything right and got a clean
receipt.
Measured
Gas City at
/Users/pbanka/gc-scratch, 2026-09-02, agentcrew(session
gs-wisp-amobhzd).So routing alone does not put work on a named session's hook. Assignment does.
Two P1 beads were affected (
ce-yjsg,ce-i0k), both routed tocrew. ce-yjsgwas slung at 12:07 and was still invisible at 18:23, six hours later.
Scope
gc hook --helpsays it "finds routed work using the agent's work_queryconfig".
agents/crew/agent.tomlsets nowork_query, socrewruns on thebuilt-in default, and that default does not match on
gc.routed_to. Pool agentswork, so the pool path and the named-session path resolve demand differently.
I have not read the Go source. The observation above is what was measured; the
work_querysentence is where to start, not a diagnosis.Look at: the default
work_queryfor a[[named_session]]with no explicit one,and the claim path in
gc hook --claimthat decidesreason: no_work. Compareagainst the pool path, which honours
gc.routed_tocorrectly.Acceptance
gc sling <named-session> <bead>makes the bead claimable by that session,with the assignee left empty, exactly as it does for a pool.
gc hook --claimon that session returns the bead rather thanno_work.a named session with no
work_query, assertgc hook --claimclaims it.The gate must be seen red before it is trusted, because "no work" is a
well-formed answer and a green run proves nothing about reach.
work_query, thengc slingto a session that has none must FAIL LOUDLYat sling time rather than write a receipt for work nobody can claim.
Related
gc session nudgerefusing delivery to non-claude providers. Samefamily: a delivery path that answers successfully and delivers nothing.