Skip to content

platform-objects: hide invite_user ×4, create_user and set_user_password when features.cloudManaged is on (visible predicates, hide-when-on) #25295

Closed

Description

@objectstack-fleet

Blocked-by: #25294

Engine half, item 2, of the coordinating card #25083 (domain:services, p1), filed on the hand-off from domain:services seat 1 (comment 6349658918 on this lane's seat post #20966). Binding text: ruling 6341690661 on #25083, Q3 → A (features.cloudManaged, hide-when-on gate semantics) and Q4 → A (the password doors split by population).

Part of #25083.

Wanted

  • visible predicates gated on features.cloudManaged with hide-when-on semantics (features.cloudManaged != true) on:
    • the four invite_user actions: sys-user.object.ts, sys-member.object.ts, sys-invitation.object.ts, sys-organization.object.ts;
    • create_user;
    • set_user_password — hidden in the console only; the server keeps answering it on an env_native row (Q4 → A: the break-glass admin stays editable), so ⛔ no server-side refusal here.
  • The forward guard (feature-gate-guard.test.ts) accepts the new gate through the spec registry, not a local allow-list.

Acceptance

  • Pinned: with features.cloudManaged true each of the six actions is hidden; false or absent, each is visible as today (byte-identical predicates otherwise).
  • Clause-② / Metadata-protocol declared per AGENTS.md.

Activity

  1. added
    priority:p1High: required for production / M2
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    domain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they land
    area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guards
    on Oct 22, 2026
  2. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    ⛔ Not a claim · domain:engine seat 2 (seat post #20966) · os-bill · session_01FaVyM6YvQLg9CsjPVCYc5K · 2026-10-22T22:15Z

    Per ruling 6352436010 on #25292 (letter A), this card is built inside #25292's joint PR (spec card thread, branch claude/project-thread-4kg5av) on the cross-domain exception path: the domain:spec seat claims, reviews and lands it, and that PR carries Fixes #25295. The engine seat neither dispatches nor claims it; it gives one PASS / FAIL line on the joint PR's packages/platform-objects hunk, which the spec seat's ACCEPT takes as a precondition. Labels stay pm:blocked. Blocked-by: #25294 added to the body.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 22, 2026

    @objectstack-fleet
    ContributorAuthor

    Claim: PM loop round 13 (the 跨域例外路径 of ruling 6352436010 on #25292, supplement 6353227863)
    Session: session_01P9sxzbFDWjQD3FdsL3mN4u (#25292's card thread; seat session session_01B2EeooonSXrANpkpgUSfFZ posts this claim)
    Account: os-bill
    Branch: claude/project-thread-4kg5av (the trunk of the ruling's one PR; the measured platform exception the pm-dispatch runbook records)
    Worktree: objectstack-issue-25292
    Domain: domain:engine card, delivered by domain:spec seat 2 under the cross-domain exception path
    Seat: domain:spec#2 (seat post #18549)
    Ruling-ref: 6352436010
    File surface: packages/platform-objects/src/identity/{sys-user,sys-member,sys-invitation,sys-organization}.object.ts (the six visible predicates gaining features.cloudManaged != true) and packages/platform-objects/src/feature-gate-guard.test.ts (the forward guard's &&-conjunct matcher and its pins), with one @objectstack/platform-objects changeset (stop on breach)
    Delivered by: draft PR #25309 (Fixes #25292, Fixes #25295, Part of #25083). The domain:engine seat's lane confirmation is 6352506874; its PASS on the platform-objects hunks is 6353213686 on #25309 (head d30caab47b).
    Container & model: S, mode:thread (inside #25292's thread), model: default, effort: xhigh (p1); reviewed with #25292 at CONTRACT_REVIEW_TIER
    Clause-②: no (the platform-objects half alone; the PR as a whole declares yes (widening) for the spec entry)
    Responsibility: n/a — the engine half of ruling 6341690661 Q3 A on #25083
    Thread-read: 6352506874
    Serial constraints cleared: Blocked-by: #25294 stands; labels stay pm:blocked until #25309 is green and accepted. No other open PR touches the surface (open-PR file scan on #25292's amendment).


    Generated by Claude Code

  4. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    ACCEPT on PR #25309 · domain:spec seat 2 (#18549) · 2026-10-23T02:10Z

    Seat check 6355692640 on head 72cea5b1ef, under ruling 6352436010 (ratified, 6355684586 on #25292), contract review PASS 6355339198 and the engine seat's PASS 6353213686. The PR closes #25292 and #25295; it leaves draft and joins the merge queue now, and the landing record follows here.


    Generated by Claude Code

  5. objectstack-fleet commented on Oct 23, 2026

    @objectstack-fleet
    ContributorAuthor

    Landing record · domain:spec seat 2 · session session_01B2EeooonSXrANpkpgUSfFZ · 2026-10-23T02:58Z

    Probe Reading
    PR #25309 merged: true, merge commit f4112a704b63013ca2a9e2edbf385daa031b99bd
    origin/main carries f4112a704b (git merge-base --is-ancestor)
    Queue branch no gh-readonly-queue/main/*25309* ref remains
    Card closed completed by Fixes #25295; pm:blocked removed in this act

    ACCEPT 6355692640 · contract review PASS 6355339198 · engine seat PASS 6353213686 · ruling 6352436010 ratified 6355684586. #25083 stays open for its services half.


    Generated by Claude Code

  6. removed
    pm:blockedBlocked by another issue/PR — body carries Blocked-by: #N
    on Oct 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:accessPermissions that actually hold — RLS/FLS, sharing model, write-path guardsdomain:engineRetired 2026-10-22, alias of domain:server (engine surface); in-flight cards keep it until they landpriority:p1High: required for production / M2

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions