Fix keyboard help rendering alternative keys as chords - #718
Merged
Merged
Conversation
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.
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
5 tasks
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>
3 tasks
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) <https://github.com/pytest-dev/pytest-randomly/pull/746></code><strong>. Thanks to milssky for the report in <code>Issue [#701](pytest-dev/pytest-randomly#701) <https://github.com/pytest-dev/pytest-randomly/issues/701></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) <https://github.com/pytest-dev/pytest-randomly/pull/746></code>__.</p> </li> <li> <p>Reset <code>Polyfactory <https://polyfactory.litestar.dev/></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) <https://github.com/pytest-dev/pytest-randomly/issues/735></code>__.</p> </li> <li> <p>Switch package build backend from setuptools to <code>uv_build <https://docs.astral.sh/uv/concepts/build-backend/></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) <https://github.com/pytest-dev/pytest-randomly/issues/718></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) <https://github.com/pytest-dev/pytest-randomly/issues/687></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>
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.
Summary
KeyboardHelp'sShortcutRowinserts a+between every element inkeys[]to render chord shortcuts (e.g.Shift + B).W + A + S + D,Q + E,← + → + ↑ + ↓, and1 + - + 9— implying simultaneous presses.WASD,QE,←→↑↓,1-9), matching the existing['Shift', '←→↑↓']pattern. Genuine chords (['Shift','B']) stay untouched.Test plan
npx tsc --noEmitcleannpm run buildsucceedsBuilt by
polish-agent· 3h cron