Skip to content

fix: land the cloud@9794097 Router spec sync (regenerate, reconcile) - #211

Open
mattmillerai wants to merge 2 commits into
mainfrom
matt/land-router-spec-sync-9794097
Open

mattmillerai wants to merge 2 commits into
mainfrom
matt/land-router-spec-sync-9794097

Conversation

@mattmillerai

Copy link
Copy Markdown
Member

Summary

Lands the cloud@9794097 Comfy Router spec sync and the one follow-up it needs to go green.

  • The sync rewrote the meaning of the model_not_found error bucket. A model retired past its sunset date now lands there, and its detail gives the retirement date and, when one is visible, a live successor id instead of the suggestion list. scripts/check_drift.py and tests/test_router_spec_contract.py failed on the stale read marker. This PR rewords the ModelNotFound docstring to match and sets _spec_meaning_digest to 6c0e0e327e4d.
  • spec/openapi.yaml did not change, so _generated.py regenerates byte-identical and has no diff. Nothing is generated from the Router spec.
  • The sync also declares a new Router operation, estimateRouterModelCost (POST /v2/models/{provider}/{model}/estimate), and an optional estimate field on the queued-submit response. No SDK method is added here. No coverage gate requires Router operations to be bound, so the new operation is declared in the spec but not called by the SDK. Exposing it is a separate feature.

This PR carries #209's sync commit unchanged, followed by the fix commit. The fix can't go on #209 itself because the rolling sync branch must not take commits the sync workflow did not make. Once this lands, #209 has nothing left to merge.

ELI5

The Router docs changed how they describe "model not found": that error now also covers models that have been retired. Our SDK keeps a fingerprint of the description each error class was written against, so it notices when the docs move. This PR updates the class's description and its fingerprint so the check agrees again.

Provenance

Gates run locally on this branch:

  • ruff check .: passed
  • ruff format --check .: passed
  • mypy src: passed
  • pytest: 1265 passed, 9 skipped
  • python scripts/check_drift.py: all three checks OK
  • python3 scripts/check_public_repo_hygiene.py: OK
  • python -m build + twine check dist/*: both artifacts PASSED

mattmillerai and others added 2 commits October 9, 2026 22:22
…spec

The synced spec rewrote model_not_found's meaning: a model retired past its
sunset date now lands in this bucket, and its detail names the retirement
date and, when one is visible, a live successor id instead of a suggestion
list. Reword the docstring to cover that and record the new meaning digest
so the drift check and the contract test pass.
@mattmillerai
mattmillerai requested review from a team as code owners October 9, 2026 22:37
@mattmillerai
mattmillerai enabled auto-merge (squash) October 9, 2026 22:37
@coderabbitai

coderabbitai Bot commented Oct 9, 2026

Copy link
Copy Markdown

Warning

Review limit reached

  • Run on-demand review

This review includes 2 billable files and costs up to $0.50.

  • Ask an admin to make reviews automatic

Open in CodeRabbit

Reviews can continue after your included limit without a manual trigger. An admin must approve usage-based billing.

Or wait 40 seconds for your next included review.

Check out review usage here.

View limit details

Limit details: You’ve used the included review currently available. Your 131 included PR review attempts over the past 7 days set your current allowance at 1 review per hour.

Learn how review limits work.

Review configuration:

⚙️ Run configuration
  • Configuration used: Repository: Comfy-Org/comfy-python-sdk/.coderabbit.yaml
  • Review profile: ASSERTIVE
  • Plan: Team
  • Run ID: e2911381-53f7-443b-b82f-ef10d6ece358

📥 Commits

Reviewing files that changed from the base of the PR and between cddc298 and 954ef65.


📒 Files selected for processing (2)
  • spec/router-openapi.yaml
  • src/comfy_sdk/router_exceptions.py


  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

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

@mattmillerai mattmillerai added the cursor-review Request an automated Cursor review label Oct 9, 2026

@github-actions github-actions 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.

🔍 Cursor Review — Consolidated panel

Triggered by @mattmillerai.

Found 5 finding(s).

Severity Count
🟡 Medium 1
🟢 Low 3
⚪ Nit 1

Panel: 6/6 reviewers contributed findings.

Comment thread spec/router-openapi.yaml
Comment thread spec/router-openapi.yaml
Comment thread spec/router-openapi.yaml
Comment thread spec/router-openapi.yaml
Comment thread spec/router-openapi.yaml
@mattmillerai

Copy link
Copy Markdown
Member Author

🤖 The reviews loop filed Linear follow-up ticket(s) for review thread(s) deferred as out of scope for this PR:

  • BE-19970 — Expose the queued-submit cost estimate on RequestHandle / AsyncRequestHandle — filed as agent-spike (premise unverified)

The following carry agent-spike instead of agent-ok because their reachability claim was not backed by evidence (BE-5378) — the claim is investigated before any code is written, and "the premise does not hold" is a valid, successful outcome:

  • Expose the queued-submit cost estimate on RequestHandle / AsyncRequestHandle — no reachability block in the proposal

This branch has not been deployed

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

Labels

cursor-review Request an automated Cursor review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant