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
visible CEL 服务端求值 → 明确不做,保持客户端求值,但把这个不对称写进文档注释与 characterisation pin(正文的建议采纳)。服务端 CEL 绑定 user 上下文是另一个体量的事,需要时另立。
已预期的既有钉:rest.test.ts 里 filterAppForUser — the enforced permission layers (#4651) 的最后一条 characterisation pin 会红,红了是对的 —— 按它注释里的预案改写断言,并同步改写packages/spec/liveness/app.json 里 areas.navigation 的 note(它现在写着 server does not walk areas,修完必须跟着改,否则账本说谎)。
Activity
os-zhuang commentedon Aug 3, 2026
🔒 认领 —— 第 2 轮(发布窗口 bug 批)
session_015Br2xsJsczFsTR9bvbh2Ny(PM 循环)claude/issue-4722-filter-app-areas-navobjectstack-issue-4722正文三问的 PM 裁定(维护者可否决):
navigation树对「项被滤光的分组」的既有处理同形(先读代码确认既有行为,照抄;若顶层无此形状,则滤光的 area 剥离 —— 返回空壳没有任何消费价值)。在 PR 里写明你实测到的既有行为。filterNav逻辑复用到areas[].navigation,不复制第二份实现。visibleCEL 服务端求值 → 明确不做,保持客户端求值,但把这个不对称写进文档注释与 characterisation pin(正文的建议采纳)。服务端 CEL 绑定 user 上下文是另一个体量的事,需要时另立。已预期的既有钉:
rest.test.ts里filterAppForUser — the enforced permission layers (#4651)的最后一条 characterisation pin 会红,红了是对的 —— 按它注释里的预案改写断言,并同步改写packages/spec/liveness/app.json里areas.navigation的 note(它现在写着 server does not walk areas,修完必须跟着改,否则账本说谎)。packages/spec/liveness/app.json仅此一个文件、仅该 note 行 —— 这是账本记录,不是契约 schema。除此之外packages/spec/**仍零改动。此例外已在分片登记与轮报中记录。其余约束:退役键
AREA_REQUIRED_PERMISSIONS_RETIRED(area 级)不复活 —— 本单只管 area 里面的 nav 项级键。⛔content/docs/releases/不碰;资源纪律照旧。验收:areas 型 app 下,无权限用户的
/meta响应里被 gate 的 nav 项(含其 objectName/pageName 指向)不再出现;requiresService同理;顶层树行为回归不变;pin 与账本 note 已按预案改写。Generated by Claude Code
os-zhuang commentedon Aug 3, 2026
✅ PM 验收通过 —— PR #4751,CI 全绿(20 success + 2 skipped,0 失败),已转 ready 并入合并队列
复核对着 GitHub:
resolveRegisteredServices探测面同步下钻 areas —— 这是 dev 自己发现的正确性前提(未探测的服务名 = 「服务不存在」会误剥离合法条目),不是顺手改,论证成立且有专门 pinliveness/app.json账本 note 同步(spec 单文件例外,实测其余packages/spec/**零改动;Spec property liveness 门禁绿)visibleCEL 不对称按裁定只记录不实现,三处落档场外发现 #4749(spec 退役处方正文陈旧)归 spec 车道,留待对侧;本会话按暂停指示不派。
Generated by Claude Code
fix(rest): enforce nav-item gates inside `areas[]`, not just the top-…
fix(spec): fold the sibling prescription in — AREA_VISIBLE_RETIRED's …
fix(spec): 两条 area 退役处方在 objectstack-ai#4722 之后改口径 —— 项级闸门在两棵树都由服务端剥离 (…
fix(spec): protocol-17 rationale states the CURRENT area-gating fact — …
refactor(spec)!: strip internal tracker ids from the three customer-f…
docs(spec): nine migration-step rationale passages and two registry c…
fix(spec): the protocol 16 → 17 upgrade rationale states each cited d…
test(spec): security, ai, identity, integration, migrations, marketpl…