Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
dd5db33
fix: add vector parameter to stream query and clean up API
robelest Nov 10, 2025
1b67ca4
feat: implement dynamic cron scheduling with per-collection configura…
robelest Nov 10, 2025
4c48e6a
refactor: simplify to native Convex cron pattern
robelest Nov 10, 2025
ece1972
docs: merge Production.md into README as "Jamie's Seven Questions" se…
robelest Nov 10, 2025
208dae0
docs: update authorization to 7/7 - standard Convex patterns
robelest Nov 11, 2025
197bc65
fix: improve CRDT sync with type-safe enums and observer fixes
robelest Nov 12, 2025
e5396a0
refactor: replace Yjs observer with direct write sync pattern
robelest Nov 13, 2025
8b8bc29
fix: resolve multi-client CRDT sync by fixing byte offsets and echo l…
robelest Nov 13, 2025
513d57d
chore: update dependencies and example app for IndexedDB persistence
robelest Nov 13, 2025
26ee623
fix: prevent deleted documents from being reconstructed via reconcili…
robelest Nov 13, 2025
86a3bc0
fix: complete SSR pattern refactor with proper TanStack DB sync opera…
robelest Nov 19, 2025
db05bd6
fix: resolve delete operation re-appearance bug with TanStack DB sync
robelest Nov 20, 2025
c234e88
chore: remove verbose logging and establish online Yjs baseline
robelest Nov 20, 2025
96a3e81
docs: add comprehensive Effect.ts migration guide
robelest Nov 20, 2025
833b0f8
feat: implement Effect.ts Phase 1 - Foundation & Services
robelest Nov 20, 2025
3d533e1
feat: implement Effect.ts Phase 2 - Connection Management
robelest Nov 20, 2025
e651290
feat: implement Phase 3 CRDT streaming with Effect.ts
robelest Nov 20, 2025
4668ecd
feat: implement Phase 4 schema validation with Effect.Schema
robelest Nov 20, 2025
1a4b2ae
feat: implement Phase 5 mutation error handling with Effect.ts
robelest Nov 20, 2025
4b9026c
feat: implement defineReplicate builder for simplified API generation
robelest Nov 20, 2025
6520c0b
refactor: complete Phase 8 cleanup - remove legacy API patterns
robelest Nov 20, 2025
521c3ec
chore: remove temporary EFFECT.md file
robelest Nov 20, 2025
c305517
fix: restore SSR data synchronization to prevent data disappearing
robelest Nov 20, 2025
ba8e345
refactor: comprehensive API simplification and naming consistency imp…
robelest Nov 21, 2025
aefbe8e
fix: real-time synchronization by removing async from subscription ca…
robelest Nov 22, 2025
3583c72
refactor: migrate checkpoint system to Effect.ts with stale detection
robelest Nov 24, 2025
84abb15
fix: correct checkpoint logic and initial sync to resolve B->A sync a…
robelest Nov 24, 2025
5c270f0
refactor(collection): Phase 1 - extract Yjs operations to helper func…
robelest Nov 24, 2025
f568dc9
refactor(collection): Phase 2 - create services layer singleton
robelest Nov 24, 2025
b5f4a85
refactor(collection): Phase 4 - subscription handler uses OptimisticS…
robelest Nov 24, 2025
2756fe0
refactor(collection): Phase 5 - use SubscriptionService and Connectio…
robelest Nov 24, 2025
6c1b32c
chore: remove unused imports and variables
robelest Nov 24, 2025
17fa252
refactor(collection): Phase 1.1 - reconcile() uses OptimisticService
robelest Nov 24, 2025
2323c54
refactor(collection): Phase 1.2 - onDelete uses OptimisticService
robelest Nov 24, 2025
4f1c920
refactor(collection): Phase 1.3 - initial sync uses OptimisticService
robelest Nov 24, 2025
9207f9d
refactor(collection): Phase 2.1 - Yjs document creation uses YjsService
robelest Nov 24, 2025
93b6534
refactor: integrate service architecture and comprehensive test suite
robelest Nov 25, 2025
9c47234
refactor: simplify architecture and rename sync → replicate
robelest Nov 26, 2025
6eca309
refactor: standardize naming and remove dead code
robelest Nov 26, 2025
047de03
chore: remove SvelteKit example
robelest Dec 1, 2025
ede29bb
refactor: remove dead code
robelest Dec 1, 2025
71a49a6
feat: add version history and maintenance features
robelest Dec 1, 2025
6e75ba9
feat: add undo/redo and client-side history utilities
robelest Dec 1, 2025
6b02691
feat: export missing types from client API
robelest Dec 1, 2025
f167c4f
docs: add JSDoc to exported functions
robelest Dec 1, 2025
d6df437
test: add comprehensive test suite
robelest Dec 1, 2025
e1feb65
chore: update configs and dependencies
robelest Dec 1, 2025
31fe751
refactor: improve type safety in client code
robelest Dec 1, 2025
bf03d5a
chore(release): 1.0.0
robelest Dec 1, 2025
d28ae72
fix: update CI to use pnpm and move SSR to Quick Start
robelest Dec 1, 2025
2726fb6
chore: migrate to bun and remove test infrastructure
robelest Dec 4, 2025
5c0945c
docs: add rich.md document
robelest Dec 4, 2025
9942a41
test: implement comprehensive test suite with vitest
robelest Dec 4, 2025
8ba07fb
ci: migrate GitHub Actions workflow from pnpm to bun
robelest Dec 4, 2025
ec7197b
feat: add XmlFragment support for rich text fields
robelest Dec 4, 2025
22d889b
feat: add collection methods for fragments and per-document undo/redo
robelest Dec 4, 2025
4e10794
refactor: reorganize server API and remove unused client code
robelest Dec 4, 2025
cad5178
chore: update agent configurations
robelest Dec 4, 2025
34cf109
fix: ensure XmlFragments are bound to Y.Doc before populating content
robelest Dec 4, 2025
73ccce4
refactor: remove Yjs re-export to avoid bundler duplicate modules
robelest Dec 4, 2025
5d66524
chore: upgrade Convex to 1.30.0 and update dependencies
robelest Dec 5, 2025
75c7f74
refactor: extract shared types to top-level module
robelest Dec 5, 2025
026f386
fix: serialize Y.XmlFragment correctly on insert mutations
robelest Dec 5, 2025
87521ff
feat: add top-level shared types export and update build config
robelest Dec 5, 2025
2476714
feat: refactor prose API with type-safe field detection and Promise-b…
robelest Dec 13, 2025
9d697b7
refactor: slim API with single-word conventions and TanStack patterns
robelest Dec 13, 2025
59c7e65
refactor: remove incomplete protocol versioning scaffolding
robelest Dec 13, 2025
0cea348
docs: update all documentation to reflect current API
robelest Dec 13, 2025
704b549
refactor: simplify server API to factory pattern with replicate()
robelest Dec 13, 2025
49a47fa
test: fix E2E and recovery tests for Bun compatibility
robelest Dec 13, 2025
e2a236b
refactor: add swappable persistence layer for React Native support
robelest Dec 14, 2025
a5f5a15
refactor: remove offline-transactions and simplify prose sync
robelest Dec 15, 2025
eade757
refactor: improve SQLite persistence with proper types and sync API
robelest Dec 15, 2025
f5f9fbc
docs: update documentation for persistence layer and API changes
robelest Dec 15, 2025
8d264e7
feat: add universal SQLite persistence with auto-platform detection
robelest Dec 15, 2025
9e2ddf6
docs: fix inaccuracies and remove test bloat
robelest Dec 15, 2025
1184819
refactor: simplify compaction with auto per-document snapshots
robelest Dec 15, 2025
77ce37d
test: remove fake e2e tests that tested inline implementations
robelest Dec 15, 2025
622cd42
fix: prevent prose field corruption in subscription update cycle
robelest Dec 16, 2025
a30969c
wip: extract prose sync to separate module with document-level tracking
robelest Dec 17, 2025
b4b7db7
wip: fix metadata access in onUpdate handler
robelest Dec 17, 2025
3c455fc
chore: migrate from Biome to ESLint with type-checked linting
robelest Dec 18, 2025
bf10c9c
refactor: replace global replicate state with bound functions per col…
robelest Dec 18, 2025
794b5be
fix: handle y-indexeddb synced event race condition
robelest Dec 18, 2025
dae9314
feat: refactor API to nested object pattern
robelest Dec 19, 2025
f718001
docs: update all documentation for nested API pattern
robelest Dec 19, 2025
eb07166
chore: update docs and CI for rslib+eslint build integration
robelest Dec 19, 2025
b50682a
chore: release v1.1.0
robelest Dec 19, 2025
5b2f904
docs: update README with Interval example and remove outdated sections
robelest Dec 19, 2025
75eea08
fix: handle null storedDoc in SqlitePersistenceProvider
robelest Dec 19, 2025
66e7cf2
docs: improve clarity on SQLite persistence and TanStack DB typing
robelest Dec 20, 2025
7d9dbbd
refactor: migrate to tsdown and simplify convexCollectionOptions API
robelest Dec 22, 2025
b2083f4
chore: update example submodule reference
robelest Dec 22, 2025
c292e65
feat: add prose.empty() helper for creating branded prose values
robelest Dec 22, 2025
2f724ce
chore: update example submodule reference
robelest Dec 22, 2025
32860fa
refactor: replace example submodule with illustrations directory
robelest Dec 22, 2025
003ee04
chore: replace Biome with ESLint for unified linting and formatting
robelest Dec 22, 2025
7d6b4d0
docs: add cursor-based sync migration plan
robelest Dec 23, 2025
f366136
refactor: replace LevelDB with SQLite-only persistence
robelest Dec 23, 2025
f62500d
feat: implement cursor-based sync with peer tracking
robelest Dec 23, 2025
7ed7ec6
feat: update client for cursor-based sync with peer tracking
robelest Dec 23, 2025
23286a8
feat: add type-safe compaction config and complete API exports
robelest Dec 23, 2025
a9b7782
refactor: minimize public API surface and rename ack to mark
robelest Dec 23, 2025
6cee672
docs: update README for cursor-based sync and new features
robelest Dec 23, 2025
862e539
feat: update illustrations to use new API (zod schemas, mark/compact)
robelest Dec 23, 2025
2b76731
feat: add SSR material prefetch and refactor collection.create() API
robelest Dec 23, 2025
b57f119
docs: update README and AGENTS.md for collection.create() API
robelest Dec 23, 2025
c71227d
feat(examples): add spinner components and improve loading states
robelest Dec 23, 2025
5ac1986
refactor(examples): simplify UI with inline properties and unified lo…
robelest Dec 23, 2025
bd038ab
fix(sveltekit): match dropdown radio item styling to TanStack
robelest Dec 23, 2025
e4c9723
feat(examples): add skeleton loading states for interval pages
robelest Dec 23, 2025
c1c81ce
feat(client): make Yjs operations synchronous for local-first behavior
robelest Dec 24, 2025
2c65ad0
fix(sqlite): update browser persistence and schema
robelest Dec 24, 2025
39053e2
feat(expo): rewrite example with interval tracking app
robelest Dec 24, 2025
f5f6cfc
docs: add React Native setup instructions
robelest Dec 24, 2025
1c74621
refactor(tanstack-start): improve UI components and styling
robelest Dec 24, 2025
1921b5f
refactor(sveltekit): improve UI components and styling
robelest Dec 24, 2025
f5a9e36
chore: fix lint errors and remove unused deps
robelest Dec 24, 2025
3565e7e
docs: update documentation for Expo example and API changes
robelest Dec 24, 2025
0cf2693
fix(client): use recovery cursor for subscription and remove redundan…
robelest Dec 24, 2025
a8fe458
1.1.2-preview.0
robelest Dec 24, 2025
91c944a
chore(examples): update to use @trestleinc/replicate@preview
robelest Dec 24, 2025
f42b0eb
chore(examples/sveltekit): add zod dependency
robelest Dec 25, 2025
9d7a648
chore(examples/sveltekit): remove railpack config
robelest Dec 25, 2025
1c10b5a
chore: release 1.1.2
robelest Dec 29, 2025
6ff4ca9
docs: add sessions and cursors feature plan
robelest Dec 30, 2025
08c58b9
feat: implement per-document session tracking (Phase 2)
robelest Dec 30, 2025
7e4dab1
feat: add identity and cursor tracking (Phase 3)
robelest Dec 30, 2025
4cdcf16
feat: complete presence feature with heartbeat cleanup and SSR handling
robelest Dec 30, 2025
45046ee
docs: add comprehensive sync system design with snapshot-based compac…
robelest Dec 30, 2025
947116c
refactor: complete Migration V2 - schema normalization and Effect.ts …
robelest Dec 30, 2025
8d68dc7
refactor: integrate CollectionContext to consolidate module-level state
robelest Dec 30, 2025
4ecc38f
refactor: complete Migration V2 - consolidate state and align APIs
robelest Dec 30, 2025
7a4f8a1
refactor: replace custom presence with Yjs Awareness protocol
robelest Dec 31, 2025
4df8bab
fix: refactor recovery and SSR to per-document architecture
robelest Dec 31, 2025
cb6935c
fix: add pagehide handler and sync coordination for presence
robelest Dec 31, 2025
d450bcc
docs: rewrite sync system architecture documentation
robelest Dec 31, 2025
78229ba
refactor: implement architecture changes from optimizations.md
robelest Dec 31, 2025
c895eaf
fix: align stream response type in replicate.ts with component
robelest Dec 31, 2025
7f9c933
refactor: normalize naming and add vector to mark calls
robelest Dec 31, 2025
62055ae
fix: resolve persistence race condition causing documents to show as …
robelest Dec 31, 2025
72163dc
perf: optimize sveltekit example with TanStack Table and virtual scro…
robelest Dec 31, 2025
81c197f
fix: improve filter dialog and interval row UX
robelest Dec 31, 2025
af28b04
docs: update partial-sync documentation with optimization notes
robelest Dec 31, 2025
6705f02
fix: resolve lint errors in data-table.svelte.ts
robelest Dec 31, 2025
54e1541
style: fix indentation in render-helpers.ts
robelest Dec 31, 2025
5f31f40
chore: bump version to 1.2.0-preview.1
robelest Dec 31, 2025
6ba28cd
refactor: migrate browser SQLite to @sqlite.org/sqlite-wasm
robelest Dec 31, 2025
6c75b7b
feat: add PGlite as alternative persistence option
robelest Dec 31, 2025
69eafe3
feat: add persistence.pglite.once() and migrate SvelteKit example to …
robelest Jan 1, 2026
e5d395d
refactor: simplify persistence API, remove redundant providers
robelest Jan 1, 2026
f887c81
fix: add exists field to stream for cross-client sync
robelest Jan 1, 2026
27e6538
refactor: convert comment body from prose to plain string
robelest Jan 1, 2026
34e1d45
refactor: remove TanStack Virtual from SvelteKit example
robelest Jan 1, 2026
f4a86b5
feat: migrate TanStack Start example to PGlite
robelest Jan 1, 2026
59255ba
fix: update SvelteKit convex schema for plain string comments
robelest Jan 1, 2026
3e61b82
fix: use stable anonymous identity for presence to prevent duplicates…
robelest Jan 1, 2026
57ff197
chore: bump version to 1.2.0-preview.2
robelest Jan 1, 2026
fd9dbb8
refactor: replace sync engine with Effect.ts per-document actor model
robelest Jan 1, 2026
802fd28
refactor: change client API from prose to schema.prose for consistency
robelest Jan 1, 2026
63e3ebc
fix: wait for actor system before observing prose fragments
robelest Jan 1, 2026
13b1834
feat: add configurable debounce for prose fields
robelest Jan 1, 2026
ba9ba43
fix: separate sync tracking from presence to fix avatar bug
robelest Jan 1, 2026
7f1165e
refactor(examples): use TanStack Table with shadcn UI components
robelest Jan 1, 2026
a263f14
style: fix lint formatting in table exports and dialog
robelest Jan 1, 2026
4f38c1e
refactor(tanstack-start): replace vite-plugin-pwa with native SW regi…
robelest Jan 1, 2026
d828a7f
chore: bump version to 1.2.0-preview.3
robelest Jan 1, 2026
3601279
refactor: replace SubdocManager with DocumentManager for v2 sync arch…
robelest Jan 2, 2026
6a51e55
fix: resolve document discovery from persistence on page refresh
robelest Jan 2, 2026
8b4c456
fix: restore createDeleteDelta to send actual CRDT delta
robelest Jan 2, 2026
26c534a
fix: persist delete marker to existing Y.Doc for offline delete support
robelest Jan 2, 2026
4c74228
refactor: rename delta storage tables for clarity
robelest Jan 2, 2026
dd08ea2
chore: migrate from ESLint to oxlint
robelest Jan 3, 2026
5dd7316
feat!: use Convex schema as single source of truth
robelest Jan 3, 2026
cf7775e
refactor: centralize Convex validators following val.md pattern
robelest Jan 3, 2026
faa2fad
feat: add collection.Doc type helper for cleaner type extraction
robelest Jan 3, 2026
50986ed
feat(example): update SvelteKit to use collection.Doc type helper
robelest Jan 3, 2026
6c6f830
chore: add tsgo + oxfmt tooling
robelest Jan 3, 2026
c86b4bc
fix(example): use Convex Doc<> types from schema in server collections
robelest Jan 3, 2026
346e2b4
docs: add signals.md - pagination + unified actor architecture plan
robelest Jan 3, 2026
4da1e80
feat: simplify server API to 5 exports (Phase 1)
robelest Jan 3, 2026
67efd40
feat: migrate client + SvelteKit to new API (Phase 2)
robelest Jan 3, 2026
963b134
feat: improve type system with collection.Infer and optional system f…
robelest Jan 4, 2026
d74452a
feat: add cursor-based pagination to material query (Phase 3)
robelest Jan 4, 2026
d5ef3cb
feat: merge recovery into delta query
robelest Jan 4, 2026
6f874a9
feat: replace PGlite with wa-sqlite Web Worker persistence
robelest Jan 4, 2026
0660a6c
docs: add CDN self-hosting guide for wa-sqlite
robelest Jan 4, 2026
ebf16ba
docs: move docs to docs/ folder and update pglite refs to wa-sqlite
robelest Jan 5, 2026
004cdfd
feat: switch to IDBBatchAtomicVFS with stability improvements
robelest Jan 5, 2026
3b41c11
docs: add storage debugging guide for OPFS and IndexedDB
robelest Jan 5, 2026
efb1c50
feat: switch to self-hosted wa-sqlite CDN
robelest Jan 5, 2026
58fda44
refactor: redesign pagination API with single-word status enum
robelest Jan 5, 2026
498eb89
refactor: unify auth with view function and simplify session API
robelest Jan 5, 2026
a05b1c3
docs: add authentication and authorization guide
robelest Jan 5, 2026
22c6fcc
feat: add auth-agnostic user identity and silent fail for unauthorize…
robelest Jan 6, 2026
874e91d
feat: add Better Auth integration to SvelteKit example
robelest Jan 6, 2026
2a6eca6
feat: add local encryption with WebAuthn PRF support
robelest Jan 6, 2026
5324ccf
refactor: restructure encryption API and rewrite auth docs
robelest Jan 7, 2026
7400265
feat: implement documented API patterns from auth.md
robelest Jan 7, 2026
ff7547d
feat: add type-safe ViewFunction type for replicate view callbacks
robelest Jan 8, 2026
992c3ab
refactor: extract shared auth helper and improve types in SvelteKit e…
robelest Jan 8, 2026
eb56ab0
docs: add compaction engine documentation
robelest Jan 8, 2026
63bbbdf
feat: implement compaction job scheduler with configurable options
robelest Jan 8, 2026
854db06
test: add comprehensive test suite for Replicate component
robelest Jan 9, 2026
446e29e
feat: implement versioned schema migration system
robelest Jan 11, 2026
282016f
refactor: update SvelteKit example to use versioned schema API
robelest Jan 11, 2026
3428851
fix: resolve client sync stability issues
robelest Jan 12, 2026
2715840
fix: resolve SSR issues in SvelteKit example
robelest Jan 12, 2026
edc59c8
fix: update SvelteKit components to use lazy auth client
robelest Jan 12, 2026
5e33c5a
refactor: rename auth-utils.ts to authUtils.ts for Convex compatibility
robelest Jan 12, 2026
15b8737
chore: update Convex to latest version
robelest Jan 12, 2026
b471189
chore: update generated Convex component types
robelest Jan 12, 2026
4114a21
refactor: replace Effect actor system with simple sync manager
robelest Jan 12, 2026
45a9846
test: add comprehensive test suite for sync and migrations
robelest Jan 12, 2026
1c17dbb
refactor: remove Effect.ts dependency (~200KB bundle reduction)
robelest Jan 12, 2026
a8f30cb
chore: update Convex to 1.31.3 and relax version constraints
robelest Jan 12, 2026
c403eb3
chore: migrate SvelteKit example from ESLint to Oxlint
robelest Jan 13, 2026
a899f00
refactor: migrate to monorepo structure with packages directory
robelest Jan 13, 2026
2b84205
style: remove trailing whitespace and fix formatting
robelest Jan 14, 2026
d15fc2d
fix: prevent recovery from flooding mutation queue on init
robelest Jan 14, 2026
1c5416e
perf: optimize compaction checks from O(n) to O(1)
robelest Jan 14, 2026
ef4e541
perf: optimize prose sync with fire-and-forget and configurable throttle
robelest Jan 14, 2026
10c47c3
refactor: standardize v2 API with opinionated getter/factory/namespac…
robelest Jan 14, 2026
36f1de6
refactor: consolidate to single index.ts per folder
robelest Jan 14, 2026
20bb8eb
docs: add project structure and API pattern documentation
robelest Jan 14, 2026
452ffd3
refactor: unify LogTape logging in shared/
robelest Jan 15, 2026
9ba8f01
refactor: externalize LogTape configuration from shared logger
robelest Jan 15, 2026
fe2c3f6
docs: update README for v2 API and experimental features
robelest Jan 15, 2026
b2730fb
docs: add pagination section to README
robelest Jan 15, 2026
538b260
docs: add missing configuration options to README
robelest Jan 15, 2026
37f3610
chore: bump version to 2.0.0-preview.0
robelest Jan 16, 2026
562da91
chore: remove unused playwright and @vitest/browser dependencies
robelest Jan 16, 2026
3f722f6
chore(examples): use @trestleinc/replicate@latest for deployment comp…
robelest Jan 16, 2026
76d99c5
fix(examples/sveltekit): remove overrides conflicting with npm
robelest Jan 16, 2026
49476a0
fix(examples/sveltekit): use bun provider for railpack
robelest Jan 16, 2026
d50be8b
fix(examples/sveltekit): use node provider with bun install
robelest Jan 16, 2026
b51d7a2
docs: update README with comprehensive API documentation
robelest Jan 18, 2026
704d011
chore(examples/sveltekit): use workspace dependency for replicate
robelest Jan 18, 2026
955c9d3
fix(examples/sveltekit): close dropdown before row reordering
robelest Jan 18, 2026
a8fd52c
fix(client): improve sync reliability with server update notifications
robelest Jan 18, 2026
eeb0bc6
fix: resolve critical race conditions and reliability issues across s…
robelest Jan 18, 2026
b58c384
test: remove 60 pointless tests and refactor test structure
robelest Jan 19, 2026
0789a77
test: add comprehensive adversarial test suite for race conditions
robelest Jan 19, 2026
c33249a
fix: prevent document resurrection after deletion
robelest Jan 19, 2026
b2f5f2f
feat(examples/tanstack-start): modernize to use versioned schema API
robelest Jan 19, 2026
4034064
feat(examples/expo): modernize to use versioned schema API
robelest Jan 19, 2026
a6eab3f
chore: update dependencies to latest versions
robelest Jan 19, 2026
4d4d3b9
chore: use pnpm instead of bun and simplify build scripts
robelest Jan 20, 2026
74421c0
chore: update tooling and clean up
robelest Jan 21, 2026
b8a1fcc
chore: lint fixes across examples and core package
robelest Jan 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
5 changes: 4 additions & 1 deletion .claude/agents/code-reviewer.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,19 @@
name: code-reviewer
description: Expert code review specialist for quality, security, and maintainability. Use PROACTIVELY after writing or modifying code to ensure high development standards.
tools: Read, Write, Edit, Bash, Grep
model: sonnet
model: opus
---

You are a senior code reviewer ensuring high standards of code quality and security.

When invoked:

1. Run git diff to see recent changes
2. Focus on modified files
3. Begin review immediately

Review checklist:

- Code is simple and readable
- Functions and variables are well-named
- No duplicated code
Expand All @@ -23,6 +25,7 @@ Review checklist:
- Performance considerations addressed

Provide feedback organized by priority:

- Critical issues (must fix)
- Warnings (should fix)
- Suggestions (consider improving)
Expand Down
5 changes: 4 additions & 1 deletion .claude/agents/frontend-developer.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,26 +2,29 @@
name: frontend-developer
description: Frontend development specialist for React applications and responsive design. Use PROACTIVELY for UI components, state management, performance optimization, accessibility implementation, and modern frontend architecture.
tools: Read, Write, Edit, Bash
model: sonnet
model: opus
---

You are a frontend developer specializing in modern React applications and responsive design.

## Focus Areas

- React component architecture (hooks, context, performance)
- Responsive CSS with Tailwind/CSS-in-JS
- State management (Redux, Zustand, Context API)
- Frontend performance (lazy loading, code splitting, memoization)
- Accessibility (WCAG compliance, ARIA labels, keyboard navigation)

## Approach

1. Component-first thinking - reusable, composable UI pieces
2. Mobile-first responsive design
3. Performance budgets - aim for sub-3s load times
4. Semantic HTML and proper ARIA attributes
5. Type safety with TypeScript when applicable

## Output

- Complete React component with props interface
- Styling solution (Tailwind classes or styled-components)
- State management implementation if needed
Expand Down
36 changes: 36 additions & 0 deletions .claude/agents/test-automator.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
---
name: test-automator
description: Create comprehensive test suites with unit, integration, and e2e tests. Sets up CI pipelines, mocking strategies, and test data. Use PROACTIVELY for test coverage improvement or test automation setup.
tools: Read, Write, Edit, Bash
model: opus
---

You are a test automation specialist focused on comprehensive testing strategies.

## Focus Areas

- Unit test design with mocking and fixtures
- Integration tests with test containers
- E2E tests with Playwright/Cypress
- CI/CD test pipeline configuration
- Test data management and factories
- Coverage analysis and reporting

## Approach

1. Test pyramid - many unit, fewer integration, minimal E2E
2. Arrange-Act-Assert pattern
3. Test behavior, not implementation
4. Deterministic tests - no flakiness
5. Fast feedback - parallelize when possible

## Output

- Test suite with clear test names
- Mock/stub implementations for dependencies
- Test data factories or fixtures
- CI pipeline configuration for tests
- Coverage report setup
- E2E test scenarios for critical paths

Use appropriate testing frameworks (Jest, pytest, etc). Include both happy and edge cases.
4 changes: 2 additions & 2 deletions .claude/agents/typescript-pro.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
name: typescript-pro
description: Write idiomatic TypeScript with advanced type system features, strict typing, and modern patterns. Masters generic constraints, conditional types, and type inference. Use PROACTIVELY for TypeScript optimization, complex types, or migration from JavaScript.
tools: Read, Write, Edit, Bash
model: sonnet
model: opus
---

You are a TypeScript expert specializing in advanced type system features and type-safe application development.
Expand Down Expand Up @@ -35,4 +35,4 @@ You are a TypeScript expert specializing in advanced type system features and ty
- Performance-optimized build configuration
- Migration strategies from JavaScript to TypeScript

Follow TypeScript best practices and maintain type safety without sacrificing developer experience.
Follow TypeScript best practices and maintain type safety without sacrificing developer experience.
20 changes: 11 additions & 9 deletions .claude/commands/commit.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,20 +19,20 @@ Create well-formatted commit: $ARGUMENTS

## What This Command Does

1. Unless specified with `--no-verify`, automatically runs pre-commit checks:
- `pnpm lint` to ensure code quality
- `pnpm build` to verify the build succeeds
- `pnpm generate:docs` to update documentation
1. Unless specified with `--no-verify`, automatically runs `bun run build` which includes:
- ESLint with auto-fix via rslib's pluginEslint
- TypeScript type checking via pluginTypeCheck
- Code formatting via @stylistic/eslint-plugin
2. Checks which files are staged with `git status`
3. If 0 files are staged, automatically adds all modified and new files with `git add`
4. Performs a `git diff` to understand what changes are being committed
5. Analyzes the diff to determine if multiple distinct logical changes are present
6. If multiple distinct changes are detected, suggests breaking the commit into multiple smaller commits
7. For each commit (or the single commit if not split), creates a commit message using conventional commit format
7. For each commit (or the single commit if not split), creates a commit message using conventional commit format

## Best Practices for Commits

- **Verify before committing**: Ensure code is linted, builds correctly, and documentation is updated
- **Verify before committing**: Run `bun run build` to ensure linting, formatting, and type checking pass
- **Atomic commits**: Each commit should contain related changes that serve a single purpose
- **Split large changes**: If changes touch multiple concerns, split them into separate commits
- **Conventional commit format**: Use the format `<type>: <description>` where type is one of:
Expand Down Expand Up @@ -60,6 +60,7 @@ When analyzing the diff, consider splitting commits based on these criteria:
## Examples

Good commit messages:

- Feat: add user authentication system
- Fix: resolve memory leak in rendering process
- Docs: update API documentation with new endpoints
Expand All @@ -78,6 +79,7 @@ Good commit messages:
- Feat: improve form accessibility for screen readers

Example of splitting commits:

- First commit: feat: add new solc version type definitions
- Second commit: docs: update documentation for new solc versions
- Third commit: chore: update package.json dependencies
Expand All @@ -89,12 +91,12 @@ Example of splitting commits:

## Command Options

- `--no-verify`: Skip running the pre-commit checks (lint, build, generate:docs)
- `--no-verify`: Skip running `bun run build` before committing

## Important Notes

- By default, pre-commit checks (`pnpm lint`, `pnpm build`, `pnpm generate:docs`) will run to ensure code quality
- If these checks fail, you'll be asked if you want to proceed with the commit anyway or fix the issues first
- By default, `bun run build` runs before committing to ensure code quality (linting, formatting, type checking)
- If the build fails, you'll be asked if you want to proceed with the commit anyway or fix the issues first
- If specific files are already staged, the command will only commit those files
- If no files are staged, it will automatically stage all modified and new files
- The commit message will be constructed based on the changes detected
Expand Down
29 changes: 0 additions & 29 deletions .github/workflows/ci.yml

This file was deleted.

23 changes: 23 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
name: Lint

on:
push:
branches: [main, develop, replicate, prod]
pull_request:
branches: [main, develop, prod]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4

- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
run: bun install --frozen-lockfile

- name: Build (includes ESLint + TypeScript)
run: bun run build
42 changes: 0 additions & 42 deletions .github/workflows/publish.yml

This file was deleted.

24 changes: 24 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,3 +20,27 @@ examples/*/.env.local
.rsbuild
.vite
.svelte-kit
.output/

# Expo / React Native
examples/expo/.expo/
examples/expo/android/
examples/expo/ios/
examples/expo/web-build/
*.jks
*.p8
*.p12
*.key
*.mobileprovision
*.orig.*

# Test coverage
coverage/
.nyc_output/

# Test results (Vitest HTML/JSON reports)
test-results/

# Test Convex deployment
src/test/convex/_generated/
**/build/
12 changes: 12 additions & 0 deletions .oxfmtrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"$schema": "https://oxc.rs/schemas/oxfmt.schema.json",
"printWidth": 100,
"tabWidth": 2,
"useTabs": true,
"semi": true,
"singleQuote": false,
"quoteProps": "as-needed",
"trailingComma": "all",
"bracketSpacing": true,
"arrowParens": "avoid"
}
7 changes: 7 additions & 0 deletions .prettierrc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
{
"useTabs": true,
"semi": true,
"singleQuote": true,
"trailingComma": "es5",
"printWidth": 100
}
18 changes: 9 additions & 9 deletions .vscode/settings.json
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
{
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
}
"files.watcherExclude": {
"**/routeTree.gen.ts": true
},
"search.exclude": {
"**/routeTree.gen.ts": true
},
"files.readonlyInclude": {
"**/routeTree.gen.ts": true
}
}
Loading
Loading