build(deps-dev): update ruff requirement from >=0.15.20 to >=0.15.21#237
Merged
Conversation
Updates the requirements on [ruff](https://github.com/astral-sh/ruff) to permit the latest version. - [Release notes](https://github.com/astral-sh/ruff/releases) - [Changelog](https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md) - [Commits](astral-sh/ruff@0.15.20...0.15.21) --- updated-dependencies: - dependency-name: ruff dependency-version: 0.15.21 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
Contributor
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
AVADSA25
added a commit
that referenced
this pull request
Jul 13, 2026
…237) (#238) PR #237 (a harmless ruff version bump) went red on CI/smoke with two failures that have nothing to do with ruff — both pass in isolation and are pre-existing timing flakes: * test_deadline_timeout: `assert len(timeouts) == 1` saw 2. ask() is synchronous and finalizes exactly one timeout per call, so the extra event came from a background-threaded ask() in a NEIGHBOURING test finalizing late into this test's audit log (_log_event reads the log path live at write-time). Now scoped: count only emit/timeout events whose extra.pending_question_id is THIS test's qid. * test_round_trip: "notification not written". ask() writes the pending record and the notification as two separate writes; the test polled for the record then asserted on the notification, which can lag under load. Now polls for the notification too. Both are test-only changes; runtime code untouched. Verified: the two tests pass 10/10 under repeated runs; full suite 2497 passed. Co-authored-by: Mickael Farina <farina.mickael@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
AVADSA25
added a commit
that referenced
this pull request
Jul 13, 2026
…239) * test(ask_user): de-flake two CI-timing failures (unblocks dependabot #237) PR #237 (a harmless ruff version bump) went red on CI/smoke with two failures that have nothing to do with ruff — both pass in isolation and are pre-existing timing flakes: * test_deadline_timeout: `assert len(timeouts) == 1` saw 2. ask() is synchronous and finalizes exactly one timeout per call, so the extra event came from a background-threaded ask() in a NEIGHBOURING test finalizing late into this test's audit log (_log_event reads the log path live at write-time). Now scoped: count only emit/timeout events whose extra.pending_question_id is THIS test's qid. * test_round_trip: "notification not written". ask() writes the pending record and the notification as two separate writes; the test polled for the record then asserted on the notification, which can lag under load. Now polls for the notification too. Both are test-only changes; runtime code untouched. Verified: the two tests pass 10/10 under repeated runs; full suite 2497 passed. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * docs(demo): lock the corrected 25-beat script with a live-test line per beat Restores the full list I over-tightened, fixes status (Vision Mouse #7 = done; Pilot #14 = half-broken), and adds the 3 new beats: MCP client (#23, bidirectional with the MCP server #18), self-improve live (#24), Compare (#25). Each beat now carries an exact TRY/EXPECT so it doubles as the test sheet. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * feat(mcp): CODEC as an MCP client — connect out to other MCP servers (beat #23) CODEC already exposes its skills as an MCP *server* (Claude plugs into CODEC). This adds the other direction: CODEC reaches OUT to external MCP servers — the same public connectors Claude uses (Notion, GitHub, Linear, Stripe, Hugging Face, …) — and calls their tools. CODEC is now bidirectional MCP. - skills/mcp_connect.py: a bridge skill over fastmcp.Client (already a dependency — no new install). Servers declared in ~/.codec/mcp_servers.json, seeded on first use with a curated menu of popular servers (most ship disabled pending the operator's OAuth/API key — enabling is a one-line edit). Grammar: "list mcp" · "list tools on <server>" · 'call <server> <tool> {json}' · or any mention of a server → connect + list its tools. async fastmcp.Client is bridged to CODEC's sync skill contract via a fresh loop on a worker thread. Not exposed on CODEC's own outbound MCP server (SKILL_MCP_EXPOSE=False) so a remote client can't chain CODEC -> arbitrary third-party tools unattended. - Verified against a REAL public server: connected to huggingface.co/mcp and listed its live tools (hf_whoami, space_search, hub_repo_search, hf_fs, …). - 9 unit tests (fastmcp.Client faked — network-free): config seeding, list, call, disabled-server guard, bad-JSON, unknown-server, network-error. D-1 manifest regenerated (87 skills). ruff clean. Demo beat #23 (right after the MCP-server beat #18): "CODEC, connect to Notion and create a page" -> CODEC calls out to the external MCP. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> * test(mcp_connect): drop unused import + dead var (ruff F401 gate) * docs(features): 86 -> 87 skills (mcp_connect) — satisfy the public-claims guard --------- Co-authored-by: Mickael Farina <farina.mickael@gmail.com> Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Updates the requirements on ruff to permit the latest version.
Release notes
Sourced from ruff's releases.
... (truncated)
Changelog
Sourced from ruff's changelog.
... (truncated)
Commits
3e1f636Bump 0.15.21 (#26676)4059807[ty] Infer metaclass-declared attributes on class instances (#26512)013e5d0[ty] Use a dedicated project name type (#26665)7ad39ad[ty] Avoid allocating decorated parameter names (#26666)c36f662Improve performance of rendering edits in preview mode (#26565)ad26408[ty] Gate membership narrowing on__contains__semantics (#25964)4594ca7[ty] Add variant discriminators forCodeGeneratorKind(#26659)1af03da[ty] Pydantic: Fix float conversion in unions (#26655)a004a36[ty] Handle callable classes in solver (#26090)d8ef3b0[ty] Parse all supported Google docstring sections. (#26653)Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)