92c8dbd1bf82f52fc1985b697d92d448d6ffc7e6
The positionDropdown callback ref ran during React's commit phase before anchorRef was assigned (children refs commit before parents), so the dropdown was never positioned and the invisible backdrop stole all subsequent clicks. Switch to useLayoutEffect which runs after all refs are set. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Laputa App
Personal knowledge and life management desktop app built with Tauri v2 + React + TypeScript + BlockNote.
Documentation
- 📐 ARCHITECTURE.md — System design, tech stack, data flow
- 🧩 ABSTRACTIONS.md — Core abstractions and models
- 🚀 GETTING-STARTED.md — How to navigate the codebase
- 🎨 THEMING.md — Theme system and customization
Quick Start
Prerequisites
- Node.js 20+
- pnpm 8+
- Rust (latest stable)
- macOS (for development)
Setup
# Install dependencies
pnpm install
# Install git hooks (optional but recommended)
.github/hooks/install-hooks.sh
# Run dev server
pnpm dev
# Open in browser (mock mode)
open http://localhost:5173
# Or run in Tauri
pnpm tauri dev
Testing
# Frontend tests
pnpm test
# Backend tests
cargo test
# Coverage
pnpm test:coverage
# E2E tests
pnpm test:e2e
Code Quality
# Lint
pnpm lint
# Rust checks
cargo clippy
cargo fmt --check
# CodeScene (via Claude Code)
claude 'Check code health with CodeScene MCP'
Development Workflow
See CLAUDE.md for coding guidelines and workflow.
Key principles:
- Small, atomic commits
- Test as you go
- Visual verification mandatory
- Documentation updated with code changes
CI/CD
GitHub Actions runs on every push/PR:
- ✅ Tests (frontend + Rust)
- 📊 Coverage (70% threshold)
- 🎨 Lint & format
- ⚠️ Documentation check
See .github/SETUP.md for CI/CD configuration.
Git Hooks
Pre-commit hook checks code health before every commit. See .github/HOOKS.md for details.
License
Private repository — not licensed for public use.
Languages
TypeScript
70.4%
JavaScript
13.7%
Rust
13.7%
Python
1%
CSS
0.6%
Other
0.5%