Merge remote-tracking branch 'origin/master' into hermes/hermes-996d586b

This commit is contained in:
2026-05-07 21:16:21 +08:00
44 changed files with 1032 additions and 345 deletions

View File

@@ -104,9 +104,11 @@
1. 发送验证码调用 `SendSmsVerifyCode`
2. 校验验证码调用 `CheckSmsVerifyCode`
3. 使用阿里云 RPC 签名口径:
- `SignatureMethod=HMAC-SHA1`
- `SignatureVersion=1.0`
3. 使用阿里云 OpenAPI V3 请求头签名口径:
- `Authorization: ACS3-HMAC-SHA256 ...`
- `x-acs-action`
- `x-acs-version`
- `x-acs-content-sha256`
4. 当前仍只支持中国大陆手机号。
## 7. 状态与快照

View File

@@ -4,6 +4,7 @@
## 文档列表
- [RUST_WORKSPACE_DEPENDENCY_CONSOLIDATION_2026-05-07.md](./RUST_WORKSPACE_DEPENDENCY_CONSOLIDATION_2026-05-07.md):记录 `server-rs` Cargo 依赖集中配置口径,第三方版本和 workspace 内部 crate path 统一维护在根 `server-rs/Cargo.toml`,成员 crate 只保留 feature/optional 差异。
- [API_SERVER_EXTERNAL_SERVICE_ENV_CONFIG_2026-05-07.md](./API_SERVER_EXTERNAL_SERVICE_ENV_CONFIG_2026-05-07.md):冻结 api-server 外部服务配置边界,公共服务 URL 可保留代码默认值,非公共模型名和私有网关 URL 统一通过环境变量注入。
- [PROFILE_TASK_AND_TRACKING_SYSTEM_2026-05-03.md](./PROFILE_TASK_AND_TRACKING_SYSTEM_2026-05-03.md):冻结个人任务与埋点系统首版方案,明确 `tracking_event``tracking_daily_stat``profile_task_config`、任务进度、领奖记录和光点钱包流水的边界。
- [SQUARE_HOLE_IMAGE_SLOT_AND_RUNTIME_INTERACTION_FIX_2026-05-06.md](./SQUARE_HOLE_IMAGE_SLOT_AND_RUNTIME_INTERACTION_FIX_2026-05-06.md):记录方洞挑战结果页图片槽位局部生成、洞口图历史素材、运行态拖拽与点击投放交互的修正口径。

View File

@@ -0,0 +1,55 @@
# Rust workspace 依赖集中配置记录
日期:`2026-05-07`
## 1. 背景
`server-rs` workspace 已经包含 `api-server``spacetime-module``spacetime-client`、多个 `module-*` 领域 crate、`platform-*` 适配 crate 和共享 crate。随着 DDD 收口推进,成员 `Cargo.toml` 中重复散写了第三方 crate 版本和本地 path 依赖,后续升级 `serde``reqwest``tokio``time`、SpacetimeDB SDK 或内部 crate 路径时容易出现漂移。
本次只做 Cargo 配置收敛不改变业务代码、表结构、reducer/procedure 签名、HTTP contract 或前端绑定。
## 2. 配置规则
1. 共享第三方依赖版本统一维护在 `server-rs/Cargo.toml``[workspace.dependencies]`
2. workspace 内部 crate 的 `path` 也统一维护在根 `server-rs/Cargo.toml`
3. 成员 crate 默认使用 `{ workspace = true }` 继承依赖。
4. 成员 crate 只保留自身需要表达的差异,例如 `features``optional = true` 或 target-specific dependency。
5. 需要关闭 default features 的依赖,应优先在 workspace 根依赖中声明;成员 crate 不再重复覆盖同一项。
6. `module-assets` 这类有默认服务端 feature 的领域 crate在 workspace 根内按 `default-features = false` 维护;需要服务端 OSS/HTTP 能力的 adapter crate 显式启用 `features = ["server-service"]`
## 3. 本次收敛范围
已上提到 workspace 根的依赖包括:
1. 本地路径依赖:`module-*``platform-*``shared-*``spacetime-client`
2. 常用第三方依赖:`serde``serde_json``serde_urlencoded``reqwest``tokio``time``tracing``base64``hmac``sha2``uuid``url` 等。
3. SpacetimeDB 相关依赖:`spacetimedb``spacetimedb-sdk``spacetimedb-lib`
`spacetimedb-lib` 在 workspace 根统一关闭 default features`spacetime-module` 只继承并补充 `features = ["serde"]`。这样避免成员 crate 尝试覆盖 workspace default-feature 设定导致 manifest 解析失败。
阿里云 OSS 相关签名不再依赖不推荐的 `sha1` crate统一使用 `sha2::Sha256`
1. 浏览器直传 ticket 使用 OSS V4 表单签名字段:`x-oss-signature-version=OSS4-HMAC-SHA256``x-oss-credential``x-oss-date``x-oss-signature`
2. 服务端 OSS 读写请求和测试辅助签名统一使用 `OSS4-HMAC-SHA256` Authorization。
3. 阿里云短信 OpenAPI 请求统一使用 `ACS3-HMAC-SHA256` 请求头签名,不再在表单中传旧 `SignatureMethod=HMAC-SHA1` / `SignatureVersion=1.0`
## 4. 不在本次范围
1. 不新增或删除 crate。
2. 不修改 `server-rs` workspace `members` / `default-members` 语义。
3. 不修改 SpacetimeDB 表、reducer、procedure、migration 白名单或生成绑定。
4. 不改变 `module-*` 的 DDD 依赖方向。
## 5. 验收口径
配置改动后至少执行:
```powershell
cargo metadata --manifest-path server-rs\Cargo.toml --format-version 1 --no-deps
cargo check -p api-server --manifest-path server-rs\Cargo.toml
cargo check -p spacetime-module --manifest-path server-rs\Cargo.toml
npm.cmd run check:server-rs-ddd
npm.cmd run check:encoding -- docs/technical/RUST_WORKSPACE_DEPENDENCY_CONSOLIDATION_2026-05-07.md docs/technical/README.md server-rs/README.md .hermes/shared-memory/decision-log.md .hermes/shared-memory/project-overview.md
```
若仅改 Cargo 依赖配置且未触碰 API smoke 相关代码,不强制启动 `npm run api-server`;若后续改动同时涉及 API 路由、SpacetimeDB facade 或运行时行为,仍按 `AGENTS.md` 和 DDD 文档执行后端 smoke。