Merge development into main #10

Merged
despiegk merged 32 commits from development into main 2026-04-14 03:54:19 +00:00
Owner

Sync development into main.

Sync development into main.
fix: add hero-bootstrap-bridge.css, fix theme listener, use relative RPC URL (#69)
Some checks failed
Test / test (push) Failing after 2s
Build and Test / build (push) Failing after 4s
fcddf69508
Signed-off-by: mik-tf
fix: add SIGTERM handling, remove process::exit, add graceful shutdown to all binaries
Some checks failed
Test / test (push) Failing after 54s
Build and Test / build (push) Failing after 1m24s
b5c294c0a9
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
browser mcp working now
Some checks failed
Test / test (push) Failing after 1m22s
Build and Test / build (push) Successful in 3m9s
fdc6fda9da
feat: connection status indicator + UI improvements (#70)
Some checks failed
Test / test (push) Failing after 1m58s
Build and Test / build (push) Successful in 3m18s
b6dbe9ab2c
Signed-off-by: mik-tf
fix: connection status indicator visibility and clickability (#70)
Some checks failed
Test / test (push) Failing after 1m51s
Build and Test / build (push) Successful in 3m37s
9101fd6032
- Add popover retry logic to connection-status.js (handles CDN bootstrap delay)
- Fix proxy path issues (BASE_PATH env vars, base tags, relative paths)
- Fix iframe-hidden navbar in redis (fixed-position dot for iframe mode)
- Add connection status to hero_auth (inline poller with UI/Backend breakdown)
- Add status dot to whiteboard web view and collab chat page
- Fix foundry base_global.html paths and navbar_global.html dot element
- Fix RPC method names for inspector and browser
- Add popover deps smoke tests
- Fix redis SSO failure redirect and static file packaging

Signed-off-by: mik-tf
Remove --show flag and simplify run targets to use INSTALL_DIR
Some checks failed
Test / test (push) Failing after 2m13s
Build and Test / build (push) Successful in 2m51s
f0a20a31e0
- Drop the --show / show_browser flag from hero_browser_server; foreground
  mode now always runs without a visible browser window
- Update Makefile run target to invoke binaries from INSTALL_DIR instead of
  RELEASE_DIR, and remove the now-unused run-show and run-server targets
- Update help text and .PHONY list accordingly

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Exits early with a clear error message if hero_proc is not running,
preventing confusing failures during service registration.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: add TCP MCP listener for Claude HTTP transport
Some checks failed
Test / test (push) Failing after 1m46s
Build and Test / build (push) Successful in 2m40s
2f1d03dda5
- Enable PORTS export in buildenv.sh for TCP listener
- Add mcp_tcp_port() function with configurable HERO_BROWSER_MCP_PORT
- Bind both Unix socket and TCP (127.0.0.1:8884) for MCP server
- Add TCP endpoint to health checks and startup output
- Support Claude MCP HTTP transport which requires TCP instead of unix+http://

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
Add #[allow(dead_code)] to intentionally kept but currently unused items:
- ProcLogger::debug and ::warning methods in hero_browser_server and hero_browser_ui
- JsonRpcRequest::jsonrpc field (required by JSON-RPC 2.0 protocol, deserialized but not read)
- BrowserInfo and PageInfo structs in server.rs (public API types for future use)
- HeroBrowserServer::credentials field and ::new/::with_headless constructors

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Move --start/--stop lifecycle management from hero_browser_server and
hero_browser_ui into the hero_browser CLI, using build_service_definition()
with both server and UI actions. Both daemons become plain foreground
processes. Makefile run target now calls hero_browser --start/--stop;
new `make stop` target added.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add .is_process() to ActionBuilder for long-running daemon actions
Some checks failed
Test / test (push) Failing after 2m36s
Build and Test / build (push) Successful in 3m17s
8044f58f03
Marks all server/UI actions as persistent processes so hero_proc
treats any unexpected exit as a failure and triggers restart.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
add X-Forwarded-Prefix reverse proxy support with base path middleware
Some checks failed
Test / test (push) Failing after 2m43s
Build and Test / build (push) Successful in 4m11s
348015b697
Introduces a base_path_middleware that reads the X-Forwarded-Prefix header
and injects a BasePath extension into requests, enabling correct asset and
API URL generation when the UI is served behind a reverse proxy sub-path.
Updates index.html and base.html to use base_path for openrpc.json fetch
and hero-bootstrap-bridge.css link href.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
chore: disable macOS CI workflow — no runner available (#82)
Some checks failed
Test / test (push) Failing after 2m59s
Build and Test / build (push) Successful in 3m16s
307245a9f4
Signed-off-by: mik-tf
fix: resolve SPA testing bugs and add network idle + async JS (#86)
Some checks failed
Test / test (push) Failing after 1m44s
Build and Test / build (push) Successful in 2m40s
88e2c4b6b3
- Fix element_set_value variable collision by wrapping in IIFE
- Add native property setter for React/Dioxus signal compatibility
- Auto-save screenshots to /tmp when base64 exceeds 100KB
- Add js_evaluate_async with await_promise for async JS evaluation
- Add page_wait_for_network_idle for SPA load detection
- Document interceptor navigation caveat in OpenRPC descriptions

Signed-off-by: mik-tf
fix: doctests referencing hero_browser_sdk instead of hero_browser_core (#86)
All checks were successful
Test / test (push) Successful in 1m59s
Build and Test / build (push) Successful in 3m10s
2d7c57cb7e
Signed-off-by: mik-tf
Fix nested Tokio runtimes
All checks were successful
Test / test (push) Successful in 1m47s
Build and Test / build (push) Successful in 2m41s
2228a24de5
Merge branch 'origin/development' into development
Some checks failed
Build and Test / build (push) Failing after 1m11s
Test / test (push) Failing after 55s
19fd1cc592
Resolved merge conflict in crates/hero_browser/src/main.rs by keeping restart_service call from local branch (newer implementation).

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
fix: update KillOther fields to Option types and use start_service
Some checks failed
Build and Test / build (push) Has been cancelled
Test / test (push) Has been cancelled
4a512011be
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
docs: add E2E browser testing guide
All checks were successful
Test / test (push) Successful in 1m28s
Build and Test / build (push) Successful in 3m15s
4d0e3a71d4
Practical guide for automated browser testing from bash scripts.
Covers: MCP call pattern, UUID extraction, WASM/SPA testing,
Dioxus input bindings, localStorage tricks, troubleshooting.

Based on testing a 15-tab Dioxus WASM dashboard (42 assertions, 0 failures).

Signed-off-by: mik-tf
fix: use restart_service for idempotent --start and update hero_proc_sdk
All checks were successful
Test / test (push) Successful in 2m20s
Build and Test / build (push) Successful in 6m58s
9bf84164b2
Switch `lifecycle::start_service` to `lifecycle::restart_service` so
`hero_browser --start` is idempotent (stops + re-registers if already
running). Update hero_proc_sdk dependency to 6056c4d5 (development
branch) which contains the restart_service API. Remove the manual
--stop workaround from the Makefile run target since restart_service
handles it internally.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: switch hero_proc_sdk from git source to crates.io version "0.4"
Some checks failed
Test / test (push) Failing after 4s
Build and Test / build (push) Failing after 8s
913f3cc2a3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: revert hero_proc_sdk to git source (not published on crates.io)
All checks were successful
Test / test (push) Successful in 1m50s
Build and Test / build (push) Successful in 2m41s
1795e74b7d
hero_proc_sdk is only available via the forge git repository at
version 0.4.2 (development branch). The crates.io version does not exist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: migrate to Hero socket strategy (per-service UDS directories)
All checks were successful
Test / test (push) Successful in 1m26s
Build and Test / build (push) Successful in 3m13s
bf1a3c4895
- server: socket moves from hero_browser_server.sock (flat) to
  hero_browser_server/rpc.sock (per-service dir)
- ui: socket moves from hero_browser_ui.sock (flat) to
  hero_browser_ui/ui.sock (per-service dir)
- All paths now read HERO_SOCKET_DIR env var (default ~/hero/var/sockets)
- TCP listener removed from hero_browser_server (UDS only)
- heroservice.json manifest updated: server uses protocol=openrpc,
  ui uses protocol=ui; both include socket type field
- Added HeroContext middleware to both server and UI to read
  X-Hero-Context, X-Hero-Claims, X-Forwarded-Prefix on every request
- CLI (hero_browser) updated: socket paths and kill_other entries
  use new per-service directory layout; TCP health check removed
- openrpc_proxy! socket updated to hero_browser_server/rpc.sock
- Makefile: SOCKET_DIR respects HERO_SOCKET_DIR; run-server/run-ui
  create service subdirectory before removing stale socket
- Removed unused dirs dependency from hero_browser crate

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
refactor: remove openrpc_proxy from UI — hero_router handles RPC routing
All checks were successful
Test / test (push) Successful in 2m45s
Build and Test / build (push) Successful in 2m45s
13a89261f7
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: add TCP support for Claude Code MCP HTTP transport
All checks were successful
Test / test (push) Successful in 1m27s
Build and Test / build (push) Successful in 3m13s
1cc0a64c47
- Bind TCP listener on 127.0.0.1:8884 (configurable via HERO_BROWSER_MCP_PORT)
- Standardize socket path to $HERO_SOCKET_DIR/hero_browser/rpc.sock
- Add OAuth server endpoint returning proper 404 JSON response
- Update MCP registration to use HTTP URL instead of Unix socket
- Add CLAUDE.md with critical architecture and deployment notes

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
feat: sessions 17-18 — native dioxus islands, new URL routing, OSIS auth fix, build safety
All checks were successful
Test / test (push) Successful in 4m24s
Build and Test / build (push) Successful in 6m50s
906ddedac3
- 18 native dioxus-bootstrap-css _app crates with ConnectionStatusIndicator
- Proxy → hero_router routing model (/<service>/<socket_type>/<path>)
- Socket convention migration (per-service directories)
- OSIS auth dispatch fix (OsisAppWrapper::handle_custom)
- Build parallelism limits for thermal safety
- hero_services → hero_zero rename
- Service TOML URL fixes for new routing pattern

Signed-off-by: mik-tf
fix: update socket paths to directory convention (hero_browser/rpc.sock)
All checks were successful
Test / test (push) Successful in 4m4s
Build and Test / build (push) Successful in 5m28s
1b9520a24a
lhumina_code/home#116

Signed-off-by: mik-tf
Merge remote-tracking branch 'refs/remotes/origin/development' into development
All checks were successful
Test / test (pull_request) Successful in 3m38s
Test / test (push) Successful in 3m44s
Build and Test / build (push) Successful in 6m49s
Build and Test / build (pull_request) Successful in 6m54s
5bb8314c52
Sign in to join this conversation.
No reviewers
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_browser!10
No description provided.