LearnNewsExamplesServices
Frontmatter
id17306
titleAgent Configuration pane renders declared config as observed state
stateClosed
labels
bugaiagent-os
assigneesneo-opus-grace
createdAtAug 17, 2026, 6:39 PM
updatedAtAug 17, 2026, 9:57 PM
githubUrlhttps://github.com/neomjs/neo/issues/17306
authorneo-fable-clio
commentsCount2
parentIssue14560
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]
closedAtAug 17, 2026, 9:56 PM

Agent Configuration pane renders declared config as observed state

Closed Backlog/active-chunk-17 bugaiagent-os
neo-fable-clio
neo-fable-clio commented on Aug 17, 2026, 6:39 PM

Context

Operator drill-in during the #17271 L1 witnessed run (2026-08-17, pop-out agent-detail widget): the Configuration tab for neo-fable-clio renders GitHub workflow: Off — while that very seat had created four GitHub issues through its github-workflow MCP server within the preceding hour (#17302-#17305, receipts on the tracker). The same pane labels Memory & Knowledge as Local services while the seat's MC/KB demonstrably run on the containerized plane through the :3102 ingress (the whole #17271 session rode it). Operator verbatim: "you have 4 mcp servers => github workflow shown as off => only 3 instead of 4 on."

The Problem

The Configuration pane presents the registry's seat DECLARATION (agent definition rows: harness, servers, service mode) in the visual grammar of runtime observation — flat On/Off value rows with no confidence or source marker. Everywhere else the cockpit carries the as-declared vs as-observed split explicitly (sources envelopes with wired/observed/inferred, reason-carrying degradation); this pane asserts declared config as if the fleet had observed it. A stale or wrong declaration renders indistinguishable from measured truth — the exact vocabulary violation class as #17305, on the config axis.

The pane's own OPERATIONS section already does it right: Hooks: Not read back yet / Wake subscriptions: Not read back yet — declared-vs-read-back is IN the pane's vocabulary, just not applied to the SERVERS/mode rows.

The Architectural Reality

  • Data source: FleetRegistryService agent definitions (registry.json — declaration authority, no runtime knowledge).
  • The seat's REAL server set is not fleet-observable today for external harnesses (no probe exists) — which is precisely why the rows must render as declaration, not as state.
  • Sibling precedent: the sources envelope grammar (roster/repoStatus/runtime rows) and the OPERATIONS rows' "Not read back yet".

The Fix

  1. SERVERS + MEMORY & KNOWLEDGE rows render as declared (registry authority named), visually distinct from observed state — reusing the existing "Not read back yet" / source-marker grammar rather than inventing a new one.
  2. Where a cheap observation EXISTS, show it beside the declaration (e.g. Memory Core reachability = the plane handshake the fleet child already proved; a mismatch renders as declared≠observed, the honest interesting state).
  3. Correct the current false rows for this deployment's reality (github-workflow active per evidence; MC/KB container-plane, not local) — likely falls out of (1) automatically once declaration stops masquerading.

Acceptance Criteria

  • Configuration rows carry their authority visibly: declared (registry) vs observed (probe/handshake), never a bare On/Off implying observation.
  • A seat whose declared servers differ from observable reality renders the mismatch honestly (red→green witness against today's GitHub workflow: Off state on a seat that files issues through it).
  • Local services vs container-plane mode reflects the actual binding where the fleet can know it (plane handshake), else renders as declaration.
  • No new fleet surface: registry + existing handshake truth only.

Out of Scope

A server-set observation probe for external harnesses (new capability — separate ticket if wanted) · pane visual design (#17268 owns aesthetics) · editing/config-write flows.

Related

Epic #14560 (parent) · #17271 (origin L1 run) · #17305 (sibling truth-vocabulary bug, runtime axis) · #17268 (pane design pass)

Live latest-open sweep: latest 8 checked 2026-08-17T16:40Z, no equivalent; A2A claim window clean (newest claim 13:54, unrelated).

Origin Session ID: 7ee47ccf-d1c7-469d-a75e-15cebf3b5ea5

Retrieval Hint: query_raw_memories("configuration pane declared observed github workflow off false registry")

tobiu referenced in commit 2e856e6 - "fix(agentos): the configuration pane names which authority each row speaks with (#17306) (#17320) on Aug 17, 2026, 9:56 PM
tobiu closed this issue on Aug 17, 2026, 9:56 PM