refactor(schema): session shell payloads and event prefix restore (#35229)
This commit is contained in:
parent
64e4f6f91b
commit
650d774372
49 changed files with 1521 additions and 1200 deletions
|
|
@ -908,7 +908,7 @@ Compatibility:
|
|||
## 2026-07-03: Normalize Session Event Names And Envelope Time
|
||||
|
||||
- Drop the experimental `session.next.` prefix from current Session event names.
|
||||
- Rename `agent.switched` to `agent.selected`, `model.switched` to `model.selected`, and `prompted` to `prompt.promoted`; add `prompt.admitted` as the durable prompt admission record.
|
||||
- Rename `agent.switched` to `session.agent.selected`, `model.switched` to `session.model.selected`, and `prompted` to `session.prompt.promoted`; add `session.prompt.admitted` as the durable prompt admission record.
|
||||
- Add an envelope-level `created` timestamp stored on each event row; payload-level `timestamp` fields are removed.
|
||||
- Remove projection-only `messageID` fields from selected/message-producing events; projected message IDs derive from the event ID. `revert.committed.messageID` remains, and `forked.messageID` is now `forked.from`.
|
||||
- Rename `session.moved.subdirectory` to `subpath` and normalize event-related schema identifiers.
|
||||
|
|
@ -918,3 +918,24 @@ Compatibility:
|
|||
- V2 durable events and projections are experimental and are reset by `20260703090000_reset_v2_event_rename_sweep`; existing V2 event rows, event sequences, projected session messages, and admitted inputs are wiped.
|
||||
- All renamed durable event types restart at version 1 under their normalized names.
|
||||
- Generated Promise, Effect, and legacy JavaScript SDK surfaces were regenerated from the normalized schemas.
|
||||
|
||||
## 2026-07-03: Restore Session Event Prefix
|
||||
|
||||
- Restore the `session.` prefix on current Session event names; the prior rename intended to drop only the `.next.` segment from `session.next.*` names.
|
||||
- Payloads are unchanged. For example, `step.ended` is now `session.step.ended`, while already-correct names such as `session.moved` and `session.context.updated` are unchanged.
|
||||
|
||||
Compatibility:
|
||||
|
||||
- Covered by the existing `20260703190000_reset_v2_shell_event_payloads` V2 reset; no additional migration or column change is required.
|
||||
|
||||
## 2026-07-03: Align Session Shell Payloads With Shell Service
|
||||
|
||||
- Change durable `session.shell.started` to carry `shell: Shell.Info`.
|
||||
- Change durable `session.shell.ended` to carry the final `shell: Shell.Info` snapshot and structured `output: Shell.Output`.
|
||||
- Project `SessionMessage.Shell` with the same nested Shell service objects so consumers can render command, exit status, truncation, and paged output consistently.
|
||||
- Remove the transitional `callID` correlation field from shell events and projected shell messages; shell records now key by `shell.id`.
|
||||
- Publish `session.shell.started` after the shell process is created so `Shell.Info` reflects the real process. A failed spawn publishes no shell events; the failure surfaces as an error on the shell request itself, so the durable ledger never records a `session.shell.started` without a process that existed.
|
||||
|
||||
Compatibility:
|
||||
|
||||
- V2 durable events and projections are experimental and are reset by `20260703190000_reset_v2_shell_event_payloads`; existing V2 event rows, event sequences, projected session messages, and admitted inputs are wiped.
|
||||
|
|
|
|||
|
|
@ -114,7 +114,7 @@ Before each step, the runner estimates the complete model-visible request and co
|
|||
|
||||
Compaction keeps the full transcript durable while replacing its active model representation with one hidden checkpoint containing a structured rolling summary and token-bounded serialized recent context. Provider-native assistant, reasoning, and tool messages never survive across the boundary, avoiding signature and encrypted-reasoning failures when the earlier prefix changes.
|
||||
|
||||
`compaction.started.1` durably identifies the attempt. Compaction deltas are live-only progress. `compaction.ended.1` durably stores the final summary and serialized recent context; only this completed event projects a model-visible compaction message. On the next physical attempt, the runner observes that completed compaction and directly renders a fresh Context Epoch baseline. A failed or interrupted attempt therefore leaves the previous history boundary active.
|
||||
`session.compaction.started.1` durably identifies the attempt. Compaction deltas are live-only progress. `session.compaction.ended.1` durably stores the final summary and serialized recent context; only this completed event projects a model-visible compaction message. On the next physical attempt, the runner observes that completed compaction and directly renders a fresh Context Epoch baseline. A failed or interrupted attempt therefore leaves the previous history boundary active.
|
||||
|
||||
Repeated compactions update the previous structured summary with newly compacted messages. The runner then reloads projected history and executes the original pending step.
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue