Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion .github/workflows/codex_audit.yml
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,8 @@ jobs:
CODEX_AUDIT_SERVICE_URL: ${{ secrets.CODEX_AUDIT_SERVICE_URL }}
CODEX_AUDIT_SERVICE_AUDIENCE: ${{ vars.CODEX_AUDIT_SERVICE_AUDIENCE || 'quant-codex-audit' }}
AI_GATEWAY_SOURCE_REPO: QuantStrategyLab/AIAuditBridge
AI_GATEWAY_RESEARCH_PROVIDERS: codex
# Canary-eligible daily briefing (research_summary): Cursor subscription.
AI_GATEWAY_RESEARCH_PROVIDERS: cursor
PYTHONDONTWRITEBYTECODE: "1"
run: |
set -euo pipefail
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/portfolio_research_proposal_diagnosis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,8 @@ jobs:
CODEX_AUDIT_SERVICE_URL: ${{ secrets.CODEX_AUDIT_SERVICE_URL }}
CODEX_AUDIT_SERVICE_AUDIENCE: ${{ vars.CODEX_AUDIT_SERVICE_AUDIENCE || 'quant-codex-audit' }}
READINESS_INPUT: ${{ steps.readiness.outputs.input }}
# Canary-eligible portfolio diagnosis: Cursor subscription; fallback stays off.
AI_GATEWAY_RESEARCH_PROVIDERS: cursor
run: |
set -euo pipefail
output_dir="${RUNNER_TEMP}/portfolio-research-proposal"
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/strategy_optimization_watcher.yml
Original file line number Diff line number Diff line change
Expand Up @@ -346,7 +346,7 @@ jobs:
fi
done

- name: Run one bounded Codex-only research diagnosis
- name: Run one bounded Cursor research diagnosis
id: research-diagnosis
if: steps.fetch-metrics.outputs.downloaded == 'true' && github.event_name == 'schedule'
env:
Expand All @@ -355,6 +355,9 @@ jobs:
CODEX_AUDIT_SERVICE_URL: ${{ secrets.CODEX_AUDIT_SERVICE_URL }}
CODEX_AUDIT_SERVICE_AUDIENCE: ${{ vars.CODEX_AUDIT_SERVICE_AUDIENCE || 'quant-codex-audit' }}
RESEARCH_DIAGNOSIS_MAX_PER_RUN: "1"
# Canary-eligible diagnosis lane: Cursor subscription (sandbox enabled).
# Codegen / CN / promotion jobs below stay AI_GATEWAY_RESEARCH_PROVIDERS=codex.
AI_GATEWAY_RESEARCH_PROVIDERS: cursor
working-directory: bridge
run: |
set -euo pipefail
Expand Down
1 change: 1 addition & 0 deletions tests/test_daily_briefing_summary.py
Original file line number Diff line number Diff line change
Expand Up @@ -203,6 +203,7 @@ def test_daily_job_uses_existing_oidc_workflow_and_only_exports_summary():
assert "ACTIONS_ID_TOKEN_REQUEST_TOKEN" not in job
assert "uses: actions/upload-artifact@v7" in job and "if: always()" in job
assert "path: daily-ai-summary.json" in job
assert "AI_GATEWAY_RESEARCH_PROVIDERS: cursor" in job.split("\n operational-diagnosis:", 1)[0]


def test_historical_diagnosis_rehearsal_is_manual_oidc_codex_only():
Expand Down
1 change: 1 addition & 0 deletions tests/test_portfolio_research_proposal_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ def test_workflow_only_consumes_sanitized_readiness_and_comments_existing_issue(
self.assertIn("portfolio-candidate-readiness.yml", text)
self.assertIn("portfolio-candidate-readiness-*", text)
self.assertIn("run_portfolio_research_proposal_diagnosis.py", text)
self.assertIn("AI_GATEWAY_RESEARCH_PROVIDERS: cursor", text)
self.assertIn("actions/create-github-app-token", text)
self.assertIn("permission-actions: read", text)
self.assertIn("permission-issues: write", text)
Expand Down
4 changes: 3 additions & 1 deletion tests/test_strategy_optimization_watcher_workflow.py
Original file line number Diff line number Diff line change
Expand Up @@ -42,9 +42,11 @@ def test_workflow_uses_source_metrics_checkout(self) -> None:
self.assertIn("p1-status.json", text)
self.assertIn("soxl_soxx_trend_income", text)
self.assertIn("python -m scripts.run_research_task_diagnosis", text)
self.assertIn("AI_GATEWAY_RESEARCH_PROVIDERS: cursor", text)
self.assertIn("Run one bounded Cursor research diagnosis", text)
self.assertIn("Recover pending verified watcher tasks", text)
recovery = text.split(" - name: Recover pending verified watcher tasks", 1)[1].split(
" - name: Run one bounded Codex-only research diagnosis", 1
" - name: Run one bounded Cursor research diagnosis", 1
)[0]
self.assertIn("github.event.schedule == '23 6 * * *'", recovery)
self.assertIn("--event schedule --status success --limit 20", text)
Expand Down