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
Commit 7145556 ("chore(security): remove internal automation from public repo") deleted .github/workflows/agent-dispatch.yml, .github/workflows/release.yml, scripts/release.sh, the internal CLAUDE.md, and public/CODEX_ACCESSIBILITY_REVIEW.md from HEAD, and added them to .gitignore so they can't be re-added by accident. Good instinct — but deleting a file in a new commit does not remove it from git history, and this is a public repo, so anyone can still git show 7145556^:scripts/release.sh (or clone + walk history) and get the full prior content.
I ran a scan across the entire history (git log --all -p) for literal credential patterns (GitHub PATs, Anthropic keys, Google API keys, Slack tokens, PEM blocks) and found no leaked secret values — that's the important good news, the actual token values were never committed.
What is still permanently visible in history, though:
Internal hostnames: m4mini.tailbaeb43.ts.net:8090 (a Tailscale tailnet MagicDNS name) and tracker.scottfegette.com, from the old scripts/release.sh / release.yml.
The tracker API's auth design: bearer-less, token passed as a URL query parameter (?token=${TRACKER_API_TOKEN}) — visible in plaintext in scripts/release.sh history and agent-dispatch.yml history. Tokens-in-URLs are an anti-pattern (they end up in proxy/server access logs), independent of whether the token value itself leaked.
The self-hosted runner setup and Apple Developer Team ID (MX6K4V7DP6), also from history + current project.yml. Team ID isn't secret (it's embedded in every signed binary anyway), but it does confirm which real-world Apple Developer account this project maps to.
If the tailnet hostname / tracker domain shouldn't be public long-term, the only real fix is a history rewrite (git filter-repo) + force-push + telling any existing clones/forks to re-clone — that's a disruptive, irreversible-feeling operation for a repo with public forks, so flagging rather than doing it.
The token-in-query-param pattern lives in the tracker API itself (bmw-dev-stack), not in radcap — worth routing that fix cross-repo per the CLAUDE.md routing rule ("infra/backend work → sfegette/bmw-dev-stack").
I did not rewrite history or rotate any secrets — both are effectively irreversible/high-blast-radius and need your explicit go-ahead.
What I found
Commit 7145556 ("chore(security): remove internal automation from public repo") deleted
.github/workflows/agent-dispatch.yml,.github/workflows/release.yml,scripts/release.sh, the internalCLAUDE.md, andpublic/CODEX_ACCESSIBILITY_REVIEW.mdfrom HEAD, and added them to.gitignoreso they can't be re-added by accident. Good instinct — but deleting a file in a new commit does not remove it from git history, and this is a public repo, so anyone can stillgit show 7145556^:scripts/release.sh(or clone + walk history) and get the full prior content.I ran a scan across the entire history (
git log --all -p) for literal credential patterns (GitHub PATs, Anthropic keys, Google API keys, Slack tokens, PEM blocks) and found no leaked secret values — that's the important good news, the actual token values were never committed.What is still permanently visible in history, though:
m4mini.tailbaeb43.ts.net:8090(a Tailscale tailnet MagicDNS name) andtracker.scottfegette.com, from the oldscripts/release.sh/release.yml.?token=${TRACKER_API_TOKEN}) — visible in plaintext inscripts/release.shhistory andagent-dispatch.ymlhistory. Tokens-in-URLs are an anti-pattern (they end up in proxy/server access logs), independent of whether the token value itself leaked.MX6K4V7DP6), also from history + currentproject.yml. Team ID isn't secret (it's embedded in every signed binary anyway), but it does confirm which real-world Apple Developer account this project maps to.Suggested fix (not applied)
TRACKER_API_TOKENandBRILLIANT_WEB_PATanyway, since their names and usage pattern are now permanently public.git filter-repo) + force-push + telling any existing clones/forks to re-clone — that's a disruptive, irreversible-feeling operation for a repo with public forks, so flagging rather than doing it.I did not rewrite history or rotate any secrets — both are effectively irreversible/high-blast-radius and need your explicit go-ahead.