61 lines
2.3 KiB
Markdown
61 lines
2.3 KiB
Markdown
# Reasonix Worker B:Auth/session SQLite 切换准备
|
||||
|
|
|
|||
|
|
Project root: `/mnt/Data1T/mnote`
|
|||
|
|
|
|||
|
|
你不是独自在代码库中工作。其他 worker 可能并行修改 SQLite store、access policy 或迁移脚本。不要还原、覆盖或清理不属于你任务范围的改动。不要提交 git。
|
|||
|
|
|
|||
|
|
## 背景
|
|||
|
|
|
|||
|
|
上位设计稿:
|
|||
|
|
`design/02-convex-rust-long-term-architecture/process/2-8-convex-replace-with-rust-sqlite-control-plane-v1.md`
|
|||
|
|
|
|||
|
|
当前用户报告过新注册账号显示“开发用户的空间”、不能新建页面。根因方向之一是真实 actor/profile/workspace name 没有统一来自控制面。本任务只处理 auth/session 切换准备,不处理 local folder access。
|
|||
|
|
|
|||
|
|
## Ownership
|
|||
|
|
|
|||
|
|
允许修改:
|
|||
|
|
- `rust/crates/mnote-web/src/routes/session.rs`
|
|||
|
|
- 可新增 `rust/crates/mnote-web/src/routes/auth_sqlite.rs`
|
|||
|
|
- 可新增 `rust/crates/mnote-web/src/control_plane_auth_adapter.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/auth.rs` 仅限必要表单字段/测试适配
|
|||
|
|
- focused tests in same files
|
|||
|
|
|
|||
|
|
只读参考但不要直接改,除非确实必要并最小修改:
|
|||
|
|
- `rust/crates/mnote-web/src/routes/gateway.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/middleware/request_context.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/context.rs`
|
|||
|
|
|
|||
|
|
禁止修改:
|
|||
|
|
- `rust/crates/mnote-web/src/routes/local_folder_source.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/pages/admin.rs`
|
|||
|
|
- `rust/crates/mnote-web/src/ssr/styles.rs`
|
|||
|
|
- `infra/convex/**`
|
|||
|
|
- `.env*`
|
|||
|
|
|
|||
|
|
## 任务
|
|||
|
|
|
|||
|
|
1. 梳理现有 signIn/signUp/session cookie 链,写在代码注释或测试名中,不写长文档。
|
|||
|
|
2. 增加 SQLite session adapter 的 route/helper 骨架:
|
|||
|
|
- 从 `mnote_session` 查 session。
|
|||
|
|
- 生成/刷新 `mnote_actor_id/name/email/type` display cookies。
|
|||
|
|
- `/api/session` 优先使用 SQLite session,缺失时保留现有 fallback。
|
|||
|
|
3. 注册/登录 adapter 应明确输出真实 `user_id/email/name/actor_type`。
|
|||
|
|
4. 新用户注册测试必须断言不回退到 `DEV_USER_NAME`。
|
|||
|
|
5. 不要求本轮完全删除 Convex auth fallback。
|
|||
|
|
|
|||
|
|
## 验收命令
|
|||
|
|
|
|||
|
|
```bash
|
|||
|
|
cargo test --manifest-path rust/Cargo.toml -p mnote-web session -- --nocapture
|
|||
|
|
cargo test --manifest-path rust/Cargo.toml -p mnote-web auth -- --nocapture
|
|||
|
|
cargo fmt --check --all
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 最终回复格式
|
|||
|
|
|
|||
|
|
请列出:
|
|||
|
|
- 修改文件
|
|||
|
|
- 新增/调整的 cookie 与 session 规则
|
|||
|
|
- 实际运行过的命令及结果
|
|||
|
|
- 未完成项/风险
|