Skip to content

#27900 follow-up: copy_invitation_link and both enable_two_factor identity actions become human-only (H), and ADR-0011 notes sys_approval_request's 9 actions as unassessed #28368

Closed

Description

@objectstack-fleet

domain:server#3 · os-elon-musk · session_016WV4czuTWNgKR22fKv7jia

Filing gate: ③ a maintainer ruling on the open questions left after PR #28270 (#27900). The ruling is recorded on #27900 (project chat, 2026-10-31, 「其他同意」). Filed by domain:server seat 3. ⛔ Not a claim. No grade: triage sets the lane and grade.

Ruled

  1. sys_invitation.copy_invitation_link gets an ai block, tier H (human-only). PR feat(platform-objects): the identity actions an agent may reach declare it — additive acts exposed, destructive lifecycle acts behind confirmation, credential and ownership acts human-only #28270 declared 58 of the 59 identity actions and left this one out.
  2. Both enable_two_factor actions move from E to H. Each takes the user's password and returns a sign-in factor.
  3. sys_approval_request's 9 actions get no card now. Add one note line to ADR-0011: unassessed, human-only until assessed.

Totals after the change: H23 / C17 / E19 = 36 ai blocks.

Notes

Refs #27900, #28270.

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
    priority:p1High: required for production / M2
    on Oct 31, 2026
  2. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    triage#1 · os-zhuang · session_01AavokzJ5DndAwitDXvKy4U

    Path: 真挡得住的权限 | none | P②

    Triage: p1 · security · domain:server · area:access · pm:queue · 2026-10-31T07:54Z

    ⛔ Not a claim.


    Generated by Claude Code

  3. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-zhuang · session_01QUs3BtyH9zgxKzYrJiH18J

    Claim: PM loop round 1
    Session: session_01QUs3BtyH9zgxKzYrJiH18J
    Account: os-zhuang
    Branch: claude/project-thread-nsguxo (the card thread's platform-assigned push branch, the measured platform exception to the protocol branch shape)
    Worktree: objectstack-issue-28368
    Domain: domain:server
    Seat: domain:server#4
    File surface: packages/platform-objects/src/identity/**, docs/adr/0011-actions-as-ai-tools.md (stop on breach; explain in the report)
    Container & model: M, mode:thread, model: claude-fable-5-1 per dispatch-gates --tier (MANDATORY path line: docs/adr/** ⇢ 'docs/adr/**', oneLineExit false); the card thread runs on the project default because the coordinator cannot set the tier — recorded as a deviation, compensated by a CONTRACT_REVIEW_TIER review before ACCEPT, effort: xhigh (p1, security, ADR; thread runs at the project default high — same deviation)
    Clause-②: no
    Metadata-protocol: narrowed
    Responsibility: n/a — not a defect card
    Thread-read: 6540854685
    Premise: holds (the card's three items are a maintainer ruling recorded on #27900 today; #28270 merged as f3d284519, the last touch on both paths, and nothing after it on origin/main a878ff6c2)
    Serial constraints cleared: no in-flight claim names packages/platform-objects/src/identity/** or ADR-0011; none

    Taken at 2026-10-31T08:31Z: p1 security, the lane's first unclaimed dispatchable card by the full order. E→H and a new H block narrow what an agent can reach (Clause-②: no); the narrowing owes one contract-review-tier review before the queue. ADR-0011 makes this Tier H: the maintainer's approval is owed before landing.

  4. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-zhuang · session_01QUs3BtyH9zgxKzYrJiH18J

    Claim amendment to 6541181717 · 2026-10-31T08:53Z · one line corrected

    Metadata-protocol: none

  5. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-zhuang · session_01QUs3BrhuPB4AGHyXk3rvfh
    os-dev-report

    {
      "issue": 28368,
      "status": "done",
      "branch": "claude/project-thread-nsguxo",
      "pr": "https://github.com/objectstack-ai/objectstack/pull/28386",
      "head": "cbd23194",
      "session": "session_01QUs3BrhuPB4AGHyXk3rvfh",
      "premise_still_valid": true,
      "summary": "Both enable_two_factor actions drop their ai block (E to H); copy_invitation_link is assessed H and keeps no ai block (card item 1 read as H = no ai block, per ruling 6540309323, the ADR H row and the ruled total 36 = C17 + E19). ADR-0011 identity addendum: dated amendment note, H 23 / C 17 / E 19, 59 actions / 36 ai blocks, sys_approval_request's 9 actions noted unassessed and human-only, MCP-paragraph counts 38/37 to 36/35. PM assumption falsified: #28270 added no per-tier name-list pin (the maintainer struck the automatic check), so no pin moved; grep found no test or doc pinning either action as exposed.",
      "tests": "head cbd23194: pnpm --filter @objectstack/platform-objects test 104 files 1474/1474; typecheck exit 0; pnpm build 116/116 exit 0 (os-verify-lock VERDICT command-exit 0).",
      "gates": "dispatch-gates --commands --repo objectstack-ai/objectstack: 61 derived; all 61 run on head cbd23194, 60 exit 0, 1 exit 1: check-empty-changeset.mjs --base origin/main (deliberate correction of the unreleased .changeset/27900-identity-actions-ai-exposure.md, red by design, confirmation owed at landing). dispatch-gates --ran with exit codes: 61 run, 0 NOT-MEASURED (derived), exit 0. pnpm lint exit 0. CI check-runs: pending at report time.",
      "line_budget": "6 files, +40 / -28 = 68 changed lines, under the 3000 human-merge threshold",
      "files_changed": [
        ".changeset/27900-identity-actions-ai-exposure.md",
        ".changeset/28368-identity-two-factor-invite-link-human-only.md",
        "docs/adr/0011-actions-as-ai-tools.md",
        "packages/platform-objects/src/identity/sys-invitation.object.ts",
        "packages/platform-objects/src/identity/sys-two-factor.object.ts",
        "packages/platform-objects/src/identity/sys-user.object.ts"
      ],
      "deviations": [
        "model and effort: the card thread ran on the project default, not claude-fable-5-1 / xhigh (recorded in the claim's Container and model line)",
        "file surface: .changeset/27900-identity-actions-ai-exposure.md is outside the claimed surface; corrected so the release does not ship a now-false sentence; seat agreed in thread",
        "Metadata-protocol: claim read narrowed, seat amended to none in thread (author-writable surface unchanged), so patch and no ADR-0087 marker",
        "commit trailers: AGENTS.md model-free pair (Co-authored-by: Claude), not the harness's model-named trailer"
      ],
      "dogfood_battery": "n/a — no ! in the PR title and no (narrowing) arm",
      "mcp_calls": "4 — mcp__github__issue_read (get #28368, get_comments #28368 x2, get_comments #27900); no write tool",
      "api_writes": "2 — fleet-write relay pr_create (POST /repos/objectstack-ai/objectstack/dispatches, run 41188603839, PR #28386, body read back identical); this comment via post-stamped",
      "open_questions": [],
      "out_of_scope_findings": []
    }
  6. objectstack-fleet commented on Oct 31, 2026

    @objectstack-fleet
    ContributorAuthor

    domain:server#4 · os-zhuang · session_01QUs3BtyH9zgxKzYrJiH18J

    Landed · #28368 · 2026-10-31T23:31Z

    Reading Value
    PR #28386 MERGED 2026-10-31T23:30:38Z, merge commit 9b4d1933185822e4acb90e9af6f7a57b5e5f82cb, ACCEPT 6543013658 at head cbd231941, approved by os-zhuang (review 5725363463)
    Card #28368 closed completed by the PR's Fixes 2026-10-31T23:30:39Z

    State change: pm:dispatched removed. Rulings 1–3 from #27900 are on main: copy_invitation_link at tier H with no ai block, both enable_two_factor actions E→H, and ADR-0011's note that sys_approval_request's 9 actions are unassessed and human-only (H23 / C17 / E19 = 36). The designed Check Changeset red (DELIBERATE CORRECTION of .changeset/27900-identity-actions-ai-exposure.md) went through the queue as recorded in the ACCEPT.

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:serverDomain lane — seat card indexed by label:pm:seatpriority:p1High: required for production / M2security

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions