Files
Genarrative/docs/technical/RUNTIME_PROFILE_TASK_SCOPE_2026-05-04.md
kdletters 5c7c039e52
Some checks failed
CI / verify (push) Has been cancelled
feat: add analytics date dimension bindings
- lock profile task tracking scope to user

- add analytics date dimension module support and tests

- regenerate SpacetimeDB Rust bindings with private APIs
2026-05-04 13:54:41 +08:00

1.1 KiB
Raw Permalink Blame History

个人任务 scope 限制说明2026-05-04

背景

个人任务配置首版只支持按用户维度统计进度,即 RuntimeTrackingScopeKind::User / API scopeKind: "user"sitemodulework 未来可作为全站、模块或作品维度任务扩展,但当前不应被个人任务配置接受。

后端约束

  • HTTP 管理接口 admin_upsert_profile_task_config 在解析 scopeKind 后立即校验:非 user 返回 400并提示“个人任务 scopeKind 首版仅支持 user”。
  • 领域构造函数 build_runtime_profile_task_config_admin_upsert_input 兜底校验:非 RuntimeTrackingScopeKind::User 返回 RuntimeProfileFieldError::UnsupportedProfileTaskScopeKind
  • SpacetimeDB 模块内 profile_task_tracking_scope_id 不再把 Work 静默映射到 user_id;非 User scope 返回 None,个人任务进度读取按 0 处理,避免错误串桶。

测试覆盖

module-runtime 单元测试覆盖:

  • User scope 可成功构造个人任务配置输入。
  • Site / Module / Work scope 均被拒绝,错误为 UnsupportedProfileTaskScopeKind