Commit 705efeb
`queryDataset`'s catch degrades to an empty result for the #5033 case (a widget
whose backing object is not mounted in this kernel). Its criterion was
`isMissingSourceError` — a substring match over the error MESSAGE — so the
leniency was available to any error phrased like a driver, and the outcome was
not a wrong status code but a silent empty result: no exception, no 4xx, no 5xx,
one warn and a confident empty chart.
`dataset-compiler.ts`'s "…includes relationship "R" which does not exist on
object "O"." already matched (both `relation`, inside "relationship", and
`does not exist`). It has never gone off only because the compile point sits
outside the try — a mine, wired and unarmed.
Two independent defences:
- an error carrying an ADR-0112 envelope (numeric `status` + non-empty `code`,
the same structural fact `rest-server.ts`'s analytics catch reads) is
re-thrown untouched, ahead of any message inspection. Status range is
deliberately not part of the test: a declared 5xx is if anything worse to
swallow than a 400;
- the postgres limb is anchored to postgres's actual wording
(`relation "x" does not exist`) instead of "any sentence with both words" —
the pattern the sibling `missingSourceRelation` already used.
Measured over the 13 real wordings this repo carries, exactly one verdict moves
and it is that compiler refusal; no driver wording changes, so #5033's leniency
for bare driver errors is untouched (asserted in all four reverse-verification
states, not merely claimed). The compile point deliberately stays outside the
try — moving it in would newly expose the compiler's bare invariants and the
host-supplied relationship resolver to this degradation path.
Residue filed as #6035 (postgres's write-path missing-COLUMN wording carries a
whole missing-relation phrase inside it; dormant on a read-only face).
Fixes #5717
Claude-Session: https://claude.ai/code/session_015a5qkLzpGXhLL2F5gvJ7dD
Co-authored-by: Claude <noreply@anthropic.com>
1 parent d4fbfc6 commit 705efeb
3 files changed
Lines changed: 471 additions & 2 deletions
File tree
- .changeset
- packages/services/service-analytics/src
- __tests__
Lines changed: 66 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
0 commit comments