[Feature] Promote platform interface inventory to a declared, CI-checked control plane #25

Closed
opened 2026-07-30 17:34:19 +02:00 by zemion · 1 comment
Owner

The initial static inventory now extracts UI fields, help candidates, labels/translations, routes, API references, module surfaces, and backend endpoints. Move from best-effort extraction toward canonical declarations that can power documentation and platform self-inspection.

Acceptance criteria

  • Modules declare stable IDs for routes, surfaces, fields/actions, help text, translations, settings, widgets, search objects, and backend capabilities.
  • Static extraction reconciles declarations with source and fails CI on duplicate/stale IDs or undeclared public surfaces.
  • Generated artifacts identify missing help and translations without treating dynamic labels as definitive false positives.
  • Runtime registry output can be compared with the static inventory for each installed module combination.
  • The control-plane model is introspectable but cannot bypass module authorization or mutate arbitrary runtime state.
  • Generated inventory remains an artifact, not a competing backlog or hand-edited source of truth.

See docs/PLATFORM_CONTROL_PLANE.md and tools/inventory/.

The initial static inventory now extracts UI fields, help candidates, labels/translations, routes, API references, module surfaces, and backend endpoints. Move from best-effort extraction toward canonical declarations that can power documentation and platform self-inspection. ## Acceptance criteria - Modules declare stable IDs for routes, surfaces, fields/actions, help text, translations, settings, widgets, search objects, and backend capabilities. - Static extraction reconciles declarations with source and fails CI on duplicate/stale IDs or undeclared public surfaces. - Generated artifacts identify missing help and translations without treating dynamic labels as definitive false positives. - Runtime registry output can be compared with the static inventory for each installed module combination. - The control-plane model is introspectable but cannot bypass module authorization or mutate arbitrary runtime state. - Generated inventory remains an artifact, not a competing backlog or hand-edited source of truth. See `docs/PLATFORM_CONTROL_PLANE.md` and `tools/inventory/`.
Author
Owner

Codex State: done

Summary

  • Published a typed, deterministic platform-interface catalog from ModuleManifest declarations with tenant-filtered, read-only runtime introspection.
  • Extended static extraction to routes, surfaces, fields, actions, help, translations, settings, widgets, search and capabilities, with duplicate/stale/undeclared reconciliation and runtime digest comparison.
  • Made strict declaration and endpoint reconciliation mandatory in focused, release-integration and module-matrix checks; generated inventory remains an audit artifact.
  • Pushed govoplan-core d6e7c8b, govoplan-campaign dc63e35 and govoplan 9bb2c80.

Changed Files

  • tools/inventory/platform-interface-inventory.py
  • tools/inventory/extract-webui-structure.mjs
  • src/govoplan_core/core/platform_interfaces.py
  • src/govoplan_core/server/platform.py

Verification

  • tools/checks/check-focused.sh: passed, including 65 manifests, backend suites, 50 WebUI permutations, full-product build and bundle budgets.
  • Strict inventory: 7,510 stable declarations, 0 duplicate IDs, 0 WebUI/manifest gaps, 0 stale runtime routes, 0 unclassified backend endpoints.
  • Runtime subset reconciliation: access, campaigns and files catalog digests matched.
## Codex State: done ### Summary - Published a typed, deterministic platform-interface catalog from ModuleManifest declarations with tenant-filtered, read-only runtime introspection. - Extended static extraction to routes, surfaces, fields, actions, help, translations, settings, widgets, search and capabilities, with duplicate/stale/undeclared reconciliation and runtime digest comparison. - Made strict declaration and endpoint reconciliation mandatory in focused, release-integration and module-matrix checks; generated inventory remains an audit artifact. - Pushed govoplan-core d6e7c8b, govoplan-campaign dc63e35 and govoplan 9bb2c80. ### Changed Files - `tools/inventory/platform-interface-inventory.py` - `tools/inventory/extract-webui-structure.mjs` - `src/govoplan_core/core/platform_interfaces.py` - `src/govoplan_core/server/platform.py` ### Verification - `tools/checks/check-focused.sh: passed, including 65 manifests, backend suites, 50 WebUI permutations, full-product build and bundle budgets.` - `Strict inventory: 7,510 stable declarations, 0 duplicate IDs, 0 WebUI/manifest gaps, 0 stale runtime routes, 0 unclassified backend endpoints.` - `Runtime subset reconciliation: access, campaigns and files catalog digests matched.`
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan#25