Repository navigation
docs(qa): qa-scratch-authz declares the qa namespace its object names carry - #26875
Merged
Merged
Conversation
… carry Steps 2-4 of the attachments-storage qa-scratch-authz recipe answered 422 NAMESPACE_PREFIX on a fresh showcase boot: the package declared no namespace, so the install derived 'attachments' from its id. Step 1 now declares namespace 'qa', which the qa_vault / qa_shared / qa_nofiles names already carry; the replay is recorded in the recipe provenance and the three opting-in items take a revision with a history row. Claude-Session: https://claude.ai/code/session_01JQwxbaHYyHsGWQpf3zrESP Co-authored-by: Claude <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01JQwxbaHYyHsGWQpf3zrESP Co-authored-by: Claude <noreply@anthropic.com>
Contributor
Author
维护者速读
席位核对ACCEPT ·
Generated by Claude Code |
9 tasks done
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 free
to 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.
Requested by Warren · project thread
Fixes #26791
Clause-②: no
Metadata-protocol: none
维护者速读
areas/attachments-storage.json的配方qa-scratch-authz第 1 步安装清单声明namespace: "qa";用到该配方的三个条目 revision 各升一级(7、9、9)并加一行 history。attachments,第 2–4 步建对象全部 422 NAMESPACE_PREFIX,三个条目的鉴权子句只能记 blocked(fixture)。docs/qa/platform-checklist/areas/attachments-storage.json顶部配方的 step 1 与 provenance,再看三个条目 history 的最新一行。node scripts/check-platform-checklist.mjs,预期 OK。What changes
qa-scratch-authzstep 1 (POST /api/v1/packages) now declaresmanifest.namespace: "qa". Itsexpectsays why the namespace is declared and that it must be unique on the boot; itssourcecites the namespace derivation and the prefix judge.provenancerecords the replay below.historyrow citing qa(checklist): the attachments-storage qa-scratch-authz recipe authors un-prefixed objects, which a package save now refuses with 422 NAMESPACE_PREFIX #26791:download-authz-both-sides(6 → 7),read-inherits-parent-rls(8 → 9) andattach-requires-parent-edit(8 → 9). No step or clause sentence changed in any of them.Why
Read on main 8eef9a8. Every object a package defines must be named
NS_SHORT; the direct save asksobjectNamespacePrefixViolation(ADR-0129 D2) against the namespace the package declares. A manifest that declares none gets one derived from its id's last segment at install (protocol-package-install.ts,deriveNamespaceFromPackageId), socom.objectstack.qa.attachmentsbecameattachments, andqa_vault/qa_shared/qa_nofileswere refused.The card allowed two fixes: rename the three objects, or declare a namespace their names already carry. Declaring
qachanges one line. A rename would touch about 40 mentions across the recipe, step 6's three permission-set bodies and the three items, so the declared namespace was chosen.Tests
No code changed. The recipe was replayed REST only on two fresh stock showcase boots built from 8eef9a8 (
pnpm dev -- --fresh -p PORT, no env posture), with the recipe JSON read from the file and sent literally.Before: the recipe as it stood on main
After: the recipe as this PR writes it
Acceptance notes
qa-media-constraintsin this file (qa_mediaundercom.objectstack.qa.media, derived namespacemedia) andqa-feeds-disabledinareas/records-forms.json(qa_nofeedsundercom.objectstack.qa.feeds, derivedfeeds). Both answer 422NAMESPACE_PREFIXat their object save. They are reported to the seat, not fixed here. Their fix must not declareqatoo, or installing both on one boot answersNAMESPACE_CONFLICT.Verification
Local gates on head 1845844 (main e9e344a merged in), derived by
node scripts/pm/dispatch-gates.mjs --commands: 16 families, all exit 0;--ranreconciles 16 derived, 16 run, 0 NOT-MEASURED, 0 UNRUN.check:platform-checklistprintsOK — 16 areas, 329 items … provisioning: 8 area recipes, 13 item references resolved … 8/8 recipes referenced. Its first run on 41f0d71 exited 1 on an anchor this PR wrote at a call site (protocol-package-install.ts#deriveNamespaceFromPackageId); 1845844 cites the declaring file instead.Gate run (exit code captured before any pipe)
CI families outside the derived list are left to the PR's check-runs.
Human Minimum
packages/specholds no runtime logic. (not touched)pnpm lintpasses. (no linted file touched)main, one pull request.skip-changeset)packages/spectouched: its generated artifacts are regenerated and committed. (not touched)content/docs/references/,packages/*/CHANGELOG.mdorcontent/docs/releases/.Generated by Claude Code