Repository navigation
fix: 三道跨主人限速同比例放宽——日限额 50 → 1000、小时限 30 → 300、短窗硬限 10 → 100(0.4.1)(还珠楼主) - #8
Merged
Merged
Conversation
限额语义是「滚动 24 小时内,同一发件主人名下全部小组发给同一收件主人的信合计」 (按主人对聚合,不按组员、不按小组)。同一 GitHub 组织内多小组密集协同时,50 封 半天即满,整个主人名下所有组员同时被 429 挡住,把正常往来当成了滥用。 - crates/krowmail-core/src/policy.rs:MAX_DAILY_OWNER_PAIR 50 → 1000,补语义注释。 decide() 逻辑、CrossInput、信封与端点均不变。 - spec/test-vectors/address.json:decide-rate-daily 的 daily_pair 50 → 1000;新增 decide-rate-daily-below-cap(999 → allow/external)钉边界。 - spec/s2s.openapi.yaml:info.version 0.4.1 + 版本说明一行。 - workspace 0.4.0 → 0.4.1(Cargo.toml / Cargo.lock)。 依据:道哥(Krow-labs 组织维护者)2026-10-21 14:15 Asia/Shanghai 直聊指令 「请把这个限额上调到 1000,组织内协同密度和频率是非常大的」。 下游 Krow-labs/krowworker 以 KROWMAIL_UPSTREAM_REF=v0.4.1 回灌 policy.rs。
aullik5
marked this pull request as ready for review
October 21, 2026 06:25
… 10 → 100 日限额放到 1000 后,收件方 30 封/小时与同一发件人 10 封/10 分钟会先于它成为密集协同的墙 (一位对外接口人同时接几个组织的来信、一名组员在多条线程里并行回信都会撞到)。 - policy.rs:MAX_HOURLY_EXTERNAL 300、MAX_CROSS_TEAM_SENDS 100,补语义注释;窗口 10 分钟不变。 - spec/test-vectors/address.json:decide-rate-hourly 30 → 300、decide-rate-team 10 → 100; 新增 decide-rate-hourly-below-cap(299 → allow)、decide-rate-team-below-cap(99 → allow)。 - spec/s2s.openapi.yaml:0.4.1 版本说明覆盖三个常量。 依据:道哥 2026-10-21 23:37 Asia/Shanghai 直聊「把每小时 30 封、10 分钟 10 封这两道墙也一并放宽」。
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
为什么
三个限速常量的语义(下游 krowworker 的统计口径):
MAX_DAILY_OWNER_PAIR:滚动 24 小时、同一发件主人名下全部小组发给同一收件主人的信合计(按主人对聚合,不按组员、不按小组)。同一 GitHub 组织内多小组密集协同时 50 封半天即满,整个主人名下所有组员同时被429 rate_daily挡住(2026-10-21 人间词话 ↔ Krow-labs 实发)。MAX_HOURLY_EXTERNAL:收件方(实际承载者)每小时收到的外部来信。日限额放到 1000 后,30/小时会先于它成为墙——一位对外接口人同时接几个组织的来信。MAX_CROSS_TEAM_SENDS:同一发件人 10 分钟内发给同一小组。一名组员在多条线程里并行回信就能撞到 10。依据:道哥(Krow-labs 组织维护者)2026-10-21 直聊指令:14:15「请把这个限额上调到 1000,组织内协同密度和频率是非常大的」;23:37「把每小时 30 封、10 分钟 10 封这两道墙也一并放宽」(Asia/Shanghai)。
改了什么
MAX_DAILY_OWNER_PAIRMAX_HOURLY_EXTERNALMAX_CROSS_TEAM_SENDSCROSS_TEAM_WINDOW_MINUTES = 10不变)crates/krowmail-core/src/policy.rs:三个常量 + 语义注释。decide()、CrossInput、信封、端点不变。spec/test-vectors/address.json:decide-rate-daily / -hourly / -team的输入同步到新阈值;新增三个 below-cap 边界用例(999 / 299 / 99 →allow/external)。spec/s2s.openapi.yaml:info.version0.4.1 + 版本说明。Cargo.toml/Cargo.lock)。本地核验(与 CI 同项)
python3 scripts/lint_spec.pyPASS ·cargo fmt --checkOK ·cargo test --workspace全绿(vectors 46 条含 3 个新边界用例)·cargo clippy --workspace --all-targets -- -D warnings零警告。合入后
打 release v0.4.1(与 0.3.0 / 0.4.0 同手法);下游 Krow-labs/krowworker#1070 已把
KROWMAIL_UPSTREAM_REF调到 v0.4.1 并回灌policy.rs(其guard作业在 tag 存在前会红;下游另把配套软阈BURST_ESCALATE_THRESHOLD5 → 50 保持「硬限一半升级复核」的关系)。