You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Migrate videre and shepherd onto the tagged runtime in one pass.
Why
Both pin nexum-runtime at rev = d78a368, which is 134 commits and 31 breaking commits behind main. Neither compiles today: videre-host/src/registry.rs still imports host::actor::{ActorFault, ActorSlot, Liveness, SupervisedStore} and host::extension::{HostService, Installed, ProviderInstance, ProviderKind, downcast_service}, and kind = "venue-adapter" in the adapter manifests refuses at load since #250 retired [component].kind.
A runtime whose only two consumers cannot build against it is not production ready.
The freeze has landed
This issue was written to wait for the vocabulary and ABI freeze so the migration happened once rather than twice. That wait is over: M2, M3 and M4 all stand at zero open issues. The work is ready to start once there is a tag to migrate onto.
Known breaks to carry
The public Rust surface is now sealed behind a curated facade (#291) and split across twenty crates (ADR-0023). Concretely:
nexum_runtime::host no longer exists. host::actor, host::extension, host::component and host::state all move or vanish; what survives lives under nexum_runtime::{component, extension, supervisor, logs, event_loop}.
HostService, ServiceKind, ProviderKind, ProviderManifest, HostServices, Installed, ProviderInstance, downcast_service, build_provider_linker, MockChainProvider, [[services]] and the supervised actor are gone. Videre still imports all five of the never-shipped symbols an earlier audit found.
Extension loses service, provider and admit_provider; admit_worker loses its providers parameter.
nexum_runtime::preset is private; only CoreRuntime and Runtime are re-exported. Shepherd uses preset:: and sealed::SealedRuntime directly.
test_utils is behind the test-utils feature and now offers a TestRuntime harness rather than the old mocks.
[component].kind is retired. on-event becomes on-trigger, [[subscription]] becomes [[trigger]], and both repos still carry [[subscription]] in their module manifests. nexum:host stays at 0.1.0; the renames happened inside it, and the earlier claim that it goes to 0.2.0 was reverted.
From M4: the SDK's LogSink trait method is now log_event, Fault gained unsupported, unavailable, denied, invalid_input and internal constructors, and the local store gained a list-entries verb.
Both repos will newly resolve nexum-primitives and eleven nexum-runtime-* crates absent from their current lockfiles.
Both repos vendor a stale wit/deps/nexum-host, eight files against the runtime's five. messaging.wit (#173), identity.wit and remote-store.wit (#300) and query-module.wit are all gone, event-module.wit is now trigger-module.wit, and neither copy has the M4 additions. Revendor both.
What stays broken
Videre's venue adapters are guest wasm driven by host Rust, which is the path #233 removed. That needs the plugin-engine seam tracked by #267, which sits in M7, after v1. This issue unblocks the build and leaves the adapters broken behind #267 by design. Say so up front rather than discovering it mid-migration.
Migrate videre and shepherd onto the tagged runtime in one pass.
Why
Both pin
nexum-runtimeatrev = d78a368, which is 134 commits and 31 breaking commits behind main. Neither compiles today:videre-host/src/registry.rsstill importshost::actor::{ActorFault, ActorSlot, Liveness, SupervisedStore}andhost::extension::{HostService, Installed, ProviderInstance, ProviderKind, downcast_service}, andkind = "venue-adapter"in the adapter manifests refuses at load since #250 retired[component].kind.A runtime whose only two consumers cannot build against it is not production ready.
The freeze has landed
This issue was written to wait for the vocabulary and ABI freeze so the migration happened once rather than twice. That wait is over: M2, M3 and M4 all stand at zero open issues. The work is ready to start once there is a tag to migrate onto.
Known breaks to carry
The public Rust surface is now sealed behind a curated facade (#291) and split across twenty crates (ADR-0023). Concretely:
nexum_runtime::hostno longer exists.host::actor,host::extension,host::componentandhost::stateall move or vanish; what survives lives undernexum_runtime::{component, extension, supervisor, logs, event_loop}.HostService,ServiceKind,ProviderKind,ProviderManifest,HostServices,Installed,ProviderInstance,downcast_service,build_provider_linker,MockChainProvider,[[services]]and the supervised actor are gone. Videre still imports all five of the never-shipped symbols an earlier audit found.Extensionlosesservice,providerandadmit_provider;admit_workerloses its providers parameter.nexum_runtime::engine_configis now private.SubmitQuotaandWatchLimitno longer exist, since refactor(config)!: retire [limits.watch] and [limits.quota], move the dispatch deadline into [limits.dispatch] #248 retired[limits.watch]and[limits.quota]; usenexum_runtime::config.nexum_runtime::presetis private; onlyCoreRuntimeandRuntimeare re-exported. Shepherd usespreset::andsealed::SealedRuntimedirectly.test_utilsis behind thetest-utilsfeature and now offers aTestRuntimeharness rather than the old mocks.[component].kindis retired.on-eventbecomeson-trigger,[[subscription]]becomes[[trigger]], and both repos still carry[[subscription]]in their module manifests.nexum:hoststays at 0.1.0; the renames happened inside it, and the earlier claim that it goes to 0.2.0 was reverted.providesclaim now needs authorizing inengine.toml(feat(runtime)!: verify a provides claim and authorize its implementer in engine.toml #251).LogSinktrait method is nowlog_event,Faultgainedunsupported,unavailable,denied,invalid_inputandinternalconstructors, and the local store gained alist-entriesverb.nexum-primitivesand elevennexum-runtime-*crates absent from their current lockfiles.Both repos vendor a stale
wit/deps/nexum-host, eight files against the runtime's five.messaging.wit(#173),identity.witandremote-store.wit(#300) andquery-module.witare all gone,event-module.witis nowtrigger-module.wit, and neither copy has the M4 additions. Revendor both.What stays broken
Videre's venue adapters are guest wasm driven by host Rust, which is the path #233 removed. That needs the plugin-engine seam tracked by #267, which sits in M7, after v1. This issue unblocks the build and leaves the adapters broken behind #267 by design. Say so up front rather than discovering it mid-migration.
Open decisions
Done when
Both repositories compile and test green against the v1 tag, or their remaining breakage is a named issue rather than a surprise.