Notechondria

Version: 0.1.2 Build Date: 2026-04-07T05:30

What's Changed

Note editor

  • Remove block editor, current markdown editor is sufficient. Removed _BlockDraft class, _BlockInsertZone widget, _blockTypeLabel, _markdownFromBlockDraftRows, all block-editor fields/methods, and 'B' dropdown item from editor mode selector and settings. Notes previously set to block mode ('B') auto-migrate to live markdown ('G') on load.
  • Live parsing insert slot visible only on hover. Replaced always-visible 2px grey hairline with _HoverInsertSlot StatefulWidget that uses MouseRegion + AnimatedOpacity to fade in on hover; clicking still inserts an empty paragraph.

Note preview

  • <details> rendered as grey panel filling page instead of collapsible dropdown. Added backgroundColor: Colors.transparent, collapsedBackgroundColor: Colors.transparent, shape: const Border(), collapsedShape: const Border() to ExpansionTile in _DetailsBuilder; wrapped MarkdownBody in if (body.isNotEmpty) guard; added clipBehavior: Clip.antiAlias on container.
  • Restore template course set vibe-coding-101 as default category. Changed is_default: True to False for vibe-coding-101 in bootstrap_platform.py; local starter Inbox now created with 'is_default': true; added assertion to existing template-restore test.
  • Local edit locked without login. Backend NoteListCreateApiView GET now uses AllowAny permission; anonymous users see public notes only. Frontend _loadLearnerNotes and _loadInitialData fetch public notes with scope=all when unauthenticated. Learner page restructured to show local drafts above public notes for all users.

Editor Settings

  • Removed redundant "Settings" page header from app shell wide layout. _showWidePageHeader now returns false; the settings page already has its own "Editor settings" heading.
  • Removed "Block editor" option from default editor dropdown in settings. Added 'B' -> 'G' migration in settings initState.

Files Changed

  • backend/notes/api.pyNoteListCreateApiView GET now AllowAny, anonymous users see public notes
  • backend/notes/management/commands/bootstrap_platform.pyvibe-coding-101 is_default set to False
  • backend/notes/tests.py — template-restore test asserts no template courses are is_default
  • docs/TASKS.md — checked off completed items
  • frontend/editor_app/lib/app_shell.dart — starter Inbox is_default: true, _showWidePageHeader always false, _loadLearnerNotes + _loadInitialData fetch public notes without auth
  • frontend/editor_app/lib/core/helpers.dart_DetailsBuilder transparent background/shape, empty body guard
  • frontend/editor_app/lib/modules/learner.dart — unified note list layout for auth/anon users
  • frontend/editor_app/lib/modules/note_editor.dart — removed _BlockInsertZone, _blockTypeLabel, _markdownFromBlockDraftRows; added _HoverInsertSlot
  • frontend/editor_app/lib/modules/settings.dart — removed 'B' dropdown item, added 'B' -> 'G' migration