Skip to content

runtime: carry the venue registry through the services map#443

Merged
mfw78 merged 1 commit into
dev/m1from
feat/m2-registry-service
Jul 20, 2026
Merged

runtime: carry the venue registry through the services map#443
mfw78 merged 1 commit into
dev/m1from
feat/m2-registry-service

Conversation

@mfw78

@mfw78 mfw78 commented Jul 16, 2026

Copy link
Copy Markdown
Contributor

Closes #376

What

Delete the privileged HostState.venue_registry field and the Supervisor.venue_registry handle; the venue registry now rides the generic HostServices map under the videre namespace, and videre:venue/client resolves it there per call.

Why

The router only needs to be a privileged field until the seam can carry a service. Publishing it through HostServices proves the host layer is venue-agnostic and clears the way for videre to own the registry outright.

Testing

  • cargo fmt --all --check
  • cargo check --workspace --all-features
  • cargo clippy --workspace --all-targets --all-features -- -D warnings
  • cargo nextest run --workspace --all-features --no-fail-fast
  • cargo test --doc

Closes #376

AI Assistance

Implemented with Claude Code under review.

@lgahdl lgahdl left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Clean, complete migration — venue_registry is fully gone from both HostState and Supervisor with no duplicated field left behind, the whole HostServices::get chain is Option-based end to end (confirmed no panic/unwrap path from lookup miss through to VenueError::UnknownVenue), and no stale references to the deleted privileged fields survive. Two things worth a look, both non-blocking:

// back to the module. echo-venue settles instantly, so the first poll
// reports a terminal status and the watch is pruned.
let registry = supervisor.venue_registry();
let registry = supervisor.venue_registry().expect("registry service");

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The only updated assertion here is the happy path (.expect("registry service")). Supervisor::boot_single builds services via HostServices::from_extensions alone and never seeds the venue-registry service, so any manifest importing videre:venue/client under that path hits exactly the "capability declared, service missing" case → VenueError::UnknownVenue. That behavior is real and (per the PR) intentional, but it's not pinned down by a test — worth a boot_single-based test that drives quote/submit through a module without the service registered and asserts on the error.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Confirmed still valid at HEAD. The service-missing path (services.get::<VenueRegistry>(NAMESPACE) = None at client.rs:24) is still unpinned: the two existing UnknownVenue tests both cover the adapter-map miss (service present, venue id unlisted, registry.rs:374), not the service-lookup miss. Tracked in #510.

Comment thread crates/nexum-runtime/src/host/venue_registry.rs
@mfw78
mfw78 force-pushed the feat/m2-log-pipeline-seam branch from e305556 to b798540 Compare July 20, 2026 12:50
Base automatically changed from feat/m2-log-pipeline-seam to dev/m1 July 20, 2026 13:02
… the privileged field

The client face resolves the registry from the store's service map
under the videre namespace; no service means every call resolves to
unknown-venue. The boot path seeds the registry into the map until the
videre extension takes it over, provider stores carry an empty map so
the registry never cycles back into a store it owns, and the supervisor
field is gone.
@mfw78
mfw78 force-pushed the feat/m2-registry-service branch from a3f76a6 to c2d821b Compare July 20, 2026 13:03
@mfw78
mfw78 merged commit 59c357c into dev/m1 Jul 20, 2026
5 of 6 checks passed
@mfw78
mfw78 deleted the feat/m2-registry-service branch July 20, 2026 13:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants