Context
Surfaced during review of user story US-01, Story 1-C scenario "Inspect a task with no episodes" on 2026-04-10. Tracked here so it isn't lost.
Proposal
When nyx tasks inspect <id> runs against a todo task, additionally show where the task would be routed if executed right now. Something like:
Routing preview:
backend: claude-cli
endpoint: anthropic/claude-opus-4-6
fallback: openrouter/anthropic/claude-sonnet-4-6
matched: [[routes]] #2 (type = "coding", priority = ">5")
The Model Router already has the logic (§3c); inspect would just call it in a read-only / preview mode that returns the ModelAssignment without triggering any side effects.
Why it matters
- Operators queueing tasks overnight want to confirm "this task will actually run where I expect" before they start a shift — not find out in the morning report.
- Makes routing config bugs visible at queue time rather than at dispatch time (complements the strict type validation pinned in §7 decision 17).
- Useful debugging tool when routes get complex.
Scope notes
- Read-only: the preview must not mutate any state, emit any execution events, or hit backend
health_check() endpoints (those may be expensive or rate-limited).
- Should also work for
--json output, as a routing_preview object on the task record.
- Out of scope for US-01 scenario review — deliberately deferred to avoid scope creep. Worth scheduling when the Model Router lands (M2) since that's when the feature becomes implementable.
Not blocking
Milestone: post-M2 (needs the Router to exist).
Context
Surfaced during review of user story US-01, Story 1-C scenario "Inspect a task with no episodes" on 2026-04-10. Tracked here so it isn't lost.
Proposal
When
nyx tasks inspect <id>runs against atodotask, additionally show where the task would be routed if executed right now. Something like:The Model Router already has the logic (§3c); inspect would just call it in a read-only / preview mode that returns the
ModelAssignmentwithout triggering any side effects.Why it matters
Scope notes
health_check()endpoints (those may be expensive or rate-limited).--jsonoutput, as arouting_previewobject on the task record.Not blocking
Milestone: post-M2 (needs the Router to exist).