Skip to content

Commit 70fe548

Browse files
claude[bot]claude
andauthored
docs(driver-sql,service-analytics): repoint three comments at the moved driver-error classifier (#13555)
`schema-sync-errors.ts` moved from `@objectstack/metadata` to `@objectstack/types` as `driver-error-classification.ts`, leaving three prose pointers naming a path that no longer resolves. Each is a reader's trail to the reasoning behind a driver-error verdict, so a dangling one costs the next author the thing the comment exists to give them. Repointed at the real current home, verified on `origin/main` rather than copied from the move's prose, and each keeps the historical note of where it was — the same idiom the pointers updated in the move itself already use. Comment text only: no behaviour, no published surface, no test changed. Claude-Session: https://claude.ai/code/session_01F3jdziLbAPGeceVNmSox5L Co-authored-by: Claude <noreply@anthropic.com>
1 parent ff37576 commit 70fe548

3 files changed

Lines changed: 18 additions & 12 deletions

File tree

packages/drivers/driver-sql/src/sql-driver-backend-fault-envelope.test.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -74,12 +74,14 @@
7474
* the platform ACCEPTS and is expressly outside this ruling.
7575
*
7676
* The predicate already follows `error.cause` four levels deep, with its own
77-
* pins (`schema-sync-errors.test.ts`, "follows an error wrapped as `cause`"),
78-
* because "drivers commonly re-throw with the original attached as `cause`" is
79-
* a case it was built for. So the wrap keeps the original there — and this
80-
* suite pins the driver's half of that contract: the cause is present, it is
81-
* the untouched dialect error, and it is NON-ENUMERABLE so it cannot ride back
82-
* onto a wire through `JSON.stringify` or a spread.
77+
* pins (`packages/types/src/driver-error-classification.test.ts` — #13279
78+
* moved it there from `metadata/src/utils/schema-sync-errors.test.ts` —
79+
* "follows an error wrapped as `cause`"), because "drivers commonly re-throw
80+
* with the original attached as `cause`" is a case it was built for. So the
81+
* wrap keeps the original there — and this suite pins the driver's half of
82+
* that contract: the cause is present, it is the untouched dialect error, and
83+
* it is NON-ENUMERABLE so it cannot ride back onto a wire through
84+
* `JSON.stringify` or a spread.
8385
*/
8486

8587
import { describe, it, expect, beforeAll, afterAll } from 'vitest';

packages/drivers/driver-sql/src/sql-driver.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -813,10 +813,12 @@ function unresolvableFilterColumnError(object: string, column: string | null): E
813813
* platform accepts — expressly outside this ruling.
814814
*
815815
* That predicate already follows `error.cause` up to four levels, with its own
816-
* pins (`schema-sync-errors.test.ts`, "follows an error wrapped as `cause`"),
817-
* because "drivers commonly re-throw with the original attached as `cause`" is
818-
* a case it was built for. So the wrap is transparent to it and to every other
819-
* cause-following consumer, and ⛔ the predicate itself is untouched.
816+
* pins (`packages/types/src/driver-error-classification.test.ts` — #13279
817+
* moved it there from `metadata/src/utils/schema-sync-errors.test.ts` —
818+
* "follows an error wrapped as `cause`"), because "drivers commonly re-throw
819+
* with the original attached as `cause`" is a case it was built for. So the
820+
* wrap is transparent to it and to every other cause-following consumer, and
821+
* ⛔ the predicate itself is untouched.
820822
*
821823
* The property is defined NON-ENUMERABLE, the same shape `new Error(msg, {
822824
* cause })` produces. An enumerable `cause` would ride out through

packages/services/service-analytics/src/analytics-service.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -191,8 +191,10 @@ function isMissingColumnOfRelation(message: string): boolean {
191191
* object "O"`, where the "relation" is inside "relationship" and the missing
192192
* thing is a RELATIONSHIP, not a table. The anchor is the same pattern the
193193
* sibling {@link missingSourceRelation} already uses for postgres (and the same
194-
* shape as `metadata/src/utils/schema-sync-errors.ts`), so "is something
195-
* missing" and "what is missing" can no longer disagree on this limb.
194+
* shape as `packages/types/src/driver-error-classification.ts` — #13279
195+
* moved it there from `metadata/src/utils/schema-sync-errors.ts`), so "is
196+
* something missing" and "what is missing" can no longer disagree on this
197+
* limb.
196198
*
197199
* MEASURED over the wordings this repo actually carries — 13 strings: the three
198200
* driver families' phrasings (including sql-prefixed and schema-qualified

0 commit comments

Comments
 (0)