mirror of
https://github.com/getpaseo/paseo.git
synced 2026-10-24 02:02:42 +00:00
* fix(agents): prevent OOM from cumulative tool history Repeated progress updates retained complete historical copies of growing tool output. Retain projected items on ingestion and serve them for every history fetch, preserving source sequence coverage for catch-up. Keep intermediate payloads only in streaming; confine compatibility degradation to child transcripts and overwritten fork checkpoints. * test(client): expect projected subagent capability in hello * fix(app): report unexpected child history failures Keep connection failures recoverable while forwarding unexpected fetch and reconciliation errors to diagnostics. Name observer arguments to keep server and agent identities explicit. * test(agents): assert projected history after rewind * docs(protocol): tag projected child compatibility gates
51 lines
3.3 KiB
TypeScript
51 lines
3.3 KiB
TypeScript
export const CLIENT_CAPS = {
|
|
// COMPAT(ownedSubscriptions): added in v0.8.0, remove legacy ownership after 2027-03-09.
|
|
ownedSubscriptions: "owned_subscriptions",
|
|
// Clients outside the Paseo app version series can explicitly accept provider IDs.
|
|
// COMPAT(explicitEventSubscriptions): added in v0.8.0, remove legacy broadcasts after 2027-03-08.
|
|
explicitEventSubscriptions: "explicit_event_subscriptions",
|
|
allProviders: "all_providers",
|
|
// COMPAT(selectiveAgentTimeline): added in v0.1.106. Capable clients receive
|
|
// agent streams only for their explicit viewed set. Remove after 2027-01-12
|
|
// once the supported client floor is >= v0.1.106.
|
|
selectiveAgentTimeline: "selective_agent_timeline",
|
|
reasoningMergeEnum: "reasoning_merge_enum",
|
|
// COMPAT(customModeIcons): added in v0.1.84. Old clients pin AgentModeIcon to
|
|
// a closed enum and crash rendering unknown values; daemon downgrades icons
|
|
// outside the legacy set to "ShieldCheck" when this cap is absent. Drop the
|
|
// gate when floor >= v0.1.84.
|
|
customModeIcons: "custom_mode_icons",
|
|
// COMPAT(terminalReflowableSnapshot): added in v0.1.88. The daemon attaches
|
|
// per-row soft-wrap flags (gridWrapped/scrollbackWrapped) to terminal snapshots
|
|
// only when the client advertises this, so restored content can reflow on resize.
|
|
// Old clients use a strict TerminalState schema and would reject the extra fields.
|
|
// Drop the gate (always send the flags) when floor >= v0.1.88.
|
|
terminalReflowableSnapshot: "terminal_reflowable_snapshot",
|
|
// COMPAT(providerSubagents): added in v0.1.107. The daemon emits provider-owned
|
|
// child descriptors and timelines only to clients that understand the new messages.
|
|
providerSubagents: "provider_subagents",
|
|
// COMPAT(projectedSubagentTimeline): added after v0.8.0, remove gates after 2027-03-14; retain wire capability.
|
|
projectedSubagentTimeline: "projected_subagent_timeline",
|
|
// COMPAT(projectUpdates): added in v0.1.109, remove gate after 2027-01-15.
|
|
projectUpdates: "project_updates",
|
|
// COMPAT(compactProviderSnapshots): added in v0.2.X. Capable clients receive
|
|
// provider catalogs with shared thinking sets and may revalidate by content hash.
|
|
// Remove the legacy snapshot encoding after 2027-02-04.
|
|
compactProviderSnapshots: "compact_provider_snapshots",
|
|
providerSnapshotReferences: "provider_snapshot_references",
|
|
// COMPAT(timelineReplacementInvalidation): added in v0.5.0, remove legacy
|
|
// reconstructed timeline replay after 2027-02-21 once the client floor supports invalidation.
|
|
timelineReplacementInvalidation: "timeline_replacement_invalidation",
|
|
// COMPAT(timelineNotifications): added in v0.7.2. The daemon omits notification
|
|
// timeline items for older clients whose strict timeline union rejects them.
|
|
// Remove after 2027-03-03 once the supported client floor is >= v0.7.2.
|
|
timelineNotifications: "timeline_notifications",
|
|
// COMPAT(pluginTimelineItems): added in v0.8.0, remove after 2027-03-07 once client floor >= v0.8.0.
|
|
pluginTimelineItems: "plugin_timeline_items",
|
|
// COMPAT(workspaceSetupBlocked): added in v0.8.0, remove after 2027-03-07 once client floor >= v0.8.0.
|
|
workspaceSetupBlocked: "workspace_setup_blocked",
|
|
browserHost: "browser_host",
|
|
} as const;
|
|
|
|
export type ClientCapability = (typeof CLIENT_CAPS)[keyof typeof CLIENT_CAPS];
|