feat(core): session.pending.list API with pending-only session_pending storage (#36126)
This commit is contained in:
parent
99156c10e6
commit
a72992e00f
43 changed files with 986 additions and 649 deletions
|
|
@ -1,5 +1,18 @@
|
|||
# V2 Schema Changelog
|
||||
|
||||
## 2026-07-09: Make Session Input Storage Pending-Only And Rename It To Session Pending
|
||||
|
||||
- Rename the `SessionInput` schema namespace to `SessionPending` and the `session_input` table to `session_pending`.
|
||||
- Make the table pending-only: promotion consumes the user or synthetic row in the same event transaction that projects the message, and compaction settlement deletes the barrier row. Drop the `promoted_seq` column and the retained `promotedSeq`/`handledSeq` wire fields.
|
||||
- Add `GET /api/session/:sessionID/pending` (`v2.session.pending.list`) returning durable admitted work not yet visible in projected history, ordered by admission.
|
||||
- Reconcile exact retry of an already-promoted input against the projected `session_message` row plus the durable `session.input.admitted` event instead of a retained row. A projected message without an admitted event in the aggregate (for example fork-copied history) is conflicting reuse. Reusing a settled compaction ID admits a fresh barrier instead of reconciling; the worst case is one redundant compaction on a retried request.
|
||||
|
||||
Compatibility:
|
||||
|
||||
- `20260709190621_session_pending_table` drops `session_input` (including consumed ledger rows, any in-flight pending work, and whatever historical index variant the database carried) and creates the empty `session_pending` table. V2 storage is beta; no compatibility or data retention is attempted.
|
||||
- Durable event names and payloads are unchanged; `session.input.admitted` still records the full admitted message including delivery.
|
||||
- Promise, Effect, and legacy JavaScript SDK surfaces are regenerated; `SessionInput*` generated schema names become `SessionPending*` while event-derived names keep their `session.input.*` vocabulary.
|
||||
|
||||
## 2026-07-05: Rename Session Context Contracts To Instructions
|
||||
|
||||
- Rename the System Context algebra to `Instructions`, API-managed `SessionContextEntry` records to `InstructionEntry`, and the session-owned context checkpoint to `InstructionCheckpoint`.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue