You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
id: F11.10 large-module split has no regression guard — no automated check fails when a production file regrows past 2,500 lines #1411
Gap found by the F11 audit (#1078, slice 5 — coverage gaps)
F11.10 (large-module split, #808) is verified today but has no regression guard. Slice 2 of #1078 verified the exit criterion from code: no production .rs file in pkgs/+apps/ exceeds 2,500 production lines (largest on current main 37418e56: pkgs/id/src/cli.rs at 2,200 production lines / 4,293 total, re-measured 2026-10-27 during slice 5).
Nothing automated catches a regression: a tracked-file search on main 37418e56 for a 2,500-line / line-count check across .github/, pkgs/id, CI scripts, tests and the flake finds no guard — the only mention of the 2,500-line limit is the plan text itself (.opencode/plans/phase-11-foundations.md). A module can silently regrow past the limit and the split's benefit erodes unnoticed, exactly what F11.10 was meant to prevent.
Acceptance criteria
An automated check runs in the id fast lane (or as a test in pkgs/id) that fails when any production .rs file under pkgs//apps/ exceeds 2,500 production lines (production = lines before the first #[cfg(test)] module, matching the id: validation — delivered Phase 11 items (claimed-done audit) #1078 audit's measurement; test files under tests/ are not production code — e.g. pkgs/id/tests/cli_integration.rs at 4,312 lines is out of scope).
The check names the offending file(s) and their line counts on failure.
The check passes on current main (largest production file: cli.rs, 2,200).
Worker pickup (repo-worker-code): claimed queue task 2577 (triage of #1411) at 2026-11-02T23:00:40Z. Plan: verify the 2,500-line regression-guard gap against current origin/main, post a triage verdict, and route a scoped follow-up fix packet if confirmed.
Triage verdict: CONFIRMED (repo-worker-code, queue task 2577). Verified against current origin/main 0e26fa4b3 (2026-11-02):
No guard exists. Tracked-file search for 2500 and line-count/max-lines checks across .github/, pkgs/, CI scripts and tests finds no 2,500-line production-limit enforcement. The only mention is plan text (.opencode/plans/phase-11-foundations.md). The only wc -l uses in .github/scripts/ are snapshot-manifest counters, not size guards.
The guarded-against regression has already happened.pkgs/id/src/web/markdown.rs = 5,284 production / 10,045 total lines (production = lines before first #[cfg(test)], the id: validation — delivered Phase 11 items (claimed-done audit) #1078 audit method). Two more files exceed 2,500 but are test-only and out of scope per the issue (pkgs/id/tests/cli_integration.rs 4,569; pkgs/id/src/encryption/tests.rs 2,850).
Erosion in progress:pkgs/id/src/cli.rs (the file F11.10 split) has regrown to 2,490 production / 5,143 total \u2014 was 2,200 at 37418e56, now 10 lines from the limit. (No apps/ tree exists at this HEAD; 620 .rs files measured under pkgs/ only.)
Route: enqueued scoped follow-up queue task 6592 (small_fix): add the guard with an explicit grandfather entry for markdown.rs linked to its split issue, so the check passes on current main and fails on any new violator. Splitting markdown.rs itself is out of scope there \u2014 needs its own split packet.
Warning for the resuming worker: the laptop worktree ~/git/fleet/6592-1411-line-guard (on the PR ci: 2,500 production-line regression guard for F11.10 (#1411) #4709 branch at fe20c18) holds UNCOMMITTED changes that revert the fd45296 counting approach to first-#[cfg(test)] truncation, hardcode ROOT="/home/user/git", and delete .github/workflows/production-line-guard.yml. That diff is regressive — review and discard it deliberately; do not commit or push it. The fix for round 2 starts from the committed head.
Activity
developing-today commentedon Oct 27, 2026
CODE-501
dezren39 commentedon Nov 2, 2026
Worker pickup (repo-worker-code): claimed queue task 2577 (triage of #1411) at 2026-11-02T23:00:40Z. Plan: verify the 2,500-line regression-guard gap against current origin/main, post a triage verdict, and route a scoped follow-up fix packet if confirmed.
dezren39 commentedon Nov 2, 2026
Triage verdict: CONFIRMED (repo-worker-code, queue task 2577). Verified against current origin/main
0e26fa4b3(2026-11-02):2500and line-count/max-lines checks across.github/,pkgs/, CI scripts and tests finds no 2,500-line production-limit enforcement. The only mention is plan text (.opencode/plans/phase-11-foundations.md). The onlywc -luses in.github/scripts/are snapshot-manifest counters, not size guards.pkgs/id/src/web/markdown.rs= 5,284 production / 10,045 total lines (production = lines before first#[cfg(test)], the id: validation — delivered Phase 11 items (claimed-done audit) #1078 audit method). Two more files exceed 2,500 but are test-only and out of scope per the issue (pkgs/id/tests/cli_integration.rs4,569;pkgs/id/src/encryption/tests.rs2,850).pkgs/id/src/cli.rs(the file F11.10 split) has regrown to 2,490 production / 5,143 total \u2014 was 2,200 at37418e56, now 10 lines from the limit. (Noapps/tree exists at this HEAD; 620.rsfiles measured underpkgs/only.)Route: enqueued scoped follow-up queue task 6592 (
small_fix): add the guard with an explicit grandfather entry formarkdown.rslinked to its split issue, so the check passes on current main and fails on any new violator. Splittingmarkdown.rsitself is out of scope there \u2014 needs its own split packet.26 remaining items
dezren39 commentedon Nov 3, 2026
🤖 Agent note · parked (resume state verified fresh)
dezren39 commentedon Nov 3, 2026
🤖 Agent note · picked up
fix: end skipping after one-line test items; recognize compound cfg(t…
fix: ignore braces in comments, strings, raw strings, and char litera…
fix: judge test-item termination on lexical content so trailing comme…
Merge pull request #4709 from developing-today/queue/6592-1411-produc…
dezren39 commentedon Nov 3, 2026
🤖 Agent note · done
.github/scripts/check-production-line-limit.sh, wired by.github/workflows/production-line-guard.yml(check name:basic: production line limit (2500)), contract tests at.github/scripts/check-production-line-limit.test.sh(9/9 pass). Command:bash .github/scripts/check-production-line-limit.sh [ROOT]. It counts production lines (test-gated items excluded: plain and compound cfg predicates requiringtest; braces in comments/strings/raw strings/char literals ignored; termination judged on lexical content) and fails naming any non-grandfathered production .rs file under pkgs/ (or apps/) over 2,500. Grandfathered with linked split issues: pkgs/id/src/web/markdown.rs 5,325 (id: split pkgs/id/src/web/markdown.rs (5,284 production lines) — remove the F11.10 line-guard grandfather entry #4704), pkgs/id/src/cli.rs 2,504 (id: split pkgs/id/src/cli.rs (2,598 production lines) — remove the F11.10 line-guard grandfather entry #4715), pkgs/id/src/web/routes.rs 2,573 (id: split pkgs/id/src/web/routes.rs (2,573 production lines) — remove the F11.10 line-guard grandfather entry #4716), pkgs/id/src/world_session/mod.rs 2,821 (id: split pkgs/id/src/world_session/mod.rs (2,821 production lines) — remove the F11.10 line-guard grandfather entry #4717). Proven to fail on synthetic over-limit trees in the contract tests. All five Codex findings across four rounds on PR ci: 2,500 production-line regression guard for F11.10 (#1411) #4709 were dispositioned with fixes + thread replies; the final re-review run errored on the Codex side (status failed, no findings posted) after an explicit re-trigger. Duplicate PR fix(id): guard F11.10 2,500 production-line limit with prod-lines-check (#1411) #4675 closed with the salvage comparison posted on PR ci: 2,500 production-line regression guard for F11.10 (#1411) #4709.