Add new @manacore/shared-splitscreen package enabling iFrame-based
split-screen functionality across Calendar, Todo, and Contacts apps.
Features:
- SplitPaneContainer with CSS Grid layout
- AppPanel with iFrame sandbox permissions and loading/error states
- ResizeHandle with mouse, touch, and keyboard support (20-80% range)
- PanelControls for swap and close actions
- Svelte 5 runes-based store with Context API
- URL persistence (?panel=todo&split=60)
- localStorage persistence with versioning
- Mobile auto-disable (<1024px breakpoint)
Integration:
- PillNavigation: added onOpenInPanel prop and Ctrl/Cmd+click support
- PillDropdown: added split button per app item
- Calendar, Todo, Contacts layouts wrapped with SplitPaneContainer
Also fixes:
- WeekView.svelte: fixed {@const} placement error
- MultiDayView.svelte: fixed {@const} placement error
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Update ContactList with better spacing and layout
- Improve FilterBar responsiveness
- Adjust app.css for new component styles
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add QuickInputBar component with natural language parsing, syntax
highlighting, search, and quick-create functionality
- Add PillToolbar, PillToolbarButton, PillToolbarDivider components
for app-specific toolbar controls
- Add PillTimeRangeSelector for hour range selection
- Add PillViewSwitcher for view mode switching with sliding indicator
- Integrate QuickInputBar into Calendar, Contacts, and Todo apps
- Add app-specific toolbars: CalendarToolbar, ContactsToolbar, TodoToolbar
- Add DateStrip component for Calendar date navigation
- Fix type exports: export QuickAction and CreatePreview from quick-input
module, remove duplicate exports from deprecated command-bar
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ContactSelector, ContactBadge, ContactAvatar to shared-ui
- Add ContactsClient API service to shared-auth
- Add ContactReference, ContactSummary types to shared-types
- Todo: Add assignee and involvedContacts to tasks with UI in TaskEditModal
- Todo: Display contacts in TaskItem and KanbanTaskCard
- Calendar: Add AttendeeSelector with RSVP status support
- Calendar: Integrate attendees in EventForm
- Calendar: Add task drag-drop to calendar views (Day/Week/MultiDay)
- Contacts: Add ContactTasks component to show related tasks
- Backend: Add findByContact endpoint to Todo task service
- UI polish: glassmorphism styling, keyboard navigation, auto-focus
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add ContactSelector, ContactBadge, ContactAvatar to shared-ui
- Add ContactsClient API service to shared-auth
- Add ContactReference, ContactSummary types to shared-types
- Todo: Add assignee and involvedContacts to tasks with UI in TaskEditModal
- Todo: Display contacts in TaskItem and KanbanTaskCard
- Calendar: Add AttendeeSelector with RSVP status support
- Calendar: Integrate attendees in EventForm
- Calendar: Add task drag-drop to calendar views (Day/Week/MultiDay)
- Contacts: Add ContactTasks component to show related tasks
- Backend: Add findByContact endpoint to Todo task service
- UI polish: glassmorphism styling, keyboard navigation, auto-focus
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Rename route /labels to /tags and /label/[id] to /tag/[id]
- Rename LabelSelector component to TagSelector
- Update all UI texts from "Labels" to "Tags"
- Update navigation items and references
- Align terminology with Calendar and Contacts apps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements the same CommandBar quick-create functionality from Todo
in Calendar and Contacts apps with a shared base parser architecture.
- Add base-parser in shared-utils with common patterns (date, time, tags)
- Refactor task-parser to use base-parser
- Create event-parser for Calendar with duration, location, @calendar
- Create contact-parser for Contacts with email, phone, @company detection
- Integrate Quick-Create into Calendar and Contacts layouts
Natural language syntax:
- Common: heute, morgen, Montag, 15.12., um 14 Uhr, #tags
- Calendar: für 2h, 30 min, in Berlin, @Kalender, ganztägig
- Contacts: @Firma, bei Company, auto email/phone detection
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Users were getting signed out after ~15 minutes because API clients were
reading tokens directly from localStorage without triggering the refresh
logic. The tokenManager exists with proper refresh capability but was
never being used.
Changes:
- Add getValidToken() method to auth stores in 9 web apps
- Update API clients to use authStore.getValidToken() instead of localStorage
- Token refresh now happens proactively before requests fail
Apps updated: chat, calendar, picture, zitare, contacts, todo, clock, manacore, manadeck
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Rename route /labels to /tags and /label/[id] to /tag/[id]
- Rename LabelSelector component to TagSelector
- Update all UI texts from "Labels" to "Tags"
- Update navigation items and references
- Align terminology with Calendar and Contacts apps
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Implements the same CommandBar quick-create functionality from Todo
in Calendar and Contacts apps with a shared base parser architecture.
- Add base-parser in shared-utils with common patterns (date, time, tags)
- Refactor task-parser to use base-parser
- Create event-parser for Calendar with duration, location, @calendar
- Create contact-parser for Contacts with email, phone, @company detection
- Integrate Quick-Create into Calendar and Contacts layouts
Natural language syntax:
- Common: heute, morgen, Montag, 15.12., um 14 Uhr, #tags
- Calendar: für 2h, 30 min, in Berlin, @Kalender, ganztägig
- Contacts: @Firma, bei Company, auto email/phone detection
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add a SearchModal component for quick contact search with keyboard
navigation, and add central help content for FAQ, getting started
guides, and support information.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Use original ContactDetailModal as sidebar when clicking nodes
- Add glass effect (backdrop-filter blur) to NetworkControls and sidebar
- Position controls bar on the left side
- Add $effect to reload contact when contactId changes
- Remove shadows for cleaner glass appearance
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Replace SVG path icons with Phosphor Icons via @manacore/shared-icons
- Add icon mapping for all navigation icons (help-circle, share-2, etc.)
- Update help page design with glass-morphism styling
- Icons now render consistently across all navigation items
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add reusable CommandBar component to shared-ui package with dark theme
- Integrate CommandBar (Cmd/K) in contacts, calendar, todo, and clock apps
- Implement search functionality for each app:
- Contacts: search by name, company, email with relevance-based sorting
- Calendar: search events by title/description within next year
- Todo: search tasks by title/description
- Clock: search alarms and timers by label
- Add quick actions for common operations in each app
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add NetworkModule backend with tag-based relationship detection
- Create D3-force powered network graph component with zoom/pan/drag
- Implement network store with Svelte 5 runes for state management
- Add floating controls for search, filter by tag/company, and zoom
- Full-screen graph layout with sidebar for selected contact details
- Contacts are connected when they share common tags
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add @manacore/shared-help-types with TypeScript types and Zod schemas
- Add @manacore/shared-help-content with Markdown parser, content loader, and Fuse.js search
- Add @manacore/shared-help-ui with Svelte 5 components (HelpPage, FAQSection, FeaturesOverview, etc.)
- Add @manacore/shared-help-mobile with React Native components for Expo apps
- Add help translations to shared-i18n (de, en, fr, it, es)
- Implement self-contained help page in Contacts app with FAQ, Features, Shortcuts, and Contact sections
- Support i18n with German and English content
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Remove groups functionality and use only tags for contact organization.
Tags provide a simpler, more intuitive approach for categorizing contacts.
Frontend changes:
- Remove groups pages (/groups, /groups/new, /groups/[id])
- Remove groups from navigation
- Update FilterBar to use tags instead of groups
- Update ContactList to use selectedTagId
- Remove groupsApi and batch group operations
- Update i18n translations (group → tag)
Backend changes:
- Remove GroupModule and group controller/service
- Remove groups.schema.ts and contact_to_groups relation
- Remove group-related batch operations (addToGroup, removeFromGroup)
- Remove groupId filtering from contacts and export
- Remove preset groups from seed.ts
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Remove groupsStore import and usage from data/+page.svelte
- Remove group filter from export options (groups feature not implemented)
- Clean up export button removal from ContactList
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add quick favorites filter button on homepage with badge count
- Create dedicated favorites page with hero header and stats cards
- Implement three view modes for favorites: cards, list, alphabet
- Cards: Large 120px avatars with gradient backgrounds, full contact details
- List: 72px avatars with detail chips and hover actions
- Alphabet: Grouped by letter with quick-jump navigation
- Fix layout jump when favorites filter is active (exclude from FilterBar count)
- Add tags management feature with CRUD operations
- Reorganize import page to /data route
- Add infinite scroll to contacts list
- Add contact notes feature
- Persist favorites view mode in localStorage
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- SettingsCard, SettingsSection, SettingsRow now use Tailwind classes
- SettingsToggle, SettingsSelect, SettingsNumberInput updated
- SettingsTimeInput, SettingsDangerZone, SettingsDangerButton updated
- SettingsPage updated with Tailwind layout classes
- Fixes dark mode styling issues when components used across packages
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add duplicate detection service with merge functionality
- Find duplicates by email, phone, or name
- Merge contacts with field selection UI
- Dismiss false positives
- Add contact photo upload
- Upload photos to MinIO/S3 storage
- Display photos in all contact views
- Delete photo functionality
- Add batch operations for multiple contacts
- Selection mode with checkboxes in all views
- Batch delete, archive, and favorite actions
- Fixed-height action bar to prevent layout shifts
- Add multiple contact view modes
- List view, Grid view, Alphabet view
- View mode toggle component
- Sort by first/last name
- Increase avatar sizes across all views
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Fixed formatting in 21 files across calendar, contacts, manacore, manadeck,
picture, storage apps and shared-ui package.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add vCard/CSV file import with duplicate detection and merge options
- Add Google Contacts OAuth2 integration for importing from Google
- Add vCard/CSV export with format selection and filtering options
- Add connected_accounts table for OAuth token storage
- Add FileUploader, ImportPreview, GoogleImport, ExportModal components
- Add i18n translations for import/export (DE/EN)
Run prettier --write to fix formatting inconsistencies in 80 files
across calendar, contacts, picture, presi, storage, zitare apps
and shared packages/documentation.
- Add aliases without color- prefix (--background, --foreground, --primary, etc.)
- Fix Mana/Subscription page styling across all apps
- Remove conflicting legacy aliases from contacts app.css
- Update contacts mana page to use toast instead of alert
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add settings module to mana-core-auth with REST API endpoints
- Create user_settings table with globalSettings and appOverrides (JSONB)
- Add createUserSettingsStore() factory in shared-theme package
- Integrate user settings in all app layouts (calendar, chat, contacts, etc.)
- Support for nav position, theme, locale settings with per-app overrides
- Optimistic updates with localStorage caching for offline support
- Add comprehensive documentation in docs/USER_SETTINGS.md
API Endpoints:
- GET /api/v1/settings - Get all user settings
- PATCH /api/v1/settings/global - Update global settings
- PATCH /api/v1/settings/app/:appId - Set app override
- DELETE /api/v1/settings/app/:appId - Remove app override
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add settings store with localStorage persistence for user preferences
- Implement language selection (DE, EN, FR, ES, IT) in settings
- Add calendar view settings: default view, week start day, time format
- Add weekday-only filter and week number display options
- Add event defaults: duration and reminder settings
- Integrate settings into WeekView, MonthView, MultiDayView components
- Add profile page to calendar and contacts web apps
- Support drag & drop and resize for events in WeekView
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add feedback service and route
- Add archive page for deleted contacts
- Add favorites page for starred contacts
- Add groups page for contact organization
- Add mana integration page
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Fix CSS variable names to match shared-tailwind themes
- --primary → --color-primary
- --background → --color-background
- --card → --color-surface
- etc.
- Add new contact page with modern design
- Live avatar preview with initials
- Section-based form with icons
- Input fields with inline icons
- Add contact detail page with view/edit modes
- Quick actions (call, email, message)
- Detail cards for contact info, work, address, notes
- Favorite toggle button
- Update central test user credentials (t@t.de)
- Add port 5184 to CORS origins for contacts web app
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>