hero_planner: migrate server to oschema-first (openrpc_server!) — DONE #31

Closed
opened 2026-06-15 13:19:05 +00:00 by sameh-farouk · 1 comment
Member

Tracking issue (filed retroactively) for the hero_planner server migration to the oschema-first openrpc_server! architecture. The work is already merged to development and browser-verified; this issue records it and closes with a report.

Scope

Replace the hand-rolled JSON-RPC dispatcher + manually-maintained openrpc.json with .oschema files compiled by herolib_macros::openrpc_server! into a typed trait + spec + router; regenerate the SDK; migrate the admin to the askama webserver-admin; keep business logic + SQLite store unchanged.

What landed (on development)

  • 78734a3 migrate server to oschema-first openrpc_server!
  • a055eca fold *_new into *_set (empty-sid create branch)
  • 7c77217 migrate admin to askama webserver-admin
  • 53dea2c admin theme via HeroProcClient secret_find/secret_get
  • 39d67d5 generated OpenRPC client for hero_planner_sdk
  • 7c510a7 remap hand-JS UI to the migrated oschema RPC surface
  • 7976504 fill oschema gaps (#24/#25/#26, source + regen)
  • 6499ae7 vendor shared hero_lifecycle partials for CI
  • bdb3935 currency-delete uses real CurrencyRate.id
  • 8306f91 adopt hero_lib #151 (domain-scoped admin rpc) + 1a13efa openrpc regen
  • web fixes #28 (conditions count) + #29 (cost label)

Data model

All 12 entities are [rootobject] (typed SQL columns; server-minted rowids) — a clean fit, verified by the 2026-06-15 architecture review.

Verification

Browser-verified on the merged build (#16): admin connection green, window.rpc domain-scoped, web Conditions tab renders real data, 0 console errors.

Known follow-ups (not blocking)

Tracked in #30 (N+1 workspace load / dead _list stub / stale comments) and the parked Dioxus rewrite. Closing as the server migration is complete and shipped.

Tracking issue (filed retroactively) for the hero_planner server migration to the oschema-first `openrpc_server!` architecture. The work is already merged to `development` and browser-verified; this issue records it and closes with a report. ## Scope Replace the hand-rolled JSON-RPC dispatcher + manually-maintained `openrpc.json` with `.oschema` files compiled by `herolib_macros::openrpc_server!` into a typed trait + spec + router; regenerate the SDK; migrate the admin to the askama webserver-admin; keep business logic + SQLite store unchanged. ## What landed (on `development`) - `78734a3` migrate server to oschema-first `openrpc_server!` - `a055eca` fold `*_new` into `*_set` (empty-sid create branch) - `7c77217` migrate admin to askama webserver-admin - `53dea2c` admin theme via HeroProcClient secret_find/secret_get - `39d67d5` generated OpenRPC client for hero_planner_sdk - `7c510a7` remap hand-JS UI to the migrated oschema RPC surface - `7976504` fill oschema gaps (#24/#25/#26, source + regen) - `6499ae7` vendor shared hero_lifecycle partials for CI - `bdb3935` currency-delete uses real CurrencyRate.id - `8306f91` adopt hero_lib #151 (domain-scoped admin rpc) + `1a13efa` openrpc regen - web fixes #28 (conditions count) + #29 (cost label) ## Data model All 12 entities are `[rootobject]` (typed SQL columns; server-minted rowids) — a clean fit, verified by the 2026-06-15 architecture review. ## Verification Browser-verified on the merged build (#16): admin connection green, `window.rpc` domain-scoped, web Conditions tab renders real data, 0 console errors. ## Known follow-ups (not blocking) Tracked in #30 (N+1 workspace load / dead `_list` stub / stale comments) and the parked Dioxus rewrite. Closing as the server migration is complete and shipped.
Author
Member

Closing: the oschema server migration is complete, merged to development, and browser-verified (build #16). Follow-up tech debt is tracked in #30.

Closing: the oschema server migration is complete, merged to `development`, and browser-verified (build #16). Follow-up tech debt is tracked in #30.
Sign in to join this conversation.
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_planner#31
No description provided.