Skip to content

fix(copilot): pin Sonnet 5 and surface unavailable models - #293

Merged
DevSecNinja merged 1 commit into
mainfrom
devsecninja-pin-wazzup-to-sonnet-5
Sep 23, 2026
Merged

DevSecNinja merged 1 commit into
mainfrom
devsecninja-pin-wazzup-to-sonnet-5

Conversation

@DevSecNinja

@DevSecNinja DevSecNinja commented Sep 23, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • Replace the retired Sonnet 4.6 selections with explicit claude-sonnet-5 pins in the provider default, News workflow, curator agent, and transparency reporter agent.
  • Keep the claude-opus-4.8 writer pin, constructor/environment override precedence, and explicit --model command construction unchanged.
  • Surface the reported unavailable-model CLI diagnostic as a blocking error in transparency reporting rather than substituting its deterministic report. Preserve other existing fallback behavior, including missing-token handling.
  • Update corresponding documentation/examples and add regression coverage. The PR contains only the 10 approved migration files; no tracked Sonnet 4.6 references remain.

Validation

  • 37 targeted AI/workflow tests passed, including 24 subcases covering all three providers, default/shared/writer/constructor overrides, exact --model arguments, stdout/stderr diagnostics, and no retries.
  • 97 full-suite tests passed with Python 3.14.7.
  • Formatting, Python syntax lint, compilation, fixture generation with AI_PROVIDER=fake, generated-data validation, and git diff --check passed in CI order.
  • Windows validation required tzdata in the ignored local virtual environment; dependency manifests are unchanged.
  • Non-billable local CLI 1.0.87 copilot help config lists claude-sonnet-5. Live account/Actions model availability was not exercised.

No live paid prompt, live news pipeline, or external publishing was run.

Summary by CodeRabbit

  • Updates
    • Curator and transparency reporting now use Claude Sonnet 5 by default; briefing writing uses Claude Opus 4.8.
    • Workflow configuration and documentation now describe model overrides and clarify that an unavailable explicitly selected model stops the run without retrying or falling back.
    • Transparency reports no longer use a fallback when the configured model is unavailable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@github-actions github-actions Bot added area/docs Documentation and ADRs area/github GitHub Actions, Renovate, labels, and repository automation area/backend Python ingestion, scoring, AI provider, and publisher code labels Sep 23, 2026
@coderabbitai

coderabbitai Bot commented Sep 23, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Advanced

Run ID: 8e473f3f-298e-47f3-a96b-68ccf7f6da4a

📥 Commits

Reviewing files that changed from the base of the PR and between cd3848d and 8553596.

📒 Files selected for processing (10)
  • .github/agents/wazzup-curator.agent.md
  • .github/agents/wazzup-transparency-reporter.agent.md
  • .github/copilot-instructions.md
  • .github/workflows/news.yml
  • docs/adr/0002-ai-execution-strategy.md
  • docs/architecture.md
  • docs/github-actions.md
  • src/wazzup/ai.py
  • tests/test_ai.py
  • tests/test_workflows.py

Included review availability: Your plan provides up to 10 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The change updates Copilot model defaults and workflow configuration, documents writer model selection and override precedence, and changes transparency report handling for unavailable configured models.

Changes

Copilot model configuration

Layer / File(s) Summary
Agent and workflow model configuration
.github/agents/wazzup-curator.agent.md, .github/agents/wazzup-transparency-reporter.agent.md, .github/copilot-instructions.md, .github/workflows/news.yml, docs/adr/0002-ai-execution-strategy.md, docs/architecture.md, docs/github-actions.md, tests/test_workflows.py
Curator and transparency defaults change to claude-sonnet-5. Documentation describes the writer’s claude-opus-4.8 default, model override precedence, and unavailable-model behavior. Workflow tests verify model pins.
Provider model selection and unavailable-model handling
src/wazzup/ai.py, tests/test_ai.py
The Copilot CLI default changes to claude-sonnet-5. Transparency report generation re-raises errors that identify the configured model as unavailable. Tests cover model selection, CLI diagnostics, and default selection with COPILOT_MODEL cleared.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~12 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 85535

Configured unavailable models now block the News workflow as intended, while the updated model pins and override behavior remain consistent. No actionable merge-blocking risk remains.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 10.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 3 files. (7 skipped: … Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main changes: pinning Sonnet 5 and surfacing unavailable-model errors.
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.
Full details: Docstring Coverage

Explanation

Docstring coverage is 10.00% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 10 functions across 3 files. (7 skipped: 7 unsupported.)

  • Fix all pre-merge checks with AI
✨ Finishing Touches 💡 1
📝 Generate docstrings 💡
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

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

@DevSecNinja
DevSecNinja merged commit 8f52d5b into main Sep 23, 2026
17 checks passed
@DevSecNinja
DevSecNinja deleted the devsecninja-pin-wazzup-to-sonnet-5 branch September 23, 2026 08:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/backend Python ingestion, scoring, AI provider, and publisher code area/docs Documentation and ADRs area/github GitHub Actions, Renovate, labels, and repository automation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant