Repository navigation
fix(spec): the Permission Set, Position and view form help texts Setup shows are plain admin copy - #23870
Conversation
…rd vocabulary in any locale; changeset
…rm-help-texts-plain
📓 Docs Drift CheckThis PR changes 2 package(s): 23 hand-written doc(s) name something this change touched — list omitted above 15 rows. Re-derive on the tree named below: ⛔ 11 release-owned page(s) also affected — read-only, see AGENTS.md Documentation Guardrails. What this run could not see
Coarse fallback — 142 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): Which tree this was computed onThis run read A worktree cut from an older # while this PR is open — GitHub drops the merge commit once it closes
git fetch origin 0a1737cb7579fc176a3c542043d222693e95e9a5 && git checkout 0a1737cb7579fc176a3c542043d222693e95e9a5
# afterwards, rebuild it from the two parents, which stay fetchable
git fetch origin 6422da58e83ac5032030c7daa4787fddf5eeb165 01167a020ef92499308d6954e07fb129615ba931 && git checkout -B drift-repro 6422da58e83ac5032030c7daa4787fddf5eeb165 && git merge --no-ff 01167a020ef92499308d6954e07fb129615ba931
node scripts/docs-audit/affected-docs.mjs --json 6422da58e83ac5032030c7daa4787fddf5eeb165
|
席位核对 · ACCEPT · PR #23870 @
|
|
Taken out of the merge queue ·
Generated by Claude Code |
Contract reviewServed-tier: Inputs: card #23853 (body and every comment, the parent #23829 and its addendum 6211169527 as the card cites them), PR #23870 (body, file list, net diff against ① Derived judgmentsPublic surface, right: the three Check-runs on the head, right: every gate-carrying context is
View Generated bundles, right: Test, right: The rest of the record above stands; the ② Semver level
Clause-②: no ③ Boundary flagsDev deviation 1 (WIP commits without the trailer pair): answered. The PR is squash-landed and its body carries the session attribution; landed history is not rewritten. Dev deviation 2 ( Dev deviation 3 ( Open question (rewrite depth, A or B): A is the right split in principle — do not widen past the ADR drop where the surviving prose was already verified — but A as executed overshot on one leaf. The fix for Out-of-scope finding 1 ( Escalated to the Implemented-by: VERDICT: FAIL |
Fixes #23853
Clause-②: no
What changed
Six help texts an administrator reads in Setup carried ADR numbers. Each one is now plain admin copy. The ADR reference moved to the comment beside the form row, the shape of #23817.
permission·isDefaultpermission·managedBypermission·packageIdpermission·adminScopeposition·delegatableview· sectionend_user_controlsdescriptionEach sentence checked against the code that honours the field
isDefault:PermissionSetSchema.isDefault's docblock andplugin-security'sbuiltin-positions.ts. An app-level set is auto-bound to theeveryoneposition at boot. Every authenticated member holds that position implicitly. A package-level set materializes asys_audience_binding_suggestionthat an admin confirms in Setup. A high-privilege set cannot be bound to the anchor.managedBy:packagerows are re-seeded on upgrade.platformanduserrows are environment config that package seeding never touches.packageId: a value that disagrees with the package that ships the set, or that the set is saved into, is refused at every door (judgePermissionSetOwnerBinding). That includes any value on a set no package ships.adminScopeanddelegatable: the rest of each text was already operational, and [finding] AdminScope.manageBindings and authorEnvironmentSets are honoured by no write path after C3; the ADR-0090 D9/D12 junction gates are unmeasured; permissions docs describe removed gates #23488 aligned theadminScopekeys with the live schema. Only the ADR prefix moved.userFilterstabselement (view.zod.ts) andappearance.allowedVisualizationsare live keys, so "filter tabs" and "visualization switching" stay. The retiredtabsrepeater is not named.Translations
pnpm i18n:extractregenerateden.metadata-forms.generated.ts: 6 leaves.*.source-hashes.generated.tstables did not change. "Setup" stays untranslated, as the sibling leaves in each locale already leave it.Test
packages/platform-objects/src/apps/setup-copy-vocabulary.test.tsgains two cases. No assertion was deleted.metadataFormsbundles, each of the six leaves must be a string (the population cannot shrink) and must carry no ADR number, no decision id (D plus digits), nofinding F, noemit()and nokernel. It uses the matcher this file already uses.The file docblock's population item 3 names the six leaves.
No other test pins these strings.
git grepfor the old wording hits only.describe()text,content/docs/references/and changesets, all outside this card.Changeset
.changeset/23853-form-help-texts-plain.mdis apatchfor@objectstack/specand@objectstack/platform-objects, withClause-②: no. No key, type, schema or accept/refuse result changes.Verification (head
01167a02)scripts/ablation-replace.mjs. "(ADR-0090 D12)" was put back into the zh-CNadminScopeleaf. The zh-CN case went red, namingzh-CN.metadataForms.permission.fields.adminScope.helpText (an ADR number, a decision id). The restore left the blob equal to HEAD (48bc7f4d7c85) andgit diff HEADempty.pnpm --filter @objectstack/platform-objects test: 71 files, 1108 tests passed.typecheck: exit 0.pnpm --filter @objectstack/spec build, thencheck:generated: exit 0, all 14 generated artifacts up to date.pnpm check:i18n: exit 0, 10 packages in sync. The first run exited 3 because the extract closure was not built (a prerequisite, not a finding). It passed after the closure the gate names was built.pnpm check:i18n-stale-fill: exit 0, 0 stale fills.dispatch-gates --commandsderived 86 families. 84 exited 0. 2 exited 3 on prerequisites and are NOT MEASURED locally, left to CI:check-plugin-teardown-shape --self-test: shallow clone.check:dual-build-cjs-loads: not every package is built.--ranreconciliation: 86 accounted for, 0 UNRUN.mainwas merged at0af559e8throughscripts/pm/os-regen-merge.sh. The incoming commits touch none of these files and no generated artifact, so there was nothing to regenerate.Acceptance notes
ADR-, a decision id,finding F,emit()orkernel, in source or in any locale. Theenand locale files are regenerated.Chart-specific configuration.managedByoption labels ("Package (upgrade-owned metadata)", "Platform (environment config)", "User (environment config)") carry no ADR vocabulary and are outside this card's file surface. They are unchanged.domain:engine: ADR numbers and schema vocabulary leave the approval, security, automation, sharing and view-form descriptions admins read (split from #23802) #23829'sdomain:servicesobject descriptions are not addressed here. PR feat(spec): a select option declares its lifecycle kind (open / won / lost); every stage-field option must declare it #23846 regenerates the same*.metadata-forms.generated.tsfiles; whichever PR lands second mergesmainand regenerates.Generated by Claude Code