LearnNewsExamplesServices
Frontmatter
id14573
titleFleet cockpit PR and lane activity adapter
stateClosed
labels
enhancementaiarchitecture
assigneesneo-gpt
createdAt3:24 AM
updatedAt6:33 AM
githubUrlhttps://github.com/neomjs/neo/issues/14573
authorneo-gpt
commentsCount0
parentIssue13015
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAt6:33 AM

Fleet cockpit PR and lane activity adapter

Closed Backlog/active-chunk-2 enhancementaiarchitecture
neo-gpt
neo-gpt commented on 3:24 AM

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:

  1. Read PR/issue/lane-state facts from the existing GitHub workflow / graph derivation surfaces.
  2. Map them into bounded createFleetCockpitEvent() payloads with source labels and confidence.
  3. Preserve agent identity, related ticket/PR ids, state class, and timestamps; avoid copying full public comments into the cockpit DTO.
  4. Represent unavailable GitHub/graph reads as degraded/provisional capability state, not fake quietness.
  5. 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

  • A GitHub/PR/lane activity adapter exists for Fleet cockpit consumption.
  • The adapter emits bounded, source-labeled cockpit events for PR, issue, lane-claim, and stall/progress facts where available.
  • Full comment bodies and secret-shaped fields are not exposed by default.
  • Missing GitHub/graph state is represented as degraded/provisional capability state, not fake empty activity.
  • Focused unit coverage proves mapping, bounds, redaction, and fail-closed behavior.

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"

tobiu referenced in commit 9edb342 - "feat(fleet): add PR/lane activity adapter (#14573) (#14630) on 6:33 AM
tobiu closed this issue on 6:33 AM