feat(webui): opt-in local browser gateway with managed update lifecycle #54

Merged
karsten merged 2 commits from feat/local-webui into main 2026-11-06 15:33:55 +00:00
Owner

Summary

  • Standalone local-loopback GatewayModule v1, plus optional settings-tool PluginModule.
  • Persistent multiple chats, streaming, safe Markdown/code, search, rename/export and responsive layout.
  • Operator/agent-configurable declarative panels/actions and explicitly installed trusted UI modules.
  • Host-owned ingress, commands, authority and durable delivery; no parallel agent runtime.
  • Foreground-owned update contract, synchronous fencing, socket/refresh/write draining, cleanup failures and restart coverage.
  • Extend native compatibility CI to build/test the separate WebUI directory and actual Core host integration.

Local verification

  • 22 Node tests passed; Chromium regression suite passed; bundle build passed.
  • WebUI npm audit: no reported findings.
  • Actual Core PluginHost/GatewayManager/Harness integration passed: deduplication, idle/busy admission, lease fencing, retry, open-SSE shutdown.
  • Core onboarding candidate suite: 1584 passed, 1 existing skipped Slack fixture, 0 failures. Remote exact-head CI/review still required.

Boundaries

The separate terminal-conversation catalog and unrelated TUI/session changes are excluded.
No network authentication or fleet deployment: listener remains IPv4 loopback only.
Built browser assets must accompany the installed plugin; current Core Dockerfile/materializer does not package this directory automatically.
No Service/Ingress or unauthenticated network exposure. See webui/README.md and webui/RELEASE.md.

Canonical source publication and fleet artifact packaging/activation remain separate steps through the existing owners. Do not treat this source PR as a completed homelab rollout.

Exact submitted head: 52fc295d94edaf4c819f4d236dabd8e177ea5efe.

## Summary - Standalone local-loopback GatewayModule v1, plus optional settings-tool PluginModule. - Persistent multiple chats, streaming, safe Markdown/code, search, rename/export and responsive layout. - Operator/agent-configurable declarative panels/actions and explicitly installed trusted UI modules. - Host-owned ingress, commands, authority and durable delivery; no parallel agent runtime. - Foreground-owned update contract, synchronous fencing, socket/refresh/write draining, cleanup failures and restart coverage. - Extend native compatibility CI to build/test the separate WebUI directory and actual Core host integration. ## Local verification - 22 Node tests passed; Chromium regression suite passed; bundle build passed. - WebUI npm audit: no reported findings. - Actual Core PluginHost/GatewayManager/Harness integration passed: deduplication, idle/busy admission, lease fencing, retry, open-SSE shutdown. - Core onboarding candidate suite: 1584 passed, 1 existing skipped Slack fixture, 0 failures. Remote exact-head CI/review still required. ## Boundaries The separate terminal-conversation catalog and unrelated TUI/session changes are excluded. No network authentication or fleet deployment: listener remains IPv4 loopback only. Built browser assets must accompany the installed plugin; current Core Dockerfile/materializer does not package this directory automatically. No Service/Ingress or unauthenticated network exposure. See `webui/README.md` and `webui/RELEASE.md`. Canonical source publication and fleet artifact packaging/activation remain separate steps through the existing owners. Do not treat this source PR as a completed homelab rollout. Exact submitted head: `52fc295d94edaf4c819f4d236dabd8e177ea5efe`.
feat(webui): add opt-in local browser gateway with managed update lifecycle
Some checks failed
plugins-ci / compatibility (push) Failing after 3m3s
52fc295d94
ci: install Python and flock required by Core session ownership tests
All checks were successful
plugins-ci / compatibility (push) Successful in 3m8s
5e62ed258a
Author
Owner

CI follow-up: the first exact-head run failed because the compatibility container lacked Python 3 required by current Core OS session locks (14 failing cases all report that missing prerequisite). Commit 5e62ed258a77dd9c18e159280e5a7f98426d5a0b installs python3 and util-linux; no tests or checks were removed, and no Core/plugin behavior was changed. A fresh exact-head run is now required.

CI follow-up: the first exact-head run failed because the compatibility container lacked Python 3 required by current Core OS session locks (14 failing cases all report that missing prerequisite). Commit `5e62ed258a77dd9c18e159280e5a7f98426d5a0b` installs `python3` and `util-linux`; no tests or checks were removed, and no Core/plugin behavior was changed. A fresh exact-head run is now required.
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
harness/plugins!54
No description provided.