10 new widgets using direct Dexie queries on the unified database:
- TasksTodayWidget: overdue + today's tasks with completion toggle
- UpcomingEventsWidget: next 7 days of calendar events
- RecentContactsWidget: recently updated contacts
- QuoteOfTheDayWidget: daily rotating quote from zitare
- ActiveTimerWidget: running time tracker with live elapsed time
- RecentChatsWidget: last 3 AI conversations
- NutritionProgressWidget: calorie progress ring + macros
- PlantWateringWidget: plants due for watering
- QuickActionsWidget: new task/event/contact/note shortcuts
- WidgetGrid: responsive 3-column grid with error boundaries
All widgets query the shared IndexedDB directly — no cross-origin
hacks, no iFrame postMessage, just normal Dexie liveQuery.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove unused multiplayer protocol types, script/wasmBinary/capabilities fields,
and onNearItem trigger. Implement portal requiresKey gate, fix onDayNight and
onTouch triggers to fire for all inventory items, and add gold-based trading
economy with NPC kill rewards and merchant purchasing.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- createTask: store labelIds in metadata when provided (was silently ignored)
- updateLabels: read existing metadata first and merge, instead of overwriting
the entire metadata object (was destroying assignee, storypoints, etc.)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Implement a two-layer DnD system in @manacore/shared-ui/dnd that coexists
with svelte-dnd-action (same-type reordering):
- Layer 1 (Pointer Events): dragSource + dropTarget actions for cross-type
drags (e.g. Tag → Task). Mobile-first with long-press (300ms) and haptic
feedback.
- Layer 2 (Passive Overlay): passiveDropZone action detects when
svelte-dnd-action drags hover over external targets (e.g. Task → Tag pill,
Task → Trash zone).
- DragPreview: floating pill that follows the finger/cursor during Layer 1
drags.
- ActionZone: auto-appearing drop zones (trash, archive) during any drag.
Integrate into Todo app:
- TagStrip pills: draggable (dragSource) + accept tasks (passiveDropZone)
- TaskList items: accept tags (dropTarget) + register drags for passive layer
- ViewColumn + FokusLayout: register svelte-dnd-action drags for passive layer
- Layout: DragPreview + ActionZone (trash) added, tasks enriched with resolved
label objects from shared tags so tag badges actually render on TaskItem.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace iFrame-based split-screen with native Svelte components:
Infrastructure (6 files):
- registry.ts: lazy-import registry for all 25 app modules
- store.svelte.ts: Svelte 5 runes state (app, position, localStorage)
- SplitPaneLayout.svelte: dual-panel layout with dynamic widths
- ResizeHandle.svelte: draggable divider with mouse/touch support
- PanelHeader.svelte: app name + close button
- index.ts: barrel exports
AppView.svelte for all 25 modules — compact self-contained views:
- todo: task list with filters + quick add
- calendar: mini week strip + today's events
- contacts: searchable list with avatars
- chat: conversation list with previews
- And 21 more...
Benefits over iFrame approach:
- Shared IndexedDB — both panels see the same data
- Svelte reactivity across panels
- No CORS/CSP issues
- Code-split via dynamic imports
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove unused TaskFilters component (priorities, sort, search, completed
toggle — none were wired to the board view). Rename PillNav pill from
"Filter" to "Tags" and show TagStrip instead. Connect TagStrip tag
selection to BoardViewRenderer via shared context so selecting tags
actually filters displayed tasks. Clean up viewStore by removing dead
filter state (filterPriorities, filterLabelIds, filterSearchQuery).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Secondary pages can be minimized to compact tabs above the fokus track
- Minimized tabs show centered with rounded corners, click to restore
- Add inline task creation input at the bottom of every page (except completed)
- Completed page shows date + time per task (i18n: "14:32 Uhr" DE, "14:32" EN)
- To Do page shows recently completed tasks with time
- Add + button next to minimized tabs to open page picker
- PagePicker auto-scrolls into view when opened
- i18n keys added for all 5 languages (DE/EN/FR/ES/IT)
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add open-tasks secondary page, remove scroll-snap from fokus layout
and page components for smoother scrolling, and allow closing the
last remaining column.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Error responses:
- Webhook routes now use consistent { success, error } format
- Meeting bot 402 error uses standard format instead of mixed error/message/details
PWA:
- Add /offline page with shared OfflinePage component
i18n:
- Change default locale from 'en' to 'de' (matching all other ManaCore apps)
- Use app-specific localStorage key 'memoro_locale' (was generic 'locale')
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add "Neue Seite" button to open filtered task pages (Erledigt, Heute,
Überfällig, etc.) alongside the main board view. Sheets are centered
via carousel-style padding, and all pages are closeable with X buttons.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Phase 0-2 of the unified app migration:
- Unified Dexie database with all 26 app schemas (120+ collections)
- Table name collisions resolved with prefixes (e.g., pictureTags, storageTags)
- SYNC_APP_MAP for routing sync changes to correct /sync/{appId} endpoints
- Calc module migrated as first proof-of-concept:
- components/skins, engine/evaluate, stores, queries
- Routes at /calc and /calc/standard
- Writes directly to unified db.calculations table
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive plan to consolidate 22+ SvelteKit web apps into a single
app under mana.how, solving IndexedDB origin isolation, enabling native
split-screen, and eliminating duplicated auth/settings/profile routes.
Games (arcade, voxelava, whopixels, worldream) and Matrix stay separate.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Adjust checkbox size, alignment offset, border opacity, font size,
and dark mode support for the inline task creation row.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Ensures Tailwind scans shared-auth-ui components for class generation
in calendar, contacts, guides, inventar, memoro, moodlit, photos,
planta, questions, times, and todo.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Define 25+ Memoro-specific events in shared-utils analytics (recording, memo CRUD, spaces, invites, playback, themes).
Integrate tracking in web app services, components, and stores.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Zod schemas for all 30+ API endpoints with proper input validation
- Consistent `{ success: true/false, ... }` response wrapper on every endpoint
- Pagination (limit/offset) on spaces, space memos, bots, and recordings list endpoints
- Validation helper (validateBody/validateQuery) for clean route handlers
- Fix rate-limiter return type in both memoro and shared-hono
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Comprehensive ManaScore assessment covering all 8 categories with actionable recommendations.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
mana-stt: add WhisperX service with CUDA GPU support, speaker diarization, and auto-fallback chain.
mana-notify: add locale fallback and default templates for task reminders.
CD: update deployment pipeline and docker-compose configuration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Use authMiddleware, healthRoute, errorHandler, notFoundHandler, and rateLimitMiddleware from shared-hono.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
New Astro landing page with hero, features, pricing sections.
Server: avatar upload with file validation, vCard import parser.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Server: reminder-worker checks due reminders every 60s, dispatches via mana-notify, integrates shared-hono middleware and Zod validation for RRULE.
Web: ReminderSelector component, local-first reminder store, form integration.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update Memoro status to published with founder-tier access. Add comprehensive analytics event tracking for all apps.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
In-memory sliding window rate limiter with per-IP tracking, configurable limits, and automatic stale entry cleanup.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Extract ~120 hardcoded German strings from 14 Svelte components into i18n locale
files using svelte-i18n $t() calls. Add new translation sections (taskForm, filters,
tags, subtasks, durationPicker, kanban, toolbar) across all 5 languages (de/en/fr/es/it).
Also add missing shared common translations for Spanish, French, and Italian
(150+ keys each) in packages/shared-i18n.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Set accurate status levels (beta/planning) instead of blanket 'development',
mark Cards/Picture/Zitare/Wisekeep as no longer coming soon.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Each app's PillNavigation now has spotlightActions with app-specific
quick actions (create, navigate, settings). Users can press Cmd+K / Ctrl+K
from any app to search apps, navigate, and trigger actions.
Apps: todo, calendar, contacts, chat, picture, clock, zitare, cards,
storage, manacore, mukke, presi, context, questions, photos, planta,
citycorners, guides, calc, moodlit, matrix, uload, arcade
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Fix typo: Okosystem → Ökosystem
- Remove Landing Pages section (low value for visitors)
- Add Mana branding header with tagline
- Move GitHub + Matrix Chat into new "Kontakt" section under Rechtliches
- Increase status dot size (6px → 7px) and legend font (0.625rem → 0.75rem)
- Balance column heights across the 4-column grid
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Improve first-visit experience across all 23 apps: fix incorrect data
warning (IndexedDB persists, not tab-only), swap CTA order (register as
primary), add marketing-focused copy inspired by Mana ecosystem values,
compact layout, Phosphor icons for features, "Mehr über Mana" link,
Mana branding label, and improved accessibility (aria-describedby).
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>