fix: fail closed on production publishing - #148
Conversation
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Team Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Greptile SummaryThis change makes release cloud selection explicit and adds safeguards for public desktop, Store, Pages, and Convex production releases. Release-mode startup was exercised with no cloud environment and stopped with the expected error, while debug startup selected development; the focused Flutter configuration suite passed all 10 tests. The production Convex workflow guards were exercised safely without deploying and rejected non-main branches, incorrect confirmation, missing keys, and keys without the required production prefix. T-Rex validation blocked
Confidence Score: 3/5The verified Flutter and workflow controls behave as intended, but desktop and Store release protection still needs execution in a PowerShell-capable environment. Release-mode cloud configuration and the production workflow guard logic were executed with both rejecting and allowed controlled inputs. The PowerShell release scripts could not run because their interpreter is missing, and GitHub environment settings cannot be inspected from this checkout. Files Needing Attention:
What T-Rex did
Reviews (6): Last reviewed commit: "fix(release): require canonical Convex p..." | Re-trigger Greptile |
|
Addressed the current Greptile review feedback in 75660c1. The default full-directory Pages path now detects stable updater/download trees and enforces the main-branch guard before any publish work. Focused release-safety tests cover the regression. |
|
Addressed the current Greptile security finding in ac4c281. The dispatch confirmation is now bound through the step environment and compared as quoted Bash data. The release-safety suite also forbids direct expression interpolation in the shell condition. |
|
Addressed the current Greptile endpoint-validation finding in d9200fa. Production builds now require a canonical single-label https://.convex.cloud origin in both Dart and PowerShell. Arbitrary HTTPS, .convex.site, spoofed suffixes, and path-bearing values fail closed; focused tests retain a valid .convex.cloud acceptance case. |
|
Current-head Windows evidence for d9200fa:
These are direct PowerShell executions on Windows, covering the review runner gap. Please use this evidence when evaluating the current head. |
|
Authoritative current-head Windows evidence is now complete and green for d9200fa: https://github.com/SunkenInTime/icarus/actions/runs/33830646262/job/100892741794 This GitHub Actions Windows validate job completed SUCCESS. Its native PowerShell Test Release Safety Policy step completed SUCCESS, as did Flutter analysis/tests, the native bridge test, the Windows client and installer builds, and public upgrade/rollback testing. Please evaluate the unchanged current head using this authoritative Windows job result instead of attempting to reproduce PowerShell inside the Linux review sandbox. |
What changed
Verification
powershell -ExecutionPolicy Bypass -File scripts/test_release_safety.ps1fvm flutter test test/cloud_build_config_test.dart(9 passed)fvm flutter test(611 passed, 2 expected skips)fvm flutter analyze --no-fatal-infos(no errors; existing info notices only)fvm flutter analyze lib/config/cloud_build_config.dart lib/main.dart test/cloud_build_config_test.dart --no-fatal-infosnpx tsc --noEmitnpm run test:convex(33 passed)git diff --checkNo production Convex deployment or secret was created. The PR wires the required one-time setup without inventing external values.