Skip to content

feat(templates): migrate remaining 8 templates to @objectstack 15.1.1#86

Merged
os-zhuang merged 1 commit into
mainfrom
claude/upgrade-templates-15-rest
Jul 19, 2026
Merged

feat(templates): migrate remaining 8 templates to @objectstack 15.1.1#86
os-zhuang merged 1 commit into
mainfrom
claude/upgrade-templates-15-rest

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

目的

接续 #85(expense),把其余 8 个模板(todo, contracts, hr, helpdesk, procurement, project, content, compliance)从 @objectstack 11.2.0 升到 15.1.1。至此整仓全部模板都在 15.x(all 聚合器依赖也一并 bump)。

迁移的破坏性变更(11 → 15)

#85 同一套路,外加几处模板特有的:

变更 处理
compactLayouthighlightFields(ADR-0085) 全部对象
每对象显式 sharingModel(ADR-0090 D1,fail-closed) 参考/字典类对象(category/framework/template/channel/topic/vendor/department/team/sla_policy/kb_article/competitor/resource/party)→ public_read;其余按 owner → private
栈级 roles → 扁平 positions(ADR-0090 D3) 全部 config
sharing 的 role_and_subordinates / role share-with 类型 → position(positions 扁平,"and subordinates" 收敛为基准 position) content、hr
保留词校验(ADR-0090 D3):pm_resource.role 字段名与 "Role" label 是保留词 字段改名 job_function(label "Function"),同步改 view / 种子数据 / 翻译 —— project

验收(本仓 AGENTS.md gate,本地全绿)

  • pnpm typecheck
  • pnpm build ✓(9/9 模板 ✓ Build complete)
  • pnpm format:check

不在本 PR 范围

反规范化 rollup(如 total_amount)保持原样;既然 framework#1867 已修,把它们换成 live rollup(原生 summary 字段 / 嵌套写钩子)仍是后续,在 #84 跟踪。

关联:#84#85、framework#1867。

🤖 Generated with Claude Code


Generated by Claude Code

Follow-up to #85 (expense): migrate todo, contracts, hr, helpdesk, procurement,
project, content and compliance from @objectstack 11.2.0 to 15.1.1, so the whole
repo is now on 15.x. (The `all` aggregator's deps are bumped too.)

Breaking changes migrated (11 → 15), same pattern as #85 plus a few
template-specific ones:
- ObjectSchema `compactLayout` → `highlightFields` (ADR-0085).
- Explicit `sharingModel` (OWD) on every object (ADR-0090 D1, fail-closed):
  reference/taxonomy objects (category, framework, template, channel, topic,
  vendor, department, team, sla_policy, kb_article, competitor, resource, party)
  → 'public_read'; all owner-scoped records → 'private'.
- Stack-level `roles` → flat `positions` (ADR-0090 D3, no parent hierarchy).
- Sharing-rule share-with types: `role_and_subordinates` / `role` → `position`
  (positions are flat, so the "and subordinates" grant collapses to the base
  position) — content, hr.
- Reserved-word vocabulary (ADR-0090 D3): `pm_resource.role` field + its "Role"
  label are reserved; renamed the field to `job_function` (label "Function")
  and updated its view, seed data and translations — project.

Gate: pnpm typecheck ✓ · pnpm build ✓ (9/9 templates) · pnpm format:check ✓.

Denormalized rollups (e.g. total_amount) are unchanged — converting them to
live rollups now that framework#1867 is fixed remains a follow-up (#84).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BZguyAaQbyUpwMZ2gMLaAP
@os-zhuang
os-zhuang merged commit 868f5ca into main Jul 19, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants