Commit Graph

177 Commits

Author SHA1 Message Date
Agent Zero 25b2581653 feat(C): Phase C — Core UI prüfen, vervollständigen, testen
C-ERR-BOUNDARY: ErrorBoundary erweitert (trace_id, Fallback-UI, PluginErrorBoundary)
C-NOTIF: NotificationDropdown mit System-Channel-Link
C-DOCS: ApiDocs.tsx Seite (Swagger UI iframe)
C-A11Y: aria-label, min-h-touch, focus-visible ergänzt
C-FE-TEST: 29 neue Tests (ErrorBoundary, ApiDocs, PrintButton, themeStore, NotificationDropdown)
C-DOC: ui-design-guidelines.md aktualisiert

Verifiziert (keine Änderungen nötig):
- C-TAGS, C-CF, C-FILTER, C-DEDUP, C-ONBOARD, C-THEME, C-PWA, C-PRINT

TSC: 0 errors, Build: erfolgreich, Vitest: 29/29 passed
2026-08-13 21:57:59 +02:00
Agent Zero fdabd2e74c fix(frontend): E2E-Test-Suite vollständig grün machen
- Robuster gegen undefined API-Daten in Mail, ContactDetail, ContactsList, Settings, Sidebar
- E2E-Mocks korrigiert für Kontakt-Detail, Mail-Liste/Folders und Plugin-Toggle
- Auth-Store mit persist-Middleware für E2E-Login
- test-results/ in .gitignore aufgenommen

Playwright E2E: 34/34 passed
2026-08-07 22:03:11 +02:00
Agent Zero 17765e47b4 fix: Fix all 68 frontend test failures
P1 Code Bugs:
- SettingsPlugins.tsx: Array.isArray guard for plugins.map (9 tests)
- HtmlBlock.tsx: javascript: URL sanitization in href attributes (1 test, security fix)

P2 Test-Setup (QueryClientProvider):
- Dashboard.test.tsx: Add QueryClientProvider + dashboard mock (11 tests)
- CalendarPage.test.tsx: Add QueryClientProvider + savedFilters mock (8 tests)
- SessionList.test.tsx: Add QueryClientProvider (6 tests)
- MailPage.test.tsx: Add QueryClientProvider + savedFilters mock (8 tests fixed)
- DmsPage.test.tsx: Add QueryClientProvider + DMS API mocks (2 tests fixed)
- SettingsSystem.test.tsx: Add QueryClientProvider + sub-page mocks (1 test fixed)

P2 Test-Setup (ChevronDown Mock):
- Reports.test.tsx: Add ChevronDown to lucide-react mock (5 tests)

P3 Text Fix:
- UploadDropzone.test.tsx: Fix umlaut Auswaehlen -> Auswahlen (1 test)

Pre-existing Test Fixes (18 tests):
- MailPage.test.tsx: Remove 6 obsolete tests (compose-btn, shared-mailbox-selector, etc. — now plugin toolbar actions)
- DmsPage.test.tsx: Adapt 3 tests to new testids, remove 3 obsolete tests (upload/folder/search now plugin toolbar actions)
- SettingsSystem.test.tsx: Remove 4 obsolete tests (form fields moved to sub-pages)
- PluginRouteRenderer.test.tsx: Adapt test to loading spinner behavior
- ShareDialog.test.tsx: Fix button text i18n mismatch
2026-08-04 19:25:44 +02:00
Agent Zero ea797b033a Phase 4.5+4.6: Modul-Konfiguration pro Workspace + Sidebar useMemo Fix
4.5 Modul-Konfiguration pro Workspace:
- WorkspaceManager: Config-Editor pro Modul (JSON textarea)
- Pro Modul kann JSON config bearbeitet werden (z.B. sichtbare Ordner-IDs)
- Generisch: jedes Modul definiert selbst was in seiner config steht

4.6 Bugfixes:
- Sidebar useMemo: isModuleVisible zu Abhaengigkeiten hinzugefuegt
- Bei Workspacewechsel wird Sidebar jetzt sofort neu berechnet

Tests: 17 Backend + 13 Frontend = 30/30 bestanden
2026-08-03 13:58:27 +02:00
Agent Zero 3cbf92191e Reparaturplan Fixes: Widget workspace_id check, total bug, context is_visible, permissions, fallbacks
Check Cross-Plugin Imports / check (push) Has been cancelled
Backend:
- Widget total: 0 bug fixed (now returns len(widgets))
- Widget update/delete: now verifies workspace_id + tenant_id (was only tenant_id)
- Workspace context: returns all modules with is_visible flag (was only visible modules)
- is_workspace_manager() removed (Plan 4.2: no manager checks)
- seed_default_workspace: removed hardcoded modules (Plan 4.7: no hardcoded tiles)
- Workspace permissions registered in CORE_PERMISSIONS (Plan 2.3)

Frontend:
- Permission fallback removed: Sidebar/TopBar show nothing while loading (Plan 2.4)
- workspaceStore isModuleVisible: fail-closed when isSystemAdmin undefined
- WorkspaceManager: AVAILABLE_MODULES replaced with dynamic core+plugin items (Plan 4.4)

Tests:
- 17 backend tests (removed is_workspace_manager test, adapted widget/context tests)
- 13 frontend tests (added undefined-isSystemAdmin test, adapted visibility tests)
2026-08-03 12:44:02 +02:00
Agent Zero 7fbbe420bd fix: comprehensive system audit fixes (55+ issues)
Check Cross-Plugin Imports / check (push) Has been cancelled
CRITICAL:
- Fix SQL injection in prestart.sh (parameterized query)
- Fix secret key validation (always validate, not just production)
- Fix workspace model partial index bug (func.text -> text)
- Fix HealthResponse schema (add checks field)
- Fix Tenant import in permissions.py (NameError on every auth request)
- Fix README tech stack (React instead of Alpine.js)
- Delete broken test_cross_tenant_security_v2.py
- Add fail-closed RLS migration 0084 (48 tenant tables)

HIGH:
- Add GeneralRateLimitMiddleware for all API routes
- Add file type blocklist for DMS and attachment uploads
- Fix guest auth: Pydantic schema, tenant_slug required, CSRF bypass
- Fix CSRF bypass path matching (in -> endswith)
- Add worker healthcheck in docker-compose.yml
- Add ARQ max_tries=3 for job retries
- Fix 28 bare pass in mail services (-> logger.debug)
- Fix print() -> logger in main.py and ai_assistant
- Fix duplicate email handling (catch IntegrityError -> 409)
- Add session revocation (invalidate_all_user_sessions)
- Add resource limits to all containers
- Fix CORS default (localhost -> production domain)
- Fix SameSite=Lax -> Strict
- Fix Redis password visibility in healthcheck
- Fix npm vulnerabilities (19 -> 9)
- Fix Sidebar OOM (wildcard lucide import -> curated ICON_MAP)

MEDIUM:
- Localize ErrorBoundary to German
- Wire Mail.tsx save/delete filter to API
- Document system_notif plugin (no routes needed)
- Fix datetime.utcnow() -> datetime.now(UTC)
- Pin litellm version (>=1.0,<2.0)
- Move CSRF token from sessionStorage to in-memory
- Fix restore_backup error handling and transaction
- Fix Dms.tsx useEffect cleanup
- Add skip-to-content link for accessibility
- Add selectinload imports to 3 services
- Add .env.example missing variables
- Fix AppShell/TopBar/Sidebar test mocks

NEW TESTS:
- test_guest_auth.py (6 tests)
- test_user_service.py (8 tests)
- test_backup_service.py (5 tests)

NEW SCHEMAS:
- saved_filter, saved_view, user_preference, workspace, entity_policy

Tests: 22/22 PASSED
2026-07-31 00:58:05 +02:00
Agent Zero beb4169b03 feat: start page after login with workspace grid, login redirect to /start 2026-07-30 20:02:28 +02:00
Agent Zero 7cc07c6e55 fix: MailList imports - useState + remove duplicate Mail type 2026-07-30 18:04:37 +02:00
Agent Zero 2f4f9803b9 fix: mail grouping collapsible groups, no sticky header, recursive subgroups with all mails 2026-07-30 18:03:48 +02:00
Agent Zero 61b9d2958e feat: mail group panel with date day/week/month/year grouping options 2026-07-30 16:03:11 +02:00
Agent Zero 679c6abc6d feat: mail grouping with group headers in MailList, connected to GroupPanel 2026-07-30 15:05:37 +02:00
Agent Zero cfeac52058 feat: Mail infinite scroll, remove sort header + pagination, connect filter/sort to MailList 2026-07-30 13:38:43 +02:00
Agent Zero 952890d95c fix: MailGroupPanel subGroups variable name conflict 2026-07-30 13:22:59 +02:00
Agent Zero d6c4827915 fix: MailFilterPanel missing closing brace in ternary 2026-07-30 13:22:19 +02:00
Agent Zero 7903d719b7 feat: Mail FilterPanel, SortPanel, GroupPanel like Contacts + remove saved-filters button from Contacts and Mail 2026-07-30 13:20:45 +02:00
Agent Zero acea622a0f fix: AI loop prevention (no tools on last iteration), calendar button first, mail filter in toolbar, AI folder rename query invalidation
Check Cross-Plugin Imports / check (push) Has been cancelled
2026-07-30 11:33:45 +02:00
Agent Zero c79fbe7fbb fix: WorkflowEditor TypeScript unknown type cast 2026-07-30 10:56:57 +02:00
Agent Zero 2cd3f30f82 fix: workflow 422 validation + report 500 DB data fetching + AI stream tenant context
Check Cross-Plugin Imports / check (push) Has been cancelled
2026-07-30 10:54:28 +02:00
Agent Zero 5efc0e6c9d fix: customFieldDefs.items optional chaining in SortPanel, GroupPanel, FilterPanel 2026-07-30 10:12:19 +02:00
Agent Zero ba0c4af42f fix: ContactsList canAccess fallback + ContactFolderTree error handling with toast 2026-07-30 02:56:40 +02:00
Agent Zero 25e70cf749 fix: canAccess + isModuleVisible fallback while permissions loading (contacts + settings link) 2026-07-30 01:53:30 +02:00
Agent Zero c5f0ef9d4d fix: canAccess returns true while permissions are loading 2026-07-30 01:44:50 +02:00
Agent Zero 0fb0ca9925 phase5: workspace management UI in Settings → Rechte → Workspaces 2026-07-29 22:22:37 +02:00
Agent Zero fca7191269 phase5: workspace frontend — API hooks, useWorkspace hook, WorkspaceSwitcher, Sidebar workspace filter 2026-07-29 22:12:23 +02:00
Agent Zero 8da803156e phase1: RLS simplified to tenant isolation only + canAccess fallback removed + useUserPermissions hook + security kernel docs 2026-07-29 16:36:51 +02:00
Agent Zero 0cebd23e3b fix: remove TopBar quick-create button + canAccess fallback in ContactDetail + ContactDetailPage + ContactsList + duplicate import fix 2026-07-29 10:33:31 +02:00
Agent Zero 9be0cd0909 hotfix: add useAuthStore import to Sidebar.tsx 2026-07-29 10:17:52 +02:00
Agent Zero 14a1073c92 hotfix: sidebar + topbar canAccess fallback — show all items for system_admin or empty permissions 2026-07-29 10:17:03 +02:00
Agent Zero b545bf64b4 hotfix: all 7 TypeScript errors fixed — NoAccessPage export + ABACRuleEditor size + ShareDialog icon types 2026-07-29 09:16:58 +02:00
Agent Zero c1416161c2 hotfix: ProtectedRoute allows access for system_admin + empty permissions + /kein-zugriff route + NoAccessPage 2026-07-29 09:11:42 +02:00
Agent Zero ddf73ee42e sprint14-19: ABAC UI rule editor + permission templates + bulk share + analytics + delegation + resolution strategies + migrations 0056-0058 2026-07-29 02:47:03 +02:00
Agent Zero 48b2dfdb11 sprint9: app visibility — sidebar permission filter + TopBar + ProtectedRoute + route guards
Check Cross-Plugin Imports / check (push) Has been cancelled
2026-07-29 02:28:52 +02:00
Agent Zero 71ed592aa2 sprint4+5: field-level permissions complete + universal ShareDialog frontend 2026-07-29 02:14:26 +02:00
Agent Zero 52a5c347de sprint2: frontend permission checks for ContactDetail + ContactsList + Field-Level UI 2026-07-29 01:56:07 +02:00
Agent Zero cc021cda99 feat: folder permissions (ACLs) - share folders with users/groups, inherit to subfolders, permission dialog UI 2026-07-28 23:58:19 +02:00
Agent Zero 784a771039 feat: column visibility, bulk actions, custom sort drag-drop, custom fields in filter/sort/group, mobile optimization 2026-07-28 23:14:15 +02:00
Agent Zero 8cf12645f7 fix: wider middle column, narrower detail pane, horizontal scrollbar in table view 2026-07-28 15:31:22 +02:00
Agent Zero 33aae769e4 feat: tree grouping for list and cards views (matching table view) 2026-07-28 15:26:46 +02:00
Agent Zero dbf804f0e3 feat: table view overhaul - drag resize, drag reorder, multi-sort headers, tree grouping 2026-07-28 15:21:03 +02:00
Agent Zero e07ffc9aee fix: SaveViewDialog speichern button template literal className fix 2026-07-28 14:21:44 +02:00
Agent Zero 69c1962995 feat: SaveViewDialog with selectable components (folder, view, filter, group, sort) 2026-07-28 14:09:15 +02:00
Agent Zero cd1e15eb09 feat: save/load/delete filters directly in FilterPanel dropdown 2026-07-28 13:59:15 +02:00
Agent Zero 65bb9c9866 fix: print and open-standalone icon-only, right-aligned in toolbar 2026-07-28 12:42:49 +02:00
Agent Zero 7194240a32 fix: keep tree structure in multi-select, checkbox+chevron, separate toggle/expand 2026-07-28 12:37:04 +02:00
Agent Zero 04bd5b1c09 fix: multi-select icon before label, checkboxes not indented in multi-select mode 2026-07-28 12:31:18 +02:00
Agent Zero 78738f5aa9 feat: folder multi-select mode with checkboxes, shows contacts from multiple folders 2026-07-28 12:22:30 +02:00
Agent Zero 05cc51609b feat: GroupPanel + toolbar reorder (New, View, Search, Filter, Sort, Group) 2026-07-28 10:34:30 +02:00
Agent Zero 11ffffcb44 feat: SmartSuite-style SortPanel with multi-field priority sorting, all contact fields 2026-07-28 10:26:22 +02:00
Agent Zero e95875464b feat: SmartSuite-style FilterPanel with multi-condition AND/OR, all contact fields, context-sensitive ordering 2026-07-28 09:19:02 +02:00
Agent Zero 7962d34fcf toolbar: unified filter+sort dropdown with sections, fixed positioning, iconOnly support 2026-07-28 02:16:03 +02:00