You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Journaling as its own top-level section (route /journal, sidebar nav link like Time). Structured journal templates whose entries are stored as data and rendered as markdown notes. Three templates ship in v3.0: daily (derived from the user's proven claude.ai journaling practice), gratitude (short list + optional prose), and affirmations (daily list, revisited at the evening close to celebrate wins). Timestamped mood check-ins (own words, energy, optional Map of Consciousness level) modeled like TimeEntries - multiple per day; mood shift derived from first vs last. Task-linked Today's Plan (combobox over existing task text search + explicit '+ Create task' row; created tasks default due-today/no-project) with a derived 'Unplanned, got done' bucket from completed-but-unplanned tasks. Markdown export as download (single day .md / zip of all). This is the spine of the v3 journaling program.
Scope
In scope:
JournalTemplate (JSON section definitions as TEXT, seeded in code - no template editor UI) + JournalEntry (one per template per date, JSON content as TEXT) + MoodCheckin tables, controllers following existing conventions
Markdown generation as a pure static helper in Services/ (RecurrenceRule pattern); no Markdig
/journal page: center = sections in a structured editor (styled auto-grow textareas per section kind - no rich-text library), right sidebar = calendar date picker (reuse DueDatePicker patterns, default today) + mood widgets; edit/preview toggle (react-markdown, new dependency - approved)
Daily template sections (judged against a full scan of 10 real notes): morning mood check-in, What's Going On, Mind Dump, Projects Today, Today's Plan (Non-Negotiable / If Energy Allows / Easy Wins + derived Unplanned), Front of Mind, Back of Mind, Daily Review, Evening Review (all sub-fields kept), Journal (optional). Thought Check + Chaos to Control cut (dead in real usage)
Mobile + desktop both required
Export: download endpoints/UI (day .md, zip all)
Out of scope (later versions of the v3 program):
Minimal single-user auth (v3.1, before journal content flows through MCP)
Area/spin-off notes (idea-notes, logs) - a general notes system, stays in Obsidian
Dream journal / wishlist (added to backlog)
No import of old Drive/Obsidian notes - fresh start
Key decisions:
Structured storage, markdown is a render (never parse markdown back)
JSON stored as plain TEXT + System.Text.Json (first JSON-content columns in the codebase; deliberately NOT EF ToJson) - queryable values (mood, energy) get real columns on MoodCheckin
MoodCheckin mirrors TimeEntry (timestamped, multi/day), not CheckIn (one/day)
GCP demo seed DB will need regeneration at ship time (journal tables otherwise empty there)
Plan
docs/plans/P79-journaling.md
Outcome
What was built: Journaling as its own section (/journal + header nav tabs): three code-seeded templates (Daily/Gratitude/Affirmations), structured entries rendered to Obsidian-compatible markdown by a single backend renderer, timestamped mood check-ins via a full 3-ring feelings wheel with derived (never self-tagged) Map of Consciousness scores + mood arc chart, task-linked plan with explicit create + derived Unplanned bucket, transient Front/Back-of-Mind with next-day rollover, calendar with entry dots, edit/preview toggle, day .md + zip-all export, journal-scoped fog/plum/serif identity with dark mode, mobile widget drawer + header quick actions. New: JournalTemplates/JournalEntries/MoodCheckins tables, completedOn task filter, react-markdown dependency.
Verified: 334 backend + 27 new frontend tests green; production build clean; full API + UI flow driven end to end on desktop and phone (LAN); review fixes (1 Block + 10 Warns + design findings) applied and re-verified; test data wiped for fresh start.
Issues raised during this work:#80 (a11y), #81 (hardening), #82 (polish), #83 (pre-existing TaskCard tests), #84 (Doppel persona + draggable).
What we're building
Journaling as its own top-level section (route
/journal, sidebar nav link like Time). Structured journal templates whose entries are stored as data and rendered as markdown notes. Three templates ship in v3.0: daily (derived from the user's proven claude.ai journaling practice), gratitude (short list + optional prose), and affirmations (daily list, revisited at the evening close to celebrate wins). Timestamped mood check-ins (own words, energy, optional Map of Consciousness level) modeled like TimeEntries - multiple per day; mood shift derived from first vs last. Task-linked Today's Plan (combobox over existing task text search + explicit '+ Create task' row; created tasks default due-today/no-project) with a derived 'Unplanned, got done' bucket from completed-but-unplanned tasks. Markdown export as download (single day .md / zip of all). This is the spine of the v3 journaling program.Scope
In scope:
Out of scope (later versions of the v3 program):
Key decisions:
Plan
docs/plans/P79-journaling.md
Outcome
What was built: Journaling as its own section (/journal + header nav tabs): three code-seeded templates (Daily/Gratitude/Affirmations), structured entries rendered to Obsidian-compatible markdown by a single backend renderer, timestamped mood check-ins via a full 3-ring feelings wheel with derived (never self-tagged) Map of Consciousness scores + mood arc chart, task-linked plan with explicit create + derived Unplanned bucket, transient Front/Back-of-Mind with next-day rollover, calendar with entry dots, edit/preview toggle, day .md + zip-all export, journal-scoped fog/plum/serif identity with dark mode, mobile widget drawer + header quick actions. New: JournalTemplates/JournalEntries/MoodCheckins tables, completedOn task filter, react-markdown dependency.
Verified: 334 backend + 27 new frontend tests green; production build clean; full API + UI flow driven end to end on desktop and phone (LAN); review fixes (1 Block + 10 Warns + design findings) applied and re-verified; test data wiped for fresh start.
Issues raised during this work: #80 (a11y), #81 (hardening), #82 (polish), #83 (pre-existing TaskCard tests), #84 (Doppel persona + draggable).