- Move operational content (env var reference, multi-instance prerequisites, troubleshooting, cron-drain, CF Dashboard Git integration, BACKEND_ORIGINS_JSON format, security checklist) into README and README.zh-CN - Delete docs/deployment.md and docs/deployment.zh-CN.md - Update 5 validator DOCS lists to remove deployment entries - Update charter §7 doc boundary table, AGENTS §2.5 line-anchor exception - Fix cross-doc references in design/reference/opengaps/retired/worker READMEs - Fix cron-drain.sh header comment reference (deployment.md §6.3 → README §3.10) - GATE-DOCS 6/6 PASS (55 anchors / 441 sec-refs / 699 path-refs, 0 errors)
Bare domains like messageweave.example work without the https:// prefix. Old --*-url flags and MW_*_URL env vars still work as aliases. Flag values override env vars; defaults applied after parsing.
- deployment.md:§6.3.1 两条端点都可直接打 Worker 域名,手动 curl 与 crontab、 k8s CronJob 示例去掉 WORKER_ORIGIN 只留 APP_URL,-m 分别给 320s / 300s(要略大于 LB 侧 per-route 超时,否则 curl 先掐掉一个本来能完成的排空);§10.4 safelist 18 条并补 /worker、不在 safelist 的从 3 类减为 2 类;LB_WORKER_TIMEOUT_MS 补进 secret put 清单与 §10.9 变量表;测试计数 35 -> 37(index 12 -> 14) - README.md:路由白名单 17 -> 18 条、/worker 入列、LB_WORKER_TIMEOUT_MS 补进 变量表与配置片段、/reconcile 例外段落扩成 /reconcile + /worker 两条长超时 - charter.md / reference.md:17 -> 18 条、Safe Routes 16 -> 18 entries - cron-drain.sh:MW_WORKER_URL 由「必须指源站直连地址」改为「可选,默认走平台域名」; 404 route not forwarded 的提示改为 LB 版本太旧(需 >= 2026.10.3),升级或绕过 LB 顺手修正 6 处已漂移的行号锚点(此前指向空行或已迁移的文件): backends.js:10-28 -> 10-30、index.js:47-65 -> 54-73、index.js:76-78 -> 87-91、 index.js:87-89 -> 95-96、index.js:93 -> 105、src/index.js:138 -> src/lb.js:155 (x-lb-backend 的 catch 在 656034d 修不可变响应头时已迁到 lb.js,文档一直指旧文件)。 GATE-DOCS PASS(115 line-refs / 477 path-refs / 252 section-refs,0 error)。
656034d
后端没有内部调度器(C-NO-LONG-CONN),消费出站队列的唯一入口是 POST /worker, 增量对账的唯一入口是 POST /reconcile,两者都必须外部触发。没有这一步,新邮件 会一直堆在 stalwart:jmap,一行通知都不会发出来。 - 一次触发做两步:先 /reconcile 再 /worker,顺序不可反 - 两个端点成功码都是 204 且响应体为空;401/409/503 各给明确提示 - 503 时把服务端的 Retry-After 一并打进日志,cron 侧不用自己猜 - MW_WORKER_URL 单独可配:/worker 不在 LB 白名单内,走 LB 会 404,脚本会点出来 - --diagnose 走 /debug/*:配置是否保存、chat_id 是否占位值、webhook secret、 Redis/JMAP/Telegram 依赖可达性、游标是否还停在 null - --test-notify 绕过队列复用生产出站路径直发一条:这条能收到,问题一定在调度 - 凭据只从 MW_* 环境变量读,不读 .env、不写文件,日志不含 token - --once / --loop;MW_BATCH(服务端上限 10,超出提示)、MW_LOG_FILE、MW_TIMEOUT - 退出码 0/1/2 二值,失败步数看日志行数