managarten/apps
Till JS ddde284f17 fix(memoro): decrypt DetailView fields + stamp createdAt on memo create
Two pre-existing bugs in the memoro module that became visible after
the Phase 5 LLM auto-title work landed. Both are independent of the
Phase 5 framework — neither was introduced by it — but the auto-title
was the first feature to systematically write to memo.title, which is
when the broken read path stopped hiding behind always-null titles.

Bug 1: DetailView shows ciphertext instead of plaintext

  apps/mana/apps/web/src/lib/modules/memoro/views/DetailView.svelte
  passed `useDetailEntity({ table: 'memos', ... })` WITHOUT setting
  `decrypt: true`. The crypto registry has memos.{title, intro,
  transcript} marked as encrypted, so the inputs were binding to
  raw `enc:1:Ghj1eJV0zz4PgfRL...` ciphertext strings instead of
  plaintext. Nobody noticed before because:

    - title was always null (no UI path to set it until Phase 5)
    - intro is rarely used
    - transcript was the only visible encrypted field, and the
      garbled `enc:1:...` string in the transcript area was apparently
      attributed to "broken transcription" rather than "broken read"

  Add `decrypt: true` to the useDetailEntity options. Same flag the
  other Mana modules already use for their encrypted DetailViews.

Bug 2: createdAt and updatedAt never set on memo records

  apps/mana/apps/web/src/lib/modules/memoro/stores/memos.svelte.ts
  create() built a LocalMemo object without populating createdAt or
  updatedAt. The LocalMemo type declares both as required strings,
  but TypeScript didn't catch the omission because the store relied
  on a TS Type assertion / partial-shape pattern.

  The Dexie creating hook in apps/mana/apps/web/src/lib/data/database.ts
  only auto-stamps userId + __fieldTimestamps — it does NOT auto-stamp
  createdAt. Module stores are expected to set their own timestamps
  (consistent with the todo, calendar, contacts, notes stores etc.).

  So every memoro memo had `createdAt === undefined`, and the
  DetailView's `new Date(memo.createdAt ?? '').toLocaleDateString('de')`
  rendered as "Erstellt: Invalid Date" for every single memo.

  Fix: set both timestamps explicitly in create() before the Dexie
  add. Existing memos in the wild are still broken — they'd need a
  one-shot migration to backfill createdAt from the
  __fieldTimestamps map, but that's a bigger commit.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-09 12:22:01 +02:00
..
api refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
calc/packages/shared chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00
calendar refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
cards chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
chat refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
citycorners chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
contacts refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
context chore(workspace): remove redundant nested lockfiles + workspace.yaml 2026-04-09 11:57:11 +02:00
docs docs: Phase 9 documentation roundup — close encryption-shaped doc gaps 2026-04-08 11:47:59 +02:00
guides refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
inventar chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
mana fix(memoro): decrypt DetailView fields + stamp createdAt on memo create 2026-04-09 12:22:01 +02:00
manavoxel chore(workspace): unify vitest to ^4.1.2 across all packages 2026-04-07 13:58:29 +02:00
memoro chore: remove abandoned per-product workspace artifacts 2026-04-09 11:56:51 +02:00
moodlit refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
mukke feat: rename ManaCore to Mana across entire codebase 2026-04-05 20:00:13 +02:00
news refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
nutriphi refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
photos chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
picture refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
planta refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
presi refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
questions refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
skilltree chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00
storage refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
times chore: complete ManaCore → Mana rename (docs, go modules, plists, images) 2026-04-07 12:26:10 +02:00
todo refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
traces refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
uload refactor(shared-tailwind): rewrite themes.css to single-layer shadcn convention 2026-04-09 01:13:06 +02:00
zitare/packages/content chore: delete 25 web-archived directories, remove stale stubs, clean workspace config 2026-04-03 13:03:49 +02:00