- 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.
129 lines
4.4 KiB
Markdown
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*
|