feat(cloud-agent): commit as yourself instead of the Kilo bot#3638
feat(cloud-agent): commit as yourself instead of the Kilo bot#3638eshurakov wants to merge 4 commits into
Conversation
Code Review SummaryStatus: 1 Issue Remaining (Acknowledged, Deferred) | Recommendation: Merge Executive SummaryThe new commit ( Changes in latest commit (incremental review)
Carried-forward issue (unchanged file, deferred by author)
Files Reviewed (59 files)
Reviewed by claude-4.6-sonnet-20260217 · 528,871 tokens Review guidance: REVIEW.md from base branch |
fa16fb9 to
e9f66a2
Compare
Allow eligible Cloud Agent work to use connected GitHub identities while retaining installation fallback and bot co-authoring. Keep persisted user credentials in Worker-owned keyed envelopes and route disconnect revocation through the established internal API boundary. Surface contextual identity setup guidance in Cloud Agent and identify revocation requests so disconnect succeeds against GitHub.
4c663ac to
0d905fb
Compare
Removed commented lines for GitHub user-attributed Cloud Agent actions.
jeanduplessis
left a comment
There was a problem hiding this comment.
Reviewed the final combined diff. Solid security posture overall: the webhook signature is verified before the new github_app_authorization revocation branch, timingSafeEqual guards the length/empty-secret bypass, the AAD-bound RSA-AES envelope matches exactly between Web encrypt and Worker decrypt/refresh, both unique indexes back the upsert, the co-author hook + auto-commit trailer are idempotent, and GDPR soft-delete now covers user_github_app_tokens with a test.
One concrete edge-case bug (inline): disconnecting an authorization with expired/dead tokens returns 502 permanently and never removes the local row, leaving the user unable to disconnect or reconnect.
Two non-blocking suggestions:
refreshAuthorizationForDisconnectduplicates ~50 lines ofrefreshAuthorization(already acknowledged/deferred — fine to leave).sanitizeGitOutputis duplicated across thesrcandwrapperbundles and can silently drift if a new credential-username scheme is added to only one regex; consider sharing it.
Summary
git-token-service: Web encrypts new authorizations with a public-key envelope, while the Worker owns private-key decryption, refresh, disconnect, revocation, and serialized token mutation.Verification
Visual Changes
Tip when you pick a repo and personal account is not connected
Integration
Bot is a co-author