Skip to content

Latest commit

 

History

History
36 lines (33 loc) · 2.66 KB

plans.md

File metadata and controls

36 lines (33 loc) · 2.66 KB

NotesReady — Implementation Plans

Phase 1 — Project Foundation & Application Shell (Complete)

  • Status: APPROVED / COMPLETE WITH REVIEW CORRECTIONS
  • Completed Deliverables:
    1. Project source-of-truth documentation framework and Git initialization.
    2. Next.js 15+ + React 19 + TypeScript application structure.
    3. Official Concept 04 brand vectors (logo.svg, symbol.svg, icon-light.svg, icon-dark.svg, favicon.svg).
    4. Brand color system finalized: NotesReady Ember (#E85D3F).
    5. Application shell components (AppSidebar, AppHeader, MobileDrawer).
    6. Final review corrections: removed browser alert from New Note button.
    7. Automated unit testing (Vitest) and static production build verification.

Phase 2 — Core Workspace & Note Creation (IMPLEMENTED / APPROVED)

  • Status: IMPLEMENTED / APPROVED
  • Completed Deliverables:
    1. Decoupled Note domain entity and validation runtime guards (src/core/).
    2. Native IndexedDB storage adapter (notesready-db) with in-memory test fallback.
    3. Reactive WorkspaceContext and useNote hook managing 400ms debounced autosave.
    4. Immediate "New Note" creation flow with title auto-focus and instant editing canvas.
    5. Dynamic route /app/notes/[id] with refresh persistence, deep-linking, and honest status indicators.
    6. Real reactive recent notes and favorites list in sidebar and workspace directory views.
    7. 25 automated unit and integration tests passing.

Phase 3 — Rich Editor (IMPLEMENTED & LOCALLY COMMITTED)

  • Status: IMPLEMENTED & LOCALLY COMMITTED (5be9bbd)
  • Completed Deliverables:
    1. Tiptap v3 rich text editor with restricted schema (H1–H3, bold, italic, inline code, bullet/ordered lists, task lists, blockquotes, code blocks, horizontal dividers, history).
    2. Contextual floating bubble menu positioned via ProseMirror coordinates with NotesReady Ember accents and Escape dismissal.
    3. Content-format marker (plain-text-v1 and tiptap-json-v1) with non-destructive in-memory legacy migration.
    4. Truthful save states (Saving..., Saved locally, Could not save) with failure preservation and retry.
    5. Lifecycle flushing on unmount, pagehide, and visibilitychange with in-flight save sequencing and stale overwrite protection.
    6. Document size measurements (500 KB soft warning, 2 MB hard blocking limit with ProseMirror transaction filtering and recovery).
    7. Editor error boundary with plain-textarea fallback saving explicit plain-text-v1.
    8. Hostile paste sanitization and zero-telemetry content leak prevention (no error.message or note content in logs).
    9. 62 automated unit and integration tests passing across 13 test files.