aboutsummaryrefslogtreecommitdiffhomepage
path: root/package.json
AgeCommit message (Collapse)Author
2026-02-08feat: bump version to v0.4.6v0.4.6nsfisis
2026-02-07feat: bump version to 0.4.5v0.4.5nsfisis
2026-02-05feat: bump version to 0.4.4v0.4.4nsfisis
2026-02-04chore: bump version to v0.4.3v0.4.3nsfisis
2026-02-04chore(deps): update dependencies and pin JWT algorithmnsfisis
Update all dependencies to latest patch/minor versions. Explicitly specify HS256 algorithm in JWT verify to prevent algorithm confusion attacks. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-04feat(deps): migrate atomFamily from jotai/utils to jotai-familynsfisis
Replace built-in jotai atomFamily with jotai-family package for better parameter-based atom family support. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-01feat: bump version to 0.4.2v0.4.2nsfisis
2026-02-01refactor(atoms): migrate to jotai-tanstack-query from custom reloadable atomsnsfisis
Replace custom createReloadableAtom/createReloadableAtomFamily with atomWithSuspenseQuery from jotai-tanstack-query, leveraging TanStack Query's built-in caching, invalidation, and Suspense support. - Add @tanstack/query-core and jotai-tanstack-query dependencies - Create shared QueryClient instance (src/client/queryClient.ts) - Migrate all data atoms (decks, cards, study, noteTypes) to atomWithSuspenseQuery - Update page components to use .data destructuring and queryClient.invalidateQueries() - Update all test files to use QueryClient for data hydration - Remove src/client/atoms/utils.ts (no longer needed) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-31feat(cards): add search filtering to deck cards pagensfisis
Add a debounced (500ms) search input using use-debounce that filters note groups by matching card front/back content (case-insensitive). Pagination resets to page 1 when the search query changes. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-26feat: bump version to 0.4.1v0.4.1nsfisis
2026-01-04refactor(client): migrate state management from React Context to Jotainsfisis
Replace AuthProvider and SyncProvider with Jotai atoms for more granular state management and better performance. This migration: - Creates atoms for auth, sync, decks, cards, noteTypes, and study state - Uses atomFamily for parameterized state (e.g., cards by deckId) - Introduces StoreInitializer component for subscription initialization - Updates all components and pages to use useAtomValue/useSetAtom - Updates all tests to use Jotai Provider with createStore pattern 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-03feat: bump version to 0.4.0v0.4.0nsfisis
2026-01-01feat: bump version to 0.3.0v0.3.0nsfisis
2025-12-31feat: update dependenciesv0.2.0nsfisis
2025-12-31fix(build): add WASM support for Automerge in Vitensfisis
Automerge uses WebAssembly which requires vite-plugin-wasm and vite-plugin-top-level-await to handle WASM modules in production builds. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-31feat(crdt): add Automerge dependencies for CRDT syncnsfisis
Install @automerge/automerge, @automerge/automerge-repo, and @automerge/automerge-repo-storage-indexeddb as the foundation for replacing LWW conflict resolution with CRDT-based sync. Includes tests verifying core Automerge functionality: - Document creation and modification - Change generation and application - Concurrent change merging - Serialization/deserialization 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30feat: remove Anki import featurensfisis
Remove the unused Anki import functionality including parser, tests, and CLI script. Update documentation to reflect removal. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-30feat(security): add rate limiting and CORS middlewarensfisis
- Add rate limiting to login endpoint (5 requests/minute per IP) - Configure CORS middleware with environment-based origin control - Expose rate limit headers in CORS for client visibility - Update hono to 4.11.3 for rate limiter peer dependency 🤖 Generated with [Claude Code](https://claude.ai/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15feat(anki): add import script for Anki packagesnsfisis
Add CLI script to import .apkg files into Kioku. The script parses Anki packages using the existing parser, maps notes/cards to Kioku format, and bulk inserts them into the database for a specified user. Usage: pnpm anki:import [file.apkg] 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08fix(server): include add-user script in esbuild outputnsfisis
- Add add-user.ts as additional entry point in esbuild config - Switch from outfile to outdir/outbase for multiple outputs - Update user:add script to use compiled JS file - Fix README commands to use docker compose exec prefix - Add psql connection command to README 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08refactor(client): replace inline SVGs with Font Awesome iconsnsfisis
Migrate all 28 inline SVG icons across 8 components to use Font Awesome React components for better maintainability and consistency. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-08feat(client): redesign frontend with TailwindCSS v4nsfisis
Replace inline styles with TailwindCSS, implementing a cohesive Japanese-inspired design system with custom colors (cream, teal primary), typography (Fraunces, DM Sans), and animations. Update all pages and components with consistent styling, improve accessibility by adding aria-hidden to decorative SVGs, and configure Biome for Tailwind CSS syntax support. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add local CRUD repositories for IndexedDBnsfisis
Add localDeckRepository, localCardRepository, and localReviewLogRepository with full CRUD operations for offline support. Includes sync tracking with _synced flag and methods for finding unsynced items. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): add Dexie.js setup for IndexedDB local storagensfisis
Set up Dexie database with LocalDeck, LocalCard, and LocalReviewLog tables for offline support. Each entity includes _synced flag for tracking synchronization status. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(pwa): add PWA support with vite-plugin-pwansfisis
Configure Progressive Web App functionality: - Add vite-plugin-pwa with workbox for service worker - Create web manifest with app metadata and icons - Add offline fallback page for when network is unavailable - Update index.html with PWA meta tags and theme color 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(server): add study session API with FSRS integrationnsfisis
Implement study endpoints for spaced repetition learning: - GET /api/decks/:deckId/study to fetch due cards - POST /api/decks/:deckId/study/:cardId to submit reviews - Integrate ts-fsrs library for scheduling algorithm - Add ReviewLog repository for tracking review history 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-07feat(client): remove registration pagensfisis
2025-12-06build(server): add Dockerfilesnsfisis
Add build pipeline with esbuild for production bundling. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): implement Register page with form validationnsfisis
Add functional registration form with: - Username and password fields with confirm password - Client-side validation (password match, minimum length) - Error display for API failures - Redirect to home when already authenticated - Loading state during submission 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): add API client with auth header supportnsfisis
Implements fetch wrapper that handles JWT authentication, automatic token refresh on 401 responses, and provides typed methods for REST operations. Includes comprehensive tests. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(client): setup routing with wouternsfisis
Add wouter router with pages for home, login, register, and 404. Include tests for all routes using @testing-library/react. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(build): update dependenciesnsfisis
2025-12-06feat(client): initialize React + Vite frontend foundationnsfisis
Set up the client-side React application with Vite bundler: - Add React 19 and Vite 7 with the React plugin - Create index.html entry point and App component - Configure Vite with API proxy to backend server - Add client build scripts to package.json - Update tsconfig for React JSX and DOM types - Fix TypeScript errors in auth code (JWT_SECRET type narrowing) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-06feat(dev): change architecture and directory structurensfisis
2025-12-04feat(server): setup Vitest testing frameworknsfisis
Add Vitest as the test runner for the server package with configuration for global test APIs. Update root package.json to run tests across all packages. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-12-04feat(dev): configure Biome linternsfisis
Add Biome for linting and formatting with recommended rules. Reformat existing JSON files to use tabs. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30setup pnpm and tscnsfisis