Repository navigation
test(plugin-security): retire the declared-permission seeder suites (#15204 stage 6b-2, T1) - #22897
Conversation
…n seeders ahead of their retirement (#15204 stage 6b-2, T-PR) Claude-Session: https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49 Co-authored-by: Claude <noreply@anthropic.com>
…stage 6b-2a (#15204 stage 6b-2, T-PR) Claude-Session: https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49 Co-authored-by: Claude <noreply@anthropic.com>
📓 Docs Drift CheckNothing in this diff resolved to a documentable surface (no symbol, route or SDK anchor derived from 0 changed package(s)), so this run has no opinion about the docs. What this run could not see
Coarse fallback — 0 page(s) merely mention a changed package (the pre-#9192 predicate, kept for the deliberately-wide backstop): |
…et at the function (#15204 stage 6b-2, T1) The #11451 fence rode the declared-permission seeder's suite, which this PR deletes; the behaviour survives in permission-set-projection's overlay pass. Pinned on both reads, with a predicate-carrying positive control. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49
… directly before the code they pin (#15204 stage 6b-2, T1) Moved from the 6b-2a PR: no pin of a behaviour 6b-2 deletes leaves main before 6b-2. Their double-contract ledger entries go with them. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49
… stage 6b-2, T1) This reverts commit e98ff4c. Per the seat's correction, T2 carries the deletion so T1 stays under the 3,000-line threshold. Co-Authored-By: Claude <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49
Seat ACCEPT: PR #22897 (stage 6b-2 T1, retire the declared-permission seeder suites) at
|
Part of #15204
Clause-②: no
T1 of stage 6b-2: tests only. It deletes the suites that pin the declared-permission seeder, drift, the
managed_bynormalizer and the seed-refusal diagnostics, and trims the cases in shared suites that pin them. It is split off the 6b-2 code PR (#22900) so that PR falls under 3,000 changed lines (the ruling: tests land inside or before their code PR). No production file changes. The modules these suites pinned are deleted by #22900.Landing, as sequenced by the seat: T1, T2 and the 6b-2 code PR (#22900) stay drafts until #22900's own gates clear (the #22865 pickers and objectui PR-4), then land back to back, T1 → T2 → #22900. That way the publish materializer and the seeders are never live on
mainwith their pins gone. 6b-2a (#22899) is independent and goes to the maintainer separately.Deleted (whole files)
bootstrap-declared-permissions.test.tswalled-platform-bucket-diagnostic.test.tspermission-set-drift.test.tsbootstrap-seed-round-trips.test.tsdeclared-permission-reload-projection.test.tsnormalize-managed-by.test.tsTrimmed (only the cases that pin a deleted module)
per-organization-catalog.test.ts: case 6 (resolver bleed) is kept.permission-set-name-collision.test.ts: the shared-derivation describe is kept.read-fault-distinguishability.test.ts: reading 1 goes.engine-find-bare-array.pin.test.ts: blocks 3 and 6 go.seed-name-lookup-degradation-audible.test.ts: the lit control reports throughseed-refusal-sinkdirectly, not through the retiring diagnostics module.builtin-capabilities.boot.test.ts: the platform-name-refusal constant goes.objects/rbac-objects.test.ts: thedrift_statuspin goes (the field leaves in 6b-2).Re-pinned here
The #11451 fence (a caller that passes no predicate emits only the
wherekeyname) rodebootstrap-seed-round-trips.test.ts, but the behaviour it pins outlives the seeder:permission-set-projection.ts' overlay pass callsbuildExistingByNamewith no predicate. It is now pinned at the function inseed-name-lookup-degradation-audible.test.ts, on both the batched read and the per-item degradation read, with a predicate-carrying positive control. Ablation: making both reads spread{ managed_by: undefined }turned both fences red ("expected [ 'name', 'managed_by' ] to deeply equal [ 'name' ]"), the control stayed green, and restoring the file (same sha) brought 8/8 back.Gate ledgers
The double-contract ledgers (
engine-double-contract.{baseline,pinned}.json,objectql-double-limit.baseline.json) drop the deleted suites' entries.Size
16 files, +86 / −2,749 (2,835 changed lines).
Verification
On this branch:
check:engine-double-contractandcheck:objectql-double-limitgreen. The 7 trimmed suites: 7 files, 60 passed; with the new fence,seed-name-lookup-degradation-audibleis 8 passed.check:where-matchergreen. plugin-security typecheck green.check:adr-0087-registration,check:changeset-no-major,check:cli-command-ids,check:nul-bytesgreen. Not covered after this PR: no retained test importsbootstrap-declared-permissions,permission-set-drift,normalize-managed-byorseed-refusal-diagnostics. Only the boot-level suites exercise them in passing. They run unpinned until #22900 removes them, which is why the seat lands this PR directly before #22900.Merge note: this PR and #22899 delete adjacent entries in
scripts/engine-double-contract.baseline.jsonandscripts/objectql-double-limit.baseline.json, so whichever lands second meets a textual conflict there. The resolution is to drop both entries.Test-only:
skip-changeset.🤖 Generated with Claude Code
https://claude.ai/code/session_013XKtmoR5QCUSTMjiQ3os49