Context
Lane 2/C now has the cockpit DTO floor in PR #14571, and Ada explicitly split activity sources from fleet-wire in the #14561 decomposition sprint. #14572 covers A2A activity from Memory Core. This ticket covers the GitHub/PR/lane-state side of the cockpit activity feed.
The Problem
The Fleet cockpit needs to show what each agent is doing across PRs, issues, lane claims, and stalls. That data does not belong in FleetControlBridge and should not be guessed from UI text. Without a dedicated GitHub/lane adapter, Lane 1 can hardcode sample activity or couple to issue prose in a way that breaks as the Agent OS evolves.
The Architectural Reality
src/ai/fleet/fleetCockpitStatus.mjs defines the Body-side DTO and bounded event factory.
ai/services/graph/issueFocusSections.mjs already derives PR/participation/stall-oriented sections for agent workflow state.
ai/services/github-workflow/* owns GitHub issue/PR conversation and state reads.
apps/agentos/view/FleetSettingsPanel.mjs is only the current minimal consumer; #14560 owns the richer cockpit render.
- Structure-map gate: ran
npm run --silent ai:structure-map -- --files --loc; relevant owning folders are ai/services/graph, ai/services/github-workflow, src/ai/fleet, apps/agentos, and test/playwright/unit/ai/services/fleet.
The Fix
Add a small GitHub/lane activity adapter for the Fleet cockpit contract:
- Read PR/issue/lane-state facts from the existing GitHub workflow / graph derivation surfaces.
- Map them into bounded
createFleetCockpitEvent() payloads with source labels and confidence.
- Preserve agent identity, related ticket/PR ids, state class, and timestamps; avoid copying full public comments into the cockpit DTO.
- Represent unavailable GitHub/graph reads as degraded/provisional capability state, not fake quietness.
- Add focused unit coverage for mapping, redaction, missing-source behavior, and no sample data.
Contract Ledger Matrix
| Target Surface |
Source of Authority |
Proposed Behavior |
Fallback |
Docs |
Evidence |
| PR/lane cockpit events |
ai/services/github-workflow + issueFocusSections |
map current PR/issue/lane facts to source-labeled cockpit events |
GitHub/graph unavailable -> degraded capability |
issue body + source JSDoc |
unit tests with PR/lane fixtures |
| Comment/body boundary |
GitHub conversation state |
keep ids, titles, states, timestamps; omit full comment bodies by default |
redacted placeholder |
source JSDoc |
unit test proves body omission |
| Fleet DTO integration |
src/ai/fleet/fleetCockpitStatus.mjs |
emit bounded events that Lane 1 can render |
adapter absent -> existing not-wired state |
DTO JSDoc |
unit test against DTO event factory |
Decision Record impact
None. This is an adapter leaf inside the existing Fleet Manager / GitHub workflow / graph ownership split.
Acceptance Criteria
Out of Scope
- A2A/Memory Core activity; tracked in #14572.
- Runtime process truth; Ada owns the runtime-status wire method.
- Lane 1 visual design/rendering in #14560.
- Neural Link proof in #14563.
Avoided Traps
- No fleet-wire method for GitHub activity.
- No full comment-body stream into the cockpit DTO.
- No UI/prose scraping as source of truth.
- No sample activity in production paths.
Related
#13015 · #14561 · #14562 · #14563 · #14571 · #14572 · #14560
Live latest-open sweep: checked latest 25 open issues immediately before creation at 2026-07-04T01:24Z after #14572 landed; no equivalent PR/lane activity adapter found.
A2A in-flight sweep: checked recent mailbox claims; Ada requested this decomposition, no competing claim found.
KB/local duplicate sweep: exact search returned no PR/lane activity adapter duplicate; Memory Core semantic search returned no existing activity-adapter ticket.
Origin Session ID: 33403f62-0332-411a-bda3-0f4ab10cd1e6
Retrieval Hint: "Fleet cockpit PR lane activity adapter issueFocusSections GitHub workflow createFleetCockpitEvent"
Context
Lane 2/C now has the cockpit DTO floor in PR #14571, and Ada explicitly split activity sources from fleet-wire in the #14561 decomposition sprint. #14572 covers A2A activity from Memory Core. This ticket covers the GitHub/PR/lane-state side of the cockpit activity feed.
The Problem
The Fleet cockpit needs to show what each agent is doing across PRs, issues, lane claims, and stalls. That data does not belong in
FleetControlBridgeand should not be guessed from UI text. Without a dedicated GitHub/lane adapter, Lane 1 can hardcode sample activity or couple to issue prose in a way that breaks as the Agent OS evolves.The Architectural Reality
src/ai/fleet/fleetCockpitStatus.mjsdefines the Body-side DTO and bounded event factory.ai/services/graph/issueFocusSections.mjsalready derives PR/participation/stall-oriented sections for agent workflow state.ai/services/github-workflow/*owns GitHub issue/PR conversation and state reads.apps/agentos/view/FleetSettingsPanel.mjsis only the current minimal consumer; #14560 owns the richer cockpit render.npm run --silent ai:structure-map -- --files --loc; relevant owning folders areai/services/graph,ai/services/github-workflow,src/ai/fleet,apps/agentos, andtest/playwright/unit/ai/services/fleet.The Fix
Add a small GitHub/lane activity adapter for the Fleet cockpit contract:
createFleetCockpitEvent()payloads with source labels and confidence.Contract Ledger Matrix
ai/services/github-workflow+issueFocusSectionssrc/ai/fleet/fleetCockpitStatus.mjsnot-wiredstateDecision Record impact
None. This is an adapter leaf inside the existing Fleet Manager / GitHub workflow / graph ownership split.
Acceptance Criteria
Out of Scope
Avoided Traps
Related
#13015 · #14561 · #14562 · #14563 · #14571 · #14572 · #14560
Live latest-open sweep: checked latest 25 open issues immediately before creation at 2026-07-04T01:24Z after #14572 landed; no equivalent PR/lane activity adapter found. A2A in-flight sweep: checked recent mailbox claims; Ada requested this decomposition, no competing claim found. KB/local duplicate sweep: exact search returned no PR/lane activity adapter duplicate; Memory Core semantic search returned no existing activity-adapter ticket. Origin Session ID: 33403f62-0332-411a-bda3-0f4ab10cd1e6 Retrieval Hint: "Fleet cockpit PR lane activity adapter issueFocusSections GitHub workflow createFleetCockpitEvent"