chore: revalidate against hero_rpc#123 (typed _find emission) #9

Merged
timur merged 2 commits from hero-rpc-123-revalidation into development 2026-05-22 11:15:27 +00:00
Owner

Revalidates hero_service against hero_rpc#127 (closes hero_rpc#123), squash-merged as e62d4485.

Summary

  • Bumps every hero_rpc git pin (hero_rpc_osis, hero_rpc2, hero_rpc_derive, hero_rpc_generator, hero_rpc_openrpc, hero_rpc_oschema, hero_lifecycle) from b4b76231 -> e62d4485 via cargo update.
  • Picks up the new @index -> typed _find codegen end-to-end. Regenerated SDK + per-domain openrpc.json now expose one <root>_find(params) method per rootobject that has at least one @index field, plus a typed <Root>FindParams struct in the types module.
  • Adds hero_rpc2 = { default-features = false } to hero_service's lib deps. The new codegen names hero_rpc2::find::{StrFilter, NumFilter, EnumFilter, BoolFilter} via absolute paths from the wasm-safe types.rs layer (the find module is pure serde enums, so transport features stay off). Fix applied on the hero_service side per hero_rpc#127's consumer-import contract.

_find emission (verified)

Bench schema rootobjects:

  • IndexedSingle (title: str @index) -> indexed_single_find + IndexedSingleFindParams -> indexedsingle.find in OpenRPC
  • IndexedMulti (title @index, category @index) -> indexed_multi_find + IndexedMultiFindParams -> indexedmulti.find
  • IndexedNonStr (priority: u32 @index) -> indexed_non_str_find + IndexedNonStrFindParams -> indexednonstr.find
  • IndexedNone (no @index) -> no _find method (expected, baseline rootobject for full-scan comparisons)

Catalog schema also emits service_definition_find / ServiceDefinitionFindParams (the name: str @index field).

Test plan

  • cargo build --workspace -> clean
  • cargo test --workspace -> all 5 generated E2E suites pass (indexed_multi, indexed_non_str, indexed_none, indexed_single, service_definition)
  • Grepped regenerated sdk/rust/src/generated/bench.rs for the four <root>_find method signatures + their typed params structs
  • Grepped docs/bench/openrpc.json / docs/catalog/openrpc.json for the four <root>.find method names
Revalidates hero_service against [hero_rpc#127](https://forge.ourworld.tf/lhumina_code/hero_rpc/pulls/127) (closes [hero_rpc#123](https://forge.ourworld.tf/lhumina_code/hero_rpc/issues/123)), squash-merged as `e62d4485`. ## Summary - Bumps every hero_rpc git pin (`hero_rpc_osis`, `hero_rpc2`, `hero_rpc_derive`, `hero_rpc_generator`, `hero_rpc_openrpc`, `hero_rpc_oschema`, `hero_lifecycle`) from `b4b76231` -> `e62d4485` via `cargo update`. - Picks up the new `@index` -> typed `_find` codegen end-to-end. Regenerated SDK + per-domain `openrpc.json` now expose one `<root>_find(params)` method per rootobject that has at least one `@index` field, plus a typed `<Root>FindParams` struct in the types module. - Adds `hero_rpc2 = { default-features = false }` to `hero_service`'s lib deps. The new codegen names `hero_rpc2::find::{StrFilter, NumFilter, EnumFilter, BoolFilter}` via absolute paths from the wasm-safe `types.rs` layer (the `find` module is pure serde enums, so transport features stay off). Fix applied on the hero_service side per hero_rpc#127's consumer-import contract. ## `_find` emission (verified) Bench schema rootobjects: - `IndexedSingle` (`title: str @index`) -> `indexed_single_find` + `IndexedSingleFindParams` -> `indexedsingle.find` in OpenRPC - `IndexedMulti` (`title @index`, `category @index`) -> `indexed_multi_find` + `IndexedMultiFindParams` -> `indexedmulti.find` - `IndexedNonStr` (`priority: u32 @index`) -> `indexed_non_str_find` + `IndexedNonStrFindParams` -> `indexednonstr.find` - `IndexedNone` (no `@index`) -> **no `_find` method** (expected, baseline rootobject for full-scan comparisons) Catalog schema also emits `service_definition_find` / `ServiceDefinitionFindParams` (the `name: str @index` field). ## Test plan - [x] `cargo build --workspace` -> clean - [x] `cargo test --workspace` -> all 5 generated E2E suites pass (indexed_multi, indexed_non_str, indexed_none, indexed_single, service_definition) - [x] Grepped regenerated `sdk/rust/src/generated/bench.rs` for the four `<root>_find` method signatures + their typed params structs - [x] Grepped `docs/bench/openrpc.json` / `docs/catalog/openrpc.json` for the four `<root>.find` method names
Codegen for the new @index → typed _find emission now names
hero_rpc2::find::{StrFilter,NumFilter,EnumFilter,BoolFilter} from the
generated <Root>FindParams structs and their to_indexer_query
helpers. Add hero_rpc2 as a default-features-off dep of hero_service
so those absolute paths resolve in the wasm-safe types.rs layer
(the find module is pure serde enums, no transport).

Verified by grepping the regenerated SDK + per-domain openrpc.json:

  - indexed_single_find / IndexedSingleFindParams
  - indexed_multi_find  / IndexedMultiFindParams
  - indexed_non_str_find / IndexedNonStrFindParams
  - service_definition_find / ServiceDefinitionFindParams (catalog)

IndexedNone (no @index) correctly emits no _find method.

cargo build --workspace + cargo test --workspace both green.
timur merged commit 7763ab0161 into development 2026-05-22 11:15:27 +00:00
Sign in to join this conversation.
No reviewers
No labels
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_service!9
No description provided.