Skip to content

feat(webui): add guided setup flows - #4855

Merged
Re-bin merged 30 commits into
mainfrom
codex/webui-bundle-freshness
Jul 13, 2026
Merged

Re-bin merged 30 commits into
mainfrom
codex/webui-bundle-freshness

Conversation

@Re-bin

@Re-bin Re-bin commented Jul 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • add productized Channel setup flows with validation, official setup links, QR handoff, safer secret handling, and runtime enable/disable
  • add Feishu assistant instances with identity display, per-assistant state, shared WebSocket runtime management, and legacy flat-config compatibility
  • add WebUI pairing management plus in-browser Feishu and WeChat QR connection flows
  • simplify Apps to tools users can actually install, connect, and @ in chat
  • move runtime capabilities to their natural settings surfaces:
    • API server and Langfuse tracing in System
    • Bedrock and Azure support in Models
    • Olostep support in Web
  • bundle PDF, Word, Excel, and PowerPoint readers with the standard installation so document uploads work without a separate Files capability toggle
  • install remaining optional support only after an explicit user action; opening Settings never mutates the Python environment
  • add a managed OpenAI-compatible API process with local/network access controls, start/stop state, isolated runtime files, and API-key enforcement for network binding
  • make nanobot webui lifecycle explicit: foreground Ctrl+C stops its managed gateway while --background remains persistent
  • keep editable/source installs on the current local WebUI bundle and improve logos, caching, responsive layout, and status language

Why

The previous Apps catalog mixed chat-attachable tools with Python extras and provider/runtime dependencies. Users had to understand implementation details such as extras, restart behavior, and raw config ownership before they could use a feature.

This change organizes capabilities by user intent. Apps now means tools available in chat. Settings owns model, web, channel, API, and observability setup. Common document readers ship as regular dependencies, while genuinely optional integrations are installed when the user enables or saves that capability, with visible progress and failure feedback.

Compatibility and safety

  • existing config.json fields and manual channel/provider configurations remain valid
  • empty secret fields preserve existing values
  • old Feishu flat config is still read as the default assistant
  • optional-feature payloads without the new feature catalog continue to render safely
  • the old langsmith extra name remains a hidden compatibility alias to the supported Langfuse integration
  • remote package installation still requires tools.webuiAllowRemotePackageInstall
  • binding the managed API server to the local network requires an API key
  • managed API keys travel in a bounded private header instead of the request URL
  • WebUI bootstrap secrets are redacted from terminal output while the browser still receives the full local URL
  • package installation never happens on page load

User impact

  • Channels can be connected without translating documentation into config keys.
  • Saving or enabling a channel applies it through hot reload; setup guides no longer ask users to restart unnecessarily.
  • Feishu users can manage multiple assistants without replacing an existing one.
  • WeChat users can scan from WebUI instead of copying a terminal command.
  • PDF, Word, Excel, and PowerPoint uploads work in the standard installation without a separate setup page.
  • Bedrock, Azure, and Olostep install their support when the related setting is saved.
  • SDK and agent users can start and stop the OpenAI-compatible API from System.
  • Apps presents only usable Apps and MCP integrations, so its mental model matches @ in chat.

Validation

  • PYTHONPATH="$PWD" pytest -q (5061 passed, 8 skipped; macOS system proxy excluded from the test process)
  • cd webui && bun run test --run (535 passed)
  • ruff check nanobot/ tests/channels/test_websocket_http_routes.py tests/cli/test_commands.py
  • cd webui && bun run lint
  • cd webui && bun run build
  • git diff --check
  • real browser smoke: Channels, Apps, System, responsive settings layout, hash-route persistence, and production bundle
  • real API smoke: nanobot serve started on an isolated port and GET /v1/models returned 200

Notes

  • The production build still emits the existing large-chunk warning; it completes successfully.
  • Foreground attachment only takes ownership of gateways recorded by nanobot runtime state; unrelated gateway processes are not terminated.

@Re-bin
Re-bin force-pushed the codex/webui-bundle-freshness branch from 484de88 to 00839d6 Compare July 9, 2026 07:51
@Re-bin
Re-bin marked this pull request as ready for review July 10, 2026 16:55
@Re-bin Re-bin changed the title feat(channels): add guided setup flows feat(webui): add guided setup flows Jul 11, 2026
@Re-bin
Re-bin merged commit fe0717b into main Jul 13, 2026
5 checks passed
@Re-bin
Re-bin deleted the codex/webui-bundle-freshness branch July 13, 2026 05:11
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.

2 participants