agent-ecosystem/.planning/codebase/STACK.md
matt ae4833e310 feat(planning): add project planning documents and configuration for SSH multi-context workspaces
- Introduced new planning files including PROJECT.md, REQUIREMENTS.md, ROADMAP.md, and STATE.md to outline the vision and requirements for SSH multi-context workspaces.
- Added ARCHITECTURE.md and CONCERNS.md to detail the codebase structure and address technical debt, known bugs, and security considerations.
- Created CONVENTIONS.md to establish coding standards and practices for the project.
- Updated .gitignore to exclude demo files and added configuration for planning tools.

This commit lays the groundwork for enhancing SSH functionality and user experience in managing multiple workspaces.
2026-02-12 09:37:58 +09:00

129 lines
4.4 KiB
Markdown

# Technology Stack
**Analysis Date:** 2026-02-12
## Languages
**Primary:**
- TypeScript 5.9.3 - All application code (main, preload, renderer)
**Secondary:**
- JavaScript - Configuration files (eslint.config.js, postcss.config.cjs, tailwind.config.js)
## Runtime
**Environment:**
- Node.js 25.2.1+ (ES2020/ES2022 target)
- Electron 40.3.0 (Chromium-based desktop runtime)
**Package Manager:**
- pnpm 10.25.0 (enforced via packageManager field)
- Lockfile: pnpm-lock.yaml (present)
## Frameworks
**Core:**
- Electron 40.3.0 - Desktop app framework (three-process architecture)
- React 18.3.1 - UI framework for renderer process
- React DOM 18.3.1 - React renderer
- Zustand 4.5.0 - State management
**Testing:**
- Vitest 3.1.4 - Test runner with happy-dom environment
- @vitest/coverage-v8 3.1.4 - Code coverage
- happy-dom 17.6.3 - Browser environment simulation
**Build/Dev:**
- electron-vite 2.3.0 - Build tool (Vite-based for Electron)
- Vite 5.4.2 - Development server and bundler
- electron-builder 24.13.3 - Packaging and distribution
- tsx 4.21.0 - TypeScript execution for test scripts
## Key Dependencies
**Critical:**
- ssh2 1.17.0 - SSH/SFTP connectivity for remote session access
- ssh-config 5.0.4 - SSH config file parsing
- electron-updater 6.7.3 - Auto-update functionality via GitHub releases
**Infrastructure:**
- @tanstack/react-virtual 3.10.8 - Virtual scrolling for large session lists
- @dnd-kit/core 6.3.1 + @dnd-kit/sortable 10.0.0 - Drag-and-drop for UI
- date-fns 3.6.0 - Date formatting and manipulation
- lucide-react 0.562.0 - Icon library
**Markdown/Content:**
- react-markdown 10.1.0 - Markdown rendering
- remark-gfm 4.0.1 - GitHub Flavored Markdown support
- unified 11.0.5 - Text processing pipeline
- remark-parse 11.0.0 - Markdown parser
- mdast-util-to-hast 13.2.1 - Markdown to HTML AST conversion
**Styling:**
- Tailwind CSS 3.4.1 - Utility-first CSS framework
- @tailwindcss/typography 0.5.19 - Typography plugin
- autoprefixer 10.4.17 - CSS vendor prefixing
- PostCSS 8.4.35 - CSS processing
**Code Quality:**
- ESLint 9.39.2 - Linting
- typescript-eslint 8.54.0 - TypeScript ESLint rules
- Prettier 3.8.1 - Code formatting
- prettier-plugin-tailwindcss 0.7.2 - Tailwind class sorting
- knip 5.82.1 - Unused code detection
**ESLint Plugins:**
- eslint-plugin-react 7.37.5 + eslint-plugin-react-hooks 7.0.1 - React rules
- eslint-plugin-jsx-a11y 6.10.2 - Accessibility rules
- eslint-plugin-tailwindcss 3.18.2 - Tailwind CSS rules
- eslint-plugin-boundaries 5.3.1 - Enforce Electron architecture boundaries
- eslint-plugin-security 3.0.1 - Security vulnerability detection
- eslint-plugin-sonarjs 3.0.6 - Code quality and bug detection
- eslint-plugin-simple-import-sort 12.1.1 - Import sorting
- eslint-plugin-import 2.32.0 - Import validation
## Configuration
**Environment:**
- No .env files - Desktop app reads from `~/.claude/` directories
- Local data: `~/.claude/projects/{encoded-path}/*.jsonl` - Session files
- Config: `~/.claude/claude-devtools-config.json` - App configuration
- Notifications: `~/.claude/claude-devtools-notifications.json` - Notification history
- Remote access: SSH/SFTP to remote `~/.claude/projects/` (optional)
**Build:**
- `electron.vite.config.ts` - Electron-specific Vite configuration with path aliases
- `tsconfig.json` - Main TypeScript config (renderer + shared)
- `tsconfig.node.json` - Main/preload process TypeScript config
- `tsconfig.test.json` - Test TypeScript config
- `vitest.config.ts` - Main test configuration
- `vitest.critical.config.ts` - Critical path coverage configuration
- `electron-builder.yml` - Build and packaging configuration
**Code Style:**
- `eslint.config.js` - Flat ESLint config with process-specific rules
- `.prettierrc.json` - Prettier formatting rules
- `tailwind.config.js` - Tailwind CSS customization with CSS variable theme
**Path Aliases:**
- `@main/*``src/main/*` (main process)
- `@renderer/*``src/renderer/*` (renderer process)
- `@shared/*``src/shared/*` (cross-process utilities)
- `@preload/*``src/preload/*` (preload bridge)
## Platform Requirements
**Development:**
- Node.js 25+ (specified in package.json engines would go here if present)
- pnpm 10.25.0+
- macOS or Windows (Linux support via Electron but not tested)
**Production:**
- macOS: DMG and ZIP distribution
- Windows: NSIS installer
- Code signing: macOS notarization via Apple Team ID (env.APPLE_TEAM_ID)
- Auto-updates: GitHub releases via electron-updater
---
*Stack analysis: 2026-02-12*