chore(hero_proc): D-10 sweep — canonical service.toml + cargo update + dep audit #103

Merged
mik-tf merged 1 commit from development_mik into development 2026-05-16 02:01:17 +00:00
Owner

Closes part of hero_proc#102 (T1 #2 deps-first; s97 in the workspace multi-session sweep).

D-10 acceptance — 5/5 met

# Criterion Status
1 lab infocheck exits 0 4 crate(s) clean, 0 finding(s) total
2 Canonical main.rs wiring (service_base!() + validate_service_toml + handle_info_flag + print_startup_banner + prepare_sockets) ✓ all 3 daemons; CLI omits banner/sockets (correct — it's a client)
3 cargo update clean herolib_core 37125e55 → 9b5912bf (s96 #140 cascade), hero_rpc 3ab8cfa7 → f17dcd71
4 Cargo.toml deps audited, AI-cruft stripped ✓ 9 zero-match deps removed (see below)
5 lab service <bin> --install --start exits 0, sockets bind, smoke passes hero_proc_server rpc.sock binds + system.ping returns version 0.6.0; hero_proc_admin smoke tests 2/2 passed (GET /health + /.well-known/heroservice.json)

What

service.toml — canonical 3-binary pattern

Rewrote crates/hero_proc_server/service.toml, crates/hero_proc_admin/service.toml, and crates/hero_proc/service.toml to the canonical pattern: each file lists all 3 binaries (hero_proc cli + hero_proc_server server + hero_proc_admin admin) with their sockets/env. Only [service].crate + [service].display differ per crate. Reference impl: hero_db @ a08a1c4. The previous self-only listings broke lab service multi-binary discovery (the class of bug filed as hero_skills#254).

cargo update

  Updating herolib_core 37125e55 -> 9b5912bf   (s96 PR #140 squash)
  Updating herolib_derive 37125e55 -> 9b5912bf
  Updating hero_rpc_derive 3ab8cfa7 -> f17dcd71
  Updating hero_rpc_openrpc 3ab8cfa7 -> f17dcd71

Conservative dep audit (9 deps stripped)

Only deps with 0 use <dep>::|<dep>:: matches under src/ were stripped; conservative defaults preserved when in doubt:

Crate Deps removed
hero_proc_server tokio_tungstenite, cron_tab
hero_proc_admin thiserror, dirs, tower_http
hero_proc (CLI) serde, thiserror, anyhow, libc

Kept: hero_rpc_openrpc in admin (transitively required by hero_rpc_derive::openrpc_proxy!() macro expansion — conservative).

Cascade fixes (test/example code; surfaced by cargo update)

  • crates/hero_proc_server/src/db/service/model.rs:603 + crates/hero_proc_server/src/supervisor/mod.rs:1163 — add tags: None to 2 #[cfg(test)] ServiceSpec initializers. Pre-existing test breakage from 66abdf1 (feat(wipe): protect system services) — that commit added the tags field but missed these 2 test sites. Surfaced by cargo check --workspace --all-targets.
  • crates/hero_proc_examples/examples/02_service.rs + 03_run.rs — update to new LogLine SDK shape ({line: String, src: String, stream: String, timestamp_ms: i64}; bare String, line not content). The shape change was published by the s96 PR #140 cascade.

Integration test suite — net positive

cargo run -p hero_proc_test: 9 previously-failing tests now pass (boss's upstream test-infra commits — 8028f71, 66abdf1, 15f65bd, 17241ac, dc3301c — picked up via cargo update). 4 snapshots modified with updated error msg. Net suite: 29 → ~20 failures, no new failures introduced. The remaining failures are pre-existing and boss is actively iterating.

Out of scope (flagged, not fixed)

  • Cargo.toml:20 repository = "https://forge.ourworld.tf/geomind_code/hero_proc" typo (should be lhumina_code/). Pre-existing, not part of D-10 acceptance.
  • 17 remaining hero_proc_test integration failures — boss actively working on these (recent commits touch errors/ snapshots + log/schedule/cleanup subsystems).
  • hero_skills#254/#255/#256 lab-service workarounds still apply; this PR uses the per-binary invocation path.

Files changed

  • 3 service.toml (canonical rewrite)
  • 3 Cargo.toml (dep audit)
  • 1 Cargo.lock (cargo update)
  • 2 src/**/*.rs (ServiceSpec test inits)
  • 2 examples/**.rs (LogLine cascade)
  • 13 errors/*.md (9 deletes + 4 modified — test snapshot refresh)

Signed-off-by: mik-tf

Closes part of [hero_proc#102](https://forge.ourworld.tf/lhumina_code/hero_proc/issues/102) (T1 #2 deps-first; s97 in the workspace multi-session sweep). ## D-10 acceptance — 5/5 met | # | Criterion | Status | |---|---|---| | 1 | `lab infocheck` exits 0 | ✓ `4 crate(s) clean, 0 finding(s) total` | | 2 | Canonical `main.rs` wiring (`service_base!()` + `validate_service_toml` + `handle_info_flag` + `print_startup_banner` + `prepare_sockets`) | ✓ all 3 daemons; CLI omits banner/sockets (correct — it's a client) | | 3 | `cargo update` clean | ✓ `herolib_core` 37125e55 → 9b5912bf (s96 #140 cascade), `hero_rpc` 3ab8cfa7 → f17dcd71 | | 4 | `Cargo.toml` deps audited, AI-cruft stripped | ✓ 9 zero-match deps removed (see below) | | 5 | `lab service <bin> --install --start` exits 0, sockets bind, smoke passes | ✓ `hero_proc_server` rpc.sock binds + `system.ping` returns `version 0.6.0`; `hero_proc_admin` smoke tests **2/2 passed** (GET /health + /.well-known/heroservice.json) | ## What ### service.toml — canonical 3-binary pattern Rewrote `crates/hero_proc_server/service.toml`, `crates/hero_proc_admin/service.toml`, and `crates/hero_proc/service.toml` to the canonical pattern: each file lists all 3 binaries (`hero_proc` cli + `hero_proc_server` server + `hero_proc_admin` admin) with their sockets/env. Only `[service].crate` + `[service].display` differ per crate. Reference impl: `hero_db @ a08a1c4`. The previous self-only listings broke `lab service` multi-binary discovery (the class of bug filed as [hero_skills#254](https://forge.ourworld.tf/lhumina_code/hero_skills/issues/254)). ### cargo update ``` Updating herolib_core 37125e55 -> 9b5912bf (s96 PR #140 squash) Updating herolib_derive 37125e55 -> 9b5912bf Updating hero_rpc_derive 3ab8cfa7 -> f17dcd71 Updating hero_rpc_openrpc 3ab8cfa7 -> f17dcd71 ``` ### Conservative dep audit (9 deps stripped) Only deps with 0 `use <dep>::|<dep>::` matches under `src/` were stripped; conservative defaults preserved when in doubt: | Crate | Deps removed | |---|---| | `hero_proc_server` | `tokio_tungstenite`, `cron_tab` | | `hero_proc_admin` | `thiserror`, `dirs`, `tower_http` | | `hero_proc` (CLI) | `serde`, `thiserror`, `anyhow`, `libc` | Kept: `hero_rpc_openrpc` in admin (transitively required by `hero_rpc_derive::openrpc_proxy!()` macro expansion — conservative). ### Cascade fixes (test/example code; surfaced by cargo update) - `crates/hero_proc_server/src/db/service/model.rs:603` + `crates/hero_proc_server/src/supervisor/mod.rs:1163` — add `tags: None` to 2 `#[cfg(test)]` `ServiceSpec` initializers. Pre-existing test breakage from `66abdf1` (`feat(wipe): protect system services`) — that commit added the `tags` field but missed these 2 test sites. Surfaced by `cargo check --workspace --all-targets`. - `crates/hero_proc_examples/examples/02_service.rs` + `03_run.rs` — update to new `LogLine` SDK shape (`{line: String, src: String, stream: String, timestamp_ms: i64}`; bare `String`, `line` not `content`). The shape change was published by the s96 PR #140 cascade. ### Integration test suite — net positive `cargo run -p hero_proc_test`: **9 previously-failing tests now pass** (boss's upstream test-infra commits — `8028f71`, `66abdf1`, `15f65bd`, `17241ac`, `dc3301c` — picked up via `cargo update`). 4 snapshots modified with updated error msg. Net suite: **29 → ~20 failures**, no new failures introduced. The remaining failures are pre-existing and boss is actively iterating. ## Out of scope (flagged, not fixed) - `Cargo.toml:20` `repository = "https://forge.ourworld.tf/geomind_code/hero_proc"` typo (should be `lhumina_code/`). Pre-existing, not part of D-10 acceptance. - 17 remaining `hero_proc_test` integration failures — boss actively working on these (recent commits touch `errors/` snapshots + log/schedule/cleanup subsystems). - `hero_skills#254/#255/#256` lab-service workarounds still apply; this PR uses the per-binary invocation path. ## Files changed - 3 `service.toml` (canonical rewrite) - 3 `Cargo.toml` (dep audit) - 1 `Cargo.lock` (cargo update) - 2 `src/**/*.rs` (`ServiceSpec` test inits) - 2 `examples/**.rs` (LogLine cascade) - 13 `errors/*.md` (9 deletes + 4 modified — test snapshot refresh) --- Signed-off-by: mik-tf
chore(hero_proc): D-10 sweep — canonical service.toml + cargo update + dep audit
All checks were successful
Tests / test (pull_request) Successful in 2m5s
Build and Test / build (pull_request) Successful in 5m1s
c0f4abdb49
Closes part of #102
(T1 #2 deps-first; s97 in the workspace multi-session sweep).

## What

- Rewrite 3 `service.toml` files (`hero_proc_server`, `hero_proc_admin`,
  `hero_proc` CLI) to the canonical 3-binary pattern (each file lists all
  3 binaries — `hero_proc` cli + `hero_proc_server` + `hero_proc_admin` —
  with their sockets/env; only `[service].crate` + `[service].display`
  differ per crate). Reference impl: hero_db @ `a08a1c4`.
- `cargo update` — `herolib_core` 37125e55 → 9b5912bf (the s96
  PR #140 squash-merge cascade), `hero_rpc` 3ab8cfa7 → f17dcd71.
- Strip 9 zero-match deps across the 3 crates (conservative audit;
  only deps with 0 hits under `src/`):
  - `hero_proc_server`: `tokio_tungstenite`, `cron_tab`
  - `hero_proc_admin`: `thiserror`, `dirs`, `tower_http`
  - `hero_proc` CLI: `serde`, `thiserror`, `anyhow`, `libc`
- Fix 2 `ServiceSpec` test initializers missing `tags: None` field
  (pre-existing test breakage from `66abdf1` wipe-protection feat;
  surfaced by `cargo check --workspace --all-targets`).
- Update `hero_proc_examples/examples/{02_service,03_run}.rs` to the
  new `LogLine` SDK shape (bare `String` fields, `line` not `content`)
  — surfaced by the s96 cascade pulling the new generated client.
- `errors/*.md` snapshots refresh: 9 previously-failing integration
  tests now pass (boss's upstream test-infra commits picked up via
  `cargo update`); 4 modified snapshots reflect updated error messages.
  Net integration suite: 29 → ~20 failures. No new failures introduced.

## D-10 acceptance (all 5 met)

1. `lab infocheck`: `4 crate(s) clean, 0 finding(s) total`.
2. `main.rs` canonical wiring: `service_base!()` + `validate_service_toml`
   + `handle_info_flag` + (daemons) `print_startup_banner` + `prepare_sockets`.
3. `cargo update` clean; lockfile reflects latest Proc SDK + `herolib_core`.
4. `Cargo.toml` deps audited; AI-cruft stripped (9 deps removed).
5. `lab service hero_proc_server --install --start` → rpc.sock binds,
   `system.ping` returns version 0.6.0.
   `lab service hero_proc_admin --install --start` → smoke tests 2/2
   passed (GET /health + /.well-known/heroservice.json).

## Out of scope (flagged, not fixed)

- `Cargo.toml:20` `repository = "https://forge.ourworld.tf/geomind_code/hero_proc"`
  typo (should be `lhumina_code/`); pre-existing, not D-10.
- 17 pre-existing integration test failures in `cargo run -p hero_proc_test`;
  boss actively iterating (recent commits `8028f71`, `66abdf1`, `15f65bd`).
- `crates/hero_proc_lib_ui`, `crates/hero_proc_examples`, `crates/hero_proc_app`,
  `crates/hero_proc_sdk` have no `service.toml` — by design (lib / examples /
  sdk crates, not service binaries).

Signed-off-by: mik-tf <logismos@protonmail.ch>
mik-tf merged commit a436a20f85 into development 2026-05-16 02:01:17 +00:00
mik-tf deleted branch development_mik 2026-05-16 02:01:17 +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_proc!103
No description provided.