# shared-contracts 共享 crate 说明 日期:`2026-04-21` ## 1. crate 职责 `shared-contracts` 是前后端兼容 contract 共享 crate,后续负责: 1. HTTP 请求与响应 DTO 2. SSE 事件结构与事件名约定 3. response envelope、错误结构、兼容头部契约 4. 各模块对外暴露的共享协议类型 ## 2. 当前阶段说明 当前阶段已完成 Stage1 最小真实落地: 1. 统一 response envelope / 头部常量 2. `auth/login-options` 3. `auth/me` 4. `auth/sessions` 5. `runtime/settings` 当前阶段继续补齐的 Stage2 鉴权 DTO: 1. `auth/entry` 2. `auth/refresh` 3. `auth/logout` 4. `auth/logout-all` 5. `auth/phone/send-code` 6. `auth/phone/login` 7. `auth/wechat/start` 8. `auth/wechat/callback` 9. `auth/wechat/bind-phone` 10. `auth/wechat/miniprogram-login` 当前阶段继续补齐的 Stage3 公开请求 DTO: 1. `assets/direct-upload-tickets` 2. `assets/read-url` 3. `assets/objects/confirm` 4. `assets/objects/bind` 5. `story-sessions/begin` 6. `story-sessions/continue` 当前阶段继续补齐的 Stage4 显式成功响应 DTO: 1. `assets/direct-upload-tickets` 2. `assets/read-url` 3. `assets/objects/confirm` 4. `assets/objects/bind` 5. `story-sessions/begin` 6. `story-sessions/continue` 当前阶段新增 Stage6 `character visual` 兼容 DTO: 1. `assets/character-visual/generate` 2. `assets/character-visual/jobs/:taskId` 3. `assets/character-visual/publish` 当前阶段新增 Stage7 `character animation` 模板与导入兼容 DTO: 1. `assets/character-animation/templates` 2. `assets/character-animation/import-video` 当前阶段新增 Stage8 `character workflow cache` 第一批兼容 DTO: 1. `assets/character-workflow-cache` 2. `assets/character-workflow-cache/:characterId` 当前阶段新增 Stage9 `character animation` 主链兼容 DTO: 1. `assets/character-animation/generate` 2. `assets/character-animation/jobs/:taskId` 3. `assets/character-animation/publish` 当前阶段新增 Stage5 story session scoped runtime story 写读 DTO: 1. `BeginStoryRuntimeSessionRequest` 2. `ResolveStoryRuntimeActionRequest` 3. `StoryRuntimeProjectionResponse` 4. `StoryRuntimeMutationResponse` 5. `StoryRuntimeSnapshotPayload` 仅用于 story session scoped 写侧持久化边界,不复用旧 `/api/runtime/story/*` 总入口 contract。 `WP-DEL` 已删除旧 runtime story HTTP DTO:`RuntimeStoryStateResolveRequest`、`RuntimeStoryBootstrapRequest/Response`、`RuntimeStoryActionResponse` 和旧 `RuntimeStorySnapshotPayload`。`runtime_story` 模块中仍保留的 `RuntimeStoryViewModel`、`RuntimeStoryPresentation`、`RuntimeStoryPatch` 与 battle presentation 是当前投影/表现构件,不作为旧 HTTP 写入口。 当前仍刻意未做: 1. SSE 事件结构 2. 自动代码生成或跨语言 contract 同步 3. 其他尚未收口模块的 handler 响应体显式 DTO 化 ## 3. 边界约束 1. `shared-contracts` 只放协议类型与兼容结构,不承接业务规则、供应商适配或状态写入逻辑。 2. 各模块 crate 对外暴露的协议优先复用这里的共享定义,避免重复散落。 3. 前端兼容契约一旦进入本 crate,就必须与任务清单和基线文档同步维护。 4. `assets` 模块依赖 `platform-oss` 的稳定返回类型,默认通过 `oss-contracts` feature 给 `api-server` 使用;SpacetimeDB WASM 构建链路必须通过 workspace 依赖关闭默认 feature,避免把 `platform-oss` / `reqwest` / `wasm-bindgen` 带进 `spacetime-module`。