From 92afbd2a37209259c2efdb55108d47186fbf6329 Mon Sep 17 00:00:00 2001 From: Raphael Maenle Date: Wed, 10 Jun 2026 18:24:03 +0200 Subject: [PATCH] docs: record secsgem-py daemon interop in roadmap Co-Authored-By: Claude Opus 4.8 (1M context) --- docs/DAEMON_ROADMAP.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/DAEMON_ROADMAP.md b/docs/DAEMON_ROADMAP.md index c0d5114..3e410c7 100644 --- a/docs/DAEMON_ROADMAP.md +++ b/docs/DAEMON_ROADMAP.md @@ -28,6 +28,7 @@ host and stays conformant while the tool software restarts/upgrades/crashes. | `secs_gemd` daemon | 🚧 | **runs** — engine + HSMS on a background thread, serves gRPC. RPCs done + tested over a real in-process channel: `SetVariables` (name-resolved, value→Item, lands in the model), `FireEvent` (name→CEID), `GetControlState`. `tests/test_daemon_service.cpp` (15 assertions). **Still TODO:** `GetVariables` (needs Item→Value), `SetAlarm`/`ClearAlarm` (needs an alarm `name` config field), `RequestControlState`, `WatchHealth`, and the host→tool **`Subscribe` command stream + `CompleteCommand`** (the hard part). | | `secs_gemd` daemon implementing the service | ⬜ | translate RPCs ↔ runtime; stream host requests | | Reference client library (Python) | ⬜ | thin wrapper over generated stubs | +| Daemon interop test vs secsgem-py | ✅ | `interop/daemon_interop.py` — a gRPC tool + a secsgem-py active host both drive a live `secs_gemd`; proves a gRPC `SetVariables`+`FireEvent` reaches the reference host as `S6F11` over HSMS. Run via the `gemd` compose service. **Java (secs4j) equivalent: ⬜.** | **Nothing in the proto is wired to the engine yet.** The engine itself is broad (56 wire handlers across S1/2/3/5/6/7/10/14/16; all GEM300 stores) — the daemon