Skip to content

[codex] Harden E2E readiness and Dagster launch retries#63

Merged
malon64 merged 4 commits into
mainfrom
agent/issue-61-e2e-readiness
Jul 19, 2026
Merged

[codex] Harden E2E readiness and Dagster launch retries#63
malon64 merged 4 commits into
mainfrom
agent/issue-61-e2e-readiness

Conversation

@malon64

@malon64 malon64 commented Jul 17, 2026

Copy link
Copy Markdown
Owner

Summary

Implements #61 by making E2E readiness workload-aware and Dagster launch retries bounded and duplicate-safe.

Changes

  • classify required services, suite-owned Jobs, and unrelated operational Jobs;
  • warn on unrelated failed Jobs with bounded identity/status/log diagnostics;
  • preserve hard failures for required services and suite-owned runs;
  • improve required Dagster repository readiness diagnostics;
  • retry transient transport/HTTP 5xx launch failures while failing 4xx immediately;
  • add stable launch tags and existing-run lookup after ambiguous responses;
  • retain bounded webserver and user-code diagnostics.

Validation

  • uv run --project tools/olf ruff check tools/olf
  • uv run --project tools/olf pytest tools/olf/tests/test_e2e.py (34 passed)
  • Full tooling tests (77 passed)
  • make check-structure check-contracts check-infra check-project-code check-dbt
  • git diff --check

No live local/AWS cluster was available for this PR; runtime validation remains an integration gate before merge.

Refs #61

@malon64
malon64 marked this pull request as ready for review July 17, 2026 21:48

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 49c36af219

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/olf/olf/e2e.py Outdated
@malon64
malon64 force-pushed the agent/issue-61-e2e-readiness branch from 49c36af to d50bc7d Compare July 17, 2026 21:57

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: d9d1f86b46

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/olf/olf/e2e.py
@malon64
malon64 merged commit 175470c into main Jul 19, 2026
6 checks passed
@malon64
malon64 deleted the agent/issue-61-e2e-readiness branch July 19, 2026 17:23

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 9f4a69d076

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread tools/olf/olf/e2e.py
Comment on lines +589 to +591
existing = self.find_run_by_tag(launch_key)
if existing:
return existing

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Wait for ambiguous launches before retrying

When a launch request times out or the connection drops after Dagster has accepted it but before runsOrError can see the new run, this single immediate lookup can return no matches and the loop then submits another launchRun with the same tag. The tag is only metadata on Dagster runs, so reusing it does not make the mutation idempotent; under a slow webserver this can launch the same product pipeline twice and duplicate/corrupt E2E data. Poll the tag for a bounded window, or use a true idempotency key, before retrying the mutation.

Useful? React with 👍 / 👎.

Comment thread tools/olf/olf/e2e.py
Comment on lines +128 to +129
if any(job in identity for job in suite_jobs):
return "suite-owned-job"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Don’t treat old product pods as current suite failures

Because check_pods_ready runs before launch_and_poll_dagster_jobs, any failed Dagster Job pod from a previous sales_order_revenue_pipeline/product run is still present when this code inspects owner names and labels, so it matches PRODUCT_JOBS here and is classified as suite-owned-job. That leaves historical product-run pods as hard readiness blockers even though the current suite has not launched anything yet; classify by a run/launch tag from this invocation, or downgrade pre-existing Dagster run Jobs until the current run IDs are known.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant