Update main #13

Merged
rawan merged 31 commits from development into main 2026-04-02 13:21:00 +00:00
Member
No description provided.
feat: bind TCP port 9998 natively, remove nc bridge dependency
Some checks are pending
Build & Test / check (push) Waiting to run
6805fafabd
The UI service now binds TCP 127.0.0.1:9998 directly via a Tokio
TcpListener instead of relying on an external nc/socat bridge managed
through screen sessions. This gives a stable HTTP endpoint for browser
access and MCP gateway integration without requiring extra tooling.

- Change default port from 8802 to 9998
- Add native TCP listener alongside Unix domain socket in main.rs
- Remove nc_bridge_start calls from Makefile run/rundev/ui targets
- Add CLAUDE.md documenting the port exception rationale

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: use SERVICE_NAME constant for self-start action names
Some checks failed
Build & Test / check (push) Failing after 6s
674ad0520d
Replace hardcoded "main" strings with SERVICE_NAME in ActionBuilder
and endpoint registration for both server and UI crates.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: connection status indicator + UI improvements (#70)
Some checks failed
Build & Test / check (push) Failing after 3s
00ce158b37
Signed-off-by: mik-tf
fix: connection status indicator visibility and clickability (#70)
Some checks failed
Build & Test / check (push) Failing after 3s
251e1f972a
- 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
fix: migrate lifecycle CLI to --start/--stop flags pattern
Some checks failed
Build & Test / check (push) Failing after 2s
5d9360d639
Replace LifecycleCommand subcommand tree with --start/--stop flags.
Running without flags now enters foreground mode directly.
Domain-specific commands retained as needed.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add hero_inspector CLI binary (crates/hero_inspector/src/bin/hero_inspector.rs)
  with --start/--stop and build_service_definition() following hero_proxy pattern
- hero_inspector_server: remove --start/--stop lifecycle, become plain foreground daemon
- hero_inspector_ui: remove --start/--stop lifecycle, become plain foreground daemon
- Remove hero_proc_sdk and clap from hero_inspector_ui deps (no longer needed)
- Remove hero_proc_sdk from hero_inspector_server deps (no longer needed)
- buildenv.sh: add hero_inspector to BINARIES list
- Makefile: run/rundev use hero_inspector --start, stop uses hero_inspector --stop

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add .is_process() to ActionBuilder for long-running daemon actions
Some checks failed
Build & Test / check (push) Failing after 11s
34c9daa082
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>
fix: register server and UI as separate hero_proc services
Some checks failed
Build & Test / check (push) Failing after 1s
afde7e7d6f
hero_proc's service.start only starts the first action in a service's
action list, so the two-action approach left hero_inspector_ui never
running. Fix by registering two independent services instead:
  - hero_inspector_server (RPC backend)
  - hero_inspector_ui (web dashboard, requires hero_inspector_server)

The UI service declares requires = ["hero_inspector_server"] so hero_proc
starts it only after the server passes its health check.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: revert to single hero_inspector service with two actions
Some checks failed
Build & Test / check (push) Failing after 2s
b6406fc0dd
The previous commit split into two separate services as a workaround
for hero_proc only starting the first action. That workaround is now
reverted: hero_proc has been fixed to start all actions on service.start,
so the canonical 1-service-2-actions pattern from the skill works correctly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
feat: expose TLS config via environment variables
Some checks failed
Build & Test / check (push) Failing after 2s
b77a73fdf6
InspectorConfig now reads TLS mode from env vars:
  INSPECTOR_TLS=none|self-signed|letsencrypt  (default: none)
  INSPECTOR_DOMAIN=hostname                    (letsencrypt)
  INSPECTOR_EMAIL=admin@host                   (letsencrypt)
  INSPECTOR_CERT_DIR=~/.hero/inspector/certs   (both TLS modes)
  INSPECTOR_ACME_STAGING=false                 (letsencrypt production)
  INSPECTOR_PORT=9998                          (TCP port)

hero_inspector_ui maps InspectorTls → herolib_webserver::TlsMode and
passes it to SocketProxy so self-signed and Let's Encrypt both work.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add *.db to .gitignore to exclude database files from version control
Some checks failed
Build & Test / check (push) Failing after 2s
a17232057b
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
refactor: remove TCP reverse proxy — web UI services open natively
Some checks failed
Build & Test / check (push) Failing after 2s
b4a760ca46
Removes the proxy.rs module, ProxyRegistry, and inspector.open_website
RPC method. The proxy_port field is dropped from service template context
and the web UI card now shows a plain notice instead of start/stop controls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replace cdn.jsdelivr.net bootstrap-icons link with local css/bootstrap-icons.min.css
- Remove /hero-bootstrap-bridge.css external dependency
- Add css/unpoly.min.css and js/unpoly.min.js (files already embedded, just not loaded)
- Add data-bs-theme="dark" to <html> for dark-default per hero_ui_dashboard convention

dashboard.css already has @font-face override pointing to ../fonts/bootstrap-icons.woff2
which takes precedence and ensures fonts load from the embedded binary.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add UI proxy routing and refactor sidebar to per-socket entries
Some checks failed
Build & Test / check (push) Failing after 6s
42ed5fb337
- Replace service grouping logic with flat per-socket sidebar entries (SidebarEntry),
  showing a globe icon and open-link button for _ui sockets
- Add HTTP proxy handlers (ui_proxy_root / ui_proxy_path) that forward requests
  to Unix _ui.sock services, stripping hop-by-hop headers and forwarding prefix
- Expose socket_dir in AppState so the proxy can resolve socket paths at runtime
- Update service.html to render Web UI protocol badges as clickable links

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: update dashboard.js and base.html on development_admin
Some checks failed
Build & Test / check (push) Failing after 2s
bcec51a5d3
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Add service context menu with kill, check, and remove actions
Some checks failed
Build & Test / check (push) Failing after 4s
445f543527
- Add `inspector.kill` RPC method to remove socket files and evict services from cache
- Add `inspector.check` RPC method to trigger an immediate re-scan of all services
- Expose `service_id` and `pinned` fields in sidebar template entries and data attributes
- Add right-click context menu in the UI with Check, Kill, and Remove options; menu hides Kill for pinned/manual services
- Add "Clean inactive sockets" broom button to the sidebar header that triggers a scan and refreshes the list

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
fix: show globe/open icon for website_* sockets in sidebar
Some checks failed
Build & Test / check (push) Failing after 1s
2f8883fec9
refactor: use has_web() method for is_ui_socket check in sidebar entries
Some checks failed
Build & Test / check (push) Failing after 2s
76013496b4
Replace inline string-matching condition with the has_web() method call
for determining UI socket entries in the sidebar route builder.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Update routes and UI templates
Some checks failed
Build & Test / check (push) Failing after 7s
0dbe72b042
fix: update hero_proc_sdk API usage for breaking changes
Some checks failed
Build & Test / check (push) Failing after 2s
b949355423
Remove deleted lifecycle module, use direct RPC client calls
(action_set, service_set, service_start, service_stop) instead.
Remove removed .interpreter() and .is_process() builder methods,
set interpreter on ActionSpec after build.

Fixes #9

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Revert "fix: update hero_proc_sdk API usage for breaking changes"
Some checks failed
Build & Test / check (push) Failing after 2s
514f0e1241
This reverts commit b949355423.
Add scripts/rhai/run.rhai for hero_proc service lifecycle
Some checks failed
Build & Test / check (push) Failing after 2s
50bb70cf57
Rhai script that builds, installs, registers, and starts the service
via hero_proc using the proper action_set() + service_register() model.

Usage: hero_do scripts/rhai/run.rhai  (from repo root)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add lifecycle scripts in scripts/, update Makefile to delegate to hero_do
Some checks failed
Build & Test / check (push) Failing after 2s
4646bf5255
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
fix: resolve run() paths relative to script directory in restart.rhai
Some checks failed
Build & Test / check (push) Failing after 10s
bea13b76bf
feat: release workflow
Some checks failed
Build & Test / check (push) Failing after 2s
b8a7efbac4
fix: linting errors
Some checks failed
Build & Test / check (push) Failing after 10s
be9b625731
fix: update rust toolchain in workflows
All checks were successful
Build & Test / check (push) Successful in 3m18s
Build & Test / check (pull_request) Successful in 3m27s
9bab136d44
fix: main is the only allowed branch
All checks were successful
Build & Test / check (push) Successful in 5m14s
Build & Test / check (pull_request) Successful in 5m19s
c9417a2146
Merge pull request 'Release workflow' (#12) from development_release into development
All checks were successful
Build & Test / check (push) Successful in 3m54s
Build & Test / check (pull_request) Successful in 3m39s
6efad0148a
Reviewed-on: lhumina_code/hero_inspector#12
rawan merged commit 5f2501e03b into main 2026-04-02 13:21:00 +00:00
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_router!13
No description provided.