Filed by the domain:services execution seat (session session_01AUF1NoViznQK32gqpK8wS8) from the #14615 dev round (PR #14751), which counted the population as the dispatch asked and correctly fixed only the two files in its fence. Unassigned, recording only, awaiting first grading.
The counted population
Seven test files in packages/plugins/plugin-auth construct an AuthManager and register an object set. After PR #14751:
| files | how they get the object set |
|---|
| 2 | import authIdentityObjects from the plugin's own manifest.ts — scim-deactivation-reconcile-user.test.ts, scim-transaction-scope.test.ts (PR #14751) |
| 1 | hand-written list that does carry the OAuth objects — credential-at-rest-posture.test.ts |
| 4 | hand-written list that does not — audience-bootstrap-seam.test.ts, dev-admin-seed-credential-gate.test.ts, sso-register-platform-admin-gate.test.ts, walled-owner-operator-stamp.test.ts |
Why this is latent rather than active
None of the four emits the noise today — the package-wide count of back-channel logout planning failed is 0 after PR #14751. The reason is precise and worth recording, because it is what makes this a finding rather than a bug: the vendor installs prepareBackchannelLogoutPlan as a databaseHooks.session.delete.before hook (@better-auth/oauth-provider 1.7.2), so only session revocation reaches the OAuth token reads. None of the four deletes a session.
So they are copies of the same shape waiting for the first case that revokes a session. #14615's own history is the argument that this matters: that gap was copied twice before anyone noticed it, and it was noticed only because a suite that did revoke sessions started printing an ERROR line on every green run.
Shape of a fix, not prescribed
Replace each hand-written list with authIdentityObjects — the same one-line change PR #14751 made, in four more files. It is a strict superset of every hand list measured (30 members against the 18 the SCIM harnesses carried), and it is already an export on main, so nothing new is published.
Whether it is worth doing at all is the grading question: the honest case against is that four test files registering slightly fewer objects than production costs nothing until one of them revokes a session. The case for is that the fix is mechanical, the drift is structural, and the alternative is discovering it a fourth time from an ERROR line.
Related, deliberately separate
credential-at-rest-posture.test.ts's AUTH_OBJECTS is also a hand-copied second spelling of authIdentityObjects — it happens to be complete today. Converting it is the same one-line change and belongs to whatever disposition this card gets.
⛔ Not this card: whether the back-channel planner should treat an absent sys_oauth_access_token as a discriminated benign read rather than an ERROR. That is arm 2 of #14615, a product behaviour change on a published log sink, and it was fenced out of that round deliberately. It remains undecided and needs its own decision, not a test-side fix.
Dedupe, and its limit
⚠️ Checked with list_issues over the domain:services lane rather than search_issues, which is currently returning 0 with incomplete_results: false for terms demonstrably present in open issue titles — see #14743. No open card records this population. Weaker dedupe than usual; close as duplicate without ceremony if a twin surfaces.
Refs: #14615 · PR #14751 · #14360 (the suite the shape was copied from) · #14522 (the second copy).
Filed by the
domain:servicesexecution seat (sessionsession_01AUF1NoViznQK32gqpK8wS8) from the #14615 dev round (PR #14751), which counted the population as the dispatch asked and correctly fixed only the two files in its fence. Unassigned, recording only, awaiting first grading.The counted population
Seven test files in
packages/plugins/plugin-authconstruct anAuthManagerand register an object set. After PR #14751:authIdentityObjectsfrom the plugin's ownmanifest.ts—scim-deactivation-reconcile-user.test.ts,scim-transaction-scope.test.ts(PR #14751)credential-at-rest-posture.test.tsaudience-bootstrap-seam.test.ts,dev-admin-seed-credential-gate.test.ts,sso-register-platform-admin-gate.test.ts,walled-owner-operator-stamp.test.tsWhy this is latent rather than active
None of the four emits the noise today — the package-wide count of
back-channel logout planning failedis 0 after PR #14751. The reason is precise and worth recording, because it is what makes this a finding rather than a bug: the vendor installsprepareBackchannelLogoutPlanas adatabaseHooks.session.delete.beforehook (@better-auth/oauth-provider1.7.2), so only session revocation reaches the OAuth token reads. None of the four deletes a session.So they are copies of the same shape waiting for the first case that revokes a session. #14615's own history is the argument that this matters: that gap was copied twice before anyone noticed it, and it was noticed only because a suite that did revoke sessions started printing an ERROR line on every green run.
Shape of a fix, not prescribed
Replace each hand-written list with
authIdentityObjects— the same one-line change PR #14751 made, in four more files. It is a strict superset of every hand list measured (30 members against the 18 the SCIM harnesses carried), and it is already an export onmain, so nothing new is published.Whether it is worth doing at all is the grading question: the honest case against is that four test files registering slightly fewer objects than production costs nothing until one of them revokes a session. The case for is that the fix is mechanical, the drift is structural, and the alternative is discovering it a fourth time from an ERROR line.
Related, deliberately separate
credential-at-rest-posture.test.ts'sAUTH_OBJECTSis also a hand-copied second spelling ofauthIdentityObjects— it happens to be complete today. Converting it is the same one-line change and belongs to whatever disposition this card gets.⛔ Not this card: whether the back-channel planner should treat an absent
sys_oauth_access_tokenas a discriminated benign read rather than anERROR. That is arm 2 of #14615, a product behaviour change on a published log sink, and it was fenced out of that round deliberately. It remains undecided and needs its own decision, not a test-side fix.Dedupe, and its limit
list_issuesover thedomain:serviceslane rather thansearch_issues, which is currently returning0withincomplete_results: falsefor terms demonstrably present in open issue titles — see #14743. No open card records this population. Weaker dedupe than usual; close as duplicate without ceremony if a twin surfaces.Refs: #14615 · PR #14751 · #14360 (the suite the shape was copied from) · #14522 (the second copy).