feat(meditate): the dream journal, a fourth tab, Today's morning card

ADR 0038, D14. A dream (`Dream`) holds the night it belongs to (the
morning's date, today's by default), an optional title, its text, the
marks lucid, nightmare and recurring, a clarity of 1 to 5, the mood on
waking and free labels, and when it was written; a row each in `dream`,
sealed for its row with the person's key as the sittings
(`DreamRepository` on `SealedRows`, `SyncDreamGateway`), followed by
`JournalCubit` for every screen.

- The Journal, between Explore and Profile: dreams by month, the
  newest first, searched over title, text and labels as Explore
  searches, filtered by marks, `+` above the bar; empty, it says that
  entries are sealed on the device before they sync.
- A dream's screen over the tabs: a new one with its text first and
  focused, the rest folded below; a kept one to read, with Edit and
  Delete (asked first); leaving one written but not saved asks first.
- Today, from 4 to 12 o'clock while last night has no dream, a gentle
  card leading to a new one; Settings' Journal card switches it off
  (`dreamPrompt` in the sealed settings, schema 1 kept).
- Profile's Practice: this month's dreams and the lucid ones, once the
  journal holds one.
- English and German texts; What's new 0.1.0 names the journal; the
  account's deletion says it takes the dreams too.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
This commit is contained in:
Tizian 「ティツィアーン」 2026-11-03 14:19:10 +01:00
commit 86c9f4522a
Signed by: raisondetredev
GPG key ID: 07F6FCF405488B64

View file

@ -10,7 +10,7 @@
},
"instanceFirstStartSubtitle": "Choose the instance to keep your practice on. Someone runs each one; you can add others later.",
"accountTitle": "Account",
"accountDeleteMessage": "Your account is deleted on the server and on all your devices, with every sitting kept. This can't be undone.",
"accountDeleteMessage": "Your account is deleted on the server and on all your devices, with every sitting and dream kept. This can't be undone.",
"aboutTitle": "About Halkyon Meditate",
"settingsTitle": "Settings",
"settingsVersion": "Version {version} (build {build})",
@ -186,5 +186,73 @@
"timerLengthTitle": "Silent timer's length",
"settingsPractice": "Practice",
"showStreakTitle": "Show the days in a row",
"showStreakHint": "On Today and in your Profile"
"showStreakHint": "On Today and in your Profile",
"shellTabJournal": "Journal",
"journalSearch": "Search dreams",
"journalEmptyTitle": "Your dream journal",
"journalEmpty": "Write down a dream as soon as you wake, before it fades. Every entry is sealed on this device before it syncs: nobody else can read it, not even the instance.",
"journalNoMatch": "No dream matches.",
"journalAdd": "Write down a dream",
"journalFiguresTitle": "Dream journal",
"figuresDreamsThisMonth": "This month",
"figuresLucid": "Lucid",
"markLucid": "Lucid",
"markNightmare": "Nightmare",
"markRecurring": "Recurring",
"moodGlad": "Glad",
"moodCalm": "Calm",
"moodPuzzled": "Puzzled",
"moodSad": "Sad",
"moodUneasy": "Uneasy",
"dreamNew": "New dream",
"dreamLastNight": "Last night",
"dreamNight": "Night before {date}",
"@dreamNight": {
"description": "The night a dream belongs to, named by the morning after it.",
"placeholders": {
"date": {
"type": "String"
}
}
},
"dreamTextHint": "What did you dream?",
"dreamTitleLabel": "Title (optional)",
"dreamMore": "Night, title, marks and more",
"dreamNightLabel": "Night",
"dreamMarksLabel": "Marks",
"dreamClarityLabel": "Clarity",
"dreamClarityHint": "How clearly you remember it, 1 to 5",
"dreamClarityValue": "Clarity {clarity}/5",
"@dreamClarityValue": {
"placeholders": {
"clarity": {
"type": "int"
}
}
},
"dreamMoodLabel": "Mood on waking",
"dreamLabelsLabel": "Labels",
"dreamLabelsHint": "People, places, themes",
"dreamLabelAdd": "Add label",
"dreamSave": "Save",
"dreamEdit": "Edit",
"dreamDelete": "Delete",
"dreamDeleteTitle": "Delete this dream?",
"dreamDeleteMessage": "It goes from your journal on all your devices.",
"dreamDiscardTitle": "Discard this dream?",
"dreamDiscardMessage": "What you wrote isn't saved.",
"dreamDiscard": "Discard",
"dreamWritten": "Written {date}",
"@dreamWritten": {
"placeholders": {
"date": {
"type": "String"
}
}
},
"todayDreamPrompt": "Write down last night's dream",
"todayDreamPromptHint": "Before it fades. Sealed on this device.",
"settingsJournal": "Journal",
"dreamPromptTitle": "Ask for last night's dream",
"dreamPromptHint": "On Today, from 4 to 12 o'clock, until you write one"
}