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
aaf2784a9a
chore: Clean up dump.rdb, templates/, test_report.md; update .a0 status files
2026-08-04 15:12:36 +02:00
Agent Zero
cfb4c5ae8b
Phase 5.1-5.4: PWA, Public Plugin Endpoints, Contacts Embedding, Search Coverage
...
Check Cross-Plugin Imports / check (push) Has been cancelled
5.1 Public Plugin Endpoints:
- PluginRouteDef.is_public field in manifest.py
- main.py: public routes mounted without auth dependency
- permissions/public_routes.py: token-based share link access (info, verify, download)
- permissions/plugin.py: public share route registered with is_public=True
5.2 PWA:
- vite.config.ts: VitePWA plugin configured (autoUpdate, workbox, runtime caching)
- frontend/public/manifest.json: PWA manifest with icons
- index.html: theme-color, manifest link, apple-touch-icon, apple-mobile-web-app meta
- Build generates sw.js + workbox (90 precache entries)
5.3 Contacts Embedding:
- contact.py: embedding column (Vector(768)) added to Contact model
- Migration 0002_embeddings.sql already exists (adds embedding + HNSW index)
- ContactSearchProvider already queries embedding column
5.4 Search Coverage:
- 5 new search providers: task, contactperson, tag, conversation, user
- All providers implement FTS search with tenant_id + deleted_at filters
- TagSearchProvider also supports vector search (384-dim embedding)
- provider_registry.py: all 5 new providers auto-registered
- Total: 10 search providers (was 5)
2026-08-04 14:49:35 +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
310a9f0542
Phase 6: Workspaces — Widget CRUD, Manager-Check, Cross-Tenant, Zustand Store, Settings Route
...
Backend:
- Widget CRUD: get_widgets, create_widget, update_widget, delete_widget
- Manager role check: is_workspace_manager
- Cross-tenant validation: verify_user_same_tenant (UserTenant)
- Default workspace seeding: seed_default_workspace with 12 standard modules
- Set user default workspace: set_user_default_workspace
- Fix create_workspace default uniqueness (unset others before insert)
- Widget CRUD routes: GET/POST/PUT/DELETE /{workspace_id}/widgets
- Set-default route: POST /{workspace_id}/set-default
- Cross-tenant validation in assign_user route
Frontend:
- workspaceStore (Zustand): central state with sessionStorage persistence
- API client interceptor: X-Workspace-ID header on all requests
- useWorkspace hook refactored to use workspaceStore
- Widget API hooks: useWorkspaceWidgets, useCreateWorkspaceWidget, etc.
- useSetDefaultWorkspace hook
- Settings route: /settings/workspaces with WorkspaceManagerPage
- Settings nav item for Workspaces
Tests:
- 25 backend tests (CRUD, modules, widgets, users, manager, seeding, context, isolation)
- 12 frontend tests (workspaceStore state, visibility, persistence, reset)
- 48/48 backend tests passing
- 12/12 frontend tests passing
2026-08-03 03:39:27 +02:00
Agent Zero
11d6faa34b
fix: tsconfig exclude test files for frontend build
Check Cross-Plugin Imports / check (push) Has been cancelled
2026-07-31 01:33:52 +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
44696b9c04
fix: import Navigate from react-router-dom
2026-07-30 20:03:10 +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
3d9c8e03eb
fix: mail grouping loads all mails at once with large page_size, no infinite scroll during grouping
2026-07-30 18:44:43 +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
78724ce8f1
fix: mobile MailList props for infinite scroll
2026-07-30 13:39:36 +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
75432cbcfd
fix: connect MailFilterPanel and MailSortPanel to MailList with useMemo
2026-07-30 13:29:08 +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
b1cb20c12f
fix: savedFilters possibly undefined TypeScript fix
2026-07-30 13:03:54 +02:00
Agent Zero
c30a48cf63
fix: mail filter as dropdown like contacts (sort + saved filters), remove inline custom components
2026-07-30 13:03:11 +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
80952bd047
fix: remove PWA service worker (was caching stale assets), add SW unregister
2026-07-30 09:41:37 +02:00
Agent Zero
02e188dfa2
fix: customFieldDefs.items optional chaining to prevent crash on empty response
2026-07-30 09:35:32 +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
49c8b740e4
fix: system admin bypasses workspace filter in sidebar
2026-07-30 01:25:29 +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
4c134c62b3
fix: GuestContacts title prop → aria-label
2026-07-29 03:13:54 +02:00
Agent Zero
015eb9414e
fix: SettingsRechte TypeScript errors fixed — entity permission types + ConfirmDialog props
2026-07-29 03:13:07 +02:00
Agent Zero
680d5ab6f1
fix: migration 0058 checkconstraint + all sprint 20-23 deployed
2026-07-29 03:10:26 +02:00
Agent Zero
24690fb674
sprint20-23: tests + documentation + guest access + infrastructure + migrations 0059
2026-07-29 02:53:37 +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
e0003b9384
sprint12+13: zentrale rechte settings page + ABAC engine backend (model, migration 0055, service, routes)
2026-07-29 02:42:16 +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