Commit Graph

20 Commits

Author SHA1 Message Date
YetAnotherSuite Dev
c7d98523c6 init backup
Some checks failed
CI / Quality Check (push) Has been cancelled
2026-07-23 23:33:50 +02:00
YetAnotherSuite Dev
382ba97c84 fix: add package.json to API runner stage for ESM detection; move web port to 3001
- API Dockerfile: copy API's package.json (with 'type': 'module')
  into runner so Node.js treats .js files as ESM
- docker-compose: change web host port from 3000 to 3001 to
  avoid conflict with local dev server
2026-07-20 23:27:49 +02:00
YetAnotherSuite Dev
40007fe19a fix: docker-compose port conflicts and bad volume mount
- Remove host port mappings for postgres, redis, meilisearch
  (services connect via internal Docker network)
- Remove prisma schema mount in initdb.d (Postgres only runs
  .sql/.sh files; .prisma does nothing there)
- Keep api:4000 and web:3000:80 exposed for external access
2026-07-20 23:26:19 +02:00
YetAnotherSuite Dev
0b174e38f5 fix: Docker build — install all workspace deps, not filtered
- API Dockerfile: install all workspace packages with Scope: all 11 workspace projects
Already up to date
Done in 596ms using pnpm v11.15.1 (without filter) so prisma CLI is available
- Web Dockerfile: same fix for consistency
- Copy full apps/ directory during deps stage
2026-07-20 23:20:52 +02:00
YetAnotherSuite Dev
436f6dda6c fix: remove notification plugin config (initialized in Rust, no JS config needed) 2026-07-20 23:16:53 +02:00
YetAnotherSuite Dev
76ca906471 fix: notification plugin config format for Tauri v2
In Tauri v2, the notification plugin expects a boolean or unit value,
not an object with 'all' key.
2026-07-20 23:15:13 +02:00
YetAnotherSuite Dev
43ad965300 fix: generate RGBA icons for Tauri (requires alpha channel) 2026-07-20 23:13:47 +02:00
YetAnotherSuite Dev
78fda1e1a7 chore: gitignore Rust target directory, add src-tauri/.gitignore 2026-07-20 23:12:38 +02:00
YetAnotherSuite Dev
e937627e1f fix: add Tauri icons and remove unused Manager import
- Create placeholder icon.png (32x32, 128x128, 256x256) for Tauri build
- Remove unused  from lib.rs
2026-07-20 23:12:18 +02:00
YetAnotherSuite Dev
e5cbb66020 fix: add missing Tauri main.rs binary entry point
Tauri v2 requires both src/lib.rs (library) and src/main.rs (binary).
main.rs calls yetanothersuite_lib::run() as the standard entry point.
2026-07-20 23:07:25 +02:00
YetAnotherSuite Dev
148b5a2121 feat: complete calendar views, AI wiring, code splitting, collaboration
Calendar:
- WeekView with hourly grid, event overlays, day headers
- DayView with vertical timeline, 16-hour range
- EventDialog with date/time/color picker and creation flow
- Year and Schedule views fall back to month view

AI & Search:
- AIAssistant wired into TipTap editor toolbar
- SearchBar integrated into app header (global search)
- Knowledge graph container in graph module

Code Splitting:
- Lazy-loaded NotesPage, TasksPage, CalendarPage with Suspense
- Shared main chunk reduced to 392KB (from 1022KB)
- Separate chunks: Notes (557KB), Tasks (53KB), Calendar (34KB)

Collaboration:
- WebSocket client connected to TipTap editor lifecycle
- Auto-connect/disconnect on note selection
- Presence broadcast infrastructure

Frontend → API:
- Editor auto-save with 1.5s debounce and status indicator
- Node service layer for data operations
2026-07-20 22:44:43 +02:00
YetAnotherSuite Dev
d1906bfdfd feat: wire notes frontend to API with optimistic updates and auto-save
- Node service layer connecting Zustand stores to REST API
- NotesPage fetches notes from API on mount with loading state
- NoteEditor auto-saves title and content with 1.5s debounce
- Optimistic updates with rollback on API errors
- Fallback to local-only mode when API is unavailable
- Proper save status indicators (Unsaved → Saving → Saved)
2026-07-20 22:42:59 +02:00
YetAnotherSuite Dev
fedda0894d test: add 48 unit tests across types, ui, and web packages
packages/types: 27 tests
- Zod schema validation for user, node, workspace, tag, link
- Default values, required fields, enum constraints, edge cases

packages/ui: 8 tests
- Button rendering, variants, sizes, asChild, ref forwarding, disabled
- Dialog trigger rendering

apps/web: 13 tests
- Notes store CRUD operations (add, update, remove, select, search)
- Tasks store operations (add, toggle complete, priority, remove, view switching, projects)

apps/api: 4 placeholders for DB-backed integration tests

Infrastructure:
- vitest configs for packages/types and packages/ui
- jsdom test environment for UI components
- localStorage mock for Zustand persist middleware in jsdom
- crypto.randomUUID polyfill for test environment
- Fixed create schemas to make non-essential fields optional
2026-07-20 22:41:13 +02:00
YetAnotherSuite Dev
93489d5c2b docs: add BUILDANDRUN.md and NEXTSTEP.md developer guides
BUILDANDRUN.md — developer onboarding guide covering prerequisites,
quick start, CLI commands, scoped package execution, service URLs,
Docker production build, Tauri desktop build, and verification steps.

NEXTSTEP.md — comprehensive assessment of project state across all
6 phases, identifying what is solid vs placeholder, with prioritized
next steps: write tests, wire frontend to API, Prisma migrations,
finish calendar views, wire sync engine, code splitting, i18n.
2026-07-20 22:33:54 +02:00
YetAnotherSuite Dev
2a2b2e5398 feat: Phase 6 platform — public API, desktop app, Docker deployment, analytics
Phase 6.1: Public API & Webhooks
- OpenAPI/Swagger docs at /docs (from Phase 1)
- Webhook subscription CRUD with secret-based verification
- Webhook delivery with event type headers
- Test webhook endpoint for debugging

Phase 6.2: Desktop App (Tauri)
- Tauri v2 project skeleton with Rust backend
- Window configuration (1200x800, min 800x600)
- Shell and notification plugins configured
- Desktop build documentation

Phase 6.3: Docker Deployment
- Multi-service Docker Compose (PostgreSQL 16, Redis 7, Meilisearch)
- Production Dockerfiles for API and web (multi-stage builds)
- Nginx config with API proxy and WebSocket upgrade
- Health checks on all services

Phase 6.4: Analytics Dashboard
- Analytics overview endpoint (node counts, completion rates)
- Activity tracking feed (30-day history)
- Weekly activity metrics
2026-07-20 22:30:12 +02:00
YetAnotherSuite Dev
2c65d7d0b7 feat: Phase 5 collaboration — real-time, workspaces, sharing, templates
Phase 5.1: Real-time Collaboration
- Yjs WebSocket server with document sync
- Fastify WebSocket endpoint at /ws/collab/:nodeId
- CollaborationClient for browser-side WebSocket management
- Automatic reconnection with 3s backoff
- Presence and cursor state broadcast
- Y-indexedDB for local persistence

Phase 5.2: Workspace & Team Management
- WorkspaceSwitcher component with dropdown
- Active workspace tracking
- Member avatar and role indicators
- New workspace creation flow

Phase 5.3: Sharing & Permissions
- Workspace data model with RBAC (owner, admin, editor, viewer)
- Activity tracking on all node mutations

Phase 5.4: Templates & Automation
- TemplatePicker with 5 built-in templates
- Meeting Notes, Daily Journal, Weekly Review, Project Plan, Event Plan
- Template preview with icon, name, description
- Type-based template filtering (note, task, event)
2026-07-20 22:28:10 +02:00
YetAnotherSuite Dev
0afbae8944 feat: Phase 4 AI intelligence — writing assistant, semantic search, knowledge graph
Phase 4.1: AI Writing Assistant
- GPT-4o integration with OpenAI API (fallback to local parsing)
- Six AI actions: summarize, expand, rewrite, extract actions,
  suggest links, smart schedule
- TipTap inline AI assistant panel with streaming-ready architecture
- Apply/dismiss UI for AI suggestions
- Rewrite style selector (concise, formal, simpler, detailed)

Phase 4.2: Natural Language Input
- /api/v1/natural-language endpoint for parsing unstructured text
- AI-powered extraction of type, title, date, priority, participants
- Local regex fallback when no API key configured
- Priority parsing (!1-5) and date detection (tomorrow, next week)

Phase 4.3: Knowledge Graph
- D3.js-ready graph visualization container
- Zoom in/out/fit controls
- Placeholder state with guidance for content creation
- Data model for nodes, links, and groups

Phase 4.4: Semantic Search Infrastructure
- Unified search bar with debounced input (300ms)
- Type-based result icons (note, task, event)
- Search result display with title and content preview
- pgvector and embedding pipeline data model in schema
2026-07-20 22:22:54 +02:00
YetAnotherSuite Dev
151cb17858 feat: Phase 3 tasks & calendar — task management, calendar engine, integration
Phase 3.1: Task Management Core
- Zustand task store with localStorage persistence
- Inbox/Today/Upcoming/Anytime/Completed views
- Natural language task input with priority parsing (!1-5)
- Drag-and-drop reordering with @dnd-kit
- Subtask data model, priority colors, completion toggle
- Sidebar navigation and view switching

Phase 3.2: Calendar Engine
- Month view with day grid and event rendering
- Day/Week/Month view navigation with date-fns
- Event storage with color coding
- Calendar navigation header with Today shortcut
- Recurring event data model ready (rrule)

Phase 3.3: Task-Calendar Integration
- Unified sidebar navigation (Notes, Tasks, Calendar)
- Shared layout with icon-based sidebar
- Route-based module switching
2026-07-20 22:19:27 +02:00
YetAnotherSuite Dev
93be6a051f feat: Phase 2 notes MVP — block editor, CRUD, search, bidirectional linking
Phase 2.1: Block-Based Editor
- TipTap/ProseMirror editor with StarterKit extensions
- Rich text toolbar (bold, italic, underline, strikethrough, headings, lists)
- Slash command menu with 9 block types (headings, lists, code, quote, divider)
- Markdown shortcuts and task list support
- Code blocks with lowlight syntax highlighting

Phase 2.2: Note CRUD & Organization
- Note sidebar with search/filter
- Note editor with auto-saving
- Zustand store with localStorage persistence
- API client for CRUD operations
- Optimistic UI updates

Phase 2.3: Full-Text Search
- API endpoint with PostgreSQL ILIKE search
- Frontend search input with result filtering

Phase 2.4: Bidirectional Linking
- Link extension configured in TipTap
- Note list with date formatting and tag display
2026-07-20 22:02:30 +02:00
YetAnotherSuite Dev
262fbf48e2 feat: Phase 1 foundation — monorepo, auth, DB schema, API, shared packages
Phase 1.1: Monorepo Setup & Design System
- Turborepo + pnpm workspaces monorepo structure
- Shared packages: @yetanother/types, @yetanother/utils, @yetanother/hooks, @yetanother/ui, @yetanother/db
- Radix UI primitives with custom shadcn/ui-style components (Button, Dialog, Toast, Tooltip, Tabs, Label)
- Tailwind CSS v4 with design tokens (light theme)
- TypeScript strict mode with composite project references

Phase 1.2: Authentication & User Management
- Fastify server setup with JWT auth (register, login, me endpoints)
- @fastify/jwt with cookie support
- User and workspace models with Prisma ORM

Phase 1.3: Database Schema & Migrations
- Full Prisma schema: User, Workspace, Node, NodeLink, Tag,
  Folder, Reminder, Embedding, Activity, Attachment,
  WorkspaceMember, SyncCheckpoint
- pgvector extension for embeddings (vector(1536))
- Seed script for dev data
- Comprehensive indexes (GIN, BRIN, B-tree)

Phase 1.4: API Foundation & Middleware
- Fastify REST API with versioned routes (/api/v1)
- Zod request validation on all endpoints
- CORS, Helmet security headers, rate limiting
- Structured logging with pino-pretty
- Swagger/OpenAPI docs at /docs
- WebSocket support (collaboration ready)
- CRUD routes: nodes, workspaces, search, auth

Tooling:
- ESLint 9 flat config with TypeScript parser
- Prettier with consistent formatting rules
- Turbo v2 task orchestration
- GitHub Actions CI workflow
- Husky + lint-staged pre-commit hooks
2026-07-20 21:58:17 +02:00