Skip to content

Upgrade @objectstack/* to 18.3.0; the contract page follows the v3 record page - #198

Merged
zhuangjianguo merged 1 commit into
mainfrom
claude/project-thread-menx88
Nov 3, 2026
Merged

zhuangjianguo merged 1 commit into
mainfrom
claude/project-thread-menx88

Conversation

@zhuangjianguo

Copy link
Copy Markdown
Collaborator

Requested by Steedos · project thread

维护者速读

  • 改了什么:@objectstack 全部升到 18.3.0;合同详情页去掉自带的 7 个标签页,正文改由平台按对象编排(关键条款 → 六张子表 → 收起的分组,右栏动态 / 续签 / 附件 / 审批)。
  • 为什么:18.3 删除了 page.slots.tabs(ADR-0085),旧页面无法通过校验;走平台编排是决策箱第 11 批裁定 A。
  • 怎么验的:四道门禁全绿;全新 pnpm demo:zh 上 11 个真实角色跑完发起、审批阶梯、驳回、NDA 全生命周期、续签、补录、Setup、6 个定时流程两轮。
  • 用户能看到的变化:详情页是一页长滚动而不是 7 个标签;审批人审批后看到「你的审批决定已记录」;补录已签合同不再 403。
  • 遗留:4 处详情页小退步已开平台卡 objectstack#29942–#29945;hotclm#195–The demo can now declare the requesters' line manager in demoStaff (18.3) — drop the README's manual "Set Manager" step #197 新卡。
  • 需要你做的:审阅后合并(不触及受管面:DESIGN.md 只改 §05)。

What changed

Item Change Why
Dependencies 4 @objectstack/* pins and 8 pnpm-workspace.yaml overrides 18.2.0 → 18.3.0 every @objectstack package in the lockfile resolves to 18.3.0
src/pages/contract_detail.page.ts slots.tabs and the empty discussion override removed; header, highlights and path kept 18.3 retired page.slots.tabs (ADR-0085, objectstack#27053) — validate refuses it
clm_contract fieldGroups gains six body-table entries (versions, reviews, deviations, obligations, payments, signatures) after the key terms; relatedLists order; parent_contract relatedList: false (it was never on the page) without the groups the platform drew all six tables between the first group and the parties
Six child objects the page's old columns move to each contract FK's relatedListColumns; renewed_from gets the renewals columns the record page derives its lists from the relationships
Translations inlineTitle for the six master-detail FKs (18.3 made it translatable, objectstack#26142, so the i18n gate counts it); labels for the six table groups; the orphaned archive section and contract_renewals page keys removed gate coverage
DESIGN.md §05, README the detail-page sentence and the approver paragraphs describe the 18.3 page ruling below; §05 is outside the governed §01–§04

Ruling: batch #11 item 1 · letter A · maintainer 「同意」 2026-11-03T16:16:59Z — decision doc https://claude.ai/artifact/Bq678GdTudDmAa5dzKGT1W

Gates

pnpm validate        ✓ Validation passed
pnpm lint            exit 0 — 18 warning(s), 6 suggestion(s)
pnpm typecheck       exit 0
pnpm lint:i18n-gate  ✓ COVERAGE : 0 missing keys across 2 locale(s)

17 of the 18 warnings are new in 18.3 (security-superuser-field-mask-inert: clm_admin's modifyAllRecords on clm_contract makes 17 field edit locks inert) → filed #196. The 18th is #64's existing policy.

Browser evidence (fresh pnpm demo:zh, real personas, 1440×900 zh-CN)

  • Boot: ✓ Server is ready, no degraded capabilities / missing tables / failed plugins.
  • requester1 wizard NDA + existing party + PDF + submit → NDA-2026-0021 in_review, legal_owner = counsel1. Blank party → NDA-2026-0022 and the new clm_party row.
  • requester2 order 250,000 → rung 1 executive (manager) → finance_only → approved; toast 「已通过“18.3 升级验证 — 订单”」. After deciding, the manager sees 「你的审批决定已记录」 (no longer 「未找到记录」).
  • requester3 order → executive rejects → rejected.
  • counsel1: workbench 6 / 14 / 6 / 2 (same as 18.2); 送审 greyed before review (tooltip 「对此记录不可用」 → A greyed lifecycle button only says 「对此记录不可用」 — 18.3 ships an authored disabledReason, so 送审 / 发起签署 / 生效 can say what is missing #195); v2 clean version, review approved (decided_at stamped), 送审 → executive approves → records 发起签署 → counsel1 wet-ink signature (completed_at stamped) → records 生效 → active.
  • requester1 renewal ×2: first creates NDA-2026-0023, second refused with 「这份合同已有续签草稿(NDA-2026-0023)…」.
  • records backfill (executed_upload): NDA-2026-0024 active, is_backfilled = true — no 403.
  • Setup → Position Holders: all positions in Chinese.
  • Six daily flows with an uncommitted every-minute cron and OS_AUTOMATION_SCHEDULED_WORK_ENABLED=true: two runs each, all completed.
  • Re-checked the contract page after rebasing onto bc47708 (Legal and finance can edit a counterparty they do not own #193 / Finance records its own review through a Record Finance Review action #194): renders, header includes record_finance_review.

Full report and screenshots: project folder hotclm-objectstack-18-3-upgrade/report.md.

Filed from this pass

Platform (the four regressions the ruling sends upstream): objectstack#29942 (related-list title untranslatable — renewals card reads 「合同」), #29943 (body-table totals sum version_no / seq), #29944 (empty body table reads 「暂无相关记录 偏离 新建」), #29945 (body tables clip columns in the details column).
hotclm: #195 (author disabledReason), #196 (clm_admin inert field locks), #197 (demoStaff.manager replaces the README's manual step).


Generated by Claude Code

Moves the four @objectstack pins and the eight pnpm overrides from 18.2.0
to 18.3.0; every @objectstack package in the lockfile resolves to 18.3.0.

18.3 retired `page.slots.tabs` (ADR-0085, objectstack#27053), so the
contract page's authored seven-tab strip no longer parses. Per the
maintainer's ruling (hotclm decision box batch 11, letter A, 2026-11-03)
the page follows the platform's v3 record page: the slotted page keeps
its header, highlights and path, and the body is composed from the
object — the key-term field groups, then six full-width child tables
placed by body-table entries in `clm_contract.fieldGroups`, with the
columns the page used to carry moved to each child FK's
`relatedListColumns`. Renewals stay a side card; `parent_contract` is
kept off the page as before. DESIGN.md §05 and the README describe the
new shape.

18.3 also makes a master-detail field's `inlineTitle` translatable, so
the i18n gate now counts the six child grid titles; both bundles carry
them.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01QsR2jUw8KJgAwuwk6sqYLD
@zhuangjianguo zhuangjianguo self-assigned this Nov 3, 2026
@objectstack-fleet

Copy link
Copy Markdown
Contributor

席位核对 — ACCEPT · head e1080b1 · 2026-11-03T16:43Z

check reading
shape draft → main (base bc47708, which includes PR #194), one commit; mergeable once CI finished
CI on the head both Validate check-runs success on e1080b1 = PR head.sha
scope 19 files: the @objectstack/* 18.2.0 → 18.3.0 pins and overrides plus the lockfile. contract_detail.page.ts drops slots.tabs, because 18.3 refuses it (ADR-0085, objectstack#27053). Body-table fieldGroups and related-list ordering are added on clm_contract and the six children, with translations. In DESIGN.md, only the §05 page paragraph changes. §05 is outside the governed §01–04, and the layout follows the maintainer's batch-11 ruling A. The header action list keeps every action, record_finance_review (PR #194) included
lint exit 0. The 17 new security-superuser-field-mask-inert warnings are 18.3 reporting a fact that already held on 18.2: clm_admin's modifyAllRecords makes 17 field locks inert. The upgrade does not cause it; the decision is carded as hotclm#196. The 18th warning is the existing #64
measured a fresh pnpm demo:zh run in the browser, signed in as the real personas, against the full regression report (/mnt/project-files/hotclm-objectstack-18-3-upgrade/report.md). Covered: landings; both intake paths; the approval ladder and rejection; the full NDA lifecycle; renewal ×2; backfill; Setup positions in zh-CN; the inbox. All 6 daily flows were run twice under an uncommitted cron override, and every run completed. The post-decision page now reads 「你的审批决定已记录」 (objectstack#26589 shipped)
residuals 4 detail-page regressions are carded upstream (objectstack#29942–#29945), as batch 11 ruled. New app cards: hotclm#195, #196, #197

Landing: under the maintainer's merge authorization (project thread: 「你可以自己审核的就自己合并」).


Generated by Claude Code

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