chore(web): stop tracking static export - #463
Conversation
d67346d to
1bc5c3e
Compare
Generate web/out during the build and verify its lifecycle in CI, preventing generated frontend assets from creating PR conflicts. Signed-off-by: Quanyi Ma <eli@patch.sh>
Signed-off-by: Quanyi Ma <eli@patch.sh>
1bc5c3e to
ea585f4
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit ea585f4. Configure here.
| name: FLOORS_LOCK_FILE_NAME.to_string(), | ||
| detail: "floors lock creation retry loop ended unexpectedly".into(), | ||
| }) | ||
| } |
There was a problem hiding this comment.
Floors lock retry is too weak
Medium Severity
open_floors_lock_file retries Darwin's first-create ENOENT only four times and only calls yield_now, so it never waits for the winning creator to land. Concurrent first-time floor recording can still fail to open .libra-upgrade-floors.lock, which matches the remaining concurrent_floor_recorders_serialize_and_never_regress failure.
Reviewed by Cursor Bugbot for commit ea585f4. Configure here.


Summary
web/outassets, ignore the directory, and enforce its generate/ignored/untracked lifecycle in CIWebAssetsvalidation incompat-web-checkENOENTsedparsing so a signedpaused:truemanifest fails closedVerification
pnpm --dir web lintpnpm --dir web test(20 files, 126 tests)pnpm --dir web buildLIBRA_SKIP_WEB_BUILD=1 cargo clippy --all-targets --all-features -- -D warningscargo +nightly fmt --all --checkLIBRA_SKIP_WEB_BUILD=1 cargo test --test compat_install_aliasbash tests/data/install-smoke/run.sh(24/24 scenarios)LIBRA_SKIP_WEB_BUILD=1 cargo test --allAll previously observed baseline failures are fixed in this branch; the new GitHub Actions run is the remaining remote gate.
Note
Medium Risk
CI and contributor workflow for the embedded Code UI changes materially;
install.shmanifest parsing and upgrade locking touch release/install security paths.Overview
Stops committing the Next.js static export under
web/out/and treats it as generated, gitignored output embedded at compile time viabuild.rs/WebAssets.CI (
compat-web-check) still lint/tests/builds the web app, but replaces the old “git statusmust be clean underweb/out” drift gate with checks that the export was produced, is not tracked, and is ignored, then runscargo check --libwithLIBRA_SKIP_WEB_BUILD=1to ensure the fresh export can embed. Docs and a compat-matrix test are updated to match.Also includes a few release/upgrade hardening fixes unrelated to the web export policy:
install.shparses the signed manifestpausedfield without BSD-unsafesedalternation and rejects non-boolean values;internal::upgrade::lockretries transientENOENTwhen creating the floors lock on Darwin. Dev docs add anupgradecommand design note; compat ledger files only bumpCOMPATIBILITY.mdcitation line numbers.Reviewed by Cursor Bugbot for commit ea585f4. Bugbot is set up for automated code reviews on this repo. Configure here.