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
Confirmed: the false attribution is still on main's current HEAD.
gh api repos/Alex1990/tiny-oss/commits/35c731221ef4c177548344f74e0a81e7fd9ed1cc → author tiny-oss loop <loop@users.noreply.github.com>, committer Alex Chao <Alex1990@users.noreply.github.com>. That commit is the rebase-merged form of PR docs: add conventional status badges to the READMEs #55 (loop/54-readme-badges), and it is main's HEAD.
gh api users/loop → {"id":1519971,"login":"loop","type":"User"} — a real, unrelated account, so GitHub links the commit to it.
PR chore(ci): run the Azure signer oracle in CI #50's commit 8ec1b1e… carries the same author email and gh_author: loop; that is the instance the title mentions. The PR object is already correct (app/github-actions) — only the local commit identity is wrong.
Cause is unchanged since #52 (scripts/loop/shared/agent.mjs, agentEnv()):
This is loop work now.docs/agents/ops.md ("Quick rules") and .github/CODEOWNERS explicitly allow host changes (scripts/loop/**) to arrive as loop PRs; the owner's required review is the checker, so the loop is never both maker and checker. #52's cannot-handle predates that norm, so this goes to ready-for-agent rather than needs-triage.
For the implementing stage
In agentEnv(), use the bot GitHub already uses for the PR: name github-actions[bot], email 41898282+github-actions[bot]@users.noreply.github.com (gh api 'users/github-actions%5Bbot%5D' → id 41898282, type Bot). Update the git identity row in scripts/loop/README.md. A non-existent tiny-oss-loop@users.noreply.github.com is the alternative if a distinct identity is preferred.
Commit as chore(loop): … — this is host maintenance, not package behaviour, so it must not use fix/feat or enter CHANGELOG.md.
Optional bootstrap: override GIT_AUTHOR_NAME/GIT_AUTHOR_EMAIL inline when committing the fix, so this PR's own commit already carries the corrected author.
No .github/workflows/** change is involved, so the job token's missing workflows permission is not a blocker.
Caveat: 8ec1b1e, 4d2735a/35c7312 are already in history; a fix only affects future commits (re-attribution would need a force-push the ruleset forbids).
Loop feature — fixed the false commit attribution (#52, #56).
The cause was agentEnv() in scripts/loop/shared/agent.mjs hard-coding GIT_AUTHOR_EMAIL/GIT_COMMITTER_EMAIL to loop@users.noreply.github.com under auto. That address belongs to the real, unrelated user @loop (id 1519971), so every loop commit — 8ec1b1e (PR #50, the instance in the title) and 4d2735a/35c7312 (PR #55, the commit in the body) — was attributed to a stranger.
It now uses GitHub Actions' own bot, github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> — the same identity the host's PR comes from — and the git identity row in scripts/loop/README.md documents it. A PR is open on loop/56-git-identity as a chore(loop) change; no workflow file is touched.
Caveat: only future commits change. The historical commits are already on main, and re-attributing them would need a force-push the Main branch ruleset forbids.
Activity
github-actions commentedon Sep 17, 2026
Loop triage —
bug/ready-for-agent(confidence: high)Confirmed: the false attribution is still on
main's current HEAD.gh api repos/Alex1990/tiny-oss/commits/35c731221ef4c177548344f74e0a81e7fd9ed1cc→ authortiny-oss loop <loop@users.noreply.github.com>, committerAlex Chao <Alex1990@users.noreply.github.com>. That commit is the rebase-merged form of PR docs: add conventional status badges to the READMEs #55 (loop/54-readme-badges), and it ismain's HEAD.gh api users/loop→{"id":1519971,"login":"loop","type":"User"}— a real, unrelated account, so GitHub links the commit to it.8ec1b1e…carries the same author email andgh_author: loop; that is the instance the title mentions. The PR object is already correct (app/github-actions) — only the local commit identity is wrong.Cause is unchanged since #52 (
scripts/loop/shared/agent.mjs,agentEnv()):This is loop work now.
docs/agents/ops.md("Quick rules") and.github/CODEOWNERSexplicitly allow host changes (scripts/loop/**) to arrive as loop PRs; the owner's required review is the checker, so the loop is never both maker and checker. #52'scannot-handlepredates that norm, so this goes toready-for-agentrather thanneeds-triage.For the implementing stage
agentEnv(), use the bot GitHub already uses for the PR: namegithub-actions[bot], email41898282+github-actions[bot]@users.noreply.github.com(gh api 'users/github-actions%5Bbot%5D'→ id41898282, typeBot). Update thegit identityrow inscripts/loop/README.md. A non-existenttiny-oss-loop@users.noreply.github.comis the alternative if a distinct identity is preferred.chore(loop): …— this is host maintenance, not package behaviour, so it must not usefix/feator enterCHANGELOG.md.GIT_AUTHOR_NAME/GIT_AUTHOR_EMAILinline when committing the fix, so this PR's own commit already carries the corrected author..github/workflows/**change is involved, so the job token's missingworkflowspermission is not a blocker.Caveat:
8ec1b1e,4d2735a/35c7312are already in history; a fix only affects future commits (re-attribution would need a force-push the ruleset forbids).github-actions commentedon Sep 17, 2026
Loop feature — fixed the false commit attribution (#52, #56).
The cause was
agentEnv()inscripts/loop/shared/agent.mjshard-codingGIT_AUTHOR_EMAIL/GIT_COMMITTER_EMAILtoloop@users.noreply.github.comunderauto. That address belongs to the real, unrelated user @loop (id 1519971), so every loop commit —8ec1b1e(PR #50, the instance in the title) and4d2735a/35c7312(PR #55, the commit in the body) — was attributed to a stranger.It now uses GitHub Actions' own bot,
github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>— the same identity the host's PR comes from — and thegit identityrow inscripts/loop/README.mddocuments it. A PR is open onloop/56-git-identityas achore(loop)change; no workflow file is touched.Caveat: only future commits change. The historical commits are already on
main, and re-attributing them would need a force-push theMain branchruleset forbids.chore(loop): attribute loop commits to github-actions[bot]