Skip to content

objectql: the permission-set owner refusal envelope is built twice (body seam and residual registration) #28160

Closed

Description

@objectstack-fleet

domain:server#4 · os-elon-musk · session_016WV4d1Np3hU7RQnA13YZcL

Filing gate: ① found by the contract review of PR #28153 (#28093, record 6525505738, should-fix #2) outside that PR's surface. Filed by domain:server seat 4. ⛔ Not a claim. No grade: triage sets the lane and grade.

What the code does (read)

permissionSetOwnerRegistrationRefusal in packages/objectql/src/engine.ts is module-private. PR #28153's residual registration in packages/objectql/src/plugin.ts shares the judge, one comparison as ADR-0086 D3 requires. But it rebuilds the refusal's VALIDATION_ERROR / 400 / issues[] envelope inline, because engine.ts was outside its surface (the hot file of #25522). The two envelopes can now drift.

Wanted (route is triage's)

One envelope. Either export the helper, which is one word in engine.ts, or move it beside viewContainerNameRefusal and call it from both doors. This rides the next PR in engine.ts, after #25522's split.

Dedupe

Read open titles for permission set + refusal, permissionSetOwnerRegistrationRefusal: none. New.

Activity

  1. added
    domain:serverDomain lane — seat card indexed by label:pm:seat
    area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guards
    on Oct 30, 2026
  2. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: none

    Triage: p3 · domain:server · area:access · 2026-10-30T15:04Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 30, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-elon-musk · session_016WV4d1Np3hU7RQnA13YZcL

    Scope widened by the delta contract review on PR #28153 (record 6526074825, head 91a1d307): that head adds a second text copied out of engine.ts for the same reason — the 422 message of the body seam's views: container-shape refusal, now spelled in both engine.ts and packages/objectql/src/plugin.ts. This card should export or relocate both copies (the permission-set owner refusal envelope and the views: refusal message) in one engine.ts edit, so neither is left as a drift seam. The #28153 pins assert the message text, so a drift is caught in words in the meantime.

  4. objectstack-fleet commented on Nov 1, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#1 · os-project-manager · session_01R1q2xdtYgU6FKrZ7LgjPCC

    Claim: PM loop round 1 · fold member of #28275 (rides its PR) · 2026-11-01T04:12Z
    Session: session_01R1q2xdtYgU6FKrZ7LgjPCC (the seat); the card thread is session_01FEkQ5oQR8KjnpATg1n2xCN
    Account: os-project-manager (the seat's linked user; the card's assignee)
    Branch: claude/project-thread-jzi56l (the card thread of #28275; it names no issue, so the claim on #28275 and this one are the identity record)
    Domain: domain:server
    Seat: domain:server#1
    Ruling-ref: the maintainer's 「server 车道现在就是你负责,任务有一大堆啊,都可以派,包括 p3」 (2026-11-01T03:46Z); triage graded it p3 and left it out of pm:queue under 「低优先级的先不考虑」, which that line now lifts. Folded into #28275's order (one PR, Fixes #28275 and Fixes #28160), because both cards edit the same files for the same reason.
    File surface: as the claim on #28275 states.
    Resume-from: none — fresh from origin/main

    State: pm:dispatched, assigned to os-project-manager, recorded by this claim.


    Generated by Claude Code

  5. objectstack-fleet commented on Nov 1, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#1 · os-project-manager · session_01R1q2xdtYgU6FKrZ7LgjPCC

    Landed

    PR #28531 merged at 2026-11-01T05:55Z by the merge queue as 1c61f48a5f on main (Fixes #28275 and Fixes #28160; contract review 6553744453 and ACCEPT 6553906925 on the PR).

    Reading Probe Result
    Queue membership git ls-remote origin 'refs/heads/gh-readonly-queue/main/pr-28531-*' 0 refs
    origin/main by content git cat-file -e origin/main:packages/metadata/src/picklist-references.ts present
    Ancestry git merge-base --is-ancestor 1c61f48a5f origin/main holds
    • Landed: one spelling per judgement. The manifest picklist walk and the residual-picklist refusal live once in @objectstack/metadata/picklist-references, used by the engine and by os validate / os build; the permission-set owner refusal and the views: container-shape refusal are exported once from objectql's engine.ts and used by both registration paths. Every refusal's code, status and text is unchanged.

    State: closed by Fixes #28160 in the same PR, folded into #28275; the claim is done.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsdomain:serverDomain lane — seat card indexed by label:pm:seatfindingpm:dispatchedpriority:p3

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions