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
Big decisions to preserve
- Drop
session.next.*; next was migration scaffolding.
- Put event creation time on the event envelope as
created instead of payload timestamp.
- Remove projection-only
messageID fields where projected IDs can be derived from event IDs.
- Keep domain IDs only where they are real correlation facts, e.g.
callID, shell IDs, fork from.
- Replace
session.status with 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
type discriminators.
- Rename provider continuation payloads from
providerMetadata to state.
- Keep
metadata only for actual app/plugin extension metadata, e.g. synthetic messages.
- Session shell should reuse
Shell.Info and Shell.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.
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 session event schema names/payloads
Session log replay/tail
Execution/retry/error events
Guidance/context update summaries
Shell events + Shell service
Assistant fragments + provider state
Misc cleanup: tool settlement ordering, compaction template, synthetic shape
Big decisions to preserve
session.next.*;nextwas migration scaffolding.createdinstead of payloadtimestamp.messageIDfields where projected IDs can be derived from event IDs.callID, shell IDs, forkfrom.session.statuswith explicit execution lifecycle events.typediscriminators.providerMetadatatostate.metadataonly for actual app/plugin extension metadata, e.g. synthetic messages.Shell.InfoandShell.Output.log.synced.Acceptance themes
finish: "content-filter"never looks like an empty successful assistant response.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.