LearnNewsExamplesServices
Frontmatter
id17331
titleFleet-server plane-log reads: bounded, redacted, read-only
stateOpen
labels
enhancementaisecurityagent-os
assignees[]
createdAtAug 18, 2026, 10:22 AM
updatedAtAug 22, 2026, 2:41 PM
githubUrlhttps://github.com/neomjs/neo/issues/17331
authorneo-fable-clio
commentsCount2
parentIssue16168
subIssues[]
subIssuesCompleted0
subIssuesTotal0
contentTrust
projected
quarantined0
signals[]
blockedBy[]
blocking[]

Fleet-server plane-log reads: bounded, redacted, read-only

Open Backlog/active-chunk-17 enhancementaisecurityagent-os
neo-fable-clio
neo-fable-clio commented on Aug 18, 2026, 10:22 AM

Fleet-server plane-log reads: bounded, redacted, read-only

Context

The System diagnostics view (sibling, filed together) needs per-plane logs. No raw-log surface exists on any plane — peer-verified 2026-08-13: an MC production diagnosis ran entirely on log-proxies (REM state, self-heal events, healthcheck counts, tenant-sync states). The fleet-server is the instance's client-facing control plane (S1 #16735 compose service) and runs where the container runtime lives — the one honest home for log reads.

The Problem

Logs are the highest-privilege observability surface: they carry tokens, PATs, request bodies, and identity material. An unbounded or unredacted log verb converts a UX wish into a credential-exfiltration channel. The verb must be born with its bounds — retrofitting redaction onto a shipped log surface is the known losing order.

The Architectural Reality

  • ai/services/fleet (60 files; FleetTenantService / FleetControlBridge siblings) — the owning folder (structure-map cited this sweep).
  • Redaction precedent: PR #17319 — redact BEFORE bound, with the suite proving the order in both directions; the memories-wire detail sanitization is the pattern to lift.
  • Exposure precedent: D#14501's R3-safe control-plane surface; #16856's observe-vs-mutate declaration discipline.
  • Topology: the local instance's planes are compose services (ai/deploy/docker-compose.local-agent-os.yml: chroma, kb-server, mc-server, orchestrator, fleet-server, ingress); a remote instance's own fleet-server serves the same verb — the capability is instance-relative by construction (D#16720: FM connects, FM never runs the plane).

The Fix

One read-only fleet-server verb: bounded tail (line/byte caps + since-cursor pagination) per named plane service. Redaction runs BEFORE bounding (the PR #17319 order) with the credential-pattern scan; authenticated bridge only (S2 #16736 admission); observe-only declared.

Contract Ledger

Target Surface Source of Authority Proposed Behavior Fallback Docs Evidence
new fleet verb planeLogTail (name at impl.) this ticket + #16168 parent bounded, cursored, redacted tail per named plane service unknown service → named refusal verb JSDoc + fleet service docs unit suite proves redaction-before-bound both directions
plane-service inventory instance topology (compose services) verb enumerates what the topology names non-container plane → honest unavailability same topology-shape fixture
auth ingress S2 #16736 admission authenticated bridge only; no anonymous route refusal same negative-path spec

Acceptance Criteria

  • Verb serves a bounded, cursored tail for each plane service the instance topology names; unknown service → named refusal.
  • Redaction runs BEFORE the byte/line bound; a test proves the order in both directions (the PR #17319 idiom); credential-shaped values never leave the plane.
  • Authenticated-bridge-only; no unauthenticated route; observe-only declared per #16856.
  • Host-process planes (non-container topologies) either serve through the same contract or answer honest unavailability — never a silent empty.
  • Unit coverage in the fleet-service idiom (fixture-server discipline incl. keep-alive closeAllConnections teardown — the known trap).

Out of Scope

Log persistence/search · streaming follow-mode (first cut = cursored pulls) · the System view rendering (sibling) · restart/remediation actuation.

Decision Record

Decision Record impact: none — aligned-with D#14501's exposure-surface precedent and D#16720's client topology.

Related

#16168 (parent) · System-view + instance-switcher siblings (filed together) · PR #17319 (redaction order) · D#14501 · #16856 · D#16720 · #17288 · #16735 (S1) · #16736 (S2).

Live latest-open sweep: latest 20 re-checked 2026-08-18T08:15Z, no equivalent; A2A herd window clean (one unrelated engine claim #17327).

Origin Session ID: ca3c67ac-a3d6-4e93-98e0-c5f7f65011ee

Retrieval Hint: query_raw_memories("fleet server plane log tail bounded redacted read only docker")