Skip to content

Fix keyboard help rendering alternative keys as chords - #718

Merged
rwydaegh merged 1 commit into
masterfrom
claude/fix-keyboard-help-alternative-keys
Apr 20, 2026
Merged

rwydaegh merged 1 commit into
masterfrom
claude/fix-keyboard-help-alternative-keys

Conversation

@rwydaegh

Copy link
Copy Markdown
Owner

Summary

  • KeyboardHelp's ShortcutRow inserts a + between every element in keys[] to render chord shortcuts (e.g. Shift + B).
  • Four rows stored alternative keys as separate array entries, so they rendered as W + A + S + D, Q + E, ← + → + ↑ + ↓, and 1 + - + 9 — implying simultaneous presses.
  • Concatenated into single pills (WASD, QE, ←→↑↓, 1-9), matching the existing ['Shift', '←→↑↓'] pattern. Genuine chords (['Shift','B']) stay untouched.

Test plan

  • npx tsc --noEmit clean
  • 119/119 vitest pass
  • npm run build succeeds

Built by polish-agent · 3h cron

ShortcutRow inserts a + separator between every element in the keys
array (for chords like Shift+B), but four rows stored alternative keys
as separate entries and rendered as nonsensical chords:
W+A+S+D, Q+E, ←+→+↑+↓, 1+-+9. Concatenated each into a single pill
(WASD, QE, ←→↑↓, 1-9) so they match user intent. Follows the pattern
already used by the Shift+arrows row.
@rwydaegh
rwydaegh merged commit 9d49144 into master Apr 20, 2026
1 check was pending
@rwydaegh
rwydaegh deleted the claude/fix-keyboard-help-alternative-keys branch April 20, 2026 18:52
@codspeed

codspeed Bot commented Apr 20, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

✅ 15 untouched benchmarks


Comparing claude/fix-keyboard-help-alternative-keys (bc2853b) with master (5ead101)

Open in CodSpeed

@sentry

sentry Bot commented Apr 20, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 0% with 4 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
aegis-web/src/components/hud/KeyboardHelp.tsx 0.00% 4 Missing ⚠️

📢 Thoughts on this report? Let us know!

rwydaegh added a commit that referenced this pull request Apr 21, 2026
## Summary

- `PathInsightsSection.useEffect`'s early-return branch (when `stats` or
`rtPaths` clears) did not bump `fetchTokenRef.current`. A fetch started
while `rtPaths` was populated could resolve after the user left RT mode
and fire a spurious `Sentry.captureException(err)` +
`useNotificationStore.addNotification('warning', 'Path insights
unavailable for this compute')` toast.
- PR #722 made this more likely to actually surface:
`_cache_dosimetry_for_export` now writes `None` to
`_last_rt_paths`/`_last_rt_tissue` on non-RT computes, so
`/api/analyze/path-contributions` 404s (instead of silently resolving
with stale data) when the fetch resolves after the user ran a non-RT
compute.
- Fix: bump `fetchTokenRef.current++` inside the early-return branch so
the in-flight fetch's `fetchTokenRef.current !== token` check filters
out the stale write.
- This is observation (a) from the 2026-04-20 frontend-data-flow
bulletin entry (`agent_hq/coordination/bulletin.md`), flagged as "a
one-line fix."

## Test plan

- [x] `npx tsc --noEmit` clean
- [x] `npx vitest run` — 120/120 pass
- [x] `npm run build` succeeds
- [x] `python3 -m ruff check src/ tests/` clean
- [x] No new tests added: component rendering would require jsdom +
testing-library (current vitest env is `node`); precedent is PR #718
(keyboard help alternative-keys fix) which shipped a similar UI-only
change without tests for the same reason.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
rwydaegh added a commit that referenced this pull request Apr 21, 2026
## Summary
- `KeyboardHelp.tsx:46` and `useMIMOKeyboard.ts:11` guarded only
`HTMLInputElement | HTMLSelectElement`, so pressing `?` (or Tab / digit
keys with MIMO enabled) while typing in the Bug Reporter textarea
triggered the global shortcut instead of landing in the field — the
Keyboard Shortcuts modal would stack on top of the bug report, or MIMO
would cycle users mid-sentence.
- Mirror the `HTMLTextAreaElement` branch that `useKeyboard.ts` already
had. Two files, +6/-2.
- No regression test: the vitest environment is `node`, so DOM-level
keyboard handler tests would need a jsdom + testing-library setup.
Precedent: PR #715, PR #718.

## Test plan
- [x] `npx tsc --noEmit` clean
- [x] 120/120 vitest pass
- [x] `npm run build` succeeds

---
*Built by [\`polish-agent\`](https://github.com/rwydaegh/aegis/actions)
· see agent_hq bulletin 2026-04-21 entry*
github-actions Bot pushed a commit that referenced this pull request Sep 11, 2026
Updates the requirements on
[pytest-randomly](https://github.com/pytest-dev/pytest-randomly),
[hypothesis](https://github.com/HypothesisWorks/hypothesis) and
[ruff](https://github.com/astral-sh/ruff) to permit the latest version.
Updates `pytest-randomly` to 5.0.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-randomly/blob/main/CHANGELOG.rst">pytest-randomly's
changelog</a>.</em></p>
<blockquote>
<h2>5.0.0 (2026-09-01)</h2>
<ul>
<li>
<p>Support Python 3.15.</p>
</li>
<li>
<p>Shuffle tests in a wrapper around the
<code>pytest_collection_modifyitems</code> hook, guaranteeing that the
shuffle runs before all other plugins’ implementations of the hook.</p>
<p>Previously, pytest-randomly shuffled in a plain <code>tryfirst</code>
hook implementation.
When another plugin also implemented the hook with
<code>tryfirst</code>, as pytest-django does, whichever plugin pytest
happened to register later ran first.
Registration order comes from package metadata on disk, which can differ
between seemingly identical environments — even two containers built
from the same <code>Dockerfile</code>, or the same virtual environment
after reinstalling a package.
As a result, the same seed could yield different test orders in
different environments.
Worse, in environments where pytest-randomly ended up shuffling last, it
silently destroyed the other plugin’s ordering — for pytest-django, the
grouping of database tests that mirrors Django’s test runner
(non-transactional database tests, then transactional ones, then the
rest).</p>
<p>Now the shuffle always runs first, and plugins that group tests with
a stable sort apply their grouping on top of the shuffled order, so the
final order is reproducible from the seed alone.
In environments that previously hit the reversed hook order, upgrading
changes the test order for a given seed — restoring both reproducibility
and other plugins’ grouping.</p>
<p><code>PR
[#746](pytest-dev/pytest-randomly#746)
&lt;https://github.com/pytest-dev/pytest-randomly/pull/746&gt;</code><strong>.
Thanks to milssky for the report in <code>Issue
[#701](pytest-dev/pytest-randomly#701)
&lt;https://github.com/pytest-dev/pytest-randomly/issues/701&gt;</code></strong>.</p>
</li>
<li>
<p>Require pytest 8+, the first version to require a version of pluggy
that supports hook wrappers, as used by the above fix.</p>
<p><code>PR
[#746](pytest-dev/pytest-randomly#746)
&lt;https://github.com/pytest-dev/pytest-randomly/pull/746&gt;</code>__.</p>
</li>
<li>
<p>Reset <code>Polyfactory
&lt;https://polyfactory.litestar.dev/&gt;</code>__\’s default random
state at the start of every test, if it is installed.</p>
<p>Thanks to Rahul Kumar in <code>PR
[#735](pytest-dev/pytest-randomly#735)
&lt;https://github.com/pytest-dev/pytest-randomly/issues/735&gt;</code>__.</p>
</li>
<li>
<p>Switch package build backend from setuptools to <code>uv_build
&lt;https://docs.astral.sh/uv/concepts/build-backend/&gt;</code>__.
This makes builds with uv about nine times faster, since uv runs the
backend natively, without creating a build environment or spawning a
Python process.
Additionally, source distributions no longer include test files, which
setuptools previously included incompletely, missing the files needed to
actually run them.</p>
</li>
</ul>
<h2>4.1.0 (2026-04-20)</h2>
<ul>
<li>
<p>Fix a crash with Faker installed when explicitly enabling and
disabling the plugin (via <code>-p randomly -p no:randomly</code>).</p>
<p>Thanks to mojosan77 for the report in <code>Issue
[#718](pytest-dev/pytest-randomly#718)
&lt;https://github.com/pytest-dev/pytest-randomly/issues/718&gt;</code>__.</p>
</li>
<li>
<p>Drop Python 3.9 support.</p>
</li>
</ul>
<h2>4.0.1 (2025-09-12)</h2>
<ul>
<li>
<p>Remove the random state caching, which would grow without bound,
leaking memory in long test runs.
The caching was added to slightly speed up re-using the same (final)
seed, but since the final seed is now different for each test, it has no
effect.</p>
<p><code>PR
[#690](pytest-dev/pytest-randomly#690)
&lt;https://github.com/pytest-dev/pytest-randomly/issues/687&gt;</code>__.</p>
</li>
<li>
<p>Modify Numpy seed restriction, replacing hashing with a modulo
operation.
The extra work to hash is unnecessary now that we generate a final seed
per test with CRC32.</p>
</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/89ddfb1025cf15a81eb3defec7554740f32bcbe3"><code>89ddfb1</code></a>
Version 5.0.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/0d00951e3fd85145567adfa2b638c7987f3e33ef"><code>0d00951</code></a>
Shuffle before other plugins' collection hooks (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/746">#746</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/817091daca7b0540edb45da652ffc84a766724a1"><code>817091d</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/745">#745</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/42a2066ee95bdb1c606945436d7170ef3a6376c5"><code>42a2066</code></a>
Fix podcast link in README (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/740">#740</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/c2a001d37d14abc95940c923f730a07ccf87b4e2"><code>c2a001d</code></a>
Reset Polyfactory's default random state on each test (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/735">#735</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/cc4762bcb547a455b670b812ea362c483a31e7ef"><code>cc4762b</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/744">#744</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/94aba4ad675e863b65f024ab924688e595fa8a3f"><code>94aba4a</code></a>
Upgrade dependencies (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/743">#743</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/c9140eff32cadcdc14d82a944e63d3ad1b4dbe8c"><code>c9140ef</code></a>
Support Python 3.15 (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/741">#741</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/15f531e2a7c1c88f27febc9c92966472d5bb18fc"><code>15f531e</code></a>
Switch build backend to uv_build (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/739">#739</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-randomly/commit/79eee6c2f5475911d178b1a42b649182cbfc5e9f"><code>79eee6c</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://redirect.github.com/pytest-dev/pytest-randomly/issues/738">#738</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-randomly/compare/4.1.0...5.0.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `hypothesis` to 6.168.0
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/cd434f23be1a3598085cf096e28e6738c63b29b3"><code>cd434f2</code></a>
Bump hypothesis version to 6.168.0 and update changelog</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/3187fb9804692357b773de8177af3c0e06dc6060"><code>3187fb9</code></a>
Merge pull request <a
href="https://redirect.github.com/HypothesisWorks/hypothesis/issues/4868">#4868</a>
from Zac-HD/claude/hypothesis-datetime-strategy-ajzai0</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/a60dc77a404039c4afa93155e42138921e1c0975"><code>a60dc77</code></a>
Reduce rate of tricky datetimes</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/67e5c04721dc8689d64ee831b0996b1b05ca9f82"><code>67e5c04</code></a>
Merge pull request <a
href="https://redirect.github.com/HypothesisWorks/hypothesis/issues/4875">#4875</a>
from HypothesisWorks/create-pull-request/patch</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/ecaed93ac8009a9927b78413d2d90d27ec8d6431"><code>ecaed93</code></a>
Merge remote-tracking branch 'upstream/master' into
plait/review-hypothesis-4868</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/116ef8404b2d4c9f3fbf69b39273b769cf361077"><code>116ef84</code></a>
Probe backwards for bound windows before the scan range</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/ef176517555daacccdff3990d643380124020b6a"><code>ef17651</code></a>
Bound the cache of probed timezone transitions</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/6b35510b7532f18b723be87c06ee328831c25fd0"><code>6b35510</code></a>
Skip transition probing for fixed-offset timezones</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/26df9dde16e15d2ae475c7a352ac94f522abddc3"><code>26df9dd</code></a>
Simplify clamping of tricky-draw windows</li>
<li><a
href="https://github.com/HypothesisWorks/hypothesis/commit/6e9b74508a8463c1ef7ef9eb25542d5668fcf173"><code>6e9b745</code></a>
Extract a _draw_ordinary_datetime helper</li>
<li>Additional commits viewable in <a
href="https://github.com/HypothesisWorks/hypothesis/compare/v6.167.1...v6.168.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` to 0.16.6
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>0.16.6</h2>
<h2>Release Notes</h2>
<p>Released on 2026-09-03.</p>
<h3>Preview features</h3>
<ul>
<li>Move <code>pytest-fixture-autouse</code> to the
<code>restriction</code> category (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li>
<li>[<code>flake8-pytest-style</code>] Add an autofix for
<code>PT020</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li>
<li>[<code>flake8-tidy-imports</code>] Prevent fix loop between
<code>TID254</code> and <code>TID255</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li>
<li>[<code>isort</code>] Exclude pragma comments from line length
calculation (<code>I001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Validate unary expressions when parsing (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li>
<li>[<code>flake8-async</code>, <code>pylint</code>] Recognize
<code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li>
<li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code>
subjects (<code>B031</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li>
<li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for
<code>datetime</code> bounds (<code>DTZ901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li>
<li>[<code>flake8-pytest-style</code>] Avoid duplicate
<code>PT017</code> diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li>
<li>[<code>ruff</code>] Remove <code>lint.external</code> hint for
Ruff-specific suppressions (<code>RUF102</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-use-pathlib</code>] Add display-only fix for
<code>os.listdir</code> (<code>PTH208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add another example and glob reference for
<code>lint.per-file-ignores</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li>
<li>Add duplicate work guidance (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li>
<li>[<code>flake8-async</code>] Document thread offloading
(<code>ASYNC240</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li>
<li>[<code>pyupgrade</code>] Clarify default <code>encoding</code>
argument handling (<code>UP012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Allow unary plus in match patterns on Python 3.15 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/flying-sheep"><code>@​flying-sheep</code></a></li>
<li><a
href="https://github.com/pikammmmm"><code>@​pikammmmm</code></a></li>
<li><a href="https://github.com/fly1d"><code>@​fly1d</code></a></li>
<li><a
href="https://github.com/waterWang"><code>@​waterWang</code></a></li>
<li><a
href="https://github.com/Pierre-Sassoulas"><code>@​Pierre-Sassoulas</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/ericbuehl"><code>@​ericbuehl</code></a></li>
<li><a href="https://github.com/tjkuson"><code>@​tjkuson</code></a></li>
<li><a
href="https://github.com/AbhinavMir"><code>@​AbhinavMir</code></a></li>
<li><a
href="https://github.com/Whning0513"><code>@​Whning0513</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.16.6</h2>
<p>Released on 2026-09-03.</p>
<h3>Preview features</h3>
<ul>
<li>Move <code>pytest-fixture-autouse</code> to the
<code>restriction</code> category (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28219">#28219</a>)</li>
<li>[<code>flake8-pytest-style</code>] Add an autofix for
<code>PT020</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27993">#27993</a>)</li>
<li>[<code>flake8-tidy-imports</code>] Prevent fix loop between
<code>TID254</code> and <code>TID255</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28262">#28262</a>)</li>
<li>[<code>isort</code>] Exclude pragma comments from line length
calculation (<code>I001</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27313">#27313</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>Validate unary expressions when parsing (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28233">#28233</a>)</li>
<li>[<code>flake8-async</code>, <code>pylint</code>] Recognize
<code>builtins.open</code> (<code>ASYNC230</code>, <code>PLW1514</code>)
(<a
href="https://redirect.github.com/astral-sh/ruff/pull/28021">#28021</a>)</li>
<li>[<code>flake8-bugbear</code>] Fix panic on <code>match</code>
subjects (<code>B031</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27781">#27781</a>)</li>
<li>[<code>flake8-datetimez</code>] Reject <code>tzinfo=None</code> for
<code>datetime</code> bounds (<code>DTZ901</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28022">#28022</a>)</li>
<li>[<code>flake8-pytest-style</code>] Avoid duplicate
<code>PT017</code> diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27918">#27918</a>)</li>
<li>[<code>ruff</code>] Remove <code>lint.external</code> hint for
Ruff-specific suppressions (<code>RUF102</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27923">#27923</a>)</li>
</ul>
<h3>Rule changes</h3>
<ul>
<li>[<code>flake8-use-pathlib</code>] Add display-only fix for
<code>os.listdir</code> (<code>PTH208</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28027">#28027</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Add another example and glob reference for
<code>lint.per-file-ignores</code> (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28106">#28106</a>)</li>
<li>Add duplicate work guidance (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28229">#28229</a>)</li>
<li>[<code>flake8-async</code>] Document thread offloading
(<code>ASYNC240</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28008">#28008</a>)</li>
<li>[<code>pyupgrade</code>] Clarify default <code>encoding</code>
argument handling (<code>UP012</code>) (<a
href="https://redirect.github.com/astral-sh/ruff/pull/27315">#27315</a>)</li>
</ul>
<h3>Other changes</h3>
<ul>
<li>Allow unary plus in match patterns on Python 3.15 (<a
href="https://redirect.github.com/astral-sh/ruff/pull/28231">#28231</a>)</li>
</ul>
<h3>Contributors</h3>
<ul>
<li><a
href="https://github.com/flying-sheep"><code>@​flying-sheep</code></a></li>
<li><a
href="https://github.com/pikammmmm"><code>@​pikammmmm</code></a></li>
<li><a href="https://github.com/fly1d"><code>@​fly1d</code></a></li>
<li><a
href="https://github.com/waterWang"><code>@​waterWang</code></a></li>
<li><a
href="https://github.com/Pierre-Sassoulas"><code>@​Pierre-Sassoulas</code></a></li>
<li><a href="https://github.com/ntBre"><code>@​ntBre</code></a></li>
<li><a
href="https://github.com/jelle-openai"><code>@​jelle-openai</code></a></li>
<li><a
href="https://github.com/ericbuehl"><code>@​ericbuehl</code></a></li>
<li><a href="https://github.com/tjkuson"><code>@​tjkuson</code></a></li>
<li><a
href="https://github.com/AbhinavMir"><code>@​AbhinavMir</code></a></li>
<li><a
href="https://github.com/Whning0513"><code>@​Whning0513</code></a></li>
<li><a
href="https://github.com/chirizxc"><code>@​chirizxc</code></a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/22f65a2ab5052990503985c7c794de37598d531e"><code>22f65a2</code></a>
Bump 0.16.6 (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28280">#28280</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/7cc9f1ed53e5ce175f17fde3a75fe792ac41e8cd"><code>7cc9f1e</code></a>
[ty] Document <code>CallableTypeKind</code> variants (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28277">#28277</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/056ce07a895c217dab7929a616540c246cf8a078"><code>056ce07</code></a>
Add UV_LOCKED to all workflows (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28261">#28261</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/6d6e35d03a72d23d3b0f23fb348692b03c9b81b6"><code>6d6e35d</code></a>
[<code>flake8-pytest-style</code>] Avoid duplicate <code>PT017</code>
diagnostics (<a
href="https://redirect.github.com/astral-sh/ruff/issues/27918">#27918</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/80b4891b64cb916dce080e8fa15af5c2179d776a"><code>80b4891</code></a>
[ty] Temporarily disable tuple types in property tests (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28275">#28275</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/3f7a54d1d7b9480a18d86a8211bf676354a2f8a0"><code>3f7a54d</code></a>
[<code>flake8-tidy-imports</code>] Prevent fix loop between
<code>TID254</code> and <code>TID255</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28262">#28262</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/35656cf37d34f30116d4f4a9cb13853a6ad9fd0d"><code>35656cf</code></a>
[ty] Preserve deprecations on decorated callables (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28256">#28256</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/d2626c866ee08495cfa0da5236e130030d37e0cf"><code>d2626c8</code></a>
[ty] Reject missing attributes on <code>type[]</code> aliases (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28267">#28267</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/ee6a6d19aa0707df942febe9768488d39f383c8c"><code>ee6a6d1</code></a>
[ty] Support ParamSpecs in <code>ConstraintSet</code> (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28028">#28028</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/7f6a170080dab08f754ef086369a2623c70f753d"><code>7f6a170</code></a>
[ty] Move bound APIs to constraint owners (<a
href="https://redirect.github.com/astral-sh/ruff/issues/28094">#28094</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/0.16.5...0.16.6">compare
view</a></li>
</ul>
</details>
<br />


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-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant