From d0ff4d48501aad162c9b4e6a86fa26f8bc26ce4a Mon Sep 17 00:00:00 2001 From: Brennan Benson <79079362+brennanb2025@users.noreply.github.com> Date: Tue, 18 Aug 2026 03:20:25 -0700 Subject: [PATCH] fix(agent-status): collapse the entry facets into one intersection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The previous attempt still tripped max-lines: two mixins on one intersection wrap across two lines under oxfmt, so removing the field line bought nothing. Expose a single AgentStatusRowFacets that already includes the observation facet, so the entry intersects one short name on one line. The payload keeps intersecting the observation facet alone — it must not carry the renderer-local ordinal. Verified by formatting first and then linting, which is the order that catches this. --- src/shared/agent-status-observation.ts | 2 +- src/shared/agent-status-types.ts | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/shared/agent-status-observation.ts b/src/shared/agent-status-observation.ts index 521f2de1cc4..d0712d217c5 100644 --- a/src/shared/agent-status-observation.ts +++ b/src/shared/agent-status-observation.ts @@ -71,7 +71,7 @@ export type WithAgentStatusObservation = { observation?: AgentStatusObservation * * Declared here beside the observation facet because both are per-write facets mixed into * `AgentStatusEntry` rather than fields a reporter supplies. */ -export type WithAcceptedStatusSeq = { acceptedStatusSeq?: number } +export type AgentStatusRowFacets = WithAgentStatusObservation & { acceptedStatusSeq?: number } // ─── THE ORDERING RULE ────────────────────────────────────────────────────── // `(authorityId, incarnation, revision)` is a total order ONLY within one authorityId. diff --git a/src/shared/agent-status-types.ts b/src/shared/agent-status-types.ts index 21cf4c931b5..714b47d4a80 100644 --- a/src/shared/agent-status-types.ts +++ b/src/shared/agent-status-types.ts @@ -3,7 +3,7 @@ // a narrow interrupt fallback synthesizes a final `done` when an agent misses its cancellation hook. import type { AgentProviderSessionMetadata } from './agent-session-resume' -import type { WithAcceptedStatusSeq, WithAgentStatusObservation } from './agent-status-observation' +import type { AgentStatusRowFacets, WithAgentStatusObservation } from './agent-status-observation' import { normalizeInteractivePromptField, normalizeOptionalField, @@ -152,8 +152,7 @@ export type AgentStatusEntry = { * the transition may have been missed while no receiver was up, so freshness gates * treat the row as stale immediately. Cleared by any accepted live event. */ restoredUnconfirmed?: boolean -} & WithAgentStatusObservation & - WithAcceptedStatusSeq +} & AgentStatusRowFacets export type MigrationUnsupportedPtyEntry = { ptyId: string