[NO QA] Use shared claude-review-toolkit composite action#90324
Conversation
Migrate the PR review workflow to consume the shared Claude review toolkit hosted in Expensify/GitHub-Actions. The toolkit centralizes the addPrReaction / createInlineComment scripts, the allowed-rules extractor, and the canonical code-review-output JSON schema previously duplicated in this repo. App keeps its security gate by opting in via enforce_allowed_rules; the toolkit exports ALLOWED_RULES_FILE automatically for downstream steps. The action SHA pin is left as a placeholder to be stamped after the GitHub-Actions PR merges.
|
@linhvovan29546 Please copy/paste the Reviewer Checklist from here into a new comment on this PR and complete it. If you have the K2 extension, you can simply click: [this button] |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 999a8fdeb8
ℹ️ About Codex in GitHub
Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".
|
PR is ready for review after Github-Actions blocker was merged. CC @Julesssss @rlinoz |
PR Author Checklist
Screenshots/VideosAndroid: NativeAndroid: mWeb ChromeiOS: NativeiOS: mWeb SafariMacOS: Chrome / Safari |
Julesssss
left a comment
There was a problem hiding this comment.
Same improvement to Web-E working well 👍
Reviewer Checklist
Screenshots/VideosAndroid: HybridAppAndroid: mWeb ChromeiOS: HybridAppiOS: mWeb SafariMacOS: Chrome / Safari |
|
✋ This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release. |
|
🚀 Deployed to staging by https://github.com/Julesssss in version: 9.3.79-1 🚀
Bundle Size Analysis (Sentry): |
|
🚀 Deployed to production by https://github.com/roryabraham in version: 9.3.79-4 🚀
|
Explanation of Change
Migrate the Claude PR review workflow to consume the shared
claude-review-toolkitcomposite action hosted inExpensify/GitHub-Actions. The toolkit centralizes theaddPrReaction.sh/createInlineComment.shscripts, the allowed-rules extractor, and the canonicalcode-review-output.jsonschema that were previously duplicated in this repo.App keeps its existing security gate by opting in via
enforce_allowed_rules: 'true'; the toolkit then exportsALLOWED_RULES_FILEautomatically for downstream steps. No steady-state behavior change.The action pin currently uses a placeholder string (
CLAUDE_REVIEW_TOOLKIT_SHA_PLACEHOLDER) and will be stamped with the real SHA once the correspondingExpensify/GitHub-ActionsPR merges.Fixed Issues
$ https://github.com/Expensify/Expensify/issues/635397
PROPOSAL:
Tests
N/A - this is CI infrastructure with no user-facing behavior change. Validation happens via the workflow itself running on this PR (will only fully validate once the toolkit SHA is stamped).
Offline tests
N/A - CI infrastructure change; doesn't affect runtime offline behavior.
QA Steps
@Julesssss and @kacper-mikolajczak will check out some AI Reviewer workflow runs
PR Author Checklist
### Fixed Issuessection aboveTestssectionOffline stepssectionQA stepssectiontoggleReportand notonIconClick)src/languages/*files and using the translation methodSTYLE.md) were followedAvatar, I verified the components usingAvatarare working as expected)StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))npm run compress-svg)Avataris modified, I verified thatAvataris working as expected in all cases)Designlabel and/or tagged@Expensify/designso the design team can review the changes.ScrollViewcomponent to make it scrollable when more elements are added to the page.mainbranch was merged into this PR after a review, I tested again and verified the outcome was still expected according to theTeststeps.Screenshots/Videos
Android: Native
Android: mWeb Chrome
iOS: Native
iOS: mWeb Safari
MacOS: Chrome / Safari
cc @Julesssss