Uh oh!
There was an error while loading. Please reload this page.
docs(security): publicSharing.enabled standing-policy paragraph (#14582) - #14746
Merged
baozhoutao merged 1 commit intoSep 3, 2026
Merged
Conversation
Item 2 of #14582 (follow-up to #14033 / PR #14580, split from #14033's docs surfaces that PR #14580 could not touch). The "Public Share Links" section documented the child predicate (eligibility, #13608) as a standing policy held at every redemption, but not the parent switch publicSharing.enabled — #14033 made that switch the same shape: held at every redemption, not only at mint. Adds the sibling paragraph plus its upgrade-note callout, placed after the eligibility paragraph so a reader who has already understood the child predicate recognises the parent's paragraph as the same shape one level up. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
baozhoutao
marked this pull request as ready for review
September 2, 2026 23:54
baozhoutao
enabled auto-merge
September 2, 2026 23:55
Uh oh!
There was an error while loading. Please reload this page.
baozhoutao
deleted the
claude/issue-14582-public-sharing-standing-policy-docs
branch
September 3, 2026 01:33
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for freeto join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes#14582
What changed
Adds the sibling paragraph for the parent switch
publicSharing.enabled(#14033) beside the existing "Wheneligibilityis enforced" paragraph (#13608 / PR #13857) incontent/docs/protocol/objectql/security.mdx's "Public Share Links" section, plus its upgrade-note callout in the same form. Item 2 of #14582 only — item 1 (system-context.mdx) already landed, item 3 (packages/spec/**) is #14703.Placed after the eligibility paragraph + callout (not before): the triage comment asked for "the same shape one level up," which reads as recognition — a reader who has just understood the child predicate's paragraph should see the parent's paragraph and recognize the same shape, so the parent follows the child rather than pre-empting it.
The paragraph, verbatim
Behaviour verified on base,
packages/plugins/plugin-sharing/src/share-link-service.tsresolveToken,packages/plugins/plugin-sharing/src/share-link-service.ts:697—if (!policy.enabled) { ...; return null; }, preceded by the[#14033]comment block starting at:652("publicSharing.enabledis a STANDING policy — held here, at every redemption, not only at mint").:663-669("a block that is off stops every existing token on it — retroactively... and re-enabling the block restores them. Not a revocation: no row moves.").createLink's opt-in gate,:449—if (!policy.enabled && !this.permissive && !context.isSystem) { throw ...; }— only refuses the mint when neither thepermissivebypass nor a system context applies; the[#14033] Mint ONLYdoc comment at:346-355states the corollary explicitly ("a link minted under this bypass while the block is off does not resolve until the block is enabled").All three match what the PR body describes; no discrepancy found.
Scope discipline
git diff --stat:content/docs/protocol/objectql/security.mdx | 25 +++++++++++++++++++++++++— one file only.content/docs/permissions/system-context.mdx— untouched (item 1 already landed by a different PR).packages/spec/**— untouched (spec TSDoc still describespublicSharing.enabledas mint-only and omits the switched-off block fromresolveToken'snullcauses (#14033 follow-up) #14703's surface).content/docs/references/**— no regeneration.Gates
node scripts/pm/dispatch-gates.mjs --repo objectstack-ai/objectstack --commands content/docs/protocol/objectql/security.mdxderived 29 families (re-derived clean, non-stale, at merged HEAD96574ba46). All 29 were run (--ranreconciliation: 29 derived, 29 run, 0 UNRUN). 25 passed for real (exit 0); the remaining 4 areNOT MEASURED— each is a build-prerequisite gap in a fresh worktree unrelated to this docs-only diff, not a finding:pnpm --filter @objectstack/lint run check:doc-formula-expressions/check:doc-security-posture—@objectstack/lint's own build fails in this worktree on a missing@objectstack/sdui-parsertype declaration, a pre-existing package-graph gap this diff does not touch.pnpm --filter @objectstack/spec run check:skill-examples— corpus-wide TS type-check across all doc/skill code blocks; blocked here on@objectstack/client-react'sdistnot carrying.d.tsin this worktree, unrelated to this prose-only change.node scripts/check-test-completeness.mjs— requires a savedturbo run testlog CI produces; the gate's own guidance names this NOT MEASURED (not a red) when run standalone.The directly relevant gate,
pnpm --filter @objectstack/spec run check:docs(renders/validates the docs tree, including this file), passed for real once@objectstack/specwas built (exit 0). CI runs the full farm and will get a real build for the other four.Labels
skip-changesetrequested — docs-only prose change, no package publishes from this diff.🤖 Generated with Claude Code
https://claude.ai/code/session_01WLJQhde67SeTccsmnBVarV
Generated by Claude Code