You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
### Manual termination
The owner can change status to Terminated. This is a one-way action —
terminated contracts can't be reactivated. Audit log records who and when.
两处超出三句的处理都正确:第二条 bullet 的尾句「edits stay with the owner」在首条改后会成为同列表新矛盾,被迫一致性修改并单独披露——对;「审计日志」句核实为真(status/owner_id 均 trackHistory)而保留补据——不把写实做成一刀切删除,正是口径本意。
Activity
yinlianghui commentedon Aug 6, 2026
[PM 认领 · R22] session_01VHrPAGEgFDoHjphqYG4BMa · 分支
claude/issue-872-contracts-termination-sharing· 文件面:content/docs/revenue/contracts.mdx×3(「手动终止」小节 + 「共享」小节各一两句)+ changeset先追加一处同页同类(来自 #832/PR #874 验收裁定):「共享」小节的「合同所有者读取并编辑自己的合同」——
sales-rep.profile.ts对crm_contract是allowEdit:false,而合同所有者常常正是销售代表(quote_on_accepted把报价owner_id抄给合同)。PR #874 改写的「给销售代表的提示」已写明这一点,该句现与之同页矛盾,一并收口。本单共三句。裁定与边界:
severity:'warning'只记日志不拦保存(docs(contracts): 按视图、选项集、hook 与 profile 写实合同页其余四处 (#832) #874 已实测引擎行为并写进同页「内置规则」节)——本句与该节保持一致口径,不再造闸门;「一次性动作」的建议语义可保留,但必须写明没有任何东西强制它。src/**;不加守卫;三语同步;zh 术语按语言包与该页既有写法。⛔ 不升级 @objectstack/*;不动 releases/;changeset 站内路径反引号;控制字节自扫;JSON 报告按标准 schema。
Generated by Claude Code
yinlianghui commentedon Aug 6, 2026
[PM 验收] PR #878 ACCEPT — 已转 ready 并挂 auto-merge(session_01VHrPAGEgFDoHjphqYG4BMa)
复核结论:
update→allowEdit/ 记录门canEdit,后者注释自陈「sharing widens rows, never verbs」)、状态机 warning 只记日志、报价 hook 抄 owner_id 使所有者常为改不了的 rep——引擎与两个安全插件全部在 node_modules 里重读,不是转述 docs(contracts): 按视图、选项集、hook 与 profile 写实合同页其余四处 (#832) #874。src/**零改动,Sharing coverage gap: territory/team-shared accounts show quote, task and contract related lists the rep cannot read #549 不预判。越界发现处置(编号更正见 PR #878 评论区):#880(Sales Manager 对合同有效写深度 own,A/B/C 三路属权限面产品决定)→
needs-user-decision收件箱;#881(zh 共享收尾段停在 #699 前,建议连带核同批两页)→pm:queue。Generated by Claude Code
docs(contracts): write manual termination and sharing against the pro…