Repository navigation
Description
Finding (from PR review, unaddressed)
On PR #2549, Codex raised a P2 that was never fixed and never replied to:
Apply target time windows before expanding route candidates — For the checked-in
backgroundroute, object targets carrywindowgates referencingexperimental.model_route_windows, but this normalization discards those gates and the resolver never evaluates them. Consequently, time-windowed route targets are expanded outside their windows.
— chatgpt-codex-connector[bot], 2026-10-30T03:48:34Z
Evidence:
- PR: feat(opencode-route): routing-only door — resolve the route, call the pool member directly #2549
- Comment: feat(opencode-route): routing-only door — resolve the route, call the pool member directly #2549 (comment) (bin/opencode-route-proxy.mjs:318)
- No-response evidence: the comment thread has no reply, and no open issue covers it (searched open issues for route-proxy / window on 2026-10-31).
Still live on current main (verified 2026-10-31)
bin/opencode-route-proxy.mjs on current main contains no window handling at all (searching the file for window returns zero hits), and normalizeTarget still reduces an object target to its model ref and variant map:
const normalizeTarget = (t) => {
if (typeof t === "string") return { ...parseTargetRef(t), variantMap: null };
if (t && typeof t.model === "string")
return { ...parseTargetRef(t.model), variantMap: t.variants || null };
return null;
};Any window gate on a configured target is discarded at normalization, so time-windowed targets are eligible at all hours.
Caveat for triage: if the window-gates feature was deliberately retired in the proxy redesign, then the live defect is not the proxy but the stale checked-in config that still carries window gates — triage decides which side is wrong (restore window evaluation in the proxy, or remove the dead gates from the config) and closes accordingly.
Acceptance criteria
- Triage records which is true: windows are a live feature (proxy must evaluate them) or a retired one (config must stop carrying them).
- If live: targets are only expanded inside their configured windows; a test pins an out-of-window exclusion.
- If retired: the checked-in config no longer carries
windowgates, and the removal is noted where the feature was documented. - Or: resolve by a documented decision on this issue.
Activity
dezren39 commentedon Oct 31, 2026
🤖 Agent note · filed
dezren39 commentedon Oct 31, 2026
🤖 Agent note · picked up
windowgates are a live feature the proxy must evaluate, or a retired feature whose stale config must be cleaned up.4 remaining items
dezren39 commentedon Oct 31, 2026
🤖 Agent note · handed off
dezren39 commentedon Oct 31, 2026
🤖 Agent note · triaged — verdict: LIVE FEATURE, proxy is the defect
bin/opencode-route-proxy.mjsis the defect. The retired-feature alternative is ruled out by the config's own current documentation.bin/opencode-route-proxy.mjs(fetched from main, 806 lines): searching the file forwindowreturns zero hits;normalizeTarget(line 315) still reduces an object target toparseTargetRef(t.model)+variantMap—t.windowis discarded, exactly as the Codex P2 on PR feat(opencode-route): routing-only door — resolve the route, call the pool member directly #2549 (discussion r4420257675) said..opencode/opencode.jsonc(main): thebackgroundroute's targets carrywindowgates (lines ~6982–6994) in both forms — a window name (deepseek-peak-early,deepseek-peak-late) and{ "name": "deepseek-peak-early", "invert": true }— andexperimental.model_route_windows(line 7299) defines them: Mon–Fri 01:00–04:00 UTC and 06:00–10:00 UTC.windowfield…)" (2026-10-28 peak-windows pass), and the peak times were "VERIFIED 2026-10-29 against DeepSeek's own pricing page" — peak deductions double, so expanding gated targets outside their windows is a live cost/order defect, not dead config.repo-health-code-pilot(kindsmall_fix, deduperepo-health:v1:fix:developing-today/code:issue:3225): preservewindowinnormalizeTarget(both forms), evaluate gates againstexperimental.model_route_windowsin candidate expansion, pin in-window / out-of-window / inverted / ungated behavior inbin/opencode-route-proxy.test.mjs. This issue stays open until that fix lands.dezren39 commentedon Oct 31, 2026
🤖 Agent note · picked up
Merge pull request #3245 from developing-today/queue/4736-3225-window…
dezren39 commentedon Oct 31, 2026
🤖 Agent note · done