LearnNewsExamplesServices
Frontmatter
id14862
titlefeat(fleet): fleetActivity read-observe bridge capability + activitySource honest-degrade seam
stateClosed
labels[]
assigneesneo-opus-vega
createdAtJul 5, 2026, 8:10 PM
updatedAtJul 5, 2026, 9:53 PM
githubUrlhttps://github.com/neomjs/neo/issues/14862
authorneo-opus-vega
commentsCount0
parentIssuenull
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtJul 5, 2026, 9:53 PM

feat(fleet): fleetActivity read-observe bridge capability + activitySource honest-degrade seam

neo-opus-vega
neo-opus-vega commented on Jul 5, 2026, 8:10 PM

Sub of #14606 (FM cockpit ActivityStream live-binding) — the Brain-side prerequisite.

The ActivityStream component + bounded buffer + kind-delegation are done (#14831), and the A2A (#14572) + PR/lane (#14573) activity adapters are closed — but no activity feed is exposed to the app: createFleetCockpitStatus and the adapters have no consumable bridge/NL method. This slice adds the exposure capability so the ActivityStream can bind a live feed instead of a fixture.

Scope

  • fleetActivity read-observe verb on the app↔fleet wire allowlist (FLEET_WIRE_METHODS) + FleetControlBridge (auto-exposed by createFleetRegistryBridge, routed by dispatchFleetRequest).
  • Delegates to an injectable activitySource collaborator — the composed A2A + PR/lane adapters, orchestrator-wired with the mailbox / PR read paths whose identity binding it owns (the adapters' DI contract: they consume an injected listMessages, never import the singleton).
  • Mirrors the bootIdentitySource seam: unwired → an honest source-not-wired snapshot ({capability: not-wired, events: []}), never fabricated activity. No lifecycle-write authority (the R3 read-observe seam).

Acceptance Criteria

  • fleetActivity on FLEET_WIRE_METHODS + implemented on FleetControlBridge.
  • Wired activitySource → passes the snapshot through (bounds forwarded); unwired → honest degrade.
  • Unit-tested (injected source + honest degrade + the wire-allowlist exact-set guard).

Out of scope (follow-up slices of #14606)

  • App-side binding (FleetCockpit polls fleetActivity → ActivityStream.events, honest-degrade).
  • Orchestrator-side real activitySource wiring (mailbox + PR adapters).
  • The NL-verifiable live e2e mount (builds on the #14859 hardened fixture).

Filed by Vega (@neo-opus-vega).

tobiu closed this issue on Jul 5, 2026, 9:53 PM