managarten/packages/shared-branding/src
Till JS bf3bca268a feat(lasts): M1-M7 — module ship + Meilensteine-Aggregator
Mirror sibling to firsts: das *letzte* Mal, das du etwas getan hast —
markiert oder rückwirkend erkannt. Plan: docs/plans/lasts-module.md.

M1 Skelett — Dexie v51 lasts-Tabelle, Encryption-Registry, Per-Space-
Welcome-Seed, Empty-State ListView. Kategorien aus firsts/types.ts
nach \$lib/data/milestones/categories.ts extrahiert (Re-Exports halten
firsts-API stabil).

M2 CRUD + DetailView — StatusTabs (Vermutet/Bestätigt/Aufgehoben),
Quick-Add mit Mode-Toggle, always-editable DetailView mit Lifecycle-
Buttons (Bestätigen, Aufheben mit Inline-Note), 44 i18n-Keys × 5 Locales.

M3 Inbox + Inferenz — Dexie v52 lastsCooldown (12-Monate-Cooldown,
deterministische ID), Source-Registry-Pattern in inference/, places-
Source mit Heuristik visitCount>=5 Span>=180d Silence>=365d. InboxView
mit Akzeptieren/Verwerfen + manueller Scan. contacts/habits → M3.b
sobald jeweilige Frequenz-Felder existieren.

M4 AI-Tools — 5 Tools im AI_TOOL_CATALOG (create_last, confirm_last,
reclaim_last, list_lasts, suggest_lasts), Webapp-Executor mit Vault-
Locked-Handling. Server-Drift-Test 4/4, Schema-Test 6/6.

M5 Reminders + Settings — Pivot zu In-App-DueBanner statt OS-Push (kein
PWA-Push-System im Repo). Pure date-math (12 Vitest cases), Settings-
Store mit 4 Toggles, DueBanner mit max-N rendering, Test-Banner-Knopf.

M6 Visibility + Unlisted-Sharing — VisibilityPicker + SharedLinkControls
in DetailView, buildLastBlob mit reflective-core whitelist (reclaimed
Lasts gehärtet ausgeblockt), SharedLastView public-render, Share-
Dispatcher kennt 'lasts'.

M7 Meilensteine-Aggregator — Cross-modul firsts vereinigt mit lasts
Timeline + Year-Recap. Pure aggregator (mergeMilestones,
buildMilestonesRecap), 12 Vitest cases. /milestones und
/milestones/recap/[year] Routes, Cross-Link in lasts/ListView.

Validation: 0 errors / 0 warnings (svelte-check 7645 files), 24/24
tests, i18n-parity 39x5 aligned (+2 namespaces), i18n-keys baseline-
equal, crypto 211 tables.

LOCAL TIER PATCH: lasts ist 'guest' für Testing — vor Release auf
'beta' setzen (packages/shared-branding/src/mana-apps.ts).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 21:40:29 +02:00
..
logos refactor: rename zitare -> quotes (Zitate) 2026-04-14 20:59:16 +02:00
app-icons.ts feat(lasts): M1-M7 — module ship + Meilensteine-Aggregator 2026-04-26 21:40:29 +02:00
AppLogo.svelte style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
AppLogoWithName.svelte style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
config.ts refactor: rename zitare -> quotes (Zitate) 2026-04-14 20:59:16 +02:00
index.ts feat(onboarding): M4 — Screen 3 (Templates) + finish handler 2026-04-23 23:03:00 +02:00
mana-apps.spec.ts refactor(shared-branding): derive APP_URLS from APP_ICONS 2026-04-09 15:14:52 +02:00
mana-apps.ts feat(lasts): M1-M7 — module ship + Meilensteine-Aggregator 2026-04-26 21:40:29 +02:00
ManaIcon.svelte style: auto-format codebase with Prettier 2025-11-27 18:33:16 +01:00
onboarding-templates.spec.ts feat(onboarding): M4 — Screen 3 (Templates) + finish handler 2026-04-23 23:03:00 +02:00
onboarding-templates.ts feat(onboarding): M4 — Screen 3 (Templates) + finish handler 2026-04-23 23:03:00 +02:00
spaces.ts feat(spaces): validate space metadata on Better Auth organization hooks 2026-04-20 16:05:38 +02:00
types.ts refactor: rename zitare -> quotes (Zitate) 2026-04-14 20:59:16 +02:00