feat(ui): keyboard shortcut cheat sheet overlay#39
Open
advancedresearcharray wants to merge 14 commits into
Open
feat(ui): keyboard shortcut cheat sheet overlay#39advancedresearcharray wants to merge 14 commits into
advancedresearcharray wants to merge 14 commits into
Conversation
kiwifs#446) Standard markdown links like [text](file.md#section) now use the SPA router with scroll-to-anchor, matching the behavior of [[wiki#heading]] links. Same-page #anchor links also get smooth scrolling. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Resolve `..` and `.` segments in relative .md#anchor links so that cross-directory links like `../00-foundations/_index.md#section` produce clean paths (e.g. `00-foundations/_index.md`) instead of leaving `..` in the URL and breadcrumb. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Use github.com/fvbommel/sortorder for natural (human/version) sort so "2-arrays" comes before "10-graphs" without needing explicit order fields in frontmatter or a tree-order.json sidecar. - Remove `order` field from TreeEntry (Go + TypeScript) - Remove PATCH /api/kiwi/tree/order endpoint - Remove ReadTreeOrder / WriteTreeOrder from local storage - Replace all order-based sort comparisons with natural sort - Update all tests to verify natural sort behavior Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Recursively collect problem pages under numbered chapter folders so subfolders like hashing/ and search-on-answer/ appear in the progress tracker. Show subfolder labels as section headers within each chapter group. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
…ifs#450) The UI was calling /api/kiwi/local-state but the backend only exposes /api/kiwi/me/state, causing progress tracking and other local state to silently fail with 404. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Delete treeOrderPersistence module and its test, remove persistSiblingOrder calls and destinationChildrenAfterMove helper from KiwiTree, inline renumberOrderableSiblings identity function, rename tree_order_test.go → tree_test.go. Natural sort on filenames is the sole ordering mechanism now. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
…ew sublabels, MatrixView triangular, GraphEdge labels (kiwifs#452) - AnnotationBar: parse inline markdown (**bold**, *italic*, `code`) in step text - ArrayView: add `sublabels` prop for secondary text per cell (e.g. ord values) - MatrixView: add `centerRows` + `roundCells` props for triangular/staircase grids - GraphView: render edge `label` when no `weight` is present Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Protect the package-level branding config with an RWMutex so concurrent server bootstrap in parallel tests no longer triggers the race detector. Co-authored-by: Cursor Agent <cursoragent@cursor.com> Co-authored-by: Anh Lam <amelia751@users.noreply.github.com>
…se grids (kiwifs#454) centerRows now accepts "start" | "center" | true (boolean true = "center"). "start" gives left-aligned ragged rows, which creates proper staircase visuals. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
…broken links & orphans APIs (kiwifs#455) Add server-side wiki-link management so renames keep references intact: - `RenameDirWithLinks`: extends `RenameDir` to rewrite backlinks in all external pages referencing files under the moved directory, matching the single-file `RenameWithLinks` behavior. - `POST /rename-dir?update_links=true` (default): callers now get automatic backlink patching on directory renames. - `GET /links/broken`: live broken-link scanner (reuses janitor logic) with fuzzy-match suggestions for each broken target. - `GET /links/orphans`: live orphan page detection. - `POST /refactor/fix-broken`: auto-fix broken wiki links by fuzzy-matching targets against existing files (supports dry_run preview). Fuzzy matching ranks candidates: exact path > path-suffix > basename-only. Targets ending with backslash (table-escaped pipes) are filtered out. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
…argets (kiwifs#457) - Allow _index targets with directory components (e.g. "01-big-o/_index") instead of blanket-excluding all _index basenames - Add stripped-number prefix matching so "06-prefix-sum/_index" correctly matches "03-prefix-sum/_index.md" even when numeric prefixes differ - Adjust score tiers: exact=4, suffix=3, stripped-suffix=2, basename=1 - Keep bare "_index" (no directory component) excluded to avoid ambiguity Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Targets ending with backslash (e.g. [[target\|label]] in tables) must not be rewritten — the backslash escapes the pipe for markdown table compatibility. Co-authored-by: Lam Dao Que Anh <anhlam@Lams-MacBook-Air-9.local> Co-authored-by: Cursor <cursoragent@cursor.com>
Replace static Dialog with filterable CommandDialog, add plain ? trigger with input-target guard, HelpCircle toolbar button, platform-aware kbd segments, and custom keybindings section from config. Closes kiwifs#428 Signed-off-by: Test User <test@example.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
CommandDialogoverlay grouped by category (Navigation, Views, Editor, Custom)?trigger outside text inputs/editors and a HelpCircle toolbar button for mouse users<kbd>segments (⌘ vs Ctrl) and surface custom keybindings from config in a dedicated sectionCloses kiwifs#428
Test plan
cd ui && npm test -- --run kiwiKeybindings overlayDismiss— 18 passedgo test ./internal/keybindings/... -count=1— ok?outside an input/editor → overlay opensCmd+/→ overlay toggles?does not re-trigger while focused in filterMade with Cursor