Repository navigation
Daily Fro Bot Report — 2026-10-29 (UTC) #4071
Description
Daily Fro Bot Report — 2026-10-29 (UTC)
Run Summary
| Category | Status | Notes |
|---|---|---|
| Errored PRs | ✅ | Remediation handoff: only open PR #4069 has successful checks and legacy status; no repair produced. |
| Security | Remediation handoff: zero high/critical audit findings; existing high CodeQL parser findings remain. | |
| Control-Plane Integrity | Remediation handoff: pins, strip-only imports and live protections verified; Scorecard permission-convention debt remains. | |
| Code Quality | ✅ | Remediation handoff: bootstrap/types/lint/tests passed; 6,433 tests passed, 43 skipped, 3 todo. |
| Oversight | ❔ | Findings present; all account/organization repository listings paginated. Public security-source gaps and empty CI evidence are itemized below. Rollout deployment/release claims have drifted. |
| Cross-Project Intelligence | ❔ | Registry coverage partial: 32 public tracked trees read, 30 with automation/guidance sources; full-registry completeness not certified. |
| Progressive Improvement | npm latest includes major drift: TypeScript 6→7 and Vitest 4→5. Zero open learning proposals. Registry accessibility status is stale for copiloting. |
Errored PRs
- #4069: current open Renovate PR; handoff verified 22 check runs, successful separate private-leak legacy status, and mergeability. No remediation PR was produced. Next: normal Renovate review.
Security
- Prior-pass evidence: zero open Dependabot alerts/repository advisories returned; override-floor gate passed. Audit: 0 critical, 0 high, 8 moderate, 3 low. Routine upgrades remain with Renovate.
- Existing CodeQL #46 and #47: parser ReDoS deferred by scope cap. Scorecard #9 is an aggregate high classification over lower-severity package advisories, not a new high package advisory. Next: bounded parser work described under Needs Human Attention.
Control-Plane Integrity
- Prior-pass evidence: 154 external action references across 35 YAML files are full-SHA/version-comment pinned; 84/84 production modules imported under Node 24 strip-only; live main/data protections and wiki/privacy guards checked. No protections changed.
- Scorecard workflow: default
read-allconvention debt remains; preserve required job-scoped SARIF/OIDC writes during any review. Existing branch-protection alert needs reconciliation with the live protections verified by the prior pass.
Code Quality
- Prior-pass validation on
mainatc30d0c1:bun run bootstrap,bun run check-types,bun run lint,bun run testpassed; 118 test files, 6,433 passed, 43 skipped, 3 todo. This oversight pass inherits that evidence; it did not repeat categories 1–4.
Oversight
Coverage/method. Authenticated account repository listing and all three organization listings were paginated and deduplicated; read access means repositories returned with read/pull access. No repository-listing request failed. This public report covers 41 public repositories. Issues, PRs, PR activity timelines, security-alert lists, default-head check runs and legacy statuses were paginated. Latest check per application/name and latest legacy context were used; canceled matrix siblings are not counted as failed checks. New means created in the preceding 24 hours; issue stale means no update for >30 days; PR aging means creation >7 days and PR stale means last commit/review/comment/state activity >14 days. Current-snapshot counts are evidence counts, not deduplicated root causes.
Snapshot: 14 new issues, 165 open PRs (128 aging, 0 stale), 99 stale issues, 3 unassigned labeled bugs, 4 failed default-head checks, 608 open security-tool alerts. Automated daily-report issues are included in new-issue counts; CodeQL/Scorecard classifications are not assumed to be exploitable dependency advisories.
Top three hotspots — ranked by unique qualifying finding URL in this snapshot:
- marcusrbrown/extend-vscode — 109: 4 stale issues, 1 main failures, 104 security. Linked finding. Next: prioritize critical/high dependency reachability and reuse existing security-update PRs; diagnose the failed vulnerability gate.
- marcusrbrown/sparkle — 93: 5 stale issues, 14 open prs, 12 aging prs, 74 security. Linked finding. Next: prioritize critical/high dependency reachability and reuse existing security-update PRs; review the oldest dependency queue.
- marcusrbrown/tokentoilet — 77: 1 new, 5 stale issues, 43 open prs, 33 aging prs, 28 security. Linked finding. Next: prioritize critical/high dependency reachability and reuse existing security-update PRs; review the oldest dependency queue.
Repository snapshot and next steps (links are source inventories; unavailable sources are listed separately).
New issues — triage links:
- marcusrbrown/tokentoilet: #1653. Next: triage the issue/report.
- fro-bot/dashboard: #733. Next: triage the issue/report.
- marcusrbrown/panthea: #265. Next: triage the issue/report.
- marcusrbrown/mothership: #163. Next: triage the issue/report.
- marcusrbrown/marcusrbrown.github.io: #487. Next: triage the issue/report.
- bfra-me/renovate-action: #4006. Next: triage the issue/report.
- fro-bot/agent: #1978, #1970. Next: review the linked report or issue; agent#1970 needs approval-boundary investigation.
- fro-bot/space-bus: #226. Next: triage the issue/report.
- bfra-me/works: #5324. Next: triage the issue/report.
- fro-bot/.github: #4070. Next: triage the issue/report.
- marcusrbrown/infra: #1708. Next: triage the issue/report.
- marcusrbrown/.dotfiles: #3026. Next: triage the issue/report.
- marcusrbrown/metacogs: #52. Next: triage the issue/report.
Failed default-head checks — investigate linked logs:
- marcusrbrown/extend-vscode: Pre-Release Validation (vulnerabilities). Next: diagnose the failing gate without lowering thresholds.
- marcusrbrown/marcusrbrown.github.io: Performance Summary. Next: diagnose the failing gate without lowering thresholds.
- marcusrbrown/marcusrbrown.github.io: Performance Audit (mobile). Next: diagnose the failing gate without lowering thresholds.
- marcusrbrown/marcusrbrown.github.io: Performance Audit (desktop). Next: diagnose the failing gate without lowering thresholds.
Open PR activity inventory. All 165 PRs measured; oldest five per repository linked below. Each link gives creation age / inactivity in days; A marks >7-day aging. No PR met the >14-day inactivity threshold. Next: review/rebase oldest work; routine dependency upgrades stay with Renovate. Full queues are linked in the repository table.
Oldest PRs, with creation age and most recent activity
- marcusrbrown/sparkle: #2036 51.9d/0.2d A, #2048 49.4d/1.0d A, #2069 42.0d/1.0d A, #2074 39.0d/1.0d A, #2077 38.0d/1.0d A; 9 additional PRs in linked queue.
- marcusrbrown/tokentoilet: #1552 29.1d/1.0d A, #1559 28.1d/0.1d A, #1567 27.1d/1.0d A, #1573 26.1d/1.0d A, #1579 25.0d/1.0d A; 38 additional PRs in linked queue.
- marcusrbrown/panthea: #237 13.9d/0.1d A, #247 11.4d/1.0d A, #246 11.4d/1.0d A, #252 8.2d/0.1d A, #257 5.1d/0.1d; 3 additional PRs in linked queue.
- marcusrbrown/mothership: #108 46.4d/1.0d A, #111 44.8d/1.0d A, #122 36.2d/0.0d A, #139 22.5d/0.0d A, #155 8.4d/0.0d A; 1 additional PRs in linked queue.
- marcusrbrown/gpt: #2165 214.8d/1.0d A, #2320 192.2d/1.0d A, #2440 168.0d/1.0d A, #2599 130.0d/1.0d A, #2662 114.2d/1.0d A; 11 additional PRs in linked queue.
- marcusrbrown/Presentations: #54 86.3d/1.0d A
- marcusrbrown/marcusrbrown.github.io: #426 38.1d/0.1d A, #430 37.3d/0.1d A, #435 35.9d/0.0d A, #439 32.9d/0.1d A, #440 32.8d/0.1d A; 10 additional PRs in linked queue.
- bfra-me/github-app: #840 135.7d/1.0d A, #843 134.8d/1.0d A, #842 134.8d/1.0d A, #950 50.4d/1.0d A
- marcusrbrown/vbs: #672 111.0d/1.0d A, #671 111.0d/1.0d A, #674 109.0d/1.0d A, #688 100.0d/1.0d A, #693 99.0d/1.0d A; 4 additional PRs in linked queue.
- bfra-me/github-action: #1463 135.7d/1.0d A, #1467 134.8d/1.0d A, #1466 134.8d/1.0d A
- fro-bot/agent: #1982 0.1d/0.0d, #1983 0.0d/0.0d
- marcusrbrown/containers: #723 90.6d/1.0d A, #740 82.6d/1.0d A, #744 75.6d/0.6d A, #830 4.6d/1.0d
- marcusrbrown/marcusrbrown: #1055 113.0d/1.0d A, #1095 100.0d/1.0d A, #1100 99.0d/1.0d A, #1107 95.9d/1.0d A, #1308 2.5d/0.2d
- fro-bot/space-bus: #72 109.8d/0.1d A, #135 87.1d/0.1d A, #177 45.0d/0.1d A, #193 30.6d/0.1d A, #202 22.5d/0.1d A; 1 additional PRs in linked queue.
- bfra-me/ha-addon-repository: #592 49.9d/1.0d A, #600 21.2d/1.0d A, #599 21.2d/1.0d A, #601 20.9d/1.0d A, #602 20.6d/1.0d A
- marcusrbrown/marcusrbrown.com: #605 7.2d/0.2d A, #607 5.2d/0.2d, #606 5.2d/1.0d, #608 1.1d/0.1d
- bfra-me/works: #5149 13.9d/0.8d A, #5245 7.9d/0.8d A, #5277 4.9d/0.8d, #5328 0.1d/0.1d
- bfra-me/renovate-config: #1383 231.2d/1.0d A
- fro-bot/.github: #4069 2.0d/1.0d
- marcusrbrown/opencode-copilot-delegate: #135 166.2d/1.0d A, #241 128.5d/1.0d A, #278 114.2d/0.0d A, #332 89.5d/1.0d A, #335 88.5d/1.0d A; 1 additional PRs in linked queue.
- marcusrbrown/gala-chain-code: #65 973.5d/1.0d A, #68 973.4d/1.0d A, #72 968.4d/1.0d A
- marcusrbrown/infra: #1705 0.7d/0.1d
- marcusrbrown/encode-2024-q3-grp14-jobseeker-ai: #22 744.1d/1.0d A, #27 739.8d/1.0d A
- marcusrbrown/ha-config: #777 168.1d/1.0d A, #896 54.2d/1.0d A
Stale issues and unassigned bugs
Next for every stale issue: confirm relevance and request a concrete next step; assign each linked unassigned bug.
- marcusrbrown/extend-vscode: #319 (stale 437.5d), #318 (stale 361.9d), #317 (stale 437.5d), #142 (stale 868.9d)
- marcusrbrown/sparkle: #2035 (stale 52.0d), #2032 (stale 52.1d), #2025 (stale 52.3d), #2023 (stale 52.3d), #876 (stale 387.0d)
- marcusrbrown/tokentoilet: #1520 (stale 38.1d), #1519 (stale 38.1d), #1518 (stale 38.1d), #1517 (stale 38.1d), #1171 (stale 130.3d)
- fro-bot/dashboard: #112 (stale 125.1d)
- marcusrbrown/mothership: #128 (stale 31.3d), #19 (stale 102.0d)
- marcusrbrown/gpt: #2604 (stale 73.0d), #2524 (stale 144.0d), #2519 (stale 145.0d), #2505 (stale 75.0d), #2175 (stale 214.6d), #2174 (stale 214.6d), #2173 (stale 214.6d), #2172 (stale 214.6d), #2171 (stale 214.6d), #2170 (stale 214.6d), #2169 (stale 214.6d), #2168 (stale 214.6d), #2162 (stale 214.6d), #2146 (stale 217.3d), #2144 (stale 217.3d), #2143 (stale 217.3d), #2142 (stale 217.3d), #2141 (stale 217.3d), #2140 (stale 217.3d)
- marcusrbrown/marcusrbrown.github.io: #431 (stale 37.1d), #414 (stale 42.1d), #334 (stale 56.9d)
- bfra-me/github-app: #767 (stale 217.0d), #752 (stale 50.4d)
- marcusrbrown/vbs: #755 (stale 30.1d), #694 (stale 99.0d), #676 (stale 40.1d), #675 (stale 109.0d), #670 (stale 111.0d), #657 (stale 119.0d), #656 (stale 114.0d), #161 (stale 437.3d), #160 (stale 437.3d), #159 (stale 437.3d), #158 (stale 437.3d), #157 (stale 437.3d), #155 (stale 442.9d), #154 (stale 442.9d), #153 (stale 442.9d), #152 (stale 442.9d), #150 (stale 382.9d)
- bfra-me/renovate-action: #3842 (stale 34.1d), #3835 (stale 35.2d)
- bfra-me/github-action: #1611 (stale 41.4d), #1380 (stale 229.2d), #1379 (stale 50.4d)
- marcusrbrown/marcusrbrown: #1087 (stale 102.0d), #1056 (stale 31.0d), #1039 (stale 31.0d), #925 (stale 158.3d)
- bfra-me/.github: #2788 (stale 34.1d), #2546 (stale 74.9d), #2545 (stale 74.9d)
- fro-bot/space-bus: #81 (stale 109.3d), #63 (stale 110.3d)
- bfra-me/ha-addon-repository: #569 (stale 57.0d, unassigned bug)
- marcusrbrown/renovate-config: #1417 (stale 124.5d), #1111 (stale 168.5d), #1096 (stale 233.8d), #1079 (stale 240.8d), #1068 (stale 247.8d)
- marcusrbrown/marcusrbrown.com: #517 (stale 81.0d, unassigned bug), #465 (stale 113.0d, unassigned bug), #411 (stale 167.0d)
- bfra-me/renovate-config: #1395 (stale 227.5d), #1381 (stale 231.2d)
- marcusrbrown/opencode-copilot-delegate: #38 (stale 185.3d)
- marcusrbrown/dev-like: #142 (stale 30.9d), #131 (stale 37.9d), #122 (stale 44.9d), #114 (stale 51.9d), #100 (stale 58.9d)
- marcusrbrown/gala-chain-code: #6 (stale 968.4d)
- marcusrbrown/.dotfiles: #2633 (stale 41.6d), #1924 (stale 125.1d)
- marcusrbrown/encode-2024-q3-grp14-jobseeker-ai: #1 (stale 737.4d)
- fro-bot/systematic: #3 (stale 124.6d), #1 (stale 234.1d)
- marcusrbrown/esphome.life: #298 (stale 322.3d), #8 (stale 1228.9d)
- fro-bot/fro-bot.github.io: #1 (stale 234.1d)
- marcusrbrown/.github: #37 (stale 1180.1d)
Security alert inventory and unavailable sources
Alert lists are linked rather than copied. Prioritize critical/high reachability; match existing PRs before remediation. Code-scanning tool classifications include Scorecard findings.
| Repository | Accessible alert inventory | Unavailable / incomplete source |
|---|---|---|
| marcusrbrown/extend-vscode | dependabot: 3 critical, 39 high, 14 low, 48 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/sparkle | dependabot: 2 critical, 27 high, 14 low, 31 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/tokentoilet | dependabot: 2 critical, 8 high, 6 low, 12 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| fro-bot/dashboard | code: 46 high, 2 low, 1 medium | None |
| marcusrbrown/panthea | dependabot: 5 critical, 23 high, 13 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/mothership | dependabot: 5 high, 1 low, 5 medium; code: 15 high, 1 low, 11 medium, 1 note | secrets HTTP 404: not available/not enabled |
| marcusrbrown/gpt | dependabot: 1 low, 8 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/Presentations | dependabot: 2 critical, 18 high, 1 low, 20 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/marcusrbrown.github.io | dependabot: 6 high, 2 low, 9 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| bfra-me/github-app | dependabot: 2 critical, 7 high, 8 low, 15 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/vbs | dependabot: 3 low, 4 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| bfra-me/renovate-action | dependabot: 11 high, 3 low, 10 medium; code: 3 high, 1 low, 1 medium | secrets HTTP 404: not available/not enabled |
| bfra-me/github-action | dependabot: 2 critical, 3 high, 5 low, 8 medium; code: 5 high, 1 low, 1 medium | secrets HTTP 404: not available/not enabled |
| fro-bot/agent | code: 6 high, 4 low, 8 medium, 1 note, 1 warning | None |
| marcusrbrown/containers | dependabot: 2 high; code: 6 high, 3 medium, 3 note, 4 warning | secrets HTTP 404: not available/not enabled |
| marcusrbrown/marcusrbrown | dependabot: 2 high, 4 low, 4 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| bfra-me/.github | dependabot: 3 low, 2 medium; code: 3 high, 1 low, 5 medium | secrets HTTP 404: not available/not enabled |
| fro-bot/space-bus | dependabot: 2 high, 2 medium; code: 1 high, 1 low, 2 medium | None |
| bfra-me/ha-addon-repository | code: 3 high, 1 low, 2 medium | secrets HTTP 404: not available/not enabled |
| marcusrbrown/renovate-config | dependabot: 1 low; code: 3 high, 1 low, 2 medium | secrets HTTP 404: not available/not enabled |
| marcusrbrown/marcusrbrown.com | dependabot: 1 low, 2 medium | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/systematic | code: 2 high, 1 low, 3 medium, 3 note, 1 warning | secrets HTTP 404: not available/not enabled |
| bfra-me/works | code: 2 high, 1 low, 1 medium | secrets HTTP 404: not available/not enabled |
| bfra-me/renovate-config | code: 2 high, 1 low, 2 medium | secrets HTTP 404: not available/not enabled |
| fro-bot/.github | code: 4 high, 1 low, 1 medium | None |
| marcusrbrown/opencode-copilot-delegate | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/dev-like | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/gala-chain-code | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 403: access denied; secrets HTTP 404: not available/not enabled; default-head CI empty |
| marcusrbrown/infra | code: 2 high | secrets HTTP 404: not available/not enabled |
| marcusrbrown/.dotfiles | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/encode-2024-q3-grp14-jobseeker-ai | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 403: access denied; secrets HTTP 404: not available/not enabled; default-head CI empty |
| fro-bot/systematic | No open alert in successfully read sources | code HTTP 404: not available/not enabled |
| marcusrbrown/esphome.life | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/ha-config | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| fro-bot/fro-bot.github.io | No open alert in successfully read sources | code HTTP 404: not available/not enabled |
| marcusrbrown/.github | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| marcusrbrown/metacogs | No open alert in successfully read sources | code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled |
| fro-bot/tokentoilet | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 403: access denied; default-head CI empty |
| marcusrbrown/copiloting | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 403: access denied; secrets HTTP 404: not available/not enabled |
| marcusrbrown/cortexkit_anthropic-auth | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 403: access denied; secrets HTTP 404: not available/not enabled |
| pro-actions/peter-murray_workflow-application-token-action | No open alert in successfully read sources | dependabot HTTP 403: access denied; code HTTP 404: not available/not enabled; secrets HTTP 404: not available/not enabled; default-head CI empty |
Empty default-head evidence cannot certify CI health. A 404 does not establish zero alerts; confirm feature enablement/access before rescanning. Historical check failures superseded by a later same-name success were excluded: the survey conflict was followed by successful fresh survey/ingest. Do not replay the stale handoff or weaken its conflict check.
Activity
fro-bot commentedon Oct 30, 2026
Remediation handoff — 2026-10-30 (UTC)
Run 41006531967, main
c30d0c1c6aa92ee0787a08371a54d0003ebd7582. Categories 1–4 completed; no eligible minimal fix, so no branch, commit or PR was created. Working tree is clean. This comment is the handoff for the subsequent daily-report pass.Run Summary
Errored PRs
No failing check runs or legacy statuses on either open PR. Both are routine Renovate updates touching workflows; neither branch was checked out or executed. No security-update PR needs repair.
Security
Security sources were available: GitHub Dependabot, GitHub CodeQL/Scorecard alerts, and the npm advisory service queried by
bun audit. The latter returned 8 moderate and 3 low findings across@humanfs/node,@vitest/mocker,fast-uri,katexandqs; routine updates remain Renovate-owned. Scorecard #9 aggregates those findings as high, which is not their individual advisory severity. No latest-version comparison or major-drift survey was performed.Control-Plane Integrity
Production imports passed under Node 24 for
scripts/*.ts,packages/core/src/*.tsandpackages/test-kit/src/*.ts; lint also passed erasable-syntax checks. App-token scope contract tests passed. The private-leak workflow intentionally uses a fresh, cache-free, scripts-disabled install instead of shared setup; its trusted-main checkout, step-scoped resolver credential and fail-closed legacy status remain intact. Wiki authority still requires the trusted author plus same-repositorydatahead. Live main protection enforces admins, strict required checks, code-owner/last-push approval, and disallows force pushes/deletion. Both data rulesets are active; deletion protection has no bypass.Needs Human Attention
packages/wiki-write-core/src/markdown-links.ts:7,37repeatedly searches ambiguous caller-controlled lines. Safe remediation needs bounded/linear extraction preserving titles, image exclusion and code-region restart behavior, regression tests inscripts/markdown-links.test.tsandpackages/wiki-write-core/src/regex-redos-regressions.test.ts, and regenerated package dist. That exceeds this pass's mechanical-fix scope. Verify old-parser regression failure, bootstrap/types/lint/tests, dist consistency, mutation guards and fresh CodeQL. Do not suppress alerts or truncate input to hide the issue..github/workflows/scorecard.yaml:19declaresread-all; its job has explicit SARIF/OIDC write scopes. Review effective permissions before replacing the default with explicit reads; verify actionlint and an actual Scorecard run. No failing workflow bug justified editing it in this run. Scorecard #1 requests two reviewers rather than the configured one; that is an operator policy decision, not permission to modify branch protection.Relevant prior learnings applied:
docs/solutions/runtime-errors/node-strip-only-typescript-2026-04-18.md,docs/solutions/best-practices/repo-wide-app-token-scope-contract-2026-10-10.md, anddocs/solutions/security-issues/wiki-authority-guard-branch-name-spoofable-2026-10-10.md. Existing findings were reused; no duplicate issue or prohibited knowledge/metadata write was made.fro-bot commentedon Oct 30, 2026
Superseded by Daily Fro Bot Report — 2026-10-30 (UTC).
Run Summary