Skip to content

docs(sharing-service): name the federated phantom-anchor case in the SHARING_NOT_ENABLED list (#8119) - #8217

Merged
os-zhuang merged 1 commit into
mainfrom
claude/issue-8119-sharing-service-doc-phantom-anchor
Aug 12, 2026
Merged

docs(sharing-service): name the federated phantom-anchor case in the SHARING_NOT_ENABLED list (#8119)#8217
os-zhuang merged 1 commit into
mainfrom
claude/issue-8119-sharing-service-doc-phantom-anchor

Conversation

@os-zhuang

Copy link
Copy Markdown
Contributor

Docs-only follow-up to #8209 (Part of #8119). One line, one file.

Why

content/docs/kernel/runtime-services/sharing-service.mdx has a "Typical Errors"
section that enumerates the exact conditions producing each status. Its
SHARING_NOT_ENABLED (422) entry listed four: public sharing model, no owner_id
field, a bypass object, controlled_by_parent.

#8209 added a fifth — a federated (ADR-0015 external) object whose owner_id
is the platform's injected anchor rather than a real remote column. Leaving it out
is the enforced-but-undocumented inverse of a declared-but-unenforced gap: the
runtime now refuses more than the page says it does, and a reader hitting the new
422 would find no listed condition matching their object.

The docs-drift bot flagged this page on #8209; it was written there but could not be
pushed, because the PR had already been armed and added to the merge queue and a
queued branch cannot be updated. Dequeuing to land a doc line was not the right
trade, so it comes as its own PR — which is the better shape anyway.

The line

- `SHARING_NOT_ENABLED` (422) — `grant` on an object the sharing gates never consult
  (public sharing model, no `owner_id` field, a bypass object, `controlled_by_parent`,
  or a **federated** object whose `owner_id` is the platform's injected anchor rather
  than a real remote column — the platform provisions no storage for a federated
  object, so the gates read that column off a table that has not got it and can never
  admit).

Re-read against current main before applying rather than assuming: #8209 landed the
code but not this line, so the surrounding list is byte-identical to what the wording
was written against and the original text still fits.

Notes

  • No changeset: docs-only change to a hand-written page, no package behaviour. If the
    changeset gate disagrees I will add skip-changeset rather than a changeset.
  • content/docs/releases/ is untouched — release-owned and read-only (AGENTS.md
    Documentation Guardrails); the drift bot listed implementation-status.mdx as
    advisory-only and it stays that way.
  • The commit that carried this line on the fix(plugin-sharing): refuse a share row on a federated phantom owner anchor, with the single-record gate behaviour measured (#8119) #8209 branch also picked up a stray
    packages/cli/tsconfig.debt-remeasure.json — a check:type-check-debt scratch file
    swept in by a git add -A that ran while the gate was mid-measure. It never reached
    main (that commit was never pushed) and is not in this PR. Filed separately as
    the underlying trap: the gate's temp files are not gitignored.

Generated by Claude Code

…SHARING_NOT_ENABLED list (#8119)

The "Typical Errors" list enumerates the exact conditions that produce a 422,
and #8209 added a fifth: a FEDERATED (ADR-0015 `external`) object whose
`owner_id` is the platform's injected anchor rather than a real remote column.
Leaving it out is the enforced-but-undocumented inverse of a
declared-but-unenforced gap — the runtime now refuses more than the page says.

Docs-only; the behaviour itself shipped in #8209.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PEVB6w7D7uCszR9Mw1BL73
@vercel

vercel Bot commented Aug 12, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated (UTC)
objectstack Ignored Ignored Aug 12, 2026 8:53pm

Request Review

@os-zhuang os-zhuang added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 12, 2026 — with Claude
@github-actions github-actions Bot added size/xs documentation Improvements or additions to documentation labels Aug 12, 2026
@os-zhuang
os-zhuang marked this pull request as ready for review August 12, 2026 21:12
@os-zhuang
os-zhuang added this pull request to the merge queue Aug 12, 2026
@github-actions

Copy link
Copy Markdown
Contributor

⛔ merge queue 构建失败 — 先分诊,再决定要不要重排

队列构建 31641477795 红了。队列跑的是全量套件(PR 侧 CI 只跑 affected 子集),
所以失败的测试可能在本 PR 没碰过的包里 —— 那不是重排能修的。每次盲目重排都会让排在后面的所有 PR 重建一轮。

失败的 job(日志抽取,best effort):

  • Dogfood Regression Gate (3/3) — 失败步骤: Boot example apps and exercise real user flows

    �[41m�[1m FAIL �[22m�[49m �[30m�[46m isolated �[49m�[39m test/federated-phantom-share-grant.dogfood.test.ts�[2m > �[22m[#8119] federated phantom anchor: single-record gates + share posture�[2m > �[22m
    

历史信号:

  • 本 PR 过去 24h 无队列失败记录(首次)。
  • 过去 24h 队列共有 3 个失败构建(不含本次)。

分诊清单:

  1. 失败测试在本 PR 改动的包里 → 真回归,修 PR。
  2. 失败测试与本 PR 无关 → 在其他 PR 的同类评论里搜同名测试;出现过 ⇒ flaky 实锤,开 issue 修/隔离那条测试。修好前重排只会再烧一轮全队列。
  3. 两者都不是 → 可能与同组 PR 语义冲突;等前面的 PR 落地或失败出队后再重排一次即可,不要连续重排。

Generated by Claude Code · merge-queue-triage workflow (#4859)

Merged via the queue into main with commit 0704c98 Aug 12, 2026
25 checks passed
@os-zhuang
os-zhuang deleted the claude/issue-8119-sharing-service-doc-phantom-anchor branch August 12, 2026 21:34
os-zhuang pushed a commit that referenced this pull request Aug 12, 2026
…pages (#8158)

The "Typical Errors" list on `services.sharing` enumerates the exact conditions
behind each status, and the ADR-0111 D6 section of the sharing-rules page is
where a reader of the rule surface looks. This PR adds a refusal to that
surface — an authenticated `manage_sharing` holder whose session resolves no
active organization now gets 403 PERMISSION_DENIED on every verb — so both
pages say so, including which two callers (system contexts, platform
operators) are deliberately unaffected.

Same reasoning as #8217: the runtime refusing more than the page says is the
enforced-but-undocumented inverse of a declared-but-unenforced gap.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PEVB6w7D7uCszR9Mw1BL73
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation size/xs skip-changeset PR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants