+ "body": "[agent] Janitor: the hourly issue and discussion janitor rewrites this log each run. It shows the last run, the actions it took with a reason for each, a rolling list of recent actions, deferred candidates, and anything that needs a human. The routine writes it to the `janitor/ledger` branch, and a workflow on that branch applies it here.\n\n\n## Last run\n2026-11-02 19:21Z on origin/main `3eb2ec14` (#1891, merged 2026-11-02 18:56Z). Reviewed 124 open issues, the 128 issues closed since 2026-10-26 (44 since the last run), and the PRs updated since 2026-10-19 (about 50 merged today).\n\n## This run\n- **Issues closed:** none. No merged PR fully fixes an open issue: every open issue a merged PR references is either a declared partial slice or an out-of-scope mention (details under Deferred). No new issue is empty, invalid or an exact duplicate.\n- **Labels fixed:** removed `agent:claimed` from 43 closed issues (their fix PRs merged today). Every open bughunt issue has its `pm:*` label.\n- **Claims:** all live. Open claims without `agent:needs-human` (#1979, #1968) were claimed under 48h ago.\n- **Discussion ops:** drift comments on ledgers #302, #309, #316 and #317 for 13 bughunt issues closed today; this log.\n- **Note:** the ledger push was first rejected by the `required_signatures` rule because the commit was made with `-c user.*` overrides; a normal signed commit went through.\n\n## Recent actions (rolling, newest first)\n- 2026-11-02 19:21Z: removed `agent:claimed` from 43 closed issues (#1989, #1976, #1958, #1956, #1953, #1952, #1951, #1949, #1942, #1941, #1937, #1932, #1931, #1921, #1918, #1916, #1909, #1908, #1904, #1902, #1901, #1900, #1889, #1888, #1878, #1873, #1871, #1869, #1868, #1851, #1850, #1848, #1847, #1846, #1844, #1840, #1834, #1833, #1832, #1831, #1827, #1809, #638)\n- 2026-11-02 19:21Z: posted drift comments on ledgers #302 (#1827, #1850, #1871, #1904, #1921, #1937, #1976), #309 (#1851, #1873, #1953), #316 (#1831, #1989), #317 (#1840)\n- 2026-11-02 13:50Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-02 07:29Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-02 01:19Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-01 19:18Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-01 13:20Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-01 07:19Z: no-op run (main still `cbbbdb90`, no merges since 2026-10-30 13:28Z, no closes, no label fixes, no new ledger drift)\n- 2026-11-01 01:19Z: posted a drift comment on pip ledger #309 (#1794 closed by #1796 `cbbbdb90`, still listed as open / `fail`)\n- 2026-11-01 01:19Z: removed `agent:claimed` from closed #1794\n- 2026-10-30 07:26Z: no-op run (main still `5ca56238`, no merges since 22:47Z, no closes, no label fixes, no new ledger drift)\n- 2026-10-30 01:20Z: closed #1845 as a duplicate of #705 (same consolidation; current site list copied over)\n- 2026-10-30 01:20Z: removed `agent:claimed` from closed #656\n- 2026-10-30 01:20Z: posted a drift comment on ledger #319 (#656)\n- 2026-10-29 19:20Z: removed `agent:claimed` from 11 closed issues (#1818, #1808, #1804, #1799, #1782, #891, #622, #584, #513, #437, #423)\n- 2026-10-29 19:20Z: posted drift comments on ledgers #318 (#622, #584, #513, #423) and #304 (#437)\n- 2026-10-29 13:30Z: removed `agent:claimed` from 6 closed issues (#1823, #1821, #1815, #1810, #683, #614)\n- 2026-10-29 13:30Z: posted drift comments on ledgers #316 (#1821), #317 (#1810, #1823), #318 (#683)\n- 2026-10-29 07:20Z: no-op run (main still `ecd4924e`, no merges since 22:56Z, no closes, no label fixes, no new ledger drift)\n- 2026-10-29 01:20Z: removed `agent:claimed` from 6 closed issues (#1791, #1784, #1135, #534, #489, #459)\n- 2026-10-29 01:20Z: posted drift comments on ledgers #315 (#1135), #318 (#534, #459, #394), #320 (#489)\n- 2026-10-28 19:25Z: removed `agent:claimed` from 19 closed issues (#1777, #1774, #1770, #1766, #1761, #1758, #1756, #1753, #1751, #1749, #1268, #1123, #1063, #998, #655, #550, #535, #398, #397)\n- 2026-10-28 19:25Z: posted drift comments on ledgers #303 (#1268), #309 (#1758), #316 (#1749, #1761), #318 (#535, #550, #655), #320 (#397, #398, #553)\n- 2026-10-28 13:39Z: no-op run (main still `b787454e`, no closes, no label fixes, no new ledger drift)\n- 2026-10-28 07:35Z: posted drift comments on ledgers #318 (#350 closed 06:41Z, still `fail` in the matrix) and #309 (#668 closed 02:08Z, still `fail` in two rows)\n- 2026-10-28 01:20Z: removed `agent:claimed` from 2 closed issues (#444, #935)\n- 2026-10-28 01:20Z: posted drift comments on ledgers #303 (#935, closed by #1736 `8709d3d7`) and #308 (#444, closed by #1719 `8b327654` + #1741 `ffa6ef86`)\n- 2026-10-27 13:35Z: closed #1737 as completed (#1740 `a5172c42`; `output_retrying_dns` retries yarn classic installs on `EAI_AGAIN`, used by all four yarn-classic suites)\n- 2026-10-27 13:35Z: removed `agent:claimed` from 22 closed issues (#991, #962, #981, #463, #505, #506, #819, #758, #692, #673, #985, #1235, #639, #859, #406, #1105, #450, #842, #740, #536, #641, #422)\n- 2026-10-27 13:35Z: posted drift comments on ledgers #304 (#991, #758, #692), #305 (#962, #859), #308 (#406), #309 (#819, #740), #310 (#639, #1105), #311 (#450, #1105), #312 (#641), #313 (#981, #842), #314 (#505, #673), #315 (#506), #316 (#985, #1235), #317 (#422), #321 (#463, #536)\n- 2026-10-26 13:30Z: posted a drift comment on Cargo ledger #315 (#573 closed 2026-10-26 04:29Z as fixed by #1205 `b17a114a`, still listed as `fail` in the run cells)\n- 2026-10-25 13:20Z: no-op run (no merges since `3db3cdf6`, no closes, no label fixes, no new ledger drift)\n- 2026-10-24 13:21Z: removed `agent:claimed` from 30 closed issues (#1615, #1645, #1631, #1618, #1576, #1581, #1638, #1594, #1630, #1584, #1595, #1589, #1626, #1597, #1600, #1601, #1473, #1624, #1610, #1619, #1570, #1608, #1681, #1685, #1688, #1115, #1611, #1606, #1104, #783)\n- 2026-10-24 13:21Z: posted drift comments on ledgers #302 (#1595, #1576, #1618, #1581), #303 (#1619, #1597, #1638), #304 (#1115, #1610, #1629), #305 (#783, #1611, #1630), #306 (#1019, #1600, #1581, #1631), #307 (#1601, #1584), #309 (#1104), #310 (#1589, #1603), #311 (#1615, #1589), #313 (#1608), #316 (#1626, #1594)\n- 2026-10-22 13:20Z: removed `agent:claimed` from 8 closed issues (#1635, #1623, #1613, #1604, #1602, #1587, #1572, #1567)\n- 2026-10-22 13:20Z: posted drift comments on ledgers #309 (#1567, #1587, #1602, #1623), #310 (#1604, #1613), #311 (#1635), #313 (#1572)\n- 2026-10-21 13:22Z: removed `agent:claimed` from 11 closed issues (#1633, #1627, #1621, #1616, #1598, #1578, #1569, #1558, #1554, #653, #651)\n- 2026-10-21 13:22Z: posted drift comments on ledgers #302 (#1627, #1554), #304 (#1558, #1578), #305 (#1598), #306 (#1621), #307 (#1633), #310 (#1569), #313 (#1616), #315 (#651, #653)\n- 2026-10-17 13:20Z: posted a drift comment on ledger #304 (to-do item `0000000000` still pending on #1538, fixed by #1548 on 2026-10-14)\n- 2026-10-16 13:23Z: released stale claim `2026-10-13T14:22:13Z-3898b9` on #1473 (slices #1475 and #1486 merged, no open PR, claimer silent >48h; kept open because the bench ledger still lists poetry slow at 2.37x on 10-15 and 2.67x on 10-16)\n- 2026-10-16 13:23Z: removed `agent:claimed` from 8 closed issues (#1579, #1573, #1564, #1561, #1557, #1549, #1547, #1545)\n- 2026-10-16 13:23Z: posted a drift comment on #575 (bench runs 2026-10-12 to 2026-10-16 are on `bench/ledger` but not in the discussion)\n- 2026-10-15 13:26Z: closed #1202 as completed (#1230 `8439e555` and #1239 `d240c658`; `PurlKey` and the crawler normalize NuGet versions, and `nuget_vendored_at_a_four_part_version_stays_live` covers the prune case; only an optional file move is left)\n- 2026-10-15 13:26Z: closed #914 as completed (#1253 `e9be7462`; `verify_member_bytes` streams via `zip_member_git_sha256`, regression test `verify_member_bytes_streams_a_large_deflated_member`)\n- 2026-10-15 13:26Z: removed `agent:claimed` from 38 closed issues (#1542, #1541, #1540, #1538, #1534, #1531, #1514, #1282, #1266, #1236, #1220, #1196, #1116, #1100, #1097, #1074, #988, #952, #939, #869, #759, #642, #586, #564, #547, #531, #509, #484, #458, #455, #439, #409, #393, #392, #391, #386, #339, #338)\n- 2026-10-15 13:26Z: posted drift comments on ledgers #306 (#1541) and #303 (#1514 still `fail` in the 11.28.3 / 12.11.2 rows)\n- 2026-10-14 13:21Z: removed `agent:claimed` from 22 closed issues (#1527, #1524, #1521, #1516, #1511, #1509, #1507, #1503, #1501, #1494, #1492, #1490, #1481, #1477, #1476, #1471, #1467, #1465, #1462, #1460, #1450, #1445)\n- 2026-10-14 13:21Z: posted drift comments on ledgers #303 (#1460), #304 (#1462, #1516), #306 (#1521), #310 (#1445, #1501), #311 (#1503, #1527), #316 (#1476, #1477, #1509)\n- 2026-10-13 13:25Z: released stale claim `2026-10-08T17:56:10Z-d68635` on #748 (slices #1045 and #1153 merged 2026-10-08, no open PR, claimer silent since 2026-10-08 18:00Z)\n- 2026-10-13 13:25Z: released stale claim `2026-10-08T10:59:14Z-aa074d` on #747 (#1126 merged slice 1 on 2026-10-11 01:02Z; about 68 inline `starts_with(\"pkg:<type>/\")` checks remain on main, no open PR)\n\n## Deferred / unsure\n- Partial slices merged 2026-11-02, issues stay open: #1899 (#1986 `95208624`, PR says \"#1899 stays open\"), #1979 (#1988 `b0b24e23`, slice 1; claim 13:05Z still fresh), #1968 (#1972 `44d22d2d`, first slice; claim 04:56Z still fresh), #1858 (#1864 leaves `acquire_or_emit(&GlobalArgs)` undone; `lock_cli.rs:18` on main), #1837/#1911/#1935/#1839/#1983 only mentioned as out of scope in #1842/#1929/#1943/#1947/#1988.\n- #1992 (bun e2e toolchain module) and #1993 (cargo e2e fixture helpers) are new arch-audit items; they differ from #1979 (copy_tree), #1980 (Go harness) and #1983 (production e2e fork). None duplicates an open issue.\n- #1880 / #1836 are declared siblings (labels vs JSON); both stay open.\n- #1869 (claimed, PR #1870) is close to child 2 of #676 (one retry loop for the API client). If #1870 merges, check whether #676 can close.\n- #1858 overlaps #794 only on the `GlobalArgs::lock_timeout()` accessor. They are different changes, so both stay open.\n- #977: #1825 merged (`e006861c`, `Refs`) and the pip half was verified fixed. It stays open for the `agent:needs-human` drift-keep exit-code decision.\n- #549: open Go PR #1698 may fix it.\n- #1793: hosted half of #489, needs a contract decision; open.\n- #1089: criterion 2 isn't met (sentence assertions remain), so it stays open.\n- #1650: step 1 merged in #1652. Step 2 (bounded retry) waits on the next occurrence.\n- #1588: fix PRs #1590 and #1692 merged. The issue has `agent:needs-human`; a human can close it.\n- #1607 (yarn-berry rescan): #1693, #1695 and #1701 merged, and it has `agent:needs-human`. It's labeled `pm:yarn` while other berry issues use `pm:yarn-berry`.\n- #1425, #1472 (perf regressions) and #761, #836, #1246 (slow scans): no bench reading since 2026-10-17, so whether they're fixed can't be checked.\n- #780 and #594: hosted slices merged, vendored slices still open. #913 and #855 are still open work.\n- Maven ledger #318 and Gradle ledger #319 haven't been rewritten since early October, so many of their `fail` marks are stale.\n- #1809 is a deliberate split of #622, not a duplicate.\n- #814 / #815: #1822 kept its fix local, so both stay open.\n- #1846 (pnpm brace/class globs) and #1833 (Cargo `[...]` classes) are different code paths, not duplicates.\n- #1902 (parent `.yarnrc` / yarn pnpm store missed under `--cwd .`) and #1901 (one `.yarnrc` tokenizer) touch the same crawler code, but one is a lookup bug and the other a tokenizer refactor. Both stay open.\n- #1904 (vendored refusal from an npm workspace member doesn't name the root) is new and has no open duplicate. #1094 (stray member lock) and #884/#1097 (yarn classic hosted) are closed and are different triggers.\n- #1921 (`vendor` / `vendor --check` from an npm workspace member exit 0) and #1904 (vendored `scan`/`get` from a member refuse with a looping remedy; PR #1913) are different commands with opposite symptoms. Both stay open.\n- #1919 (crawler tests read the real `HOME`/`YARN_NODE_LINKER`/`VIRTUAL_ENV`) proposes using #1889's shared env guard; it is a separate test-hermeticity fix, not a duplicate.\n- #1916 (lockless uv + `[tool.poetry-\u2026]` plugin table), #1917 (one NuGet project walk; touches #594/#833 placement) and #1918 (one pnpm YAML scalar reader) are new arch-audit items pinned to `cbbbdb90`; none duplicates an open issue.\n- #1937 (vendored npm rollback/remove/`vendor --revert` on a lockfileVersion 2 lock after `npm install`) is the revert-side sibling of closed #879 (vex and `vendor --check` on the same trigger). They are different commands, so it is not a duplicate.\n- #1931 (Bundler path-tier rule written twice; ignores a falsy `disable_shared_gems`) and #1935 (move Bundler settings parsing to `formats/gem`; two `.bundle/config` key parsers) both touch `ruby_crawler.rs`, but they are separate register entries (A53 and A57) with different fixes. Both stay open.\n- #905 (BOM stripping): `formats/text.rs` now owns `strip_bom`/`split_bom`, but inline `'\\u{feff}'` stripping remains in `sbt/build.rs`, `redirect/mod.rs`, `upstream/pypi.rs`, `vex/discover/yarn.rs` and more, so it stays open. #782: `committed_artifact_intact`, `go_sum_edit::remove_lines` and `PnpmLock::wired_integrity` still exist on `cbbbdb90`, so it stays open too.\n- #1949\u2013#1952 (arch-audit A64\u2013A67, pinned to `cbbbdb90` with executed repros) are new. #1950 extends #715 (pom.xml element scanner) but targets `formats::xml::attr` and its NuGet twin, so it is not a duplicate. #1949/#1952 (pnpm env-lockfile document, member-importer predicate) and #1918 (pnpm scalar reader) are different readers; all stay open.\n- #1940 (toolchain gate), #1941 (claimed, PR #1944), #1942 (PTY runner) are new arch-audit test refactors; none duplicates an open issue.\n- #1945: #1946 (`2e3e30ec`, gem leg reads activestorage's own block) merged 2026-11-02; the bun 403 half is production-side and awaits a human note on the cause.\n- #1953 (pip: plain `pip install -r` keeps the patched build after rollback/revert; claimed, PR #1954), #1956/#1957/#1959 (tests/common parse scrub, selftests binary, unused helpers), #1958 (hermetic color env; claimed, PR #1964), #1963 (A72: three gradle-wrapper.properties readers) and #1965 (npm `overrides` to a remote tarball URL pinned and installed unpatched) are new. None duplicates an open issue. #1965 differs from closed #490 (git-spec dependent, not an override), and #1958 is a follow-up to closed #823, not the same defect.\n- #1976 (npm vendored dry run / `--max-new-patches` planning skip the per-entry lock refusals for URL/git-spec/member entries) is new. It is not #1908 (PyPI refusals in planning, PR #1930), #1909 (vlt refusal in `vendor`'s plan), #1965 (override to a URL isn't refused at all) or #1850 (dry-run headline counting in-sync rows). All stay open.\n- #1974 (A74: move npm-family workspace resolution out of `hosted::governing_root`) is new and waits on #1928/#1971; #1968 (claimed, PR #1972), #1969 (`--offline` dropped in vendor/repair test helper) and #1970 (docker e2e all-zeros beforeHash) are new arch-audit test items. None duplicates an open issue.\n- #1979 (copy_tree), #1980 (Go e2e harness), #1981 (hermetic children inherit Go env vars), #1982 (Gradle --global-prefix e2e harness always sets GRADLE_USER_HOME), #1983 (hosted/vendored production e2e near-fork) and #1987 (typed apply/rollback advisories) are new arch-audit items. #1981 is a different env family from #1958 (color env) and #1889 (EnvGuard); #1987 is the apply-result side, not #1879 (hosted RunWarning). None duplicates an open issue.\n\n## Needs a human\n- #1945 (hosted-e2e 403 to bun / unredirected `activestorage`): production recovered 2026-11-01 19:12Z; it stays open until someone records whether the cause was a one-off blip.\n- **The benchmark routine** has been silent since 2026-10-17 07:24Z. #575 hasn't changed since 2026-10-16.\n- #1052 (port to depscan's `composer-lock-members.ts`, outside this repo) is `agent:needs-human`.\n- Open `agent:needs-human` decisions: #267, #686, #691, #977, #1052, #1065, #1099, #1109, #1130, #1200, #1248, #1352, #1512, #1588, #1607, #1660, #1670, #1720, #1862, #1881, #1965.\n- The architecture register discussion #560 is closed, and #1830 (the file-by-file implementation review) is the new living document that the arch-audit issues cite. The janitor leaves both alone.\n- Discussion #301 (\"Welcome to socket-patch Discussions!\") is closed. The janitor keeps it as is.\n\n---\n_Generated by [Claude Code](https://claude.ai/code)_"
0 commit comments