37186c3d95
- Convert root to Cargo workspace with crates/ layout - Add deepseek-* crates mirroring Codex architecture - Add parity CI workflow with snapshot/protocol/state tests - Update release workflow to build both deepseek and deepseek-tui binaries - Bump version to 0.3.28
4.2 KiB
4.2 KiB
DeepSeek Workspace Migration Status
This document maps the initial workspace migration implementation to Linear issues SHA-1554 to SHA-1568.
Implemented in this patch
-
SHA-1554:- Root converted to Cargo workspace.
- New crate boundaries added:
crates/corecrates/clicrates/app-servercrates/protocolcrates/configcrates/agentcrates/tuicrates/tui(TUI binary pointing at monolith source)
- Stable entry binaries now follow
cli+app-server+tuisplit.
-
SHA-1555:- Added
deepseek-configcrate withConfigTomlschema. - Added provider-aware env precedence (
DEEPSEEK_API_KEY,OPENAI_API_KEY, provider/base-url/model overrides). - Added config read/write/list/set/unset operations.
- Added
-
SHA-1556:- Added codex-style command grouping in
deepseekCLI:runauthconfigmodelapp-servercompletion
- Added global runtime override flags (
provider,model, logging/telemetry/output/sandbox/approval controls).
- Added codex-style command grouping in
-
SHA-1557:- Added dual-provider auth model (
deepseek+openai) with clear precedence and CLI management commands. - Added
auth status|set|clearcommand flow.
- Added dual-provider auth model (
-
SHA-1558:- Added
deepseek-protocolcrate withthread/app/promptrequest-response framing and event frames. - Added
deepseek-app-serverwith/thread,/app,/prompt,/healthz. - Added
/tool,/jobs, and/mcp/startuptransport endpoints for tool/job/MCP parity flows. - Added stdio JSON-RPC 2.0 parity framing (
id/method/params->result/error) forthread/*,app/*,prompt/*, plushealthz/capabilities handlers.
- Added
-
SHA-1560:- Added
deepseek-agentmodel/provider registry with alias resolution and fallback strategy.
- Added
-
SHA-1564:- Added
deepseek-tui-coreevent-driven state machine scaffold (UiState::reduce). - Expanded reducer with job/approval states and deterministic snapshot support.
- Added
-
SHA-1559:- Added
deepseek-statecrate with persistent thread/session metadata in SQLite. - Added thread list/read/archive/unarchive/name persistence operations and session index mirror.
- Added
-
SHA-1561:- Added
deepseek-toolscrate with typed tool specs, call lifecycle, mutating gate, timeout handling, and read/write lock parallelism model.
- Added
-
SHA-1562:- Added
deepseek-mcpcrate with server lifecycle events, qualified tool naming, filter support, resource listing/reads, and proxy call API. - Added MCP stdio JSON-RPC 2.0 server mode parity for
tools/list,tools/call,resources/list,resources/read, and server lifecycle operations. - Added persisted MCP server definition round-trip through existing config APIs so server-mode definitions survive restarts.
- Added
-
SHA-1563:- Added
deepseek-execpolicycrate with approval mode model and policy decision/requirement evaluation.
- Added
-
SHA-1565:- Added durable-style
JobManagerabstraction in core for queue/progress/cancel/recovery semantics.
- Added durable-style
-
SHA-1566:- Added
deepseek-hookscrate with stdout/jsonl/webhook sinks and standardized lifecycle events.
- Added
-
SHA-1567:- Added parity tests for protocol/state/tools and TUI snapshot behavior.
-
SHA-1568:- Added parity CI workflow at
.github/workflows/parity.ymlwith workspace fmt/check/clippy/test gates, lockfile drift guard, and explicit snapshot/protocol/state parity tests. - Added matching release preflight parity gates in
.github/workflows/release.yml. - Updated release artifact naming to include explicit
deepseekentrypoint compatibility.
- Added parity CI workflow at
Not yet implemented in this patch
- Codex-level protocol field-by-field parity for every
thread/*operation remains in progress. - MCP transport now provides stdio JSON-RPC compatibility flows; external subprocess execution remains scaffolded.
- Execution policy supports decision modeling and command gating; full user-interactive approval UX remains in progress.
- Background jobs are persisted conceptually at runtime boundary; cross-process recovery orchestration is still in progress.
Migration strategy note
crates/tui intentionally points at existing src/main.rs to preserve current behavior while new workspace crates are phased in. This enables incremental replacement without blocking ongoing feature work.