You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Hit while validating #4011 — reproduced on a clean checkout of main (d6bfb3d) with no local changes, so it is not that PR's doing. Filing per the drive-to-green convention so it doesn't get attributed to whoever touches @objectstack/objectql next.
All the same shape — the tests pin the ADR-0076/#3891 ruling that the analytics service slot stays empty until service-analytics fills it, and something now fills (or fakes) it:
plugin.step2.test.ts › registerProtocol:false + MetadataProtocolPlugin reproduces the built-in service surface — expect(() => kernel.getService('analytics')).toThrow() → did not throw.
protocol-discovery.test.ts › should report analytics unavailable with no advertised route when not registered — discovery.services.analytics.enabled → true, expected false.
Reading
The test comments state the intent explicitly: "the slot stays EMPTY until service-analytics fills it … /analytics 404s honestly instead of answering with wrong numbers". Either a recent change legitimately made analytics self-register (in which case these three pins — and the honest-404 story they encode — need a deliberate revision, not a drive-by green-up), or something started stuffing the slot as a side effect and the tests are correctly catching it. Both readings need an owner who knows the #3891 intent; mechanically flipping the assertions would erase the ruling they exist to protect.
Likely candidates are whichever of the recent protocol/spec merges touched service assembly (the failures exist at d6bfb3d; I did not bisect further).
Not v17-blocking if the behaviour change was intentional — but worth deciding before the release, since "analytics answers with wrong numbers instead of 404ing honestly" was the exact bug #3891 fixed.
Hit while validating #4011 — reproduced on a clean checkout of
main(d6bfb3d) with no local changes, so it is not that PR's doing. Filing per the drive-to-green convention so it doesn't get attributed to whoever touches@objectstack/objectqlnext.Repro
The three failures
All the same shape — the tests pin the ADR-0076/#3891 ruling that the
analyticsservice slot stays empty untilservice-analyticsfills it, and something now fills (or fakes) it:plugin.step2.test.ts› registerProtocol:false + MetadataProtocolPlugin reproduces the built-in service surface —expect(() => kernel.getService('analytics')).toThrow()→ did not throw.plugin.step2.test.ts› default assembly registers protocol but leaves the analytics slot empty (降级 analytics shim 把 ExecutionContext 丢在门口 ——/analytics/query在没装 service-analytics 的装配里不注入 RLS/租户谓词,契约字段where也被静默忽略 #3891) — same assertion, same non-throw.protocol-discovery.test.ts› should report analytics unavailable with no advertised route when not registered —discovery.services.analytics.enabled→true, expectedfalse.Reading
The test comments state the intent explicitly: "the slot stays EMPTY until service-analytics fills it … /analytics 404s honestly instead of answering with wrong numbers". Either a recent change legitimately made analytics self-register (in which case these three pins — and the honest-404 story they encode — need a deliberate revision, not a drive-by green-up), or something started stuffing the slot as a side effect and the tests are correctly catching it. Both readings need an owner who knows the #3891 intent; mechanically flipping the assertions would erase the ruling they exist to protect.
Likely candidates are whichever of the recent protocol/spec merges touched service assembly (the failures exist at
d6bfb3d; I did not bisect further).Not v17-blocking if the behaviour change was intentional — but worth deciding before the release, since "analytics answers with wrong numbers instead of 404ing honestly" was the exact bug #3891 fixed.