Repository navigation
Releases
v0.5.2 — fixes rc.2 native-checkpoint resume across restarts
What changed
- Fixes the 0.5.1 known issue: continuing a conversation with a committed native checkpoint after a host restart no longer fails with
CODEX_RUNTIME_REQUEST_PREPAREon DSH 0.2.0-rc.2. - Root cause: the rc.2 host's bundled converter (pi-ai 0.87.1) normalizes the legacy
Context.systemPrompt/toolsinto a leading transcript system message; the owner-bound native runtime keeps its pinned pi-ai 0.84.4 protocol expecting the legacy shape, so the owner request carried emptyinstructions/tools. - The provider adapter restores the canonical initial system message at the owner's
streamSimpleboundary (src/owner-context.js): instructions, tools, checkpoint and ordering are preserved verbatim; legacy-shaped input passes through unchanged; unsupported rich or mixed transcript shapes fail closed (CODEX_NATIVE_CONTEXT_INCOMPATIBLE). - No core patches, no pi-ai version change, no duplicate login; auth/HTTP/codec/catalog ownership stays with the codex-runtime/v1 owner. Version contracts updated together (package 0.5.2,
DEFAULT_SOURCEpin, check assertion, README install pins, CHANGELOG).
Verification (tag v0.5.2, commit ac76e59)
- Full repo check suite: 173 unit + 46 legacy-A + 34 compaction A/B, all passing;
npm pack --dry-run --ignore-scripts(35 files) andgit diff --checkclean. - Paired suites against the published owner dsh-token-usage v5.3.1: owner account suite 423 tests / 416 pass / 0 fail / 7 optional skips; cross-plugin integration 51 tests / 50 pass / 0 fail / 1 optional skip; authSdk 0.82.1 / nativeSdk 0.84.4; no real credentials, no live profile.
- Actual rc.2 Agent harness: create + separate-process resume with a committed native checkpoint — 16 turns, compaction committed, replay passed, 144→154 events, exact DSH system prompt and fixture tool schema preserved in every native request, externalCalls 0.
- Isolated rc.2 GUI combination acceptance: 7/7 target plugins active, official file/session references and agent/pre-step capture verified; gpt-6.1-sol (owner v5.3.1 verified catalog) serves through the same pinned protocol template with no interaction.
- Not verified here: real-account wire behavior and production deployment.
v0.5.1 — adds DSH 0.2.0-rc.2 to the tested host matrix
What changed
- Runtime version guard, installer gate, CLI guidance and help text now accept exactly
0.1.7-alpha.1or0.2.0-rc.2(homogeneous host-package sets), all derived from a single constant (TARGET_DSH_VERSIONS) so they cannot drift. DEFAULT_SOURCEpinned tov0.5.1; installer tests assert the source pin follows the package version, cover the rc.2 launcher, and refuse adjacent unvalidated versions (0.1.7-rc.1,0.2.0-rc.1,0.2.0).
Verification (tag v0.5.1, commit 3b45e7a)
- Full repo check suite (unit, legacy-A, compaction A/B) passes; 168/168 + check green.
- Live on isolated host 0.2.0-rc.2: install via official
dsh plugin add, boot with zero activation failures,Codex Nativepreset registered, real ChatGPT-account/compactcommitted a native checkpoint (responses.compaction-trigger.v2envelope, no error), UI reported "10 history records compacted".
Known issue (0.2.0-rc.2)
After a host restart, continuing a conversation that contains a committed native checkpoint fails during request preparation (CODEX_RUNTIME_REQUEST_PREPARE); fresh sessions and the compaction itself work. Behavior on 0.1.7-alpha.1 for the same flow is unknown (not reproduced there; a same-version control experiment could not rebuild the OAuth session cheaply). Until fixed, avoid relying on native-checkpoint resume across restarts: keep long Codex Native sessions within one host run or use reader-text.
v0.5.0 — 0.1.7-alpha.1 durable native compaction
0.1.7-alpha.1 durable native compaction (isolated verification complete)
Scope: DSH 0.1.7-alpha.1 only. The installer accepts exactly that dsh CLI version.
Highlights
- Owner Settings catalog projection (
dsh-token-usage5.3.0):models.preview/models.applybind a catalog revision, Settings revision and preview digest; apply is idempotent and revision-guarded, and rejects malformed/duplicate/unknown targets instead of writing a half list. Sol/Luna use verified Codex facts (contextWindow=272000,maxTokens=128000, text+image;off→none,minimal→low). - Codex Native preset default: preset-local
nativeDefault(true only oncodex-native-b); expliciton/off/reader-textwins;inherit/never-set follow the CURRENT preset. Status reports capability, preset default, session preference, effective mode and carrier readability separately; the global capability flag never carries preference. - Deterministic failures: pure-local history/schema precheck runs before any lease, and deterministic bad inputs are fingerprint-blocked instead of riding the transient cooldown (process-local; a restart re-runs the precheck).
- Preset-scoped efficiency guard (default off, experimental): defers an automatic low-gain native request (net freed
<4096heuristic tokens or<10%of the replaced content, within 60 s, no ≥4096 surface growth) with zero HTTP and a fixed reason. Manual compaction bypasses the efficiency deferral but not the safety checks. No fabricated commit, no hidden retry, no automatic reader-text. - Source-aware retention (
source-aware-v1, behind the preset's experimentalsourceRetentionswitch, default off): the full request is still sent; only provably duplicated host-generated copies may leave the retained checkpoint copy. Ambiguous same-text sources fall back conservatively; real user content, constraints and unknown items are never dropped; an old owner without the capability marker receives no hints. - Observer/history correctness: replacement ranges read from the 0.1.7
surfaceOp/sourceEventSeqsschema; committed requires a source-linked summary → replacement → clean end; comparison-unknown is distinct from failure; V4 tool-role history (top-level tool payloads, durable images) is accepted while legacy V3 wrappers still fail closed. - Packaging: host
peerDependenciesremoved (they makenpx github:…#tagauto-resolve the whole host tree and hit ERESOLVE); compatibility stays gated by the installer'sdshCLI matrix.
Install
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.5.0
No arguments means install; the default profile is web. status, uninstall, --profile <name>, --source link:<local-path> and --help are also available.
Verified / not verified
Verified in isolation: packaged candidates, an isolated 0.1.7-alpha.1 host, the paired account snapshot, and the installer's npx github: path. Not verified: real-account calls beyond the recorded small matrix, GUI on a production profile, real-model performance, and production deployment.
v0.4.6
Fix: npx install failed with ERESOLVE. Host packages (@deepseek-ai/cordis, dsh-*) are provided by the DSH profile runtime, not npm peers — the peer declarations made npx auto-resolve the whole host tree (dsh-agent ^0.1.7-alpha.1 resolved to 0.1.7-rc.1, whose cordis ~4.0.4 conflicted with the exact 4.0.3 pin). peerDependencies removed; compatibility stays gated by the installer dsh CLI matrix. Installer default source now derives from the package version.
v0.4.5
Codex compaction: /compact with structured native presets. test:compaction-ab moved out of default check (fixture shape drift, engine unaffected).
dsh-codex-compaction 0.4.3
Allows homogeneous DSH 0.1.5-rc.2 (same session replace ops as rc.1). Mixed rc.1/rc.2 host trees still fail closed.
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.4.3
dsh-codex-compaction 0.4.2
Session V3 structured compaction reads the current model-visible system prompt from session.surface.nodes (A→B→A tail-clear keeps head A). Installer matrix: exact dsh 0.1.2-alpha.3, 0.1.2-rc.1, and 0.1.5-rc.1. Does not claim 0.1.5-*.
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.4.2
v0.4.1 long-session native compact stability
Long-session native compact stability on the 0.4.0 line.
- Sanitize error/aborted compact history only after a supported pi-ai v2 replay envelope, including the lab-route → openai-codex remap.
- Reject interrupted tool pairing; nested tool-result content is payload, not extra pairing ids.
- Official Basic still owns shrink/pressure. Owner estimateCheckpoint remains JSON.stringify(items)/4 and is not a verified occupancy oracle.
Commit: 484dd10
Install:
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.4.1
0.4.0 — Explicit reader-text and compaction benefit
dsh-codex-compaction 0.4.0
Commit: b58f5a83ed1f741195ac433acd551789b11d0933 (annotated tag v0.4.0).
Companion: dsh-token-usage 5.1.5.
- Explicit, restart-safe
/codex-native reader-textuses the same account owner and Basic's complete instruction, including JSON scalar-type fidelity guidance. /codex-contextadds bounded metadata-only pressure/benefit observation; no token-meter, history or usage override.- Exact CLI support:
0.1.2-alpha.3and0.1.2-rc.1; host packages remain pinned to0.1.2-rc.1. - Accept optional corrected SDK stream terminal diagnostics from the companion owner.
- Basic remains primary, defaults remain off, and no automatic reader-text strategy is enabled. No core patch, duplicate login or lifecycle installation scripts.
Fixed asset
dsh-codex-compaction-0.4.0.tgz
SHA256: 21d24b26614fea57e730f26eb813052e0054638f4c782142f52cf0e531029aef
The asset is the exact previously accepted 28-file candidate. Package JSON values match the source commit; other packaged source files match byte-for-byte. Packaged documentation retains its preparation-stage labels to preserve the accepted content; this release page records distribution status.
Validation and limits
Compaction check (main, legacy A and A/B), pack dry-run, diff checks, isolated owner/pinned-SDK integration, and fixed-asset loader/GUI disk recovery passed. Cross-plugin integration: 32 passed, one optional real-time test skipped. Both actual supported CLIs passed the earlier frozen-asset install/repeat/status/uninstall tests.
A bounded real-model opaque-only fixture recovered seven facts/types after the reader guidance fix. Real cancellation preserved the original carrier and committed no summary. This is not a universal quality guarantee; real account switching was not tested. Reader conversion itself has a token cost; a smaller later request is not an immediate total-cost saving. No extra real-model calls were made for the final diagnostic/distribution delta.
Formal GitHub tag acceptance — passed
Actual npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.4.0 and companion commands passed on both CLI 0.1.2-alpha.3 and 0.1.2-rc.1, with actual Base/Web 0.1.2-rc.1. Each row used a fresh HOME, DSH_HOME, cwd and cache, without a source override or provider credentials.
Install/repeat/status/uninstall, lifecycle blocking and unrelated-profile preservation passed. All 28 consumer / 61 owner packaged files and npx materializations matched the frozen candidates; tags retained the exact expected commits before and after. Real config dump/startup showed all three plugin entries active; the served client combo contained the exact frozen owner client bytes. Both temporary servers and fixture directories were cleaned up.
This verifies actual tag distribution, startup and client asset serving, not a new browser-render/HMR or model-quality test. No sessions or generation were used in this matrix. No production deployment or restart is included.
0.3.3: native checkpoint and image replay repair
0.3.3 — native checkpoints + image replay
Repairs the mixed-history refusal when a conversation contains both native Codex checkpoints and user/tool-result images. Includes the real attachment-policy correction for valid images previously rejected with INVALID_ATTACHMENT_REF.
Changes
- Resolve images through published DSH PiAiAdapter attachment/access callbacks, with all three image bounds materialized by its public Config schema.
- Ordinary replay retains native state and images. Mixed histories use one same-owner, compaction-budget
reader-textrequest with the official Basic instruction; Basic retains usage, shrinking, validation and history commit. - No checkpoint/owner protocol change, no duplicate authentication, no native-image codec, no reader-failure retry or stock fallback. Unsupported roles/models, missing attachments, malformed carriers and identity mismatches remain fail-closed.
- Preserve the 0.3.2 setup/idle/total deadline correction. Existing published Accounts 5.1.3 is sufficient; this release does not require the separately developing Accounts governance changes.
中文:修复原生检查点与截图混合历史无法继续运行的问题。真实附件服务回归覆盖有效图片被误拒绝的根因;保留账户绑定、图片预算、失败关闭与官方 Basic 提交边界,不改写旧历史或删除截图。
Installation
Requires the tested DSH CLI and host 0.1.2-rc.1, Node 24 and pnpm. The older PATH CLI 0.1.2-alpha.3 is not supported by this installer. Companion: github:shaomingbo/dsh-token-usage#v5.1.3.
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.3.3
npx --yes --ignore-scripts github:shaomingbo/dsh-codex-compaction#v0.3.3 statusNo arguments means install into profile web. uninstall, --profile, explicit local link: and --help remain available. Installation never restarts the host. A deliberate production switch from a local link to this tag requires a user-performed restart and Web refresh; publishing this release does not perform that switch.
Verified evidence and boundaries
- 545 passed, 1 skipped: plugin 163 + legacy-A 46 + comparison 34 + exact published account 275 + paired integration 27. The skip is the existing optional 130-second real-time deadline case; virtual-clock deadline cases passed.
- Companion source is the exact published
v5.1.3commitdddb7f2bd62ddffc24c62916b205796b1c78c5a0, not an unpublished account worktree. - Four real temporary LocalAttachmentStore cases, strict image mocks, aggregate-budget negatives, and actual owner/Basic composition tests passed using fake auth/transport. Independent read-only review found no substantiated defect; 26 focused cases passed.
- Main and tag GitHub CI passed. Local full checks, peer checks, pack dry-run and whitespace gates passed.
- Fixed-tag npx install/repeat/status/dump/uninstall cycle uses a fresh HOME/DSH_HOME and cache, without booting a server or using real provider credentials. All 26 installed package files match the reviewed release bytes; all declared host peers resolve to their exact tested versions and all three ESM entries load.
- The load check uses the documented rc.1 launcher peer-preparation API: profiles intentionally disable peer auto-installation, and an unprepared standalone Node import is not equivalent to loading inside DSH. No private loader patch or plugin code change is used.
- The repaired runtime already passed authorized original-instance ordinary replay with normal completion and zero tool calls. That local-link acceptance is distinct from fixed-tag installation. No additional live mixed Basic compaction or lossless recall is claimed.
Immutable release identity
- Source base: published
v0.3.2, commit48762d23b83c19fe517d319404ce0007c933e7e9. - Tag: v0.3.3, annotated tag object
fd186b3b94c0d780631df9878439979211056740. - Commit: e78085d (also main at publication).
- Attached package:
dsh-codex-compaction-0.3.3.tgz, 26 files, 61,921 bytes compressed. - SHA-256:
4573666b4219c2618b2bcdba27fc1b364b60167f571958b7b23b3272ac874464. - npm shasum:
5a9e2c7469129cd6b24824bbadb3a71b12679012. - npm integrity:
sha512-ZRdG/d2K3MK/jJVzamWCV9755MLrjxZpnwX28CKW0w6C6RXLHEnKRu1DW+cxUP7AuEIPqqobMcAC7CvMkS3lXw==.
Distribution is this fixed GitHub tag/release; no npm-registry publication or catalog approval is implied.