# Changelog

## 2.0.0 — 2026-08-28

Version 2.0 replaces the experimental shared-conversation architecture with explicit, predictable one-way structured imports. It also introduces the Codex companion MCP/Skill package, local MCP memory, native DSH → Codex actions, project batches, and a faster settings experience.

### Added

- Added one-shot structured migration in both directions:
  - Codex → DSH converts user messages, assistant replies, tool calls, and tool results into native DSH events.
  - DSH → Codex converts visible DSH history into Codex's supported external-agent session format.
- Added a native Codex action below every DSH assistant reply to import that conversation and open the resulting Codex task.
- Added **Batch Migration by Project / 按照项目批量迁移** for importing every unarchived DSH conversation in one native Codex batch while preserving the original workspace path.
- Added support for Codex conversations without a project through the canonical `(no project)` key and `codex-unprojected` DSH workspace.
- Added the bundled `dsh-codex-bridge` Codex MCP server and `continue-in-dsh` Skill.
- Added `continue_in_dsh`, which imports the current Codex task, opens DSH, and confirms with `已同步对话到 DSH。`.
- Added local **MCP Memory Beta** tools:
  - `remember_memory`
  - `search_memory`
  - `forget_memory`
- Added global, project, and conversation scopes for MCP memory, stored locally as an append-only JSONL journal.
- Added independent import switches for Codex Markdown memory, bridge MCP memory, and Memory Skill storage.
- Added an imported-conversation list in settings and direct navigation to imported counterparts.
- Added complete Windows PowerShell and macOS/Linux installation instructions for the DSH plugin, Codex MCP, and Skill.

### Changed

- Redesigned the Codex Migration settings page with cleaner cards, compact lists, native colors, rounded controls, and consistent dark/light styling.
- Fixed language switching so the active settings page updates immediately.
- Renamed the whole-project action to **Batch Migration by Project / 按照项目批量迁移** to match its actual behavior.
- Marked bridge MCP memory as **Beta** in the settings UI and documentation.
- Preserved only the latest assistant reply when a source turn was regenerated, matching the source conversation's visible state.
- Preserved native tool-call and tool-result relationships instead of flattening them into plain text.
- Excluded archived DSH sessions from project batches and excluded hidden reasoning/runtime snapshots from visible Codex imports.
- Left Codex sidebar organization to Codex; project batches share the original working directory but do not promise a synthetic sidebar project.

### Performance

- Added an incremental inventory cache keyed by file size, modification time, and content hash.
- Reuses unchanged parsed sessions and reparses only new or changed JSONL files on refresh.
- Removes deleted sessions from the cache and isolates corrupted files without discarding valid inventory.
- Avoids eagerly loading the full conversation inventory when the settings page opens.
- Replaced the repository banner with a smaller WebP asset.

### Security

- The handoff bridge binds only to `127.0.0.1`.
- Mutating bridge calls require a generated installation token.
- Request bodies are size-limited and unknown bridge methods are rejected.
- Disabling the DSH plugin stops the companion handoff service.
- MCP memories remain local by default.

### Removed

- Removed shared conversations and continuous bidirectional synchronization from the product surface.
- Removed writer leases, heartbeat ownership, offline message replay, conflict selection, and automatic cross-side archive propagation.
- Removed the Codex inline monitor/status panel and UI injection experiments.
- Removed the promise to create or group tasks under a synthetic Codex sidebar project.

### Upgrading from 0.1.x

1. Update the DSH plugin and restart DSH.
2. Clone or update this repository locally.
3. Register `codex/dsh-codex-bridge/mcp/server.mjs` with `codex mcp add`.
4. Copy `codex/dsh-codex-bridge/skills/continue-in-dsh` to `~/.agents/skills/`.
5. Restart Codex and verify the server with `/mcp` and the Skill with `/skills`.

Existing one-way migration output remains usable. Experimental shared-state records are not resumed by v2.0.

## 0.1.3 — 2026-08-15

- Added npm/GitHub package links to the installation section.
- Centered and optimized the README banner.
- Kept the original Codex → DSH conversation, MCP configuration, memory, `AGENTS.md`, and optional project-file migration workflow.
