Skip to content

[codex] Add LangSmith fleet artifact upload - #2473

Merged
stranske merged 3 commits into
mainfrom
codex/langsmith-fleet-artifacts-flow
Jun 19, 2026
Merged

[codex] Add LangSmith fleet artifact upload#2473
stranske merged 3 commits into
mainfrom
codex/langsmith-fleet-artifacts-flow

Conversation

@stranske

@stranske stranske commented Jun 19, 2026

Copy link
Copy Markdown
Owner

Summary

  • upload artifacts/langsmith/langsmith-fleet.ndjson from reusable Python CI when a consumer repo produces it
  • restrict the upload to the primary Python matrix entry to avoid duplicate artifact names
  • add workflow contract coverage for the LangSmith fleet telemetry artifact

Validation

  • uv run pytest tests/workflows/test_reusable_ci_workflow.py tests/workflows/test_langsmith_metrics_dashboard.py tests/scripts/test_langsmith_fleet.py tests/scripts/test_langsmith_fleet_conformance.py
  • scripts/sync_templates.sh
  • python scripts/validate_template_completeness.py

Orchestrator context

This closes the producer side of the dry LangSmith execution plane. The local Orchestrator fetcher was also updated and mirror-synced so rollup fallback scans paginated artifact lists.

Summary by CodeRabbit

  • Chores
    • Updated the CI workflow to always resolve the primary Python version, even if earlier steps fail.
    • Added conditional LangSmith “fleet telemetry” artifact collection and upload with safe missing-file handling and 90-day retention.
  • Tests
    • Extended CI workflow validation to verify the new telemetry artifact steps’ configuration, gating behavior, and ordering.

@stranske

Copy link
Copy Markdown
Owner Author

Post-push review pass:

  • No PR comments, reviews, or inline diff comments were present.
  • GitHub reported no checks and no Actions runs for this draft branch after the wait window.
  • Local validation remains green: focused pytest suite, scripts/sync_templates.sh, and python scripts/validate_template_completeness.py.

@stranske
stranske marked this pull request as ready for review June 19, 2026 18:22
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Walkthrough

Two new steps are added to the Python CI workflow test job: one checks whether artifacts/langsmith/langsmith-fleet.ndjson exists and outputs exists/path values, and another conditionally uploads it as a 90-day artifact under the primary Python version guard. The "Resolve primary python version" step is updated to run with always() to ensure resolution even when earlier steps fail. The corresponding test is extended to assert these steps' configuration and ordering.

Changes

LangSmith Fleet Telemetry Artifact Handling

Layer / File(s) Summary
Workflow configuration: primary version resolution and fleet telemetry steps
.github/workflows/reusable-10-ci-python.yml
The "Resolve primary python version" step is updated to run with if: always(). A check step detects artifacts/langsmith/langsmith-fleet.ndjson and outputs exists/path values. An upload step runs under always() with continue-on-error: true and 90-day retention, conditionally executing only when the artifact exists and running on the primary Python version.
Test validation for fleet telemetry steps
tests/workflows/test_reusable_ci_workflow.py
The test asserts the check step's id, run command substrings, and the upload step's with fields (name, path, continue-on-error, if-no-files-found, retention-days, overwrite). Validates the upload step's normalized if expression includes always(), primary version gating, and file existence checks. Asserts relative step ordering (check step, then upload step, both following the coverage artifact step).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • stranske/Workflows#2424: Both PRs modify GitHub Actions to upload LangSmith "fleet" NDJSON artifacts (adding/retaining dedicated fleet upload steps and extending tests to assert the upload-artifact configuration/paths), so the changes are directly connected at the workflow artifact wiring level.
  • stranske/Workflows#2426: The main PR's additions validate a new actions/upload-artifact@v7 "LangSmith fleet telemetry" upload step/condition, which directly aligns with the retrieved PR's workflow validator and tests being updated to require actions/upload-artifact@v7 instead of v6.

Suggested labels

codex

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding LangSmith fleet artifact upload functionality to the CI workflow, which is the primary focus of the changeset.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch codex/langsmith-fleet-artifacts-flow

Comment @coderabbitai help to get the list of available commands and usage tips.

@stranske
stranske temporarily deployed to agent-high-privilege June 19, 2026 18:22 — with GitHub Actions Inactive
@agents-workflows-bot

Copy link
Copy Markdown
Contributor

Workflow source needed

PR #2473 needs either a linked GitHub issue or one valid non-issue Workflow Source before PR metadata automation can manage it safely.

Please do one of:

  • Add <!-- meta:issue:123 --> or a normal Closes #123 / Related to #123 line.
  • Check one Workflow Source option in the PR body.
  • Add a hidden marker such as <!-- workflow-source:local_request -->, <!-- workflow-source:manual_remote -->, <!-- workflow-source:review_followup -->, <!-- workflow-source:sync_campaign -->, or <!-- workflow-source:dependabot -->.
  • Add a workflow source label such as workflow:source-direct-pr, workflow:source-local-request, workflow:source-review-followup, workflow:source-sync, or workflow:no-automation.

Once a valid source is present, this warning will not be reposted.

@stranske-keepalive

stranske-keepalive Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Automated Status Summary

Head SHA: 5d41e72
Latest Runs: ⏳ pending — Gate
Required contexts: Gate / gate, Health 45 Agents Guard / guard
Required: core tests (3.12): ⏳ pending, core tests (3.13): ⏳ pending, docker smoke: ⏳ pending, gate: ⏳ pending

Workflow / Job Result Logs
(no jobs reported) ⏳ pending

Coverage Overview

  • Coverage history entries: 1

Coverage Trend

Metric Value
Current 70.49%
Baseline 85.00%
Delta -14.51%
Minimum 70.00%
Status ✅ Pass

Top Coverage Hotspots (lowest coverage)

File Coverage Missing
scripts/check_api_wrapper_guard.py 0.0% 123
scripts/cleanup_labels.py 0.0% 127
scripts/issue_dedup_smoke.py 0.0% 4
scripts/list_registered_consumer_repos.py 0.0% 33
scripts/repo_review_backlog_scan.py 0.0% 203
scripts/repo_review_round1_runner.py 0.0% 225
scripts/repo_review_round1_schema.py 0.0% 194
scripts/runner_lib/__main__.py 0.0% 3
scripts/update_langchain_versions.py 0.0% 34
scripts/validate_dependency_test_setup.py 0.0% 112
scripts/validate_template_completeness.py 0.0% 88
scripts/validate_template_sync.py 0.0% 77
scripts/validate_workflow_yaml.py 0.0% 98
scripts/repo_review_round2_schema.py 8.8% 185
scripts/langchain/topic_splitter.py 19.1% 57

Low Coverage Files (<50.0%)

File Coverage Missing
scripts/check_api_wrapper_guard.py 0.0% 123
scripts/cleanup_labels.py 0.0% 127
scripts/issue_dedup_smoke.py 0.0% 4
scripts/list_registered_consumer_repos.py 0.0% 33
scripts/repo_review_backlog_scan.py 0.0% 203
scripts/repo_review_round1_runner.py 0.0% 225
scripts/repo_review_round1_schema.py 0.0% 194
scripts/runner_lib/__main__.py 0.0% 3
scripts/update_langchain_versions.py 0.0% 34
scripts/validate_dependency_test_setup.py 0.0% 112
scripts/validate_template_completeness.py 0.0% 88
scripts/validate_template_sync.py 0.0% 77
scripts/validate_workflow_yaml.py 0.0% 98
scripts/repo_review_round2_schema.py 8.8% 185
scripts/langchain/topic_splitter.py 19.1% 57

Updated automatically; will refresh on subsequent CI/Docker completions.


Keepalive checklist

Scope

No scope information available

Tasks

  • No tasks defined

Acceptance criteria

  • No acceptance criteria defined

@stranske
stranske temporarily deployed to agent-high-privilege June 19, 2026 18:25 — with GitHub Actions Inactive

@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: c5fb8a8ef0

ℹ️ 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 .github/workflows/reusable-10-ci-python.yml
Comment thread .github/workflows/reusable-10-ci-python.yml Outdated
@stranske

Copy link
Copy Markdown
Owner Author

Closer follow-up for Codex review threads:

  • Commit 187f901b makes Resolve primary python version run under always() so failure telemetry can still evaluate PRIMARY_PYTHON_VERSION.
  • LangSmith fleet telemetry uploads now use ${{ inputs['artifact-prefix'] }}langsmith-fleet so multi-job callers get unique artifact names.
  • Validation: uv run pytest tests/workflows/test_reusable_ci_workflow.py -q; scripts/sync_templates.sh && python scripts/validate_template_completeness.py.

Resolved the two Codex review threads after push.

@stranske
stranske temporarily deployed to agent-high-privilege June 19, 2026 19:25 — with GitHub Actions Inactive
@stranske

stranske commented Jun 19, 2026

Copy link
Copy Markdown
Owner Author

Runner dispatch state for autofix on PR #2473. Do not edit.

@github-actions github-actions Bot added the autofix Opt-in automated formatting & lint remediation label Jun 19, 2026
@github-actions

github-actions Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Runner dispatch state for codex on PR #2473. Do not edit.

@stranske
stranske temporarily deployed to agent-standard June 19, 2026 19:29 — with GitHub Actions Inactive
@github-actions

Copy link
Copy Markdown
Contributor

Autofix updated these files:

  • tests/workflows/test_reusable_ci_workflow.py

@agents-workflows-bot
agents-workflows-bot Bot temporarily deployed to agent-high-privilege June 19, 2026 19:30 Inactive
@stranske
stranske merged commit 09d0fee into main Jun 19, 2026
130 checks passed
@stranske
stranske deleted the codex/langsmith-fleet-artifacts-flow branch June 19, 2026 20:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

autofix:patch autofix Opt-in automated formatting & lint remediation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant