docs: dsh 0.1.5-rc.1: Session log format v3 with new event vocabulary - #18
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 28, 2026 22:26
f804802 to
19eff56
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 30, 2026 16:46
19eff56 to
319f702
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 30, 2026 21:13
319f702 to
45dc86b
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 31, 2026 05:45
45dc86b to
d1da29c
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 31, 2026 14:01
d1da29c to
35b553e
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
August 31, 2026 22:55
35b553e to
79a0d8b
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 1, 2026 05:18
79a0d8b to
a27ef90
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 1, 2026 11:46
a27ef90 to
3f6b960
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 1, 2026 16:45
3f6b960 to
fd55fb9
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 1, 2026 21:07
fd55fb9 to
ee1a405
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 2, 2026 04:43
ee1a405 to
cc8e0aa
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 2, 2026 11:27
cc8e0aa to
c504889
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 2, 2026 16:40
c504889 to
d1a6bca
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 3, 2026 11:23
d1a6bca to
b6f0e9d
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 3, 2026 16:32
b6f0e9d to
07d76da
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 5, 2026 10:43
f6082b7 to
d117811
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
2 times, most recently
from
September 5, 2026 20:28
186a397 to
d4e8da0
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
2 times, most recently
from
September 6, 2026 11:05
cc2e8e2 to
56594df
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 6, 2026 15:33
56594df to
8254537
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
2 times, most recently
from
September 7, 2026 04:51
33ae61c to
2dd2428
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 7, 2026 12:44
2dd2428 to
d6fe711
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 7, 2026 21:35
d6fe711 to
1e259bd
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
2 times, most recently
from
September 8, 2026 11:26
4d94f92 to
45aad1d
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 8, 2026 16:45
45aad1d to
0f061d1
Compare
github-actions
Bot
force-pushed
the
docs/sync
branch
from
September 8, 2026 21:15
0f061d1 to
f2cf7d8
Compare
dsh 0.1.5-rc.1 lands a structural change to the Session log — the durable,
on-disk record of every agent interaction — so this release warrants a
human review pass. The persisted event vocabulary changed (`assistant/chunk`
is gone; `system/message` and `assistant/attempt` are new; `SurfaceOp.replace`
renamed its payload fields), the format writer is now a versioned generation
chain (`v0/v1/v2` migrate forward to the current writer) instead of the old
"pre-release, pinned at 0, no compatibility implied" stance, and the docs add
a dedicated version-and-release-status page plus a cookbook for adding the next
edge. Anyone with sessions written by an older dsh will hit translation on open,
and anything parsing the JSONL directly (or merging event types from an
out-of-tree plugin) will break. The npm release also moved, which is itself the
signal this shipped.
Highlights, most interesting first:
- Session log format is now versioned and migrated: current writers stamp
`SESSION_FORMAT_VERSION` (= 3), and released historical formats v0/v1/v2 are
translated to the current vocabulary on `stat`/`list`/`open`. Historical
migration refuses unknown event types even when marked `ignorable: true`;
current-format restoration still honors them. Old logs are read without
mutating the source file — a write open publishes the up-converted generation.
- New `session-format-status.md` is now the single authority for "what format
is current / next / released" (checkout writer in code, `latestReleasedVersion`
in a release record, evidence tag `dsh-v0.1.5-alpha.1`). Docs elsewhere link
to it instead of restating a number — worth a look because it is the new
contract for anyone reasoning about log compatibility.
- Event vocabulary broke: `assistant/chunk` removed in favor of per-attempt
compact stream records embedded in `assistant/message` and a new
`assistant/attempt` event for failed/retried/cancelled attempts that produce
no surface message; `system/message` added as surface node 0 (the system
prompt is no longer part of `request/header`); `SurfaceOp` replace now uses
`startSeq`/`endSeq`; `session/end-seed` carries `{ inherited?: true }`.
- `SessionHandle.read()` now returns `SessionHandleReadResult` (`{ eventState,
events }`) rather than a bare array — an interface change for any out-of-tree
persistence backend. `RestoredSessionOptions.seedSource` became `eventState`
(`detached` | `shared-frozen`).
- `request/header` is stricter: a `system` field is forbidden, `tools: []` and
`adapterDefaults: {}` must be omitted; noncanonical headers are rejected at
seed/append/load instead of normalized.
- npm moved to `latest 0.1.5-rc.1` / `alpha 0.1.5-alpha.2` (from `latest
0.1.1-rc.2`), giving the new Session-format obligations a real published
release.
- New `str_replace_editor` opt-in for the Python SDK repo: `sdk-minimal` no
longer ships the editor (nor the filesystem provider); users pass a
`cordis.patch.yml` via `patches=` or `$DSH_HOME/profiles/...` to add it back.
- New web-client subsystem pages: `client-resources.md` (address-based
`dsh-resource://` protocol + `useResource` hook) and `sidebar-right.md`
(per-Session docking surface, tab-type registry, navigation service).
- New user guide `network-proxy.md`: `HTTP(S)_PROXY` support, `NO_PROXY`
exclusions, credentials-in-URL, and the paths that stay direct (with a
warning that a project `.env` cannot set proxy vars).
- Attachments widened from image-only to generic files (`ctx.fileUploads`,
`admitPromptContent`, `saveFile`), and feedback moved into the canonical log
as `feedback/message-put`/`feedback/message-delete` log-only events.
- Smaller additions: new `present` tool (`deliverables/presented`), a Windows
and WSL 2 development section, provider reasoning-effort configuration
(`reasoningEfforts`, `compat.thinkingFormat: deepseek`), and a workspace-files
API/service.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
dsh 0.1.5-rc.1 lands a structural change to the Session log — the durable,
on-disk record of every agent interaction — so this release warrants a
human review pass. The persisted event vocabulary changed (
assistant/chunkis gone;
system/messageandassistant/attemptare new;SurfaceOp.replacerenamed its payload fields), the format writer is now a versioned generation
chain (
v0/v1/v2migrate forward to the current writer) instead of the old"pre-release, pinned at 0, no compatibility implied" stance, and the docs add
a dedicated version-and-release-status page plus a cookbook for adding the next
edge. Anyone with sessions written by an older dsh will hit translation on open,
and anything parsing the JSONL directly (or merging event types from an
out-of-tree plugin) will break. The npm release also moved, which is itself the
signal this shipped.
Highlights, most interesting first:
SESSION_FORMAT_VERSION(= 3), and released historical formats v0/v1/v2 aretranslated to the current vocabulary on
stat/list/open. Historicalmigration refuses unknown event types even when marked
ignorable: true;current-format restoration still honors them. Old logs are read without
mutating the source file — a write open publishes the up-converted generation.
session-format-status.mdis now the single authority for "what formatis current / next / released" (checkout writer in code,
latestReleasedVersionin a release record, evidence tag
dsh-v0.1.5-alpha.1). Docs elsewhere linkto it instead of restating a number — worth a look because it is the new
contract for anyone reasoning about log compatibility.
assistant/chunkremoved in favor of per-attemptcompact stream records embedded in
assistant/messageand a newassistant/attemptevent for failed/retried/cancelled attempts that produceno surface message;
system/messageadded as surface node 0 (the systemprompt is no longer part of
request/header);SurfaceOpreplace now usesstartSeq/endSeq;session/end-seedcarries{ inherited?: true }.SessionHandle.read()now returnsSessionHandleReadResult({ eventState, events }) rather than a bare array — an interface change for any out-of-treepersistence backend.
RestoredSessionOptions.seedSourcebecameeventState(
detached|shared-frozen).request/headeris stricter: asystemfield is forbidden,tools: []andadapterDefaults: {}must be omitted; noncanonical headers are rejected atseed/append/load instead of normalized.
latest 0.1.5-rc.1/alpha 0.1.5-alpha.2(fromlatest 0.1.1-rc.2), giving the new Session-format obligations a real publishedrelease.
str_replace_editoropt-in for the Python SDK repo:sdk-minimalnolonger ships the editor (nor the filesystem provider); users pass a
cordis.patch.ymlviapatches=or$DSH_HOME/profiles/...to add it back.client-resources.md(address-baseddsh-resource://protocol +useResourcehook) andsidebar-right.md(per-Session docking surface, tab-type registry, navigation service).
network-proxy.md:HTTP(S)_PROXYsupport,NO_PROXYexclusions, credentials-in-URL, and the paths that stay direct (with a
warning that a project
.envcannot set proxy vars).ctx.fileUploads,admitPromptContent,saveFile), and feedback moved into the canonical logas
feedback/message-put/feedback/message-deletelog-only events.presenttool (deliverables/presented), a Windowsand WSL 2 development section, provider reasoning-effort configuration
(
reasoningEfforts,compat.thinkingFormat: deepseek), and a workspace-filesAPI/service.