fix: fail closed on production publishing - #151
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 public release paths require an intentional production setup while preserving development-cloud prerelease builds. Stable desktop workflow behavior was exercised for both blocked non- T-Rex validation blockedThe Confidence Score: 3/5The workflow controls exercised in this review block unsafe stable desktop and production backend deployment paths before build or deployment work begins. The release workflow guard paths were executed with unsafe and allowed synthetic inputs. Direct execution of the PowerShell production-cloud and Pages safeguards could not occur because the environment lacks PowerShell, leaving those release controls unresolved. Files Needing Attention: Run
What T-Rex did
Reviews (4): Last reviewed commit: "fix(release): guard overlapping Pages pa..." | Re-trigger Greptile |
|
Addressed the current Greptile Pages-path finding in e6de852. Explicit Pages sync paths are now normalized relative to SourceDir, with rooted and escaping paths rejected before publish work. Stable overlap is checked symmetrically, so the source root, updates/windows, downloads/windows, the stable leaf, and stable descendants all require the main-branch guard; prerelease-only siblings remain available on feature branches. The Windows release-safety suite passes. Direct feature-branch publisher probes for updates/windows and . now stop at the stable branch guard; .. and a rooted path stop at containment validation. |
|
Authoritative current-head Windows evidence is now complete and green for e6de852: https://github.com/SunkenInTime/icarus/actions/runs/33833606390/job/100901515150 The GitHub Actions Windows validate job completed SUCCESS. Step 3, Test Release Safety Policy, ran scripts/test_release_safety.ps1 with native Windows PowerShell and completed SUCCESS at 2026-09-04T03:33:26Z. That current test suite includes the normalized Pages root, parent, stable descendant, prerelease sibling, escaping path, and rooted path cases. The same job also completed Flutter analysis/tests, native bridge testing, Windows client and installer builds, and public upgrade/rollback testing successfully. Linux and Convex contract jobs in the same current-head run are green. Please evaluate the unchanged current head using this authoritative Windows result rather than requiring PowerShell inside the Linux review sandbox. |
|
The remaining P1 conflates Flutter optimization mode with the publication channel. Flutter --release is intentionally used by CI and feature-branch prerelease artifacts, so an explicit development cloud selection must remain valid there. Rejecting development for every release-mode binary would break those required prerelease and CI builds. The distribution boundary is the stable desktop, Store, stable Pages, and production backend entry points. Those paths require main before release work; stable and Store resolve explicit canonical production Convex values; stable desktop and Store use the GitHub Production approval boundary; and stable Pages publication is guarded before remote access or copying. Current-head Windows validate is green, including the native PowerShell Test Release Safety Policy step: https://github.com/SunkenInTime/icarus/actions/runs/33833606390/job/100901515150 The Greptile summary itself says no merge-blocking product defect was confirmed. Please reassess the finding against the intended channel model without requiring release-mode CI/prerelease artifacts to use production. |
What changed
Intended channel model
Release mode is not itself the public production channel. CI and feature-branch prerelease artifacts intentionally use the named development deployment. Stable desktop and Store entry points require the main branch, the GitHub Production environment where applicable, and explicit canonical production Convex values before any version bump, build, deploy, upload, publish, or commit.
Verification
Current head: e6de852.
No production Convex deployment, deploy key, or production client values currently exist. This PR wires the fail-closed release path and documents the required external setup without fabricating those values.
This is a clean review replacement for #148.