Codex execution presentation and history compatibility
This stable release ships the fixes accepted in PR #28. It works with the unmodified official DSH build; no DSH fork is required.
Changes
- Group consecutive tool activity into compact, expandable summaries, separated by assistant commentary. Use semantic labels and icons for commands, file edits, and image viewing.
- Keep command output in bounded, literal-text panels instead of interpreting it as assistant Markdown. Preserve readable final answers and images when activity is collapsed.
- Persist presentation through native DSH events so histories remain readable after reload and cold restart. Include a dry-run-first repair utility for legacy activity events.
- Preserve received command output during cancellation, display failure states correctly, and open completed file edits through the native DSH file opener.
- Keep native DSH and Claude rendering isolated, with native fallback for unsupported or incomplete history.
Validation
- 232 unit tests and 121 component tests, type checking, and reproducible production builds.
- Runtime checks on Linux, macOS, and Windows; npm publication through GitHub Actions OIDC with provenance.
- Official DSH compatibility reference:
0.1.1-rc.2, commitb150a551b8d465e31e418e1b2eaf5e79bbb7d28e. - Acceptance record covers real Sol High execution, cancellation, reload, cold restart, file opening, image viewing, responsive layout, and cross-backend isolation.
Upgrade
Stop DSH Web, install the stable version, then restart:
npx @deepseek-ai/dsh@0.1.1-rc.2 plugin --profile web add relay-dsh-plugin-codex@0.1.5
npx @deepseek-ai/dsh@0.1.1-rc.2 weblatest selects this stable release. next is a separate channel and is not advanced by this release.
Compatibility Notes
- Existing Codex Threads retain their identity and model context. The pinned Codex runtime cannot enable first-yield raw notifications on older Threads; complete first-yield capture requires a newly created DSH Session. Upgrading does not silently replace old Threads.
- Output that has not reached the plugin before cancellation cannot be reconstructed.
- The grouped interaction is not a claim of pixel-for-pixel parity with every Codex App feature. Generated-image completion was tested with a protocol fixture, not a live image-generation service.