Files
mnote/.codex/reasonix-tasks/2026-05-22-sqlite-control-plane-worker-a-store.md
T
lix-2026 5f97800489 chore: align local-first control plane and editor fixes
- wire SQLite control-plane access/session paths into Rust web local-folder routes

- preserve local Markdown attachment semantics across upload, reload, and secondary-pane resource tabs

- refresh design governance docs, Reasonix task templates, and bug records

- retire root .mcp.json local MCP config
2026-05-23 23:38:42 +08:00

80 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Reasonix Worker ASQLite control-plane store 骨架
Project root: `/mnt/Data1T/mnote`
你不是独自在代码库中工作。其他 worker 可能并行修改 auth、access policy 或迁移脚本。不要还原、覆盖或清理不属于你任务范围的改动。不要提交 git。
## 背景
上位设计稿:
`design/02-convex-rust-long-term-architecture/process/2-8-convex-replace-with-rust-sqlite-control-plane-v1.md`
目标是用 Rust + SQLite 完全替换 Convex 控制面。你的任务只负责 SQLite store 骨架,不接运行时 route。
## Ownership
允许修改:
- 优先新增 `rust/crates/control-plane/**`
- 必要时修改 `rust/Cargo.toml`
- 必要时新增/修改 `rust/crates/mnote-web/Cargo.toml` 仅用于依赖引用建议
禁止修改:
- `rust/crates/mnote-web/src/routes/gateway.rs`
- `rust/crates/mnote-web/src/routes/local_folder_source.rs`
- `rust/crates/mnote-web/src/routes/session.rs`
- `rust/crates/mnote-web/src/ssr/**`
- `infra/convex/**`
- `.env*`
如果发现 workspace crate 接入风险过大,先实现为可编译独立 crate;不要跨模块硬接 runtime。
## 任务
1. 新增 `control-plane` Rust crate 或等价最小模块,优先独立 crate。
2. 定义核心 model 与 `ControlPlaneStore` trait。
3. 实现 `SqliteControlPlaneStore`,支持临时路径 DB。
4. 实现 migration v1,包含至少:
- `users`
- `auth_identities`
- `auth_sessions`
- `workspaces`
- `workspace_members`
- `directory_grants`
- `share_links`
- `sync_state`
- `ai_policies`
- `audit_log`
- `outbox_events`
- `legacy_id_map`
5. 实现最小 CRUD
- upsert user
- create/get session
- ensure default workspace
- grant/revoke directory access
- append/drain outbox
6. 补单测:migration 幂等、默认 workspace、owner grant、outbox drain。
## 验收命令
优先运行:
```bash
cargo test --manifest-path rust/Cargo.toml -p control-plane -- --nocapture
cargo fmt --check --all
```
如果没有新增独立 crate,而是放入 mnote-web
```bash
cargo test --manifest-path rust/Cargo.toml -p mnote-web control_plane -- --nocapture
cargo fmt --check --all
```
## 最终回复格式
请列出:
- 修改文件
- 新增表和核心 API
- 实际运行过的命令及结果
- 未完成项/风险