Notechondria

Version: 0.1.1 Build Date: 2026-04-07T04:30

What's Changed

Note preview

  • Category delete is not functional locally (also failed remotely). Local path now remaps notes to default Inbox via _remapDraftCourseId instead of orphaning them; remote path auto-selects default course after delete; snackbar feedback added to _promptEditCategory. Backend verified with 4 new tests in CourseDeleteApiTests.
  • Cloud status display simplified to 3 icons: cloud_off_outlined (offline), cloud_upload_outlined (not synced, tertiary color), cloud_done_outlined (synced to cloud).
  • Avatar uploaded but not displayed on editor page. Settings page now uses _RemoteAvatar component; image cache busted on upload via timestamp query parameter and imageCache.clear().

Note editor

  • Access control: logged-in user could edit public notes not owned by them. Frontend _openViewer now checks author.username == currentUsername; Edit/Delete buttons only shown for owned notes or local drafts. Backend already enforced ownership via 403.
  • Removed inline/raw version toggle from live markdown editor. SegmentedButton and _liveMarkdownPreview field removed; editor always shows inline Typora-style mode. Users who want raw editing can use the plain text editor.
  • <details> and <summary> not correctly rendered. Fixed _DetailsBlockSyntax: relaxed pattern to ^\s{0,3}<details\b, added canEndBlock: false to prevent interruption by other syntaxes, handles single-line blocks and inline <summary>, trims body content.

Editor Settings

  • Renamed section heading from "Offline preferences" to "Editor preferences" in settings.dart.
  • Pull after deleting local data did not download remote data. Added _loadInitialData() call after pull completes to refresh remote courses and note lists.

Documentation

  • Docs repo URL in book.toml pointed to Nesbitt-bot instead of Trance-0. Updated git-repository-url and edit-url-template.

Files Changed

  • backend/notes/tests.py — 4 new CourseDeleteApiTests
  • docs/TASKS.md — checked off completed items
  • docs/book.toml — repo URL fix
  • frontend/editor_app/lib/app_shell.dart — category delete, avatar cache-bust, pull refresh, currentUsername prop
  • frontend/editor_app/lib/core/helpers.dart_DetailsBlockSyntax rewrite
  • frontend/editor_app/lib/modules/learner.dart — 3-state cloud icons, ownership check
  • frontend/editor_app/lib/modules/note_editor.dart — removed raw toggle
  • frontend/editor_app/lib/modules/settings.dart_RemoteAvatar, section rename