mirror of
https://github.com/stablyai/orca.git
synced 2026-10-20 16:03:20 +00:00
Guarding the shared matcher was not sufficient. App.tsx rebuilt the matcher input field-by-field from the DOM event and copied only key, code, and the modifier flags, so `isComposing` and `keyCode` never reached the matcher and it had nothing to refuse on. A composing Mod+Alt+W the matcher rejected when handed the event directly still resolved `tab.closeAll` once it had been through the adapter, and the plugin-command guard was blind on that path for the same reason. The adapter is now a named module with its own tests rather than an inline object literal, because the defect was invisible at the call site and no test of the matcher could ever catch it. It refuses to build an input at all for an IME-owned keystroke, and copies the markers verbatim when it does, so the matcher can still refuse independently. Composing keydown and keyup no longer reach the double-tap detector either. The detector is stateful across the pair, and the synthetic input a detection produces carries no key or modifier flags, so there would be nothing left downstream to refuse on. Also exempts the xterm source patch from the whitespace checks: a unified diff prefixes context lines with a space, so a blank source line is a line holding exactly one space, and stripping those corrupts the patch. Co-authored-by: Orca <help@stably.ai>
23 lines
1.2 KiB
Plaintext
23 lines
1.2 KiB
Plaintext
/config/scripts/create-draft-release.mjs text eol=lf
|
|
/config/scripts/orca-dev.mjs text eol=lf
|
|
/config/scripts/latest-stable-release.mjs text eol=lf
|
|
/config/scripts/publish-complete-draft-releases.mjs text eol=lf
|
|
/config/scripts/release-rc-history.mjs text eol=lf
|
|
/config/scripts/run-internal-dev-setup.mjs text eol=lf
|
|
/config/scripts/verify-cli-bin.mjs text eol=lf
|
|
/config/scripts/verify-release-required-assets.mjs text eol=lf
|
|
/skill-guides/*.md text eol=lf
|
|
/skill-stubs/*.md text eol=lf
|
|
/skills/*/SKILL.md text eol=lf
|
|
/src/cli/bundled-skill-guides.ts text eol=lf
|
|
# Bundled plugin trees are byte-hashed; CRLF checkout would break the pinned hash.
|
|
/resources/plugins/** text eol=lf
|
|
# pnpm hashes this generated patch byte-for-byte, so a CRLF checkout breaks the install;
|
|
# its minified bundle lines also make a diff nobody can read. Review the hand-written
|
|
# source patch under xterm-src/ instead.
|
|
/config/patches/@xterm__xterm@*.patch -diff -text
|
|
# A unified-diff context line is prefixed with a space, so a blank source line is a line
|
|
# holding exactly one space. Stripping it corrupts the patch, so exempt these from the
|
|
# whitespace checks rather than leave `git diff --check` reporting damage as a defect.
|
|
/config/patches/xterm-src/*.patch text eol=lf -whitespace
|