Ship owner Z.ai peak-hour blackout policy (Mon–Fri 14:00–18:00 SGT) #67
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
P1
P2
P3
question
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Creatidy/scarcity-router!67
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/zai-peak-hours-blackout-policy"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #66.
What
Ships the owner's Z.ai peak-hour avoidance schedule as checked-in selector-policy configuration, using the existing D-026 weekly blackout mechanism. No product/code changes — the mechanism (
WeeklyBlackoutRule,evaluate_blackouts) was already complete and tested.examples/selector-policy.json— aSelectorPolicyidentical to the documented neutral policy plus one blackout rule:{"provider": "zai"}(provider-only, exact identity → covers GLM-5.3 and GLM-5.3-Flash)Asia/Singapore(fixed UTC+8), weekdaysmon–fri, half-open[14:00, 18:00)reason_code: preserve_zai_offpeak--selector-policy examples/selector-policy.json) and the inline REST/MCPselector_policyobject path.tests/test_selection_app.py— newSelectorPolicyExampleTests(6 tests): document shape throughload_selector_policy, half-open boundary semantics in SGT (13:59 free / 14:00 blocked / 17:59 blocked / 18:00 free), weekend non-blocking, UTC↔SGT conversion, end-to-endselectexclusion to an openai fallback during the window, restored Z.ai ranking outside the window and on weekends, and explain output naming the rule.Why configuration, not a default
Consistent with
docs/selection-policy.md("the user's desired schedule therefore belongs in configuration") andneutral_selector_policy(): omittingselector_policykeeps the neutral policy. The file is opt-in; no vendor peak schedule is hard-coded in the product.Validation
uv sync --only-dev✓make check— 920 tests OK ✓uv run basedpyright— 0 errors, 0 warnings, 0 notes ✓git diff --checkclean ✓origin/develop..HEADcontains exactly one commit scoped to the three files above; no merge commits.