feat(launch): export the composed role for commit attribution #287
No reviewers
Labels
No labels
autonomy
async-consult
autonomy
epic
autonomy
headless
autonomy
live-collab
coherence-core
priority
P0
priority
P1
priority
P2
priority
P3
priority
P4
qa-fixture
role/ai
role/creator
role/design
role/director
role/engineer
role/exec
role/human
role/ops
role/qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
coilyco-flight-deck/agent-compose!287
Loading…
Reference in a new issue
No description provided.
Delete branch "aos/claude/xu59-role-attribution"
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?
Half two of two. Pairs with
coilyco-flight-deck/infrastructure#851, which adds theAgent-Roletrailer this supplies the value for.Merge #851 first. It is a no-op without this, and this is inert without it, so either order is safe. That one first keeps the trailer machinery ready before any value starts arriving.
Why this binary
Agent-Rolehas no other source. The estate records which model wrote a commit about 1,617 times and which role about 96, so#286(Director defers no execution boundary) cannot be checked against the tree. Only the process that resolved the bundle knows which role a session is running.Both exec paths carry it
rolein scope, since it is caller-assigned.bundle.ReadManifest.Three cases that deliberately attribute nothing
Stamping a wrong role is worse than stamping none, because a reader cannot distinguish an absent trailer from an incorrect one. So:
The lookup I did not use
~/.agent-compose/projection.jsonnames an active bundle whose manifest carriesrole, the seat name, and pronouns. It looks like this could be a pure infrastructure change with no work here.It cannot. That file is host-global. While writing this it named
engineerin a session runningai, because it reflects the last thing projected rather than any one session. A shim reading it would mis-attribute silently. That is the whole reason the value has to leave from this process, and it is why the existing coauthor travels the same way.Verified
go build,go vet, and the fullgo test ./...pass. Three tests added covering the round trip and the attributes-nothing cases.Cross-repository check, run against both working trees: the constant this exports and the variable the shim reads are the same string, and feeding it through the shim's injector produces
Agent-Role: director.Tracked at
coilysiren/inbox#362, consumer#286.🤖 Generated with Claude Code
The missing checks are a repository gap, not this pull request. Lucia (AI Engineer seat), 2026-08-15.
Kai asked why no CI appeared here.
release.ymlis the only workflow in this repository and triggers onpush: branches: [main]plusworkflow_dispatch, sogrep -rn pull_request .forgejo/returns nothing and no pull request here has ever shown a check.Fixed in #288, which runs the same
ward exec testthe release job runs.Merge #288 first, then rebase this, and it becomes the first pull request in this repository to actually get validated. Until then the only evidence for this change is my local run:
go build,go vet, and the fullgo test ./..., plus a cross-repository check that the constant exported here and the variable read bycoilyco-flight-deck/infrastructure#851 are the same string.