mirror of
https://github.com/Studio-Saelix/sencho.git
synced 2026-08-04 07:57:54 +00:00
370b67d7ec
* chore: ignore .superpowers/ brainstorm scratch dir
* feat(sidebar): add useStackMenuItems hook with grouped menu model
Pure transform hook that converts StackMenuCtx into four ordered MenuGroup
arrays (inspect, organize, lifecycle, destructive). Shared type contract in
sidebar-types.ts gives both the ContextMenu and DropdownMenu a single source
of truth so they cannot drift. Covered by 8 unit tests.
* refactor(sidebar): stabilize useStackMenuItems memoization deps
Destructure menuVisibility flags into primitive deps so inline object
literals from callers do not defeat memoization. Add a test confirming
isBusy disables all lifecycle items.
* feat(sidebar): add usePinnedStacks hook with per-node localStorage
* refactor(sidebar): stabilize usePinnedStacks eviction signal and isPinned dep
Change evictedOldest shape to { file, seq } so consumer effects re-fire on
repeated evictions. Narrow isPinned's useCallback dep to the current node's
pinned list so it only rebinds on local changes. Add test for eviction
side-effect and a second test for the seq counter.
* feat(sidebar): add useSidebarGroupCollapse hook with per-node keys
* refactor(sidebar): tighten useSidebarGroupCollapse effect ordering
Collapse the two write/read effects into a single skip-next-write ref
pattern so switching nodes no longer writes the previous node's map under
the new key before hydration. Also skip the no-op mount write. Add test
for setCollapsed.
* feat(sidebar): add row + group-header style helpers
* feat(sidebar): add SidebarBrand with mono kicker + serif hero
* feat(sidebar): add SidebarActions wrapper for create + scan
* feat(sidebar): extract SidebarSearch with kbd pill
* feat(sidebar): add StackRow with cyan-rail active state
* refactor(sidebar): dedupe tooltip markup in StackRow, widen test coverage
Extract a local RowTooltip helper so the update and git-pending branches
share the CursorProvider scaffolding. Add four behavioral tests covering
click, keyboard activation, kebab stop-propagation, and the busy loader
branch.
* feat(sidebar): unify context + kebab menus via useStackMenuItems
* feat(sidebar): add StackGroup with collapse and pinned variant
* feat(sidebar): add StackList with pinned + label groups
* feat(sidebar): add SidebarActivityTicker with idle fallback
* feat(sidebar): add StackSidebar container composing the regions
* feat(sidebar): replace sidebar block with StackSidebar composition
* docs(sidebar): add stack sidebar feature page with screenshots
* fix(sidebar): satisfy react-hooks purity and memoization rules
* fix(sidebar): restore "Sencho Logo" alt text for E2E selector
71 lines
910 B
Plaintext
71 lines
910 B
Plaintext
# Dependencies
|
|
node_modules/
|
|
|
|
# Environment Variables (CRITICAL: Never commit secrets)
|
|
.env
|
|
.env.*
|
|
!.env.example
|
|
|
|
# Build Outputs
|
|
dist/
|
|
*.tsbuildinfo
|
|
|
|
# Sencho User Data & Mocks
|
|
data/
|
|
mock_data/
|
|
docker/
|
|
sencho.json
|
|
|
|
# OS Generated Files
|
|
.DS_Store
|
|
Thumbs.db
|
|
Desktop.ini
|
|
ehthumbs.db
|
|
|
|
# IDE / Editors
|
|
.vscode/
|
|
.idea/
|
|
*.swp
|
|
*.swo
|
|
*~
|
|
*.sublime-project
|
|
*.sublime-workspace
|
|
|
|
# Testing
|
|
test-results/
|
|
e2e/report/
|
|
html-report/
|
|
.coverage/
|
|
coverage/
|
|
|
|
# Logs
|
|
*.log
|
|
npm-debug.log*
|
|
|
|
# Claude Code
|
|
.claude/
|
|
plans/
|
|
CLAUDE.md
|
|
MANUAL_STEPS.md
|
|
docs/superpowers/
|
|
.worktrees/
|
|
.superpowers/
|
|
|
|
# Design system (local-only; authoritative reference for agents + user)
|
|
frontend/DESIGN.md
|
|
.design-bundle/
|
|
|
|
# Playwright MCP
|
|
.playwright-mcp/
|
|
|
|
# Frontend build output (served by backend)
|
|
backend/public/
|
|
|
|
# Auto-generated files
|
|
backend/cookies.txt
|
|
backend/src/generated/version.ts
|
|
|
|
# Local-only projects (separate repos)
|
|
demo-video/
|
|
website/
|