[Debt] Migrate Mail WebUI to the interface pattern language #20

Closed
opened 2026-08-03 08:08:43 +02:00 by zemion · 1 comment
Owner

Context

This is the bounded govoplan-mail work package for the platform interface pattern-language rollout.

Current generated inventory boundary:

  • Routes: /mail, /mail/bounces
  • Contributed surfaces: mail.admin.group-servers, mail.admin.system-servers, mail.admin.tenant-servers, mail.admin.user-servers, mail.settings.profiles

The issue owns only module-provided UI. Shared primitives remain in Core; optional integrations must continue to use declared contracts and capabilities.

Scope

Audit the listed routes and contributed surfaces, classify each by the canonical archetypes in govoplan/docs/INTERFACE_PATTERN_LANGUAGE.md, and migrate deviations without redesigning unrelated behavior.

Acceptance Criteria

  • Inventory the module's routes, panels, dialogs, tables, workflows, and destructive actions and record their archetype and consequence class.
  • Use shared Core components and tokens for equivalent controls, status, dialogs, loading, empty, error, stale, offline, partial, and permission states.
  • Explain disabled or unavailable actions with actor, reason, required action, and destination where applicable.
  • Add stable contextual Docs links for routes, fields, blockers, and consequential actions.
  • Preserve optional-module boundaries; no private imports from sibling modules.
  • Verify keyboard order, focus handling, responsive behavior, localization, privacy-safe rendering, and destructive confirmation behavior.
  • Update the module's user/admin DocumentationTopic contributions and focused regression tests.
  • Record completion evidence in the rollout matrix under govoplan/docs/INTERFACE_SURFACE_INVENTORY.md.

Verification

Run the module's targeted backend/WebUI tests, the manifest-shape check, and the consolidated focused check when shared contracts or optional integrations change.

## Context This is the bounded `govoplan-mail` work package for the platform interface pattern-language rollout. - Platform pattern contract: [GovOPlaN #11](https://git.add-ideas.de/GovOPlaN/govoplan/issues/11) Current generated inventory boundary: - Routes: `/mail`, `/mail/bounces` - Contributed surfaces: `mail.admin.group-servers`, `mail.admin.system-servers`, `mail.admin.tenant-servers`, `mail.admin.user-servers`, `mail.settings.profiles` The issue owns only module-provided UI. Shared primitives remain in Core; optional integrations must continue to use declared contracts and capabilities. ## Scope Audit the listed routes and contributed surfaces, classify each by the canonical archetypes in `govoplan/docs/INTERFACE_PATTERN_LANGUAGE.md`, and migrate deviations without redesigning unrelated behavior. ## Acceptance Criteria - [ ] Inventory the module's routes, panels, dialogs, tables, workflows, and destructive actions and record their archetype and consequence class. - [ ] Use shared Core components and tokens for equivalent controls, status, dialogs, loading, empty, error, stale, offline, partial, and permission states. - [ ] Explain disabled or unavailable actions with actor, reason, required action, and destination where applicable. - [ ] Add stable contextual Docs links for routes, fields, blockers, and consequential actions. - [ ] Preserve optional-module boundaries; no private imports from sibling modules. - [ ] Verify keyboard order, focus handling, responsive behavior, localization, privacy-safe rendering, and destructive confirmation behavior. - [ ] Update the module's user/admin `DocumentationTopic` contributions and focused regression tests. - [ ] Record completion evidence in the rollout matrix under `govoplan/docs/INTERFACE_SURFACE_INVENTORY.md`. ## Verification Run the module's targeted backend/WebUI tests, the manifest-shape check, and the consolidated focused check when shared contracts or optional integrations change.
zemion added the module/mail
type
debt
status
ready
codex/ready
priority
p1
area/webui
labels 2026-08-03 08:08:43 +02:00
Author
Owner

Codex State: done

Summary

  • Migrated the read-only mailbox, Mail profile/server/credential administration, effective policy, and bounce evidence surfaces to the shared interface pattern language.
  • Added contextual configured-system help, actionable field/permission/target/busy blockers, focusable disabled reasons, retained-evidence confirmation, and a durable privacy/consequence inventory.

Changed Files

  • webui/src/features/mail/MailProfileManagement.tsx
  • webui/src/features/mail/MailboxPage.tsx
  • webui/src/features/mail/MailBouncePage.tsx
  • docs/INTERFACE_PATTERN_MIGRATION.md
  • docs/MAIL_HANDBOOK.md
  • src/govoplan_mail/backend/manifest.py

Verification

  • 114 Mail backend tests passed.
  • Mail focused WebUI model and interface-pattern tests passed.
  • Core shared mail-component tests and full-product TypeScript/Vite/theme/localization/bundle gates passed.
  • Manifest registry check passed for all 65 modules.

Next / Blocked

  • Implementation is Mail commit 7844d9c; shared disabled-reason support is Core commit 2d0551a; platform evidence is GovOPlaN commit ff12f67.
## Codex State: done ### Summary - Migrated the read-only mailbox, Mail profile/server/credential administration, effective policy, and bounce evidence surfaces to the shared interface pattern language. - Added contextual configured-system help, actionable field/permission/target/busy blockers, focusable disabled reasons, retained-evidence confirmation, and a durable privacy/consequence inventory. ### Changed Files - `webui/src/features/mail/MailProfileManagement.tsx` - `webui/src/features/mail/MailboxPage.tsx` - `webui/src/features/mail/MailBouncePage.tsx` - `docs/INTERFACE_PATTERN_MIGRATION.md` - `docs/MAIL_HANDBOOK.md` - `src/govoplan_mail/backend/manifest.py` ### Verification - `114 Mail backend tests passed.` - `Mail focused WebUI model and interface-pattern tests passed.` - `Core shared mail-component tests and full-product TypeScript/Vite/theme/localization/bundle gates passed.` - `Manifest registry check passed for all 65 modules.` ### Next / Blocked - Implementation is Mail commit 7844d9c; shared disabled-reason support is Core commit 2d0551a; platform evidence is GovOPlaN commit ff12f67.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-mail#20