Upgrade deps + add LayerDisplay component#361
Open
Meserlion wants to merge 20 commits intonickcoutsos:mainfrom
Open
Upgrade deps + add LayerDisplay component#361Meserlion wants to merge 20 commits intonickcoutsos:mainfrom
Meserlion wants to merge 20 commits intonickcoutsos:mainfrom
Conversation
Add {, [, ], }, (, ) entries to zmk-keycodes.json keyed by their compound
ZMK form (LA(LC(N7)), LA(LC(N8)), etc.) so they display with the correct
symbol instead of showing modifier names.
Modify parseKeyBinding to treat these compound keycodes as leaf nodes so
hydrateTree can look them up in the keycode index by their full name.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The server's parseKeymap was splitting LA(LC(N7)) etc. into nested modifier nodes before sending to the frontend, so the frontend's COMPOUND_KEYCODES guard was never reached. Add the same guard to the server-side parse function. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- NON_US_BACKSLASH symbol changed from \ to < (DK: key between LShift and Z) - LS(FSLH) added as compound keycode atom with symbol < - LS(FSLH) added to COMPOUND_KEYCODES in both client and server parsers Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- macros.json stores macro definitions (modifier+key combos) - GET/POST /macros API routes - MacroEditor component shown below keyboard - Macros auto-registered as behaviors in the key picker - Save Local writes macros block to .keymap then keymap block Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- combos.json stores combo definitions (positions + binding + optional timeout) - GET/POST /combos API routes - ComboEditor component shown below MacroEditor - Save Local saves combos → macros → keymap in order Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ance ComboEditor and MiniKeyboard components
- Updated Keyboard component to utilize useCallback for performance optimization. - Simplified search target handling and removed unnecessary memoization. - Enhanced layer management functions for creating, updating, renaming, and deleting layers. - Integrated resolved bindings into KeyboardLayout for better key state representation. - Improved Key component to handle resolved bindings and display appropriate UI for transparent keys. - Removed static behaviors JSON and replaced with dynamic fetching from API. - Introduced key-event mapping for better handling of keyboard events and ZMK aliases. - Updated ComboEditor to support behavior and parameter selection through a modal picker. - Enhanced ValuePicker for improved search functionality and UI. - Added styles for new key states and resolved bindings.
- Add CLAUDE.md with project architecture, file guide, and key notes - Remove cross-env from dev script (silently fails in PowerShell); move ENABLE_DEV_SERVER to .env Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…lude working directory
- axios 0.21 → 1.15 - jsonwebtoken 8.5 → 9.0 - dotenv 10 → 17 - npm audit fix: resolved all 20 remaining vulnerabilities Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Shows a scaled-down visual of all key bindings for the active layer, resolving &trans keys by looking up the nearest active layer beneath. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Collect Get-NetTCPConnection results into an array first, then only pipe to Stop-Process if the array is non-empty. The pipeline hang occurred because ForEach-Object waits for input that never arrives when no ports are listening. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Avoids shell injection by passing git arguments as an array instead of interpolating them into a shell string. Consistent with how all other git calls in this file already work. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
If any of keycodes/behaviours/macros/combos/aliases fails to load, fall back to [] for that resource instead of failing the entire initialization. The app now loads in a degraded state rather than showing a blank error screen. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
sessionStorage is cleared when the tab closes and is isolated per tab, reducing the persistence window for a stolen token. localStorage kept the token indefinitely across all sessions and tabs on the same origin. Co-Authored-By: Claude Sonnet 4.6 <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.
Summary
npm audit fixresolves all 20 remaining vulnerabilities (0 remaining)LayerDisplaycomponent: toggle button shows a scaled visual of the active layer, with&transkeys resolved to their effective binding from lower layersTest plan
npm audit— should show 0 vulnerabilities&transkeys should show the resolved binding from the layer below, not▽🤖 Generated with Claude Code