-
Notifications
You must be signed in to change notification settings - Fork 1
fix: cover Python-ahead analysis-run status write clock (v2.12.6) #326
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
4d267ef
80f44f6
a6f39ce
b476012
f9c53e7
2ebe657
3f8bb61
47ebb06
ee286e6
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,7 @@ | ||
| # 2.12.7 Analysis-run status write clock covers Python-ahead occurrence | ||
|
|
||
| Starting an analysis run against live PostgreSQL no longer fails | ||
| `occurred_at <= recorded_at`. The status trigger stamps `recorded_at` | ||
| as the later of `clock_timestamp()` and `occurred_at`. Occurrence | ||
| time is not clamped down. Same pattern as TEPP accepted clocks | ||
| (ADR 0013 follow-up). |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,8 +6,23 @@ All notable changes to this project are documented here. Format follows | |
|
|
||
| ## [Unreleased] | ||
|
|
||
| ## [2.12.7] - 2026-08-21 | ||
|
|
||
| ### Fixed | ||
|
|
||
| - Starting an analysis run against live PostgreSQL no longer fails | ||
| `analysis_run_status_time_check` (`occurred_at <= recorded_at`). | ||
| The 0018 BEFORE INSERT trigger now stamps `recorded_at` as | ||
| `greatest(clock_timestamp(), occurred_at)`, so a Python-ahead | ||
| `datetime.now(timezone.utc)` (~15-20ms after Postgres | ||
| `clock_timestamp()`) still satisfies the check. Occurrence time is | ||
| **not** clamped down: that would break monotonicity against | ||
| previously stored Python-ahead status events. Client-supplied | ||
| `recorded_at` is still discarded. Same pattern as TEPP accepted | ||
| clocks (ADR 0013 follow-up). Additive migration 0104 updates | ||
| existing volumes; fresh installs pick it up from 0018. After this | ||
| lands, Demo Analyst can start a Pending lineage run on the live | ||
| stack. | ||
| - `make smoke` and `make seed` now run through the locked project `uv` | ||
| environment, so local OIDC and synthetic-data workflows resolve the same | ||
| pinned dependencies as CI. | ||
|
|
@@ -33,6 +48,9 @@ All notable changes to this project are documented here. Format follows | |
|
|
||
| ### Fixed | ||
|
|
||
| - `make smoke` and `make seed` now run through the locked project `uv` | ||
| environment, so local OIDC and synthetic-data workflows resolve the same | ||
| pinned dependencies as CI. | ||
|
Comment on lines
+51
to
+53
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Changelog entry duplicated across two releases The Prompt for agentsWas this helpful? React with 👍 or 👎 to provide feedback. |
||
| - Migrations 0019 and 0025 (R&R role-catalog identity backfills) both | ||
| used `min(uuid_column)` to pick "the" value from a `having count(*) | ||
| = 1` group -- Postgres has no built-in `min(uuid)` aggregate, so | ||
|
|
@@ -75,6 +93,7 @@ All notable changes to this project are documented here. Format follows | |
| as out of scope for this migration-catchup change (a different | ||
| feature area -- analysis-run/TEPP lifecycle, not R&R/summary/ | ||
| verification) rather than rushed. 553 other tests unaffected. | ||
| Fixed in 2.12.7. | ||
|
|
||
| - `get_or_create_corporate_entity`'s post-lock duplicate-create re-check | ||
| fuzzy-matched against every cataloged entity, not just an exact | ||
|
|
||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🔍 Status write-clock fix is inert against the real insert paths The fix targets a Python-ahead (Refers to this code) Was this helpful? React with 👍 or 👎 to provide feedback. |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -55,4 +55,4 @@ | |
| "sentence_excerpts", | ||
| ] | ||
|
|
||
| __version__ = "2.12.6" | ||
| __version__ = "2.12.7" | ||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -18,8 +18,9 @@ | |
|
|
||
| from __future__ import annotations | ||
|
|
||
| from collections.abc import Callable | ||
| from dataclasses import dataclass | ||
| from typing import Any, Callable | ||
| from typing import Any | ||
|
|
||
|
|
||
| class TeppNotAvailable(RuntimeError): | ||
|
|
@@ -80,4 +81,9 @@ def __init__(self, transport: Callable[[dict[str, Any]], dict[str, Any]] = _no_t | |
|
|
||
| def submit_analysis_run(self, request: AnalysisRunRequest) -> dict[str, Any]: | ||
| """Submit a request; returns TEPP's ``AnalysisRunAccepted`` envelope.""" | ||
| return self._transport(request.to_json()) | ||
| try: | ||
| return self._transport(request.to_json()) | ||
| except TeppNotAvailable: | ||
| raise | ||
| except Exception as exc: | ||
| raise TeppNotAvailable("TEPP transport request failed") from exc | ||
|
Comment on lines
+84
to
+89
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 📝 Info: Broadened transport exception handling hides original error type
Was this helpful? React with 👍 or 👎 to provide feedback. |
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📝 Info: Unreleased changelog item reattributed to already-released 2.12.5
The
make smoke/make seeduv-environment entry was moved out of[Unreleased]and into the already-dated[2.12.5] - 2026-08-18section (CHANGELOG.md). Since 2.12.5 was previously published without this item, attributing an unreleased change to an already-released version is a documentation inaccuracy. Not a code bug, but worth confirming this was intentional rather than a merge artifact.Was this helpful? React with 👍 or 👎 to provide feedback.