feat(opensidian): terminal panel, About page, a11y fixes + skills restructuring#1544
Merged
feat(opensidian): terminal panel, About page, a11y fixes + skills restructuring#1544
Conversation
… syntax highlighting Add /about route explaining OpenSidian's technical architecture—CRDT workspace, IndexedDB persistence, in-browser SQLite, and the 10-line data layer. Uses Shiki dual-theme highlighting for the code block, Accordion for code annotations, CopyButton, and Card grid for capability cards. Adds 'About' ghost button to the toolbar.
…ions Per agentskills.io spec, the description field is the activation index agents scan at startup. Added user-facing trigger keywords (e.g. "commit this", "write a spec", "fix the CSS") so agents can match user intent to the right skill. Also adds new handoff-prompt skill for drafting self-contained delegation prompts.
…der, Alert, and Card.Description Replace ASCII data flow diagram with Badge+Arrow node flow. Add GitHub-style file header bar to code block (filename, language badge, copy button). Use Card.Description for capability cards. Wrap roadmap in Alert component with Info icon.
…inal TerminalPanel: raw <button> close → Button ghost + Lucide X icon, hand-rolled border-b → Separator component. TerminalOutput: raw exit code span → Badge variant=destructive, fix deprecated $props<> generic syntax → standard type annotation.
…entPanel TabBar: raw <button> tab close → Button ghost + icon-xs for consistent hover/focus behavior. ContentPanel: two hand-rolled empty states → Empty component (matching FileTree's existing pattern).
Drop unnecessary `as 'file' | 'folder'` in InlineNameInput (already constrained by prop type). Replace `children[0]!` with `children[0] ?? null` in FileTree (focus() accepts null).
… references/
Apply agentskills.io progressive disclosure model to 8 skills that exceeded
the 500-line recommendation. Each skill is now a focused core SKILL.md
(<250 lines) that loads on activation, plus references/ files loaded only
when the agent needs them. Research shows context length directly degrades
LLM instruction-following (Chroma 'Context Rot', UIUC/Amazon, Distyl AI
IFScale)—shorter, focused context produces better agent behavior.
Skills refactored (before → after core lines, context savings on activation):
- svelte: 779 → 130 lines (83%), 5 reference files
- typescript: 874 → 225 lines (74%), 5 reference files
- services-layer: 619 → 171 lines (72%), 4 reference files
- git: 562 → 137 lines (76%), 3 reference files
- query-layer: 474 → 175 lines (63%), 3 reference files
- testing: 438 → 159 lines (64%), 3 reference files
- error-handling: 412 → 183 lines (56%), 3 reference files
- workspace-api: 397 → 157 lines (60%), 3 reference files
Total: 4,555 → 1,337 lines on activation (71% average savings).
29 reference files created. Zero information loss—all content preserved.
Also adds:
- scripts/sync-skills.ts: syncs .agents/skills/ → .claude/skills/ so
skills are maintained in one place instead of duplicated
- bun run sync-skills added to package.json
- .claude/skills/ converted from symlinks to real files via sync
- specs/20260319T120000-skill-authoring-model.md documenting the model
6 better-auth skills (externally sourced) and 30 skills under 300 lines
left untouched.
- VerticalNav: use Sidebar.MenuButton for MigrationDialog trigger instead of hand-rolled 600-char class string duplicating sidebar internals - install-ffmpeg: replace 4 hand-rolled border-t dividers with Separator
The .claude/skills/ directory was already using symlinks to .agents/skills/ — the sync script was unnecessary overhead. Restores the original pattern and removes the script.
Wire just-bash shell emulator to the Yjs virtual filesystem in workspace.ts. Add terminal-state singleton with history, command recall, and a custom 'open' command that selects files in the editor.
Contributor
|
Thank you for your contribution! Before we can merge this PR, we need you to sign our Contributor License Agreement. This is a one-time requirement—it lets us offer commercial licenses for the sync server while you retain full copyright on your code. To sign, please comment on this PR with:
I have read the CLA Document and I hereby sign the CLA You can retrigger this bot by commenting recheck in this Pull Request. Posted by the CLA Assistant Lite bot. |
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 subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.
Builds on #1543 (already merged). The new work here:
terminal-state.svelte.ts), three new Svelte components (TerminalPanel,TerminalInput,TerminalOutput), and anopencommand. Restores focus on terminal close.aria-hiddento decorative icons,aria-labelto icon-only buttons and unlabeled inputs,aria-selectedto tree items, andsr-onlylabel to stderr output.references/subdirectories, added activation trigger phrases to all skills, restored.claude/skills/symlinks.