From 3f9dcd91c4d5e3c8ceb4a2061b5aa7f5af8df082 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 09:28:06 +0000 Subject: [PATCH 1/2] ci(temporal-conformance): give the non-SQL step the job's live PostgreSQL URL The step "Run the non-SQL temporal backends under the skewed process zone" runs service-analytics, whose live-PostgreSQL cells are keyed on OS_TEST_POSTGRES_URL (describe.skipIf(!config)). The step set only TZ, so those cells were named skips while the job read green. It now receives the same URL the job's SQL steps use, for the postgres service the job already provisions. The test files' header clause "no CI step provisions that variable for this package" becomes false with this wiring; it is corrected, comment-only, to name the step that now sets it. Claude-Session: https://claude.ai/code/session_01YDt3PzwfrkuFzUBF89WPmM Co-authored-by: Claude --- .github/workflows/ci.yml | 8 ++++++++ .../src/__tests__/cube-measure-field-type-door.test.ts | 8 +++++--- .../__tests__/cube-measure-relationship-path-type.test.ts | 8 +++++--- .../src/__tests__/json-stored-door-live-drivers.test.ts | 8 +++++--- .../__tests__/json-stored-door-undeclared-join.test.ts | 8 +++++--- .../__tests__/list-at-scalar-operator-both-faces.test.ts | 5 ++++- .../src/__tests__/native-sql-aggregate-policies.test.ts | 7 +++++-- .../src/__tests__/native-sql-base-column-qualify.test.ts | 8 +++++--- .../__tests__/native-sql-boolean-comparand-door.test.ts | 5 ++++- .../native-sql-measure-number-presentation.test.ts | 8 +++++--- .../__tests__/native-sql-number-comparand-door.test.ts | 5 ++++- .../src/__tests__/native-sql-offset-only-window.test.ts | 8 +++++--- .../__tests__/objectql-echo-offset-only-window.test.ts | 8 +++++--- .../src/__tests__/objectql-face-order-limit.test.ts | 8 +++++--- .../src/__tests__/order-key-selected.test.ts | 8 +++++--- 15 files changed, 75 insertions(+), 35 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 88abae6df2f..1fb43969cb1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1526,6 +1526,14 @@ jobs: - name: Run the non-SQL temporal backends under the skewed process zone env: TZ: America/New_York + # [#21564] The same URL the SQL legs of this job receive, for the + # postgres service this job already runs. `service-analytics` keys + # its live-PostgreSQL cells on it (`describe.skipIf(!config)`), so + # without this line they were named skips here and the job read as + # though ADR-0053 D-A3's live non-UTC PostgreSQL row had run. Core, + # formula, driver-memory and driver-mongodb do not read it. No + # `OS_EXPECT_LIVE_DIALECT_MATRIX` here: no test in this step reads it. + OS_TEST_POSTGRES_URL: postgres://postgres:postgres@127.0.0.1:5432/postgres run: | # The axis is only real if the zone actually took. Without this, a # dropped `TZ:` line silently returns the job to UTC coverage and diff --git a/packages/services/service-analytics/src/__tests__/cube-measure-field-type-door.test.ts b/packages/services/service-analytics/src/__tests__/cube-measure-field-type-door.test.ts index 627421ab5c4..43325d23aa9 100644 --- a/packages/services/service-analytics/src/__tests__/cube-measure-field-type-door.test.ts +++ b/packages/services/service-analytics/src/__tests__/cube-measure-field-type-door.test.ts @@ -39,9 +39,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its table, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/cube-measure-relationship-path-type.test.ts b/packages/services/service-analytics/src/__tests__/cube-measure-relationship-path-type.test.ts index 82093cbf816..4e4dc88a71e 100644 --- a/packages/services/service-analytics/src/__tests__/cube-measure-relationship-path-type.test.ts +++ b/packages/services/service-analytics/src/__tests__/cube-measure-relationship-path-type.test.ts @@ -48,9 +48,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its tables, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/json-stored-door-live-drivers.test.ts b/packages/services/service-analytics/src/__tests__/json-stored-door-live-drivers.test.ts index 4b598b6e3ca..8be4827860c 100644 --- a/packages/services/service-analytics/src/__tests__/json-stored-door-live-drivers.test.ts +++ b/packages/services/service-analytics/src/__tests__/json-stored-door-live-drivers.test.ts @@ -28,9 +28,11 @@ * ## The dialect axis * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI. The live cell owns its table, dropped before and after. + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI. The live cell owns its table, dropped before and after. */ import { describe, it, expect, beforeAll, afterAll } from 'vitest'; diff --git a/packages/services/service-analytics/src/__tests__/json-stored-door-undeclared-join.test.ts b/packages/services/service-analytics/src/__tests__/json-stored-door-undeclared-join.test.ts index a4357f3ae19..c225f754ae2 100644 --- a/packages/services/service-analytics/src/__tests__/json-stored-door-undeclared-join.test.ts +++ b/packages/services/service-analytics/src/__tests__/json-stored-door-undeclared-join.test.ts @@ -45,9 +45,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its tables, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/list-at-scalar-operator-both-faces.test.ts b/packages/services/service-analytics/src/__tests__/list-at-scalar-operator-both-faces.test.ts index 472cf1a82b0..53acbfc92c4 100644 --- a/packages/services/service-analytics/src/__tests__/list-at-scalar-operator-both-faces.test.ts +++ b/packages/services/service-analytics/src/__tests__/list-at-scalar-operator-both-faces.test.ts @@ -38,7 +38,10 @@ * before any leaf exists, so the arm reaches it with no change here. * * The PostgreSQL cells run where `OS_TEST_POSTGRES_URL` is set and are a named - * skip otherwise; no CI step provisions that variable for this package. The + * skip otherwise; CI provisions that variable for this package in the + * Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`). The * live cell owns its table, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/native-sql-aggregate-policies.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-aggregate-policies.test.ts index bb6f624a16b..2180f4f86fd 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-aggregate-policies.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-aggregate-policies.test.ts @@ -44,8 +44,11 @@ * * The SQLite cell always runs; there, the fold is the policy that diverged. The * PostgreSQL cell runs where `OS_TEST_POSTGRES_URL` is set and is a named skip - * otherwise; no CI step provisions that variable for this package, so the live - * cell is red-capable and un-run in CI, and the PR that landed this file carries + * otherwise; CI provisions that variable for this package in the + * Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries * its local PostgreSQL 16 run. The operand the PostgreSQL / MySQL cells rely on * is pinned per dialect in CI by `@objectstack/core`'s `aggregate-answer.test.ts` * and by `driver-sql`'s move proof. MySQL is not a cell here. The live cell owns diff --git a/packages/services/service-analytics/src/__tests__/native-sql-base-column-qualify.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-base-column-qualify.test.ts index 3c53783d7b1..830d9a3cb98 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-base-column-qualify.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-base-column-qualify.test.ts @@ -41,9 +41,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its tables, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/native-sql-boolean-comparand-door.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-boolean-comparand-door.test.ts index 232d9659f69..2afd67cafbe 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-boolean-comparand-door.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-boolean-comparand-door.test.ts @@ -38,7 +38,10 @@ * edit in place would throw. * * The PostgreSQL cell runs where `OS_TEST_POSTGRES_URL` is set and is a named - * skip otherwise; no CI step provisions that variable for this package. The + * skip otherwise; CI provisions that variable for this package in the + * Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`). The * live cell owns its table, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/native-sql-measure-number-presentation.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-measure-number-presentation.test.ts index 033dd212dce..155088944a0 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-measure-number-presentation.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-measure-number-presentation.test.ts @@ -56,9 +56,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise. No CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI; the PR that landed this file carries its local PostgreSQL + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise. CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI; the PR that landed this file carries its local PostgreSQL * 16 run. `@objectstack/core`'s `aggregate-answer.test.ts` pins the presenter * itself in CI. The live cell owns its table, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/native-sql-number-comparand-door.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-number-comparand-door.test.ts index 07c49fe96fe..819107f0f76 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-number-comparand-door.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-number-comparand-door.test.ts @@ -60,7 +60,10 @@ * edit in place would throw. * * The PostgreSQL cell runs where `OS_TEST_POSTGRES_URL` is set and is a named - * skip otherwise; no CI step provisions that variable for this package. The + * skip otherwise; CI provisions that variable for this package in the + * Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`). The * live cell owns its tables, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/native-sql-offset-only-window.test.ts b/packages/services/service-analytics/src/__tests__/native-sql-offset-only-window.test.ts index 28a17bdc58a..8877b7eec8d 100644 --- a/packages/services/service-analytics/src/__tests__/native-sql-offset-only-window.test.ts +++ b/packages/services/service-analytics/src/__tests__/native-sql-offset-only-window.test.ts @@ -23,9 +23,11 @@ * * - **sqlite → EXECUTED** (better-sqlite3), every run: `LIMIT -1 OFFSET n`. * - **postgres → EXECUTED** where `OS_TEST_POSTGRES_URL` is set, a named skip - * otherwise: `OFFSET n` alone, byte-identical to before. No CI step - * provisions that variable for this package, so the live cell is - * red-capable and un-run in CI; the PR that landed this file carries its + * otherwise: `OFFSET n` alone, byte-identical to before. CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs + * in CI; the PR that landed this file carries its * local PostgreSQL 16 run. * - **unknown (no `sqlDialect` hook) → EXECUTED** on both engines above, * through a `NativeSQLStrategy` whose context names no dialect: diff --git a/packages/services/service-analytics/src/__tests__/objectql-echo-offset-only-window.test.ts b/packages/services/service-analytics/src/__tests__/objectql-echo-offset-only-window.test.ts index 45a49e00b9a..74f046e9f99 100644 --- a/packages/services/service-analytics/src/__tests__/objectql-echo-offset-only-window.test.ts +++ b/packages/services/service-analytics/src/__tests__/objectql-echo-offset-only-window.test.ts @@ -27,9 +27,11 @@ * * - **sqlite → EXECUTED** (better-sqlite3), every run. * - **postgres → EXECUTED** where `OS_TEST_POSTGRES_URL` is set, a named skip - * otherwise: `OFFSET n` alone, byte-identical to before. No CI step - * provisions that variable for this package, so the live cell is - * red-capable and un-run in CI. + * otherwise: `OFFSET n` alone, byte-identical to before. CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs + * in CI. * - **unknown (no `sqlDialect` hook) → EXECUTED** on both engines above, * through an `ObjectQLStrategy` whose context names no dialect: * `LIMIT 9223372036854775807 OFFSET n`, the native face's spelling for it. diff --git a/packages/services/service-analytics/src/__tests__/objectql-face-order-limit.test.ts b/packages/services/service-analytics/src/__tests__/objectql-face-order-limit.test.ts index dc4913899bb..ed8e64547b1 100644 --- a/packages/services/service-analytics/src/__tests__/objectql-face-order-limit.test.ts +++ b/packages/services/service-analytics/src/__tests__/objectql-face-order-limit.test.ts @@ -37,9 +37,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its tables, dropped before and after. */ diff --git a/packages/services/service-analytics/src/__tests__/order-key-selected.test.ts b/packages/services/service-analytics/src/__tests__/order-key-selected.test.ts index 2c201c73596..940b0014ae7 100644 --- a/packages/services/service-analytics/src/__tests__/order-key-selected.test.ts +++ b/packages/services/service-analytics/src/__tests__/order-key-selected.test.ts @@ -25,9 +25,11 @@ * ## The dialect axis of THIS file * * The SQLite cell always runs. The PostgreSQL cell runs where - * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; no CI step - * provisions that variable for this package, so the live cell is red-capable - * and un-run in CI, and the PR that landed this file carries its local + * `OS_TEST_POSTGRES_URL` is set and is a named skip otherwise; CI provisions + * that variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI, and the PR that landed this file carries its local * PostgreSQL 16 run. The live cell owns its tables, dropped before and after. */ From 6e12d6934a554b788950bf354653b8aab22a749d Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 3 Oct 2026 21:53:35 +0000 Subject: [PATCH 2/2] test(service-analytics): objectql-echo-date-bucket header says CI provisions the PostgreSQL URL The postgres-cell clause 'No CI step provisions that variable for this package, so the live cell is red-capable and un-run in CI' is false once the Temporal Conformance job's non-SQL step sets OS_TEST_POSTGRES_URL. Reworded the way the same clause reads in the other 14 service-analytics test files. Comment text only: no assertion, skip or test body changes. Claude-Session: https://claude.ai/code/session_01T9u38rswFp5Rw8DswRUReJ Co-authored-by: Claude --- .../src/__tests__/objectql-echo-date-bucket.test.ts | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/packages/services/service-analytics/src/__tests__/objectql-echo-date-bucket.test.ts b/packages/services/service-analytics/src/__tests__/objectql-echo-date-bucket.test.ts index c82c7f201d8..370bafc9555 100644 --- a/packages/services/service-analytics/src/__tests__/objectql-echo-date-bucket.test.ts +++ b/packages/services/service-analytics/src/__tests__/objectql-echo-date-bucket.test.ts @@ -30,9 +30,11 @@ * - **sqlite** (better-sqlite3), every run. Month, quarter and week are * grouped by the driver (SQLite's `week` arm landed with #21595). * - **postgres** where `OS_TEST_POSTGRES_URL` is set, a named skip otherwise. - * Month, quarter and week are grouped by the driver. No CI step provisions - * that variable for this package, so the live cell is red-capable and - * un-run in CI. + * Month, quarter and week are grouped by the driver. CI provisions that + * variable for this package in the Temporal Conformance job's step + * "Run the non-SQL temporal backends under the skewed process zone" + * (`.github/workflows/ci.yml`), so the live cell is red-capable and runs in + * CI. * * Where the hook answers nothing, the bucket keeps `date_trunc`: a non-UTC * `timezone` (the engine buckets in memory on that zone's calendar), and a host