Repository navigation
V16-UPD-CANCEL-M2: assert the real store/PTY freeze across TooLate (R821-M2) - #851
Conversation
Coverage for the existing finish_flight path: TooLate after installer started keeps maintenance; a body error before start thaws again. No-Test: coverage test for existing freeze behaviour across TooLate (R821-M2) Co-authored-by: Cursor <cursoragent@cursor.com>
Merge Protections🟢 All 2 merge protections satisfied — ready to merge. Show 2 satisfied protections🟢 Paket-PR bringt seinen Bericht mitPackage branches (w<N>-, df<N>, ki-<N>, hq2-, dr-, z<N>-) must carry their report in the PR body, in a section that starts with "## Report".
🟢 🚦 Auto-queueWhen all merge protections are satisfied and these conditions match, this pull request will be queued automatically.
|
Strengthen the TooLate/thaw tests (full thaw asserts, off-diagonal installer_started=true body error, ERR_REFUSED begin vocabulary, shared setup helper) without changing production freeze behaviour. No-Test: coverage tests for existing freeze behaviour (R851 round 1) Co-authored-by: Cursor <cursoragent@cursor.com>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a2c9920d1e
ℹ️ About Codex in GitHub
Your team has set up Codex to 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 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| /// Enter a single-flight install already under store/PTY maintenance. | ||
| async fn begin_install_under_maintenance<'a>( | ||
| state: &'a crate::update_cancel::UpdateCancel, | ||
| pty: &PtyManager, | ||
| store: &super::Store, |
There was a problem hiding this comment.
Halte main.rs unter der Nahtstellen-Baseline
Auf diesem Commit ergibt git show 70c914c:src-tauri/src/main.rs | wc -l 5.137 Zeilen. Das Z3-Abnahmekriterium in docs/PLAN.md:260-263 verlangt für diese Naht ausdrücklich < 5.133; der Testnachtrag überschreitet die Grenze somit um fünf Zeilen und verhindert, dass Z3 trotz grüner Tests als fertig gelten kann. Bitte mindestens fünf Zeilen deduplizieren oder kompaktieren.
AGENTS.md reference: AGENTS.md:L31-L32
Useful? React with 👍 / 👎.
Merge Queue Status
This pull request spent 18 minutes 47 seconds in the queue, including 12 minutes 20 seconds running CI. Required conditions to merge
|
Die Tests prüfen den Freeze nach TooLate jetzt gründlicher: volles Auftauen, Fehler nach gestartetem Installer, und die gemeinsame Fehlersprache.
Ein neuer Off-Diagonal-Fall belegt, dass ein Körperfehler bei
installer_started=trueFreeze und Slot behält.Produktionscode unverändert; nur Coverage-Tests (R851 Runde 1).
Report
Scope
5b5939b84bbf65e3f6b90bf84d4693e6faf83fb3(origin/main).a2c9920d1e044371282ee67ca9d4d8406c8c89ce.src-tauri/src/main.rstest module only (+145 lines vs merge-base). No production change.What changed (fix1)
begin_install_under_maintenance(R851-A3); dropped redundantlet _ =.!is_maintenance_active(),reserve_sessionok (cancelled), boundedcreate_projectok,begin+finish_unstartedok; error contains"download failed"(Kimi F1 / R851-A1).body_error_after_installer_started_keeps_maintenance_freeze:finish_flight(Err, installer_started=true)surfaces body error; freeze and slot stay (Kimi F2).install_when_idlerefused andbegin()error starts withERR_REFUSED(R851-A2; vocabulary confirmed inupdate_cancel::begin).Trailer:
No-Test: coverage tests for existing freeze behaviour (R851 round 1).Finding disposition
a2c9920installer_started=true+ body Err keeps freeze/slota2c9920a2c9920(helper + droplet _)a2c9920install_when_idle+ERR_REFUSEDon TooLatea2c9920let _a2c9920Evidence
cargo test --manifest-path src-tauri/Cargo.toml --bin projecta maintenance→ exit 0 (11 passed)cargo test --manifest-path src-tauri/Cargo.toml --bin projecta update_cancel→ exit 0 (12 passed)bash scripts/ci/red-first.sh→ exit 0 (No-Test path; count=0)bash scripts/ci/gates.sh lane prepush→ exit 0 (rust-suite 1919 passed; push-hook re-run also exit 0)git push -u origin cursor/w5-v16-upd-cancel-m2→ exit 0;git ls-remotematchesa2c9920d1e044371282ee67ca9d4d8406c8c89ceArchitecture drift
No new findings; tests only in
main.rstest module.NICHT ABGEDECKT
#[cfg(windows)]tests; Windows lane runs in the merge queue.enter_or_abort/finish_flightglue as production without journaling or the plugin updater.installer_startedcomputation from the journal ininstall_update_when_idle(R821-D1 remains).Review
Review: ausstehend (Stufe A). delta check pending Root.
Made with Cursor
Root-Abnahme (head a2c9920, 2026-10-09)
Tier A (seam main.rs, test module only, +145/-0, no production change). Author Cursor auto → three families.
review-pr851-anthropic-f95897a61ec8.mda2c9920d(full thaw asserted; Err + installer_started case added; install_when_idle refusal; ERR_REFUSED; helper)Installingon, only the restart validation may thaw the app", main.rs:1232); recovery is the restart + journal validation (delivery_recovery, V16-06 #832), not an in-process pathinstall_when_idlein the Err+installer_started test and after the pre-installer thawinstaller_startedfrom a real journal phase (the main.rs wiring stays under NICHT ABGEDECKT, as in #830)enter/leave_database_maintenanceare main.rs privatesNo high finding → integrate.
NICHT ABGEDECKT (Root): main.rs wiring of
installer_started(journal phase) is not driven end to end; Windows lane only in the merge queue.