feat: complete plugin↔monitor bridge integration
- Update submodule refs for Monitor and Plugin - Mark plugin↔monitor bridge TODO items as complete in cross-project todo - Sections 4.6, 5.1-5.4, Phase A/E bridge items all done
This commit is contained in:
Submodule HarborForge.Monitor updated: 360743ba6b...dc05fa01d1
Submodule HarborForge.OpenclawPlugin updated: 27b8b74d39...e7ba982128
@@ -18,7 +18,10 @@
|
|||||||
- current CLI contract: `--json` emits raw success payloads on stdout without a universal envelope; list/get responses should preserve canonical code-bearing fields when backend payloads provide them
|
- current CLI contract: `--json` emits raw success payloads on stdout without a universal envelope; list/get responses should preserve canonical code-bearing fields when backend payloads provide them
|
||||||
- [x] Define CLI exit code / stderr conventions
|
- [x] Define CLI exit code / stderr conventions
|
||||||
- current CLI contract: success exits `0`; validation/runtime failures exit `1`; errors go to stderr and successful output goes to stdout
|
- current CLI contract: success exits `0`; validation/runtime failures exit `1`; errors go to stderr and successful output goes to stdout
|
||||||
- [ ] Define local plugin↔monitor communication protocol over `monitor_port`
|
- [x] Define local plugin↔monitor communication protocol over `monitor_port`
|
||||||
|
- Monitor exposes `GET /health`, `GET /telemetry`, `POST /openclaw` on 127.0.0.1:MONITOR_PORT
|
||||||
|
- Plugin pushes OpenClaw metadata via POST /openclaw; Monitor enriches heartbeats with received data
|
||||||
|
- All communication is optional/degradable — both sides function independently
|
||||||
- [ ] Define release order across submodules
|
- [ ] Define release order across submodules
|
||||||
- [ ] Define rollback strategy if plugin / monitor bridge is unavailable
|
- [ ] Define rollback strategy if plugin / monitor bridge is unavailable
|
||||||
|
|
||||||
@@ -267,7 +270,7 @@
|
|||||||
|
|
||||||
### 3.4 Monitor UI alignment
|
### 3.4 Monitor UI alignment
|
||||||
- [x] Ensure monitor views expose server identifier/code cleanly
|
- [x] Ensure monitor views expose server identifier/code cleanly
|
||||||
- [ ] Review display of OpenClaw/plugin metadata once Monitor bridge is implemented
|
- [ ] Review display of OpenClaw/plugin metadata once Monitor bridge is deployed
|
||||||
|
|
||||||
### 3.5 Future CLI alignment aids
|
### 3.5 Future CLI alignment aids
|
||||||
- [x] Consider showing canonical codes more prominently to help users map UI↔CLI
|
- [x] Consider showing canonical codes more prominently to help users map UI↔CLI
|
||||||
@@ -313,45 +316,49 @@
|
|||||||
- [x] Installer should copy `skills/hf/` when `--install-cli` is present
|
- [x] Installer should copy `skills/hf/` when `--install-cli` is present
|
||||||
|
|
||||||
### 4.6 Monitor bridge endpoint
|
### 4.6 Monitor bridge endpoint
|
||||||
- [ ] Define how plugin exposes OpenClaw metadata to Monitor over local port
|
- [x] Define how plugin exposes OpenClaw metadata to Monitor over local port
|
||||||
- [ ] Decide HTTP endpoint structure / payload schema
|
- Plugin periodically POSTs metadata to Monitor bridge `POST /openclaw`
|
||||||
- [ ] Expose OpenClaw version
|
- [x] Decide HTTP endpoint structure / payload schema
|
||||||
- [ ] Expose plugin version
|
- `POST /openclaw` with `{ version, plugin_version, agents }`
|
||||||
- [ ] Expose agent list / agent metadata
|
- [x] Expose OpenClaw version
|
||||||
- [ ] Ensure plugin remains functional even if Monitor never connects
|
- [x] Expose plugin version
|
||||||
|
- [x] Expose agent list / agent metadata
|
||||||
|
- [x] Ensure plugin remains functional even if Monitor never connects
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 5. HarborForge.Monitor
|
## 5. HarborForge.Monitor
|
||||||
|
|
||||||
### 5.1 Docker/runtime changes
|
### 5.1 Docker/runtime changes
|
||||||
- [ ] Add `MONITOR_PORT` env var
|
- [x] Add `MONITOR_PORT` env var
|
||||||
- [ ] Ensure Monitor listens on `127.0.0.1:<MONITOR_PORT>`
|
- [x] Ensure Monitor listens on `127.0.0.1:<MONITOR_PORT>`
|
||||||
- [ ] Update Docker runtime docs/examples
|
- [x] Update Docker runtime docs/examples
|
||||||
- [ ] Update docker-compose to expose that port to host `127.0.0.1`
|
- [x] Update docker-compose to expose that port to host `127.0.0.1`
|
||||||
|
|
||||||
### 5.2 Plugin communication
|
### 5.2 Plugin communication
|
||||||
- [ ] Implement local communication client to query plugin over `MONITOR_PORT`
|
- [x] Implement local communication client to query plugin over `MONITOR_PORT`
|
||||||
- [ ] Define request timeout / retry / fallback policy
|
- Note: the architecture is reversed — Monitor hosts the bridge, plugin pushes via POST /openclaw
|
||||||
- [ ] Keep startup independent of plugin communication success
|
- [x] Define request timeout / retry / fallback policy
|
||||||
- [ ] Keep heartbeat/telemetry upload independent of plugin communication success
|
- Plugin uses 3s timeout; Monitor bridge uses 5s read/write timeouts
|
||||||
- [ ] If plugin is reachable, enrich telemetry with:
|
- [x] Keep startup independent of plugin communication success
|
||||||
- [ ] OpenClaw version
|
- [x] Keep heartbeat/telemetry upload independent of plugin communication success
|
||||||
- [ ] plugin version
|
- [x] If plugin is reachable, enrich telemetry with:
|
||||||
- [ ] agent info
|
- [x] OpenClaw version
|
||||||
- [ ] If plugin is unreachable, continue current behavior unchanged
|
- [x] plugin version
|
||||||
|
- [x] agent info
|
||||||
|
- [x] If plugin is unreachable, continue current behavior unchanged
|
||||||
|
|
||||||
### 5.3 Telemetry model alignment
|
### 5.3 Telemetry model alignment
|
||||||
- [ ] Ensure backend-facing telemetry payloads can carry optional OpenClaw metadata
|
- [x] Ensure backend-facing telemetry payloads can carry optional OpenClaw metadata
|
||||||
- [ ] Avoid making plugin-derived fields mandatory
|
- [x] Avoid making plugin-derived fields mandatory
|
||||||
- [ ] Ensure monitor data model cleanly distinguishes:
|
- [x] Ensure monitor data model cleanly distinguishes:
|
||||||
- [ ] host/hardware telemetry
|
- [x] host/hardware telemetry
|
||||||
- [ ] optional OpenClaw metadata
|
- [x] optional OpenClaw metadata
|
||||||
|
|
||||||
### 5.4 Docs / examples
|
### 5.4 Docs / examples
|
||||||
- [ ] Update Monitor README to explain `MONITOR_PORT`
|
- [x] Update Monitor README to explain `MONITOR_PORT`
|
||||||
- [ ] Explain degraded mode when plugin bridge is absent
|
- [x] Explain degraded mode when plugin bridge is absent
|
||||||
- [ ] Provide example Docker run / compose snippet with host loopback exposure
|
- [x] Provide example Docker run / compose snippet with host loopback exposure
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -380,7 +387,7 @@
|
|||||||
### Phase A — Foundations
|
### Phase A — Foundations
|
||||||
- [x] Finalize CLI help / mode / output model
|
- [x] Finalize CLI help / mode / output model
|
||||||
- [x] Finalize backend permission introspection approach
|
- [x] Finalize backend permission introspection approach
|
||||||
- [ ] Finalize plugin↔monitor local protocol
|
- [x] Finalize plugin↔monitor local protocol
|
||||||
|
|
||||||
### Phase B — Backend first
|
### Phase B — Backend first
|
||||||
- [x] Add/finish code-based backend support
|
- [x] Add/finish code-based backend support
|
||||||
@@ -403,7 +410,7 @@
|
|||||||
- [x] Remove plugin sidecar
|
- [x] Remove plugin sidecar
|
||||||
- [x] Add `--install-cli`
|
- [x] Add `--install-cli`
|
||||||
- [x] Add `skills/hf`
|
- [x] Add `skills/hf`
|
||||||
- [ ] Add `monitor_port` / `MONITOR_PORT` bridge
|
- [x] Add `monitor_port` / `MONITOR_PORT` bridge
|
||||||
|
|
||||||
### Phase F — Cleanup / retirement
|
### Phase F — Cleanup / retirement
|
||||||
- [x] Remove legacy backend Python CLI
|
- [x] Remove legacy backend Python CLI
|
||||||
|
|||||||
Reference in New Issue
Block a user