Skip to content

feat(runtime): route host-local inference - #8066

Merged
ericksoa merged 9 commits into
feat/podman-host-local-inference-runtimefrom
feat/host-local-inference-routing-integration
Aug 5, 2026
Merged

feat(runtime): route host-local inference#8066
ericksoa merged 9 commits into
feat/podman-host-local-inference-runtimefrom
feat/host-local-inference-routing-integration

Conversation

@ericksoa

@ericksoa ericksoa commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Summary

This PR connects the dormant host-local inference runtime contract to the provider-neutral onboarding and application-routing boundary. Ollama, NIM, and vLLM remain injected capabilities; no central Podman switch or production activation is added.

Changes

  • Add provider-neutral startup requests and route results for host Ollama and managed NIM/vLLM.
  • Bind returned receipts to the injected provider and exact runtime authority.
  • Translate provider-native endpoints to the canonical gateway registration host while keeping https://inference.local/v1 identical for OpenClaw, Hermes, and Deep Agents Code.
  • Reject provider, service, and authority mismatch before runtime or gateway mutation.
  • Carry immutable managed probe-image authority through routing fixtures.
  • Prove retry after provider-registration failure reuses exact managed ownership and publishes one final route reservation.
  • Keep the resolver dormant until later activation and protected qualification slices.

Quality Gates

  • Tests added or updated for changed behavior
  • Docs not applicable: no supported runtime surface is activated
  • Sensitive paths changed
  • Exact-head advisor, CI, and protected E2E refresh completed

Documentation Writer Review

  • Documentation writer subagent reviewed the completed changes
  • Result: pending exact-head refresh
  • Evidence: review requested for exact head b588f8b468c8a6982efff82dd57790325176e5dc.
  • Agent: Codex Desktop

Verification

  • Signed commits and DCO
  • Focused provider/routing suite: 5 files, 40 tests passed
  • CLI typecheck, repository checks, growth guard, and normal commit/push hooks passed
  • Exact-head GitHub qualification is running

Exact head: b588f8b468c8a6982efff82dd57790325176e5dc.


Signed-off-by: Aaron Erickson aerickson@nvidia.com

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@coderabbitai

coderabbitai Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: c78456fc-9d9d-4e03-bbaf-ff67118edb28

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Comment @coderabbitai help to get the list of available commands.

@github-code-quality

github-code-quality Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

Code Coverage Overview

Languages: TypeScript

TypeScript / code-coverage/plugin

The overall coverage in commit b588f8b in the feat/host-local-infe... branch remains at 96%, unchanged from commit d5b64a7 in the feat/podman-host-loc... branch.

Show a code coverage summary of the most impacted files.
File feat/podman-host-loc... d5b64a7 feat/host-local-infe... b588f8b +/-
nemoclaw/src/se...ntial-filter.ts 100% 0% -100%
nemoclaw/src/sh...er-boundary.cts 95% 0% -95%
nemoclaw/src/se...ot-sanitizer.ts 95% 0% -95%
nemoclaw/src/co...test-fixture.ts 81% 0% -81%
nemoclaw/src/co...ration-state.ts 93% 94% +1%

TypeScript / code-coverage/cli

The overall coverage in commit b588f8b in the feat/host-local-infe... branch remains at 81%, unchanged from commit d5b64a7 in the feat/podman-host-loc... branch.

Show a code coverage summary of the most impacted files.
File feat/podman-host-loc... d5b64a7 feat/host-local-infe... b588f8b +/-
src/lib/onboard...trap/adapter.ts 0% 63% +63%
src/lib/onboard...strap/docker.ts 0% 64% +64%
src/lib/onboard...ne-lifecycle.ts 0% 83% +83%
src/lib/onboard...cker-journal.ts 0% 83% +83%
src/lib/onboard...al-inference.ts 0% 85% +85%
src/lib/onboard...trap-journal.ts 0% 86% +86%
src/lib/actions...ne-providers.ts 0% 86% +86%
src/lib/onboard...-replacement.ts 0% 87% +87%
src/lib/onboard...-transaction.ts 0% 88% +88%
src/lib/onboard...test-fixture.ts 0% 96% +96%

Updated August 02, 2026 15:43 UTC

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
@github-actions

github-actions Bot commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

PR Review Advisor — Blocking findings reported

Advisor assessment: Blockers require maintainer review
Next action: Review the blockers below.
Findings: 1 blocker · 0 warnings · 0 suggestions

Model lanes

  • GPT-5.6 Terra (primary): Completed · high confidence · 1 blocker · 0 warnings · 0 suggestions
  • Nemotron 3 Ultra (second opinion): Completed · high confidence · 0 blockers · 0 warnings · 0 suggestions
  • Model comparison: normalized findings differ; normalized terminology decisions differ; normalized E2E selections differ; Nemotron reported 1 fewer blocker, the same number of warnings, the same number of suggestions.
8 terminology differences from the second opinion

Advisory only. These are normalized differences from the primary terminology receipt.

  • provider-native at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:59: primary classified it as justified; the second opinion classified it as established.
  • dormant at src/lib/onboard/machine/handlers/provider-inference.ts:69: selected only by the second-opinion lane as established.
  • host.openshell.internal at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:12: selected only by the second-opinion lane as established.
  • authority drift at src/lib/onboard/runtime-provider/host-local-inference-routing.test.ts:116: selected only by the second-opinion lane as established.
  • inference.local at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:13: selected only by the second-opinion lane as established.
  • HostLocalInferenceRuntime at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:7: selected only by the second-opinion lane as established.
  • HostLocalInferenceStartupRequest at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:23: selected only by the second-opinion lane as justified.
  • HostLocalInferenceStartupRoute at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:33: selected only by the second-opinion lane as justified.
3 additional E2E selections from the second opinion

Advisory only. The primary lane did not select these E2E jobs or targets.

  • full-e2e: The completed second-opinion lane identified E2E coverage that the primary lane omitted.
  • ubuntu-repo-cloud-openclaw: The completed second-opinion lane identified E2E coverage that the primary lane omitted.
  • ubuntu-repo-cloud-langchain-deepagents-code: The completed second-opinion lane identified E2E coverage that the primary lane omitted.

Second-opinion terminology and E2E selections are advisory. They do not change the primary assessment or E2E / PR Gate.

3 semantic terminology decisions

Terminology decisions are advisory. They affect the assessment only when a separate finding identifies concrete semantic impact.

  • established — host-local inference at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:53: Keep the established term for this routing path.
  • justified — provider-native at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:59: Keep the modifier because it identifies the host that must not be exposed to central orchestration.
  • justified — canonical host alias at src/lib/onboard/runtime-provider/host-local-inference-routing.ts:61: Keep the phrase with the adjacent host constant as its concrete definition.

E2E guidance

Advisory only. E2E / PR Gate selects and runs jobs independently.

Recommended E2E: cloud-onboard, inference-routing, network-policy, onboard-repair, onboard-resume

1 optional E2E recommendation
  • ollama-auth-proxy

Blockers

PRA-1 Blocker — Wire host-local startup into the onboarding state machine

  • Location: src/lib/onboard/machine/handlers/provider-inference.ts:770
  • Category: correctness
  • Problem: The state machine creates inference options without hostLocalInference in both the resume and normal setup paths. Consequently, ordinary onboarding cannot start the host-local runtime, validate its receipt authority, or register its canonical route; those operations occur only in direct setupInference tests.
  • Impact: The new routing and authority-validation behavior is unreachable from ordinary onboarding, so host-local inference cannot be configured through this integration.
  • Fix: Pass a validated HostLocalInferenceStartupRequest and the sandbox-bound runtime resolver from the selected runtime-provider surface through both state-machine setup paths, or remove this dormant integration until a current production consumer exists.
  • Verification: Read both deps.setupInference call sites in provider-inference.ts and confirm that each options object carries the selected host-local startup request when that runtime is selected.
  • Test coverage: Add a state-machine integration test that selects a host-local runtime and proves setupInference receives the startup request and resolves the runtime in both a normal onboarding path and the applicable resume path.
  • Evidence: src/lib/onboard/machine/handlers/provider-inference.ts:770-789 constructs inferenceOptions for the resume branch without hostLocalInference. src/lib/onboard/machine/handlers/provider-inference.ts:985-1001 constructs inferenceOptions for the normal branch without hostLocalInference. src/lib/onboard/setup-inference.ts:404-415 executes host-local startup only when options.hostLocalInference is present. Repository search found no production assignment of hostLocalInference or resolveHostLocalInferenceRuntime.

Workflow run details

This automated review informs maintainers. Warnings and suggestions do not require a response. A maintainer decides whether to merge.

Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>
Signed-off-by: Aaron Erickson <aerickson@nvidia.com>

@cv cv 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.

Reviewed commit b588f8b468 in bottom-up stack order. This PR depends on #8061, which is not approval-ready. Although this child reports green checks, its parent is conflicting and can change the routing contract, so the green child result cannot authorize approval. Review remains blocked until the parent is reconstructed or repaired, this branch is restacked on the accepted parent commit, and current CI, security, and documentation evidence passes for the resulting commit. No approval is granted for the current branch.

@wscurran wscurran added area: inference Inference routing, serving, model selection, or outputs area: local-models Local model providers, downloads, launch, or connectivity area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior area: routing Request routing, policy routing, model selection, or fallback logic feature PR adds or expands user-visible functionality integration: dcode LangChain Deep Code integration behavior labels Aug 4, 2026
@ericksoa
ericksoa merged commit 1539456 into feat/podman-host-local-inference-runtime Aug 5, 2026
72 of 73 checks passed
@ericksoa
ericksoa deleted the feat/host-local-inference-routing-integration branch August 5, 2026 06:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area: inference Inference routing, serving, model selection, or outputs area: local-models Local model providers, downloads, launch, or connectivity area: onboarding Onboarding FSM, provider setup, sandbox launch, or first-run flow area: providers Inference provider integrations and provider behavior area: routing Request routing, policy routing, model selection, or fallback logic feature PR adds or expands user-visible functionality integration: dcode LangChain Deep Code integration behavior

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants