fix(osis): JSON-native CRUD RPC + axum 0.8 path syntax #48

Open
timur wants to merge 0 commits from fix/osis-json-rpc-axum08 into development
Owner

Two fixes that combine to make every OSIS domain CRUD client-friendly:

  1. Regenerate every domain osis_server_generated.rs against hero_rpc 01f0030 — new generator emits serde_json::to_string for *_rpc_new / *_rpc_get / *_rpc_list instead of OTOML text and newline-joined SID strings. Clients now get real list[str] from *_list() and real dict from *_get(sid) — no client-side parsing.

  2. Fix axum 0.8 router path syntax in hero_osis_ui/src/lib.rs/css/:file and /js/:file were old (axum 0.7) param syntax which panics at startup under axum 0.8 ("Path segments must not start with :. For capture groups, use {capture}"). Migrated to {file}. Without this fix the orchestrator panics on every per-domain socket bind.

Verified end-to-end: client.opportunity_list()["sid1",...] and client.opportunity_get(sid) → typed dict.

Two fixes that combine to make every OSIS domain CRUD client-friendly: 1. **Regenerate every domain `osis_server_generated.rs`** against hero_rpc 01f0030 — new generator emits `serde_json::to_string` for `*_rpc_new` / `*_rpc_get` / `*_rpc_list` instead of OTOML text and newline-joined SID strings. Clients now get real `list[str]` from `*_list()` and real `dict` from `*_get(sid)` — no client-side parsing. 2. **Fix axum 0.8 router path syntax** in `hero_osis_ui/src/lib.rs` — `/css/:file` and `/js/:file` were old (axum 0.7) param syntax which panics at startup under axum 0.8 ("Path segments must not start with `:`. For capture groups, use `{capture}`"). Migrated to `{file}`. Without this fix the orchestrator panics on every per-domain socket bind. Verified end-to-end: `client.opportunity_list()` → `["sid1",...]` and `client.opportunity_get(sid)` → typed dict.
fix(osis): JSON-native CRUD RPC + axum 0.8 path syntax for admin UI
Some checks failed
Build Linux / build-linux (x86_64-unknown-linux-musl, false, x86_64-unknown-linux-musl) (push) Failing after 3s
Build and Test / build (push) Failing after 8m13s
Build and Test / build (pull_request) Failing after 2s
Build Linux / build-linux (x86_64-unknown-linux-musl, false, x86_64-unknown-linux-musl) (pull_request) Failing after 2s
7d4d541748
Two fixes that combine to make every OSIS domain's CRUD API
client-friendly:

1. Regenerate every domain's `osis_server_generated.rs` against
   hero_rpc 01f0030 — the new generator emits `serde_json::to_string`
   for `*_rpc_new`, `*_rpc_get`, and `*_rpc_list` instead of OTOML
   text and newline-joined SID strings. Effect: clients now get
   real Python `list[str]` from `*_list()` and real `dict` from
   `*_get(sid)`, no client-side parsing required.

2. Fix `hero_osis_ui/src/lib.rs` axum router — `/css/:file` and
   `/js/:file` were old (axum 0.7) param syntax, which panics at
   startup under axum 0.8 ("Path segments must not start with `:`.
   For capture groups, use `{capture}`"). Migrated to `/css/{file}`
   and `/js/{file}`. The askama 0.16 / rust 1.95 upgrade in cbfe00a
   pulled in axum 0.8 transitively but missed this site.

Without (2), the orchestrator panicked on every per-domain socket
bind so the JSON-native RPC change in (1) was unobservable. After
both, `client.opportunity_list()` returns `["sid1", ...]` and
`client.opportunity_get(sid)` returns a typed dict.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Some checks failed
Build Linux / build-linux (x86_64-unknown-linux-musl, false, x86_64-unknown-linux-musl) (push) Failing after 5s
Build Linux / build-linux (x86_64-unknown-linux-musl, false, x86_64-unknown-linux-musl) (pull_request) Failing after 3s
Build and Test / build (pull_request) Successful in 7m35s
Build and Test / build (push) Successful in 10m29s
This pull request has changes conflicting with the target branch.
  • Cargo.lock
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin fix/osis-json-rpc-axum08:fix/osis-json-rpc-axum08
git switch fix/osis-json-rpc-axum08

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch development
git merge --no-ff fix/osis-json-rpc-axum08
git switch fix/osis-json-rpc-axum08
git rebase development
git switch development
git merge --ff-only fix/osis-json-rpc-axum08
git switch fix/osis-json-rpc-axum08
git rebase development
git switch development
git merge --no-ff fix/osis-json-rpc-axum08
git switch development
git merge --squash fix/osis-json-rpc-axum08
git switch development
git merge --ff-only fix/osis-json-rpc-axum08
git switch development
git merge fix/osis-json-rpc-axum08
git push origin development
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_osis!48
No description provided.