Skip to content

feat: compose Web UI from ordinary plugins - #520

Merged
kachofugetsu09 merged 27 commits into
mainfrom
docs/web-ui-plugin-composition
Aug 30, 2026
Merged

feat: compose Web UI from ordinary plugins#520
kachofugetsu09 merged 27 commits into
mainfrom
docs/web-ui-plugin-composition

Conversation

@kachofugetsu09

@kachofugetsu09 kachofugetsu09 commented Aug 30, 2026

Copy link
Copy Markdown
Owner

Summary

  • publish a source-neutral Web module catalog and browser Host; Core owns only exact-snapshot resource validation, web.root.v1, mount, and cleanup
  • compose the product recursively through ordinary plugins: shell-ui owns pages, workbench-ui owns panels, and models owns connection-type UI
  • register conversation, workbench, runtime, models, OpenAI-compatible, Codex, OpenCode Go, Akasha, Wake, and installed panels through the same loader and lifecycle
  • keep parent CSS inheritance aligned with the plugin tree while child modules own their domain layout and cleanup
  • remove legacy Dashboard globals, duplicate model settings UI, dead CSS, duplicate artifacts, and React-component plugin ABI
  • move Shell/Workbench/Akasha/Wake editable source and CSS into their plugin directories; every bundled panel now uses the same plugins/*/web/index.tsx discovery path, with no product-specific build list
  • plugin builds now consume only plugin source plus the public @akashic/web-ui-v1 Tailwind preset
Core web.root.v1
└── shell-ui shell.pages.v1
    ├── conversation-ui
    ├── workbench-ui workbench.panels.v2
    │   └── Akasha / Wake / installed panel plugins
    ├── runtime-ui
    └── models models.connection-types.v1
        └── OpenAI-compatible / Codex / OpenCode Go

The cumulative diff is 156 files, 9,446 insertions, and 9,166 deletions. Frozen JS/CSS artifacts account for most generated churn; the final ownership cleanup moved shared Tailwind values into the public SDK, removed the last Host-specific residue, and deleted the separate Akasha/Wake build path.

Validation

  • final Core HEAD: cc43da2da20445438ec55f0bb6e980d4c0b4ab0b
  • Core CI: 8/8 checks passed on the final HEAD, including full pytest/Pyright, change-impact, restart, Docker control, passive composition, fleet, mobile, and plugin composition gates
  • final local semantic Gate: 26/26 public scenarios passed
    • report: docker/debug/reports/change-gate/20260830-232319-c6567388
    • source digest: 4a0c568671559eeaa7e18a6481c89a3dc2671a226694e34d2926b5fd373ad09e
    • plan digest: 152762513345e83c00a5d56a348eb577374b9a4df9dbb5badf53a012fb949e09
  • frontend typecheck, targeted ESLint, theme/model tests, Dashboard/Web-plugin production builds, package dry-run, and 115 plugin composition/Shell/package tests passed
  • Akasha/Wake pre/post migration registration and disposer contracts matched; repeated Web builds produced identical hashes
  • controlled browser E2E rendered the 15-module exact catalog, real Workbench panels and counts, Models connections/provider cards, Codex child dialog, and light/dark theme; no Shell state polling occurred
  • all five companion plugin PRs passed their final-head contract and behavior CI

Review

A native Terra xhigh reviewer performed the final read-only orthogonality review. It verified ordinary-plugin ownership, generic Web entry discovery, the single mount -> disposer lifecycle, nested CSS ownership, and the public SDK boundary. Final verdict on cc43da2d: PASS, no P0/P1, mergeable. It found no remaining safe deletion in the migrated Akasha/Wake boundary.

Companion plugin PRs

All six PRs are intended to merge together. No PR was merged by this change.

Production

This cleanup is not deployed. Production remains on the previously released Core a3b7f82e0268d0d8fe57b253cf3d61fcc407a558; merge and deployment are separate operations.

Recovery

  • Core pre-cleanup branch: backup/web-ui-before-contract-closeout-20260830
  • pre-Akasha/Wake entry migration branch: backup/web-ui-before-akasha-wake-entry-20260830
  • each external plugin worktree has the same named pre-cleanup backup branch
  • existing production recovery point remains /srv/data/services/akashic/operator-backups/pre-web-ui-final-a3b7f82e-20260830T2002Z

@kachofugetsu09
kachofugetsu09 merged commit a5f24a8 into main Aug 30, 2026
8 checks passed
@kachofugetsu09
kachofugetsu09 deleted the docs/web-ui-plugin-composition branch August 30, 2026 15:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant