fix(bib): seal closed dockets after 90 quiet days, not 30
All checks were successful
CI / lint (push) Successful in 1m8s
CI / test (push) Successful in 3m53s
CI / notebooks-smoke (push) Successful in 1m30s
Deploy / changes (push) Successful in 14s
Infra CI / notebooks (push) Successful in 1m4s
Infra CI / zotero (push) Successful in 2m43s
Infra CI / docs (push) Successful in 1m22s
Infra CI / api (push) Successful in 1m39s
Infra CI / bcda (push) Successful in 2m36s
Infra CI / llm (push) Successful in 1m20s
Infra CI / mc (push) Successful in 22s
Deploy / notebooks (push) Has been skipped
Deploy / zotero (push) Has been skipped
Deploy / docs (push) Has been skipped
Deploy / api (push) Successful in 1m44s
Deploy / bcda (push) Successful in 1m34s
Deploy / llm (push) Successful in 1m14s
Deploy / mc (push) Has been skipped
Deploy / report (push) Successful in 26s

regulations.gov kept posting CY2027 PFS comments well after close: the
2026-10-27 catch-up found 8 new ones 42 days in, and the first nightly
Comment Pull then sealed CMS-2026-2377 under the 30-day rule, so any
later postings would have been missed. 90 days keeps a closed docket on
the nightly walk (a couple of watermarked listing calls) through the
posting tail. stack.toml and the code default now agree, and walk_docket
defaults to the shared constant.
This commit is contained in:
kert
2026-10-27 16:11:11 -04:00
parent e8ac5143f4
commit c2f6315d28
4 changed files with 9 additions and 6 deletions

View File

@@ -17,7 +17,7 @@ from datetime import date, timedelta
from pathlib import Path
from typing import Iterable
DEFAULT_QUIET_DAYS = 30
DEFAULT_QUIET_DAYS = 90
@dataclass(frozen=True)
@@ -82,7 +82,7 @@ def _cfg():
def quiet_days() -> int:
"""``[comments] seal_quiet_days`` from stack.toml, default 30."""
"""``[comments] seal_quiet_days`` from stack.toml, default 90."""
c = _cfg()
if "comments" in c and "seal_quiet_days" in c.comments:
return int(c.comments.seal_quiet_days)

View File

@@ -36,7 +36,7 @@ from typing import TYPE_CHECKING, Callable, Iterator
import httpx
from bib.dockets import Docket
from bib.dockets import DEFAULT_QUIET_DAYS, Docket
from bib.item import Source
from bib.tag import Tag
@@ -954,7 +954,7 @@ def walk_docket(
attachments: bool = False,
limit: int = 0,
force: bool = False,
quiet_days: int = 30,
quiet_days: int = DEFAULT_QUIET_DAYS,
today: date | None = None,
scratch_root: Path = Path(".state/comments"),
echo: Callable[[str], None] | None = None,

View File

@@ -80,7 +80,10 @@ bib = "data/bib.sqlite"
zotero = "data/zotero/data/zotero.sqlite"
[comments]
seal_quiet_days = 30 # days after a docket's comment close date before an empty pull seals it
# Days after a docket's comment close date before an empty pull seals it.
# 90, not 30: reg.gov kept posting CY2027 PFS comments 6+ weeks after close
# (8 late postings found 2026-10-27, 42 days in).
seal_quiet_days = 90
[storage]
bib = "data/bib/storage"

View File

@@ -115,7 +115,7 @@ class TestQuietDays:
from conf import _Cfg
monkeypatch.setattr(mod, "_cfg", lambda: _Cfg({}))
assert quiet_days() == 30
assert quiet_days() == 90
def test_reads_section(self, monkeypatch):
import bib.dockets as mod