Repository navigation
feat: client-neutral model-effort routing (run 106) - #302
Merged
try-works merged 38 commits intoOct 6, 2026
Merged
Conversation
…oningEffortToModelPool
…econcile run116 semantics
…emission (batch 3)
…dex/validate-vendors/track-b tests
…-5) + integration reconciliation
…y at occurrence boundary, four-state at decision)
…+ lock) — lint FAIL:0 WARN:0
Merge origin/dev (run 105 + the release-pipeline fixes) into the run-106 branch. Conflicts (2): - .recursive/STATE.md: hand-merged. Run 106 keeps the "current increment" slot and run 105's paragraph and four closeout caveats are preserved beneath it. - apps/runtime-host-bridge/src/index.ts (failure telemetry): union of both changes - run 105's persistFailureTelemetrySafely wrapper carrying run 106's effortCoerced field, matching the success path that already emits it. Pre-existing branch breakage repaired so the quality gate can pass (the branch CI was already red before this merge): biome formatting across the run-106 files, and seven lint/style/useTemplate fixes - one of them in production code (packages/adapter-execution/src/index.ts).
…op stale migration test
Biome formatting for the query-time projection added in 953e6e7 (collapse the mapped-value return to a single line). No semantic change.
try-works
deleted the
recursive/106-client-neutral-model-effort-routing
branch
October 6, 2026 04:59
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Client-neutral model-effort routing (run 106)
Implements run 106, which makes the router's reasoning-effort routing client-neutral: the client's requested effort and effort policy (
strict|preferred|router) are normalized losslessly, and the four effort-source states (named|disabled|provider_default|none) are distinguished at the decision layer while the occurrence/telemetry layer keeps the binary vocabulary the Track-B workers require.What changed (R1-R15)
normalizeReasoningEffortPolicy+resolveEffortPolicy(policy normalization + resolution kind) wired at both chat and responses ingress.expandReasoningEffortArmswired intobuildEndpointRegistry, gated on adapter executability (a catalog declaration alone never makes an arm routable).EffortSource(named/disabled/provider_default/none) + lossless migration/round-trip; decision four-state, occurrence binary.resolveRelatedEffortOverallScoreproducer +resolveBorrowedQualityPriorconsumer; borrowed priors are never relabeled "benchmark" and never establish non-inferiority.shouldPreferNonInferiorChallenger+non_inferiority_promotionreceipt.computeEffortUnionAndIntersection+ provider-default declared levels in discovery.requested_effort,requested_policy, exact-arm counts,effort_resolution,effective_effort.Real behavior proof
role-model-dev.exesha256e181c6011a50a7e9681d6f16314ae7cefcbe7ca26bb21eeac34343b3befc7364(commit9260a10b), launched on isolated port3462.ROLE_MODEL_ENDPOINT=http://127.0.0.1:3462) routed through role-model, producing matching IDs in runtime telemetry:requestId req-9d68e76b-dbe3-417c-8cfa-022f6c000e51+routingDecisionId decision-req-9d68e76b...->deepseek.personal.deepseek-api-key.global.deepseek-v4-pro.strict + effort=max->...-v4-flash-max(exact arm);router/omitted -> provider-default arm.Verification
pnpm run schemas:validate- 37 schema files + 30 fixtures validated.pnpm -r --if-present build) - green.@role-model-router/core- 113 tests green.@role-model/conformance- 53/53.lint-recursive-run- FAIL:0 WARN:0; all run-106 phases LOCKED.What I did not test
kimi-k3live execution (its OAuth token is stale; deepseek api-key was verified end-to-end).kw-private-loader,kw-prompt-inject-map-surface) which require private kw artifacts.