feat(N4): Restliche Module — Tasks/Kommunikation/Wiki/Reports/Agents/Tags/Search + Navigation + Dashboard-Schnittstelle #368

Closed
opened 2026-09-01 21:20:18 +00:00 by Leopoldadmin · 0 comments
Owner

N4 — Restliche Module (Phase N, letzter Task — PHASE N KOMPLETT)

Roadmap: PLATFORM_ROADMAP.md → Phase N, N4 | Milestone: Phase N — Workspace-Scopes (#14) | Label: task

Umsetzung

Scope-Deklarationen (7 Plugins + Core):

  • tasks: only_mine-Toggle („nur meine")
  • kommunikation: conversation_ids (Räume, /api/v1/comm/conversations)
  • wiki: category_ids (Kategorien-Subtree; NEUE contracts.py — wiki hatte zuvor keinen Contract)
  • report_generator: template_ids (Vorlagen, /api/v1/reports/print-templates)
  • automation: agent_ids (Agenten, module_key agents — page route ohne Menüeintrag)
  • tags: tag_ids (/api/v1/tags, Root-Array)
  • unified_search: entity_types DYNAMISCH aus der Provider-Registry (13 Entity-Types, Live-Set mit deterministischem Klassen-Fallback)
  • Core-Beiträge: navigation (default_route — Startseite pro Workspace, Optionen aus CORE_PERMISSIONS abgeleitet) + dashboard (widget_app_ids — begrenzt das Widget-TYP-Angebot, persönliches Layout bleibt Phase M)

Backend-Filter (additive UND-Einschränkung):

  • GET /tasks: only_mine → assigned_to OR created_by = User
  • GET /comm/conversations: conversation_ids-Subset
  • GET /wiki/articles + /categories: category_ids-Subtree (expand_folder_scope)
  • GET /reports/print-templates: template_ids-Subset
  • GET /agents: agent_ids-Subset
  • GET /tags: tag_ids-Subset
  • GET+POST /search: entity_types-Schnitt (apply_entity_type_scope: requested ∧ scope)
  • GET /miniapps?host=dashboard: widget_app_ids begrenzt NUR das Dashboard-Angebot (chat/window unberührt)

Frontend-Navigation:

  • WorkspaceSwitcher: navigiert nach default_route beim Workspace-Wechsel (Validierung: muss mit / beginnen)
  • Sidebar: workspace menu_order als Admin-Default-Sortierung (persönliche savedOrder bleibt Override)
  • workspaceStore: moduleMenuOrder()-Helper

Verifikation

  • TDD: Deklarationen 18/18 (rot: 18 failed), Filter 11/11 (rot: 8 failed + 1 error)
  • Frontend: Vitest 2/2 (Switcher-Navigation + Backward-Compat), Store 18/18, tsc clean, Build OK
  • Kombi-Regression 64 passed / 4 failed — alle 4 per Solo-Lauf als Suite-Isolation bewiesen (N1 18/18 + N3 solo grün; bekannter Vorbestand)
  • Cross-Plugin-Checker: 0 Verstöße; Ruff: 7 Fehler = exakt Vorbestand (Stash-Beweis identisch)
## N4 — Restliche Module (Phase N, letzter Task — PHASE N KOMPLETT) **Roadmap:** PLATFORM_ROADMAP.md → Phase N, N4 | **Milestone:** Phase N — Workspace-Scopes (#14) | **Label:** task ### Umsetzung **Scope-Deklarationen (7 Plugins + Core):** - tasks: only_mine-Toggle („nur meine") - kommunikation: conversation_ids (Räume, /api/v1/comm/conversations) - wiki: category_ids (Kategorien-Subtree; NEUE contracts.py — wiki hatte zuvor keinen Contract) - report_generator: template_ids (Vorlagen, /api/v1/reports/print-templates) - automation: agent_ids (Agenten, module_key agents — page route ohne Menüeintrag) - tags: tag_ids (/api/v1/tags, Root-Array) - unified_search: entity_types DYNAMISCH aus der Provider-Registry (13 Entity-Types, Live-Set mit deterministischem Klassen-Fallback) - Core-Beiträge: navigation (default_route — Startseite pro Workspace, Optionen aus CORE_PERMISSIONS abgeleitet) + dashboard (widget_app_ids — begrenzt das Widget-TYP-Angebot, persönliches Layout bleibt Phase M) **Backend-Filter (additive UND-Einschränkung):** - GET /tasks: only_mine → assigned_to OR created_by = User - GET /comm/conversations: conversation_ids-Subset - GET /wiki/articles + /categories: category_ids-Subtree (expand_folder_scope) - GET /reports/print-templates: template_ids-Subset - GET /agents: agent_ids-Subset - GET /tags: tag_ids-Subset - GET+POST /search: entity_types-Schnitt (apply_entity_type_scope: requested ∧ scope) - GET /miniapps?host=dashboard: widget_app_ids begrenzt NUR das Dashboard-Angebot (chat/window unberührt) **Frontend-Navigation:** - WorkspaceSwitcher: navigiert nach default_route beim Workspace-Wechsel (Validierung: muss mit / beginnen) - Sidebar: workspace menu_order als Admin-Default-Sortierung (persönliche savedOrder bleibt Override) - workspaceStore: moduleMenuOrder()-Helper ### Verifikation - TDD: Deklarationen **18/18** (rot: 18 failed), Filter **11/11** (rot: 8 failed + 1 error) - ✅ Frontend: Vitest 2/2 (Switcher-Navigation + Backward-Compat), Store 18/18, tsc clean, Build OK - ✅ Kombi-Regression 64 passed / 4 failed — alle 4 per Solo-Lauf als Suite-Isolation bewiesen (N1 18/18 + N3 solo grün; bekannter Vorbestand) - ✅ Cross-Plugin-Checker: 0 Verstöße; Ruff: 7 Fehler = exakt Vorbestand (Stash-Beweis identisch)
Leopoldadmin added this to the Phase N — Workspace-Scopes milestone 2026-09-01 21:20:39 +00:00
Leopoldadmin added the task label 2026-09-01 21:20:39 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Leopoldadmin/leocrm#368