Repository navigation
[PR] Auto-update staggered window cap: 48 hours → 7 days | 自动更新错峰窗口上限 48 小时 → 7 天 - #5427
ranxianglei wants to merge 5 commits into
Conversation
📦 Built Package ArtifactBranch: Latest build — install this exact versionnpm install -g billion-context@0.0.9204-pr.5427.c2b526aThis exact version is immutable and reproducible. The rolling Recent builds (commit → version)
Download artifact
tar xzf billion-context-pr5427.tgz
npm install -g packageInstall instructions are refreshed on each push. |
b67efee to
cb7bf43
Compare
(ai: vllm-qwen/qwen3.8-27b) 查重: 不重复。检索 open+closed issue/PR 中 stagger 相关项,仅 #4794(updater "Check now" 只查不装)沾边,机制与症状均不同;本 PR 自身即该改动的唯一在途工作。 标签: pr + scope/other + p3(有意行为变更,非缺陷;自更新域不属于 kernel/wiring/storage/ui/ci/docs 任何一类,归 other;影响轻微)。 审核结论(结构化八问)
行为变更披露(强制): 默认错峰窗口上限 48h → 7d(旧值 172800000ms / 远程 验证证据: 本地(新 head b67efee 等价树)定向跑 tests/update-policy.test.ts + tests/knobs-config-precedence.test.ts = 63/63 绿, CI 状态(写此回复时): 新 head b67efee 的 run 刚入队(docs-sync 等全部 queued,fetched_at 09:50Z);mergeable_state=behind(master 前移,非阻塞)。 收工判定: 方向正确、实现闭环(两处常量 + 种子 + 文档 + 测试齐整)、审核发现的唯一实质问题(seed 漂移)已由作者跟进提交修复并经我独立验证消除;预期 CI 转绿后即可合并(合并由人工执行)。 |
cb7bf43 to
c7271f0
Compare
(ai: opencode/qwen3.8-27b) Conflict rebase complete — PR #5427 is mergeable again. What I did this run:
No behavior change was introduced by the rebase itself: the code delta vs master is byte-for-byte the PR's own (constant 中文八问
收工判定:冲突已全部解决并推送( |
[bot] Rebase 后终审完成(head 结构化八问
行为变更披露(强制):默认错峰窗口上限 48h → 7d(内置 172800000ms→604800000ms,远程策略 测试有效性:tests/update-policy.test.ts 显式钉死两个常量( 收工判定:实现闭环、无回归、CI 全绿、diff 干净(12 文件 32+/32−,每行都服务于本 PR 目的)——可合并,合并由人工执行。 |
The rollout-spread window draws ONE random moment per machine inside [minDelay, maxDelay]. 48 h left only two days of spread; a bad release was effectively fleet-wide by the time Monday came around. Both places that define the default change together: - built-in STAGGER_MAX_DELAY_DEFAULT_MS 48 h -> 7 days (the fallback when the remote policy file is unreachable/unset); - the official remote policy file auto-update-policy.json default.maxDelay 2d -> 7d (remote default outranks the built-in, so the constant alone would be inert). Persisted draws are keyed by (dist-tag, target version), so upgrading to this version does NOT re-roll an already-drawn moment — old draws fire as drawn; only newly discovered versions draw inside 7 days. Escapes unchanged: manual 'bili update', zeroed stagger bounds, or ACP_AUTO_UPDATE=0. Precedence unchanged: local config/env > remote policy > built-in. Docs: README/README.zh-CN, CONFIGURATION/CONFIGURATION.zh-CN (defaults, env tables, window-composition notes) updated to 604800000 / 7 days.
docs-sync regenerates CONFIGURATION*.md from website/config-reference/ *.yaml; hand-edited table rows drift. Move the 7-day default + examples into updates.yaml and regenerate (output identical to the hand edits).
…ecycle table) The rebase onto current master picks up two files added after this PR's base (community JA README #6000, docs/lifecycle.md env table) that still state the old 48 h built-in cap; align them with the 7-day default like every other surface.
… 7d) The assertion below already pins STAGGER_MAX_DELAY_DEFAULT_MS == 7 * 86_400_000; the header coverage map still described the old 48 h default.
c7271f0 to
cb7cfd3
Compare
[bot] 🏷 (ai: opencode/qwen3.8-27b) Conflict re-resolved after master moved again — PR #5427 is back to mergeable. What happened this run (all verified live, not from memory):
No design decisions were needed and none are requested. The code delta is byte-for-byte the PR author's own 48h → 7d default change — the rebase introduces no behavioral drift. Remaining step is yours: merge when CI is green. 中文八问(供审核)
收工判定:冲突已解,PR 恢复可合并(仅剩 CI 待跑 + 人工合并),等待 owner 合并。 |
[bot] 🏷 (ai: opencode/qwen3.8-27b) Stale trigger — no action was needed this run. Verified live just now:
中文八问(供审核)
收工判定:冲突不存在(过期告警),CI 全绿,PR 仅剩人工合并一步,等待 owner。 |
改什么
自动更新发现新版本后的错峰抽取窗口,上限从 48 小时拉长到 7 天(下限 15 分钟不变)。每台实例仍是在窗口内随机抽一个时刻、落盘持久化、到点再升(#3619),只是摊开范围从 2 天变 7 天,坏发版有更长的中途拦截窗口。
动了两处(必须一起,缺一不生效)
STAGGER_MAX_DELAY_DEFAULT_MS:48 * 3_600_000→7 * 86_400_000(src/update-policy.ts)——远程策略文件不可达/未配置时的兜底;auto-update-policy.json:default.maxDelay"2d"→"7d"——远程默认优先级高于内置,只改常量的话线上实例实际仍按 2d 走。兼容性
(dist-tag, 目标版本)键落盘,升级到本版不重摇:旧抽取照旧到点执行,只有新发现的版本才在 7 天窗口内抽;bili update绕过;staggerMinDelayMs: 0+staggerMaxDelayMs: 0(或BILI_UPDATE_STAGGER_MIN_MS/MAX_MS)恢复立即升级;ACP_AUTO_UPDATE=0全停;STAGGER_PRUNE_MS(7 天)只清理已过期 7 天以上的旧抽取,不会误删还在等待中的 7 天抽取。文档与测试