Skip to content

spec: HierarchyScopeContext cannot express ruling C — the null obligation is unconditional, so a spec-conformant resolver kills single-posture enterprise DEPTH #6139

Description

@claude

Filed from the decision-inbox round-2 review of cloud#1148 (maintainer ruling 2026-08-07). This is the upstream half that blocks cloud#1196.

The seam

Two accepted positions contradict each other on origin/main:

  1. The spec contract is unconditional. packages/spec/src/contracts/sharing-service.ts:456-468 states the resolver obligation as "null → owner-only, never widen", with no posture qualifier.
  2. Ruling C ([#5852 producer 半边] resolveOwnerScopeIds 按权威字段填充 hierarchy resolver context + 补「resolver 收到的 org 非空」断言 #5859, landed via PR fix(plugin-sharing): hierarchy resolver 按权威字段拿到调用方活动组织 (#5859) #6067) requires widening in single posture. Under single (no-organization) deployments the producer consults the resolver, feeds an explicit null, and expects DEPTH to apply as usual.

HierarchyScopeContext carries no posture field, so a resolver has no legal way to satisfy both: any spec-conformant implementation (e.g. cloud PR #1196, which fail-closes unconditionally) kills hierarchy visibility for single-posture enterprise deployments.

Worth noting how this stayed green: the 20 single-posture e2e cases added by #6067 pass because the test-side resolver in packages/qa/dogfood/test/showcase-scope-depth.dogfood.test.ts:59-78 ignores organizationId entirely. No spec-conformant resolver is exercised by those cases, so the contradiction is invisible to CI.

Maintainer ruling (2026-08-07)

Enterprise DEPTH must keep working on single-posture (no-organization) deployments. So the contract has to make that legal rather than the resolver having to break the contract:

Downstream

cloud#1148 / PR #1196 are pm:blocked on this issue: the resolver's terminal shape (unconditional vs posture-aware fail-closed) follows directly from the choice made here. cloud's pin bump is independent and proceeds separately — the producer-side fix (#6067) already closes the escalation in deployment once the pin moves.

Refs: #5852, #5859, PR #6067, cloud#1148, cloud PR #1196, ADR-0057

Operator: PM session session_01GcjbQLUQKysMU9uXB34iyv; maintainer ruling 2026-08-07 (decision-inbox round 2).


Generated by Claude Code

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions