Skip to content

fix(deps): regenerate drifted lockfiles + add lock self-heal workflow - #638

Merged
Opselon merged 1 commit into
mainfrom
fix/dependency-drift-regen
Oct 5, 2026
Merged

Opselon merged 1 commit into
mainfrom
fix/dependency-drift-regen

Conversation

@Opselon

@Opselon Opselon commented Oct 5, 2026

Copy link
Copy Markdown
Owner

Root cause

Dependabot bumps the version ranges in pyproject.toml but it cannot run uv pip compile, so every dependency PR it opens carries a stale requirements.lock. The required Dependency drift (lock vs pyproject) gate then fails on all of them and blocks the merge queue (#633, #634, #635, #636, #637).

Fix (two parts)

  1. Regenerate the artifacts from the current pyproject.toml (uv 0.12.10, --python-version 3.11) so main is internally consistent again. This alone turns every PR green that does not itself touch pyproject.toml — all npm/frontend and github-actions PRs — because the gate compares the committed lock against a fresh compile of pyproject.toml.
  2. Add .github/workflows/dependency-autoregen.yml — a self-heal keeper:
    • push to main/develop on pyproject.toml → regenerate + commit in place. main can never stay drifted.
    • pull_request that moves pyproject.toml → push the regenerated artifacts onto the PR branch and re-request the check suites (a GITHUB_TOKEN push emits no workflow events, so the gates must be nudged).
    • Idempotent: when the artifacts already match, --regen rewrites the same bytes and nothing is committed. Converges after at most one extra commit.

Test plan

Closes the drift blocker behind #633-#637.

Root cause: Dependabot bumps ranges in pyproject.toml but cannot run
uv pip compile, so it opens PRs whose committed requirements.lock is
stale. The required "Dependency drift (lock vs pyproject)" gate then
fails on every dependency PR and blocks the merge queue (#633-#637).

Two-part fix:
  1. Regenerate requirements.lock + requirements.txt from the current
     pyproject.toml (uv 0.12.10, --python-version 3.11) so main is
     consistent again. Every PR that does not itself touch
     pyproject.toml (all npm/frontend and github-actions PRs) goes green
     because the gate compares the committed lock against a fresh compile.
  2. Add .github/workflows/dependency-autoregen.yml: on any pyproject.toml
     change reaching main it regenerates and commits the artifacts in place
     (main can never stay drifted); on PRs that move pyproject.toml it
     pushes the regenerated artifacts onto the PR branch and re-requests
     the check suites. Idempotent - converges after one commit.
@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@github-actions

github-actions Bot commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

🔴 NSE Evidence Report — #638

Status: FAIL · Branch: fix/dependency-drift-regen → main · HEAD: 8864c4b82cc9

🔗 Revision

Source SHA
PR HEAD 8864c4b82cc9
Local unknown
CI 8864c4b82cc9

Overall

🔴 FAIL

Required CI checks contain failures.

Primary affected files:

  1. dynamic/agents/github-advanced-security
  2. Processing Request

🧪 Test Matrix

Gate Status Passed Failed Skipped Duration
Aggregate CI Results ⏭️ — 0 — —
Heavy CI (${{ matrix.suite }}) ⏭️ — 0 — 0s
Extended Validation (Tier 2) ⏭️ — 0 — 0s
Full Runtime Overall Verdict ✅ — 0 — 10s
DB Fabric Certification (SQLite ↔ PostgreSQL) ✅ — 0 — 3m19s
CodeQL ✅ — 0 — 3s
Deploy GitHub Pages ⏭️ — 0 — 0s
osv-scanner ✅ — 0 — 3s
Trivy ✅ — 0 — 3s
Socket Security: Pull Request Alerts ✅ — 0 — 14s
Socket Security: Project Report ✅ — 0 — 6s
github-advanced-security ❌ — 1 — 51s
OSV Scanner / osv-scan ✅ — 0 — 28s
Validate documentation ✅ — 0 — 11s
MetaTrader 5 Wine Runtime ✅ — 0 — 8m27s
Code Quality & Tests ✅ — 0 — 11m47s
CI Integrity and Change Classification ✅ — 0 — 10s
Trivy Vulnerability Scan ✅ — 0 — 32s
Full NSE Runtime (sqlite) ✅ — 0 — 5m01s
Dependency drift (lock vs pyproject) ✅ — 0 — 11s
Frontend JS Unit Tests ✅ — 0 — 23s
CodeQL Analysis ✅ — 0 — 1m32s
Full NSE Runtime (postgres) ✅ — 0 — 5m37s
Dependency Manifest Diff ✅ — 0 — 9s
Migration safety (fail-loud + version postconditions) ✅ — 0 — 47s
Py Tests (macos-latest) ✅ — 0 — 14s
Py Tests (windows-latest) ✅ — 0 — 3m23s

🔴 Affected Files

Processing Request

  • Processing Request
    • SessionModelError
    • CI: github-advanced-security

dynamic/agents/github-advanced-security

  • dynamic/agents/github-advanced-security
    • CI: github-advanced-security
    • Failed step: Processing Request (Linux)

🔴 What Failed and Why

1. Processing Request (Linux)

Severity: ERROR

Where: dynamic/agents/github-advanced-security

Failed step: Processing Request (Linux)

Kind: SECURITY_FINDING

Result / Why:

Process completed with exit code 1.

CI: github-advanced-security (logs)

Evidence: source github-checks, via github-checks

2. SessionModelError

Where: Processing Request

Kind: CI_FAILURE

Error / rule: SessionModelError

Result / Why:

Error creating PR review request: SessionModelError: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299); cause: Error: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299) (errorDetails: {"configurationError":false,"stack":"SessionModelError: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299)\n    at LI (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1114:10116)\n    at runNextTicks (node:internal/process/task_queues:65:5)\n    at process.processImmediate (node:internal/timers:541:9)\n    at async file:///home/runner/work/_temp/***-action-main/dist-auto …

Trace:

Error creating PR review request: SessionModelError: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299); cause: Error: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299) (errorDetails: {"configurationError":false,"stack":"SessionModelError: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299)\n    at LI (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1114:10116)\n    at runNextTicks (node:internal/process/task_queues:65:5)\n    at process.processImmediate (node:internal/timers:541:9)\n    at async file:///home/runner/work/_temp/***-action-main/dist-auto …
Reporting error to sweagentd...
Error successfully reported to sweagentd session.
Error successfully reported to sweagentd backend.
eb [SessionModelError]: You have exceeded your monthly quota (Request ID: 0DC0:35F093:19BE7F6:1B739D5:6AC3F299)
at LI (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1114:10116)
at runNextTicks (node:internal/process/task_queues:65:5)
at process.processImmediate (node:internal/timers:541:9)
at async file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1003:8471
at async jp (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1003:8529)
at async Zn (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1114:10473)
at async QR (file:///home/runner/work/_temp/***-action-main/dist-autofind-ts/ts/autofind.js:1600:1365)
at async MF (file:///home/runner/ …

CI: github-advanced-security (logs)

Evidence: source job-logs, via job-logs

⚠️ Warnings

1. Full Runtime Overall Verdict

Severity: WARNING

Where: unknown

Result / Details:

sqlite has warnings; inspect provider_runtime_soak.json

CI: Full Runtime Overall Verdict (logs)

Evidence: source github-checks, via github-checks

2. Full Runtime Overall Verdict

Severity: WARNING

Where: unknown

Result / Details:

postgres has warnings; inspect provider_runtime_soak.json

CI: Full Runtime Overall Verdict (logs)

Evidence: source github-checks, via github-checks

3. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:19.048+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

4. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:15.039+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

5. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:15.023+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

6. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:12.388+03:30 [warning  ] [LATENCY_REGRESSION] event=E2E_P95_REGRESSED p95_ms=75.374 budget_p95_ms=75.0 epochs=1 [nexus_scalp.application.live.inference]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

7. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:10.988+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

8. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:10.979+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

9. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:06.961+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

10. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:06.951+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

11. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:04.121+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

12. Full NSE Runtime (sqlite)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:57:04.111+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (sqlite) (logs)

Evidence: source github-checks, via github-checks

13. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:16.255+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

14. Full NSE Runtime (postgres)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:16.192+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

15. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:12.241+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

16. Full NSE Runtime (postgres)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:12.166+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

17. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:08.249+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

18. Full NSE Runtime (postgres)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:08.120+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

19. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:04.188+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

20. Full NSE Runtime (postgres)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:04.112+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

21. ENTRY_BLOCKED

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:01.099+03:30 [warning  ] [ENTRY_BLOCKED] layer=RISK_ENGINE reason=RISK_EVALUATION_REJECTED action=BUY_LIMIT symbol=XAUUSD [REDACTED_SECRET] [nexus_scalp.application.live.decision_executor]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

22. Full NSE Runtime (postgres)

Severity: WARNING

Where: unknown

Result / Details:

2026-10-05T18:58:01.031+03:30 [warning  ] Proposal rejected: Pending entry price is too close to market (Stops Level violation) [nexus_scalp.risk.risk_engine]

CI: Full NSE Runtime (postgres) (logs)

Evidence: source github-checks, via github-checks

🏗️ CI Jobs

Workflow Job Status Details
CI Aggregate CI Results ⏭️ SKIPPED logs
CI Heavy CI (${{ matrix.suite }}) ⏭️ SKIPPED logs
CI Extended Validation (Tier 2) ⏭️ SKIPPED logs
CI Full Runtime Overall Verdict ✅ SUCCESS logs
CI DB Fabric Certification (SQLite ↔ PostgreSQL) ✅ SUCCESS logs
GitHub Advanced Security CodeQL ✅ SUCCESS logs
Docs Deploy GitHub Pages ⏭️ SKIPPED logs
GitHub Advanced Security osv-scanner ✅ SUCCESS logs
GitHub Advanced Security Trivy ✅ SUCCESS logs
Socket Security Socket Security: Pull Request Alerts ✅ SUCCESS logs
Socket Security Socket Security: Project Report ✅ SUCCESS logs
Code scanning AI findings on PR #638 github-advanced-security ❌ FAILURE logs
OSV Dependency Scan OSV Scanner / osv-scan ✅ SUCCESS logs
Docs Validate documentation ✅ SUCCESS logs
CI MetaTrader 5 Wine Runtime ✅ SUCCESS logs
CI Code Quality & Tests ✅ SUCCESS logs
CI CI Integrity and Change Classification ✅ SUCCESS logs
Security Trivy Vulnerability Scan ✅ SUCCESS logs
CI Full NSE Runtime (sqlite) ✅ SUCCESS logs
Dependency Lock & Migration Safety Dependency drift (lock vs pyproject) ✅ SUCCESS logs
JS Tests Frontend JS Unit Tests ✅ SUCCESS logs
Security CodeQL Analysis ✅ SUCCESS logs
CI Full NSE Runtime (postgres) ✅ SUCCESS logs
Lockfile Diff Dependency Manifest Diff ✅ SUCCESS logs
Dependency Lock & Migration Safety Migration safety (fail-loud + version postconditions) ✅ SUCCESS logs
Tests (OS Matrix) Py Tests (macos-latest) ✅ SUCCESS logs
Tests (OS Matrix) Py Tests (windows-latest) ✅ SUCCESS logs

✅ Final Verdict — Merge? Yes — already merged

Already merged — mergeability is history, not a question:

  • Already merged on 2026-10-05T19:07:47Z.

NSE Evidence Report — generated by nse pr report. Statuses are deterministic: 🟢 PASS · 🟡 IN PROGRESS · 🟠 BLOCKED · 🔴 FAIL · ⚪ UNKNOWN. unknown = the evidence did not determine it. This comment is updated in place; it never duplicates.

@Opselon
Opselon merged commit a38c153 into main Oct 5, 2026
26 of 27 checks passed
@Opselon
Opselon deleted the fix/dependency-drift-regen branch October 5, 2026 19:07
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