Repository navigation
Closed
Labels
2.0coreAnything pertaining to core functionality of the application (opencode server stuff)Anything pertaining to core functionality of the application (opencode server stuff)gang-grillDesign topics queued for later group grillingDesign topics queued for later group grilling
Description
Summary
Mega tracker for the V2 event/schema audit from the Discord gang-grill session.
Source discussion: https://discord.com/channels/1391832426048651334/1522263729318658181
V2 TODO post: https://discord.com/channels/1391832426048651334/1520962938733723720/1522327808465043566
The goal is to make the V2 event contract beta-ready: domain-shaped, replayable, deterministic, and pleasant for SDK/UI consumers.
Child issues
- V2: clean up session event schema names and payloads before beta #35014
V2 session event schema names/payloads - V2: make session log replay/tail deterministic and replication-safe #35015
Session log replay/tail - V2: redesign execution, retry, and error events #35016
Execution/retry/error events - V2: add structured guidance/context update summaries #35017
Guidance/context update summaries - V2: align session shell events with Shell service #35018
Shell events + Shell service - V2: simplify assistant content fragment IDs and provider state #35019
Assistant fragments + provider state - V2: follow-up cleanup from event schema gang grill #35020
Misc cleanup: tool settlement ordering, compaction template, synthetic shape
Big decisions to preserve
- Drop
session.next.*;nextwas migration scaffolding. - Put event creation time on the event envelope as
createdinstead of payloadtimestamp. - Remove projection-only
messageIDfields where projected IDs can be derived from event IDs. - Keep domain IDs only where they are real correlation facts, e.g.
callID, shell IDs, forkfrom. - Replace
session.statuswith explicit execution lifecycle events. - Retry should reduce into current assistant retry state, not become message spam.
- Event errors need a closed structured union with dot-cased
typediscriminators. - Rename provider continuation payloads from
providerMetadatatostate. - Keep
metadataonly for actual app/plugin extension metadata, e.g. synthetic messages. - Session shell should reuse
Shell.InfoandShell.Output. - Durable log replay should use a fixed replay watermark, paged reads, and
log.synced.
Acceptance themes
- Reconnect/replay consumers can reconstruct durable state without timing races.
- UI can render terminal states, retries, blocked provider content, guidance changes, and shell output without parsing hidden model text.
- Provider
finish: "content-filter"never looks like an empty successful assistant response. - Generated schema/client/plugin APIs reflect the cleaned event contract.
Notes
This tracker is intentionally broad. Use the child issues for implementation-sized work and close this when the event audit is complete or intentionally split into a later cleanup milestone.
Metadata
Metadata
Assignees
Labels
2.0coreAnything pertaining to core functionality of the application (opencode server stuff)Anything pertaining to core functionality of the application (opencode server stuff)gang-grillDesign topics queued for later group grillingDesign topics queued for later group grilling
Activity
kitlangton commentedon Jul 4, 2026
Tracker status: completed audit work is mapped to merged PRs, with execution/retry/fragments/settlement cleanup consolidated in #35272. Guidance summaries and terminology remain independently tracked by #35017 and #35057. Keep open until #35272 merges, then this can close under the tracker’s “complete or intentionally split” criterion.
kitlangton commentedon Jul 7, 2026
Current status after #35272:
Keeping this tracker open until #35017 is resolved or explicitly deferred.
kitlangton commentedon Jul 7, 2026
The event-contract audit is complete. #35017 is now an independent design discussion rather than a blocker for this epic; richer Session error details remain separately tracked in #35325.