WIP: Dioxus Bootstrap migration — hero_inspector #6

Draft
mik-tf wants to merge 19 commits from development_dioxus_bootstrap into development
Owner

WIP: Dioxus WASM Frontend for Hero Inspector

DO NOT MERGE — Work in progress.

Refs: #26

What

Adds a new hero_inspector_ui_wasm crate that replaces the Askama/JS frontend with a Dioxus WASM app using dioxus-bootstrap-css v0.1.6.

Phase 1 (this PR)

  • New WASM crate with all major components:
    • Sidebar: auto-discovered service groups + manual entries
    • Service detail: header card with protocol badges, status, actions
    • Tabs: Methods accordion, Markdown docs, OpenRPC JSON, MCP setup, Sockets table, MCP Logs, Service Logs
    • Navbar: connection status, theme toggle, OpenRPC link
    • Toast notifications
  • JSON-RPC client with hero_proxy base-path detection
  • Server changes: --dist CLI flag, /assets/* route, dist_dir in AppState

Still TODO (Phase 2+)

  • Add Spec offcanvas (manual source addition)
  • Context dropdown filter
  • Web proxy open/close buttons
  • SSE-based live updates (replace polling)
  • Search/filter in sidebar
  • Remove manual spec button
  • JSON syntax highlighting in OpenRPC tab
  • Feature-gate askama as optional dependency
  • Markdown-to-HTML rendering in docs tab
## WIP: Dioxus WASM Frontend for Hero Inspector **DO NOT MERGE** — Work in progress. Refs: #26 ### What Adds a new `hero_inspector_ui_wasm` crate that replaces the Askama/JS frontend with a Dioxus WASM app using `dioxus-bootstrap-css` v0.1.6. ### Phase 1 (this PR) - New WASM crate with all major components: - **Sidebar**: auto-discovered service groups + manual entries - **Service detail**: header card with protocol badges, status, actions - **Tabs**: Methods accordion, Markdown docs, OpenRPC JSON, MCP setup, Sockets table, MCP Logs, Service Logs - **Navbar**: connection status, theme toggle, OpenRPC link - **Toast** notifications - JSON-RPC client with hero_proxy base-path detection - Server changes: `--dist` CLI flag, `/assets/*` route, dist_dir in AppState ### Still TODO (Phase 2+) - [ ] Add Spec offcanvas (manual source addition) - [ ] Context dropdown filter - [ ] Web proxy open/close buttons - [ ] SSE-based live updates (replace polling) - [ ] Search/filter in sidebar - [ ] Remove manual spec button - [ ] JSON syntax highlighting in OpenRPC tab - [ ] Feature-gate askama as optional dependency - [ ] Markdown-to-HTML rendering in docs tab
feat: add Dioxus WASM frontend for hero_inspector (Phase 1)
Some checks failed
Build & Test / check (push) Failing after 1s
Build & Test / check (pull_request) Failing after 1s
e80ee41d91
New crate `hero_inspector_ui_wasm` with dioxus-bootstrap-css v0.1.6:
- Sidebar with auto-discovered and manual service groups
- Service detail panel with tabs: Methods, Markdown, OpenRPC, MCP, Sockets, MCP Logs, Service Logs
- JSON-RPC client via /rpc endpoint with hero_proxy base-path detection
- Toast notifications, theme toggle, clipboard support

Server changes (herolib_inspector + hero_inspector_ui):
- Add --dist CLI flag to serve WASM dist/index.html and /assets/*
- AppState gains dist_dir field; index_handler tries dist first
- /assets/*path route for WASM asset serving

Refs: #26
refactor: convert hero_inspector_ui_wasm to archipelago library crate
Some checks failed
Build & Test / check (push) Failing after 5s
Build & Test / check (pull_request) Failing after 5s
3cb6c2f87e
fix: RPC routing + conditional BootstrapHead for hero_os integration
Some checks failed
Build & Test / check (push) Failing after 7s
Build & Test / check (pull_request) Failing after 7s
09f8c35f1b
fix: synchronous RPC base init (before first render)
Some checks failed
Build & Test / check (push) Failing after 5s
Build & Test / check (pull_request) Failing after 7s
7660bd10e3
fix: unconditional RPC base init
Some checks failed
Build & Test / check (push) Failing after 2s
Build & Test / check (pull_request) Failing after 1s
ce1cc8f152
chore: bump dioxus-bootstrap-css to 0.1.7
Some checks failed
Build & Test / check (push) Failing after 8s
Build & Test / check (pull_request) Failing after 11s
484a62bee0
refactor: pure dioxus-bootstrap-css 0.1.8 — TabList, Card header_class
Some checks failed
Build & Test / check (pull_request) Failing after 2s
Build & Test / check (push) Failing after 1s
886e5bee00
chore: bump dioxus-bootstrap-css to 0.1.8
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 6s
77015d0b0c
Convert raw HTML div/table/button elements to proper dioxus-bootstrap-css
components (Card, Table, Button, Row, Col) for pixel-perfect Bootstrap 5.3.
refactor: pixel-perfect Askama→dioxus-bootstrap-css rewrite
Some checks failed
Build & Test / check (pull_request) Failing after 8s
Build & Test / check (push) Failing after 7s
d57df3ef93
Convert sidebar card with header/body/footer to Card component with
header, body, footer slots. Convert raw buttons to Button component.
chore: bump dioxus-bootstrap-css to 0.1.9
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 7s
763c2ada48
chore: bump dioxus-bootstrap-css to 0.2.0 (extends GlobalAttributes)
Some checks failed
Build & Test / check (push) Failing after 5s
Build & Test / check (pull_request) Failing after 6s
577396c80d
chore: bump dioxus-bootstrap-css to 0.2.1
Some checks failed
Build & Test / check (pull_request) Failing after 7s
Build & Test / check (push) Failing after 7s
be00ef7905
fix: pixel-perfect navbar matching Askama template
Some checks failed
Build & Test / check (pull_request) Failing after 7s
Build & Test / check (push) Failing after 3s
054600480b
- Remove py-1 from navbar, py-0 from brand
- Remove id from sseDot span
refactor: convert raw Bootstrap HTML to dioxus-bootstrap-css components
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 7s
0b54f6eef6
refactor: convert link-buttons to Button { href } (dioxus-bootstrap-css 0.2.2)
Some checks failed
Build & Test / check (pull_request) Failing after 5s
Build & Test / check (push) Failing after 5s
bd7bd2aa4f
refactor: use Button { href, target, download } (dioxus-bootstrap-css 0.2.3)
Some checks failed
Build & Test / check (pull_request) Failing after 3s
Build & Test / check (push) Failing after 5s
6e28716dce
refactor: convert toast to dioxus-bootstrap-css Toast/ToastContainer (0.2.5)
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 6s
b09d75c4ec
refactor: remove Bootstrap-overriding CSS, use pure dioxus-bootstrap utility classes
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 7s
93cb95354b
Some checks failed
Build & Test / check (pull_request) Failing after 6s
Build & Test / check (push) Failing after 7s
This pull request is marked as a work in progress.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin development_dioxus_bootstrap:development_dioxus_bootstrap
git switch development_dioxus_bootstrap

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch development
git merge --no-ff development_dioxus_bootstrap
git switch development_dioxus_bootstrap
git rebase development
git switch development
git merge --ff-only development_dioxus_bootstrap
git switch development_dioxus_bootstrap
git rebase development
git switch development
git merge --no-ff development_dioxus_bootstrap
git switch development
git merge --squash development_dioxus_bootstrap
git switch development
git merge --ff-only development_dioxus_bootstrap
git switch development
git merge development_dioxus_bootstrap
git push origin development
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lhumina_code/hero_inspector!6
No description provided.