sync: reconcile 8 unpushed local commits, land browser-bridge coverage honesty, unblock the CodeQL bump - #92
sync: reconcile 8 unpushed local commits, land browser-bridge coverage honesty, unblock the CodeQL bump#92intellegix wants to merge 3 commits into
Conversation
… LF-normalised Brings origin up to date with work that had been sitting in eight unpushed local commits, plus today's browser-bridge fix. Deliberately excludes two things those local commits carried. Content - council-automation: the 2026-08-22 session/auth/CDP-wedge fixes to council_browser, council_query, extended_research_runner, refresh_session and session_keeper, plus cdp_health.py and three new test modules. - commands/setup-autonomous-triage.md and patterns/AUTONOMOUS_TRIAGE_PATTERN.md. - browser-bridge: lib/browser-discovery.js (new), the coverage envelope and navigate-retarget disclosure in server.js, the deferred session_cleanup in lib/websocket-bridge.js, sessionCleanupGrace in lib/config.js, and test-coverage-honesty.js (18 tests, all passing). Excluded on purpose - Ten .bak-2026-08-22-* snapshots (~14k lines of stale duplicates). Every one still exists on disk in ~/.claude, git already holds the prior versions, and a public repo does not need more unreviewed copies of old code. - The CRLF flip. Local commit 0ec3912 rewrote 211 of 218 tracked text files from LF to CRLF without changing one line of content. Verified 2026-09-10: every text blob on origin/master is LF-only, so these files are staged as LF and the diff is content only. .gitattributes now pins that so the next automated sweep cannot repeat it. Also: .gitignore gains a **/__pycache__/ catch-all — the per-directory rules kept missing each new test package. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F7yhQQARuYRqGTdJJZWvZH
…oup it Supersedes Dependabot #87, #88 and #90, none of which could pass CI on its own. github/codeql-action/{init,autobuild,analyze,upload-sarif} are one action and refuse to run at mixed versions. Dependabot, with no group configured, opened a separate PR per sub-action on 2026-08-31, so each PR left the workflow half bumped and CodeQL failed with "Loaded a configuration file for version '4.37.9', but running version '4.37.6'" (run 33384590794). #89 passed only because it touches scorecard.yml, whose upload-sarif step runs alone. All four references move to cdf488f595d80d6e07e03d4674febd5ab45fa938 together. That SHA was verified against the upstream repository, not the PR title: the annotated tag v4.37.9 in github/codeql-action resolves to it, and the SHA being replaced resolves to v4.37.6. The groups block stops the same split happening next release. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F7yhQQARuYRqGTdJJZWvZH
|
Austin, this one needs you for two separate reasons and the second is the real one. First, mechanically: master requires one approving review, so nothing here can merge without you. That is branch protection doing its job, not a problem. Second, and this is the decision: merging this publishes about twenty nine hundred more lines of your agent tooling into a repository that is public, and whether it should be public at all is a question you have never actually decided. I did not decide it for you and I did not change anything about it. Everything in here scans clean, no credentials anywhere, but that is a different question from whether you want more of your setup on the open internet. There is also something already public that you should know about before you answer, and it is in the handoff: two commits that are already on origin carry your name, your role, your three email addresses, and one line pointing at the folder path where your API keys live. No key values, just the path. It has been reachable since February. I did not touch it, because rewriting public history is yours to call and doing it quietly would be worse than leaving it. So the ask is: do you want this merged, and separately, do you want that repository to stay public. |
Findings, corrections to the brief's unverified hypotheses, and a claims table marking every material claim CONFIRMED or HYPOTHESIS with its evidence. The public-history PII finding is stated but its literal path is not: that would put a fresh pointer to the API-keys directory into a public repo. The path is in a private note at ~/.claude/SECURITY-FINDING-2026-09-10-public-history-pii.md. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01F7yhQQARuYRqGTdJJZWvZH
Reconciles the toolkit repo with the machine.
origin/masterwas 25 commits ahead of local and local had 8 commitsoriginhad never seen; this lands the content of those 8, plus today's browser-bridge fix, plus the dependency work that was stuck.What is in here
council-automation (2026-08-22 work, never pushed) — the session/auth/CDP-wedge fixes to
council_browser.py,council_query.py,extended_research_runner.py,refresh_session.pyandsession_keeper.py, pluscdp_health.pyand three new test modules.browser-bridge (today) — the fix for the 2026-09-10 incident where
browser_get_tabsreturned a bare list from the one browser it is connected to, with nothing saying a second Chrome existed. An agent read that silence as absence and reported a confident false negative.lib/browser-discovery.js(new) — detect-and-declare browser census. It never attaches to another browser; it only counts them.server.js—browser_get_tabsnow returns acoverageenvelope (status,negativeEvidence,observedCount/detectedCount,unobserved[]with the CDP endpoint to try) and prepends aRESULT STATUS: PARTIAL — NEGATIVE EVIDENCE UNSAFEbanner when a negative conclusion would be invalid.browser_navigatenow reportsrequestedTabId/retargeted/retargetReasoninstead of silently opening a different tab and returningsuccess: true.lib/websocket-bridge.js+lib/config.js— a relay disconnect used to close that session's tabs on the same tick. Measured inmcp-debug.log: a lane's server exited at 12:43:06 and its replacement connected 2.3s later, so the cleanup destroyed a tab the caller was still using. Cleanup is now deferred 45s and cancelled if the same project reconnects.test-coverage-honesty.js— 18 tests, all passing. They fail against the pre-fix code.No tool was added, renamed or re-described, and no tool description changed — a tool-list change invalidates the prompt cache for every lane on this machine.
Dependencies — all four
github/codeql-actionreferences move tov4.37.9in one commit, and Dependabot gets a group so it stops splitting them.Two things deliberately left out
The CRLF flip. Local commit
0ec3912rewrote 211 of 218 tracked text files from LF to CRLF without changing one line of content (+61050/-61050). Every text blob onorigin/masteris LF-only — verified across all 218. These files are staged as LF, so the diff above is content only. The new.gitattributespins that so the next automated sweep cannot repeat it.Ten
.bak-2026-08-22-*snapshots (~14k lines). Every one still exists on disk under~/.claude, git already holds the prior versions of those files, and a public repo does not need more unreviewed copies of old code.Verification
github/codeql-actionSHAcdf488f5…verified against the upstream repository — the annotated tagv4.37.9resolves to it, and the SHA being replaced resolves tov4.37.6. Not taken from the PR title.npm test, 60/60 across the existing handler/context/reliability suites.automated-loop,health-checkandmcp-servers/minecraftonly, none of which this changes.🤖 Generated with Claude Code
https://claude.ai/code/session_01F7yhQQARuYRqGTdJJZWvZH