Findings on section 19, rev 34 (references are bundle line numbers; all flaws are in the reconciliation design at 1676 unless noted):

**F1 — Reconciliation gate is keyed to session start, so same-session retries bypass it (1676).**
"On any new paired ADB session, automatically reconcile each interrupted or timed-out operation for a package before another install to that package." An interrupted or timed-out install (1674 explicitly lists timeouts) can be retried within the *same* paired session, because the gate fires only at session start. The retry's artifact lands before the earlier operation is ever reconciled; at the next session, the "current package matches the expected state" branch then reports the earlier operation **desired package state verified** — evidence produced entirely by the later install, violating the same paragraph's "Never use a later install's artifact as evidence for the earlier operation." The gate must key on install attempts to that package, not on session boundaries. It is also unstated whether an inconclusive (unknown) reconciliation blocks the subsequent install.

**F2 — No closure/supersession lifecycle for operation records (1676).**
Records persist after a reconciliation attempt ("retain operation outcome unknown"), but nothing marks an operation reconciled-once or supersedes it when a later install to the package succeeds. Consequences: (a) stale interrupted operations are re-reconciled on every session for the full retention window; (b) after any later successful install of the same artifact, the verified branch retroactively resolves the earlier interrupted operation — the exact misattribution the paragraph forbids. Conversely, if records are deleted after a first inconclusive attempt, the standing "unknown" and its retry guidance silently vanish. Either lifecycle choice breaks something; the plan specifies neither.

**F3 — Contradictory branch conditions for the byte-identical reinstall with unchanged state (1676; acceptance case at 1700).**
When expected and prior states are identical and the package and update marker are unchanged, two rules match simultaneously: "If the current package and update marker still match the recorded prior state, report **requested state not applied** with retry guidance" and "If expected and prior states were identical … retain **operation outcome unknown**." Precedence is unstated. Under a literal order-of-appearance reading, the identical reinstall is reported "requested state not applied" — a false state claim, since the requested state (identical to prior) is present, and it contradicts the paragraph's own rule that identical operations stay unknown. The not-applied branch needs an explicit `expected ≠ prior` condition. (Note the marker evidence here actually supports "not applied": an unchanged update marker proves nothing installed an update since the prior observation, so the categorical unknown for the identical case also discards usable evidence.)

**F4 — The decisive "match" is unspecified and the stored digest may be unobservable, admitting third-party/rebuild misattribution (1676).**
The stored evidence includes signing identity, version, and artifact digest, but the plan never states which fields "the current package matches the expected state" compares, and the feasibility/acceptance program (1698–1700) never establishes that an installed artifact digest is observable via ADB package state at all (version, signing identity, and lastUpdateTime are; base.apk digest reads are not guaranteed). If the match is version-plus-signing only, a third-party delivery or a developer rebuild with the same versionCode and key but different digest yields a false **desired package state verified** for the interrupted operation — the third-party-update case the design guards against only in the "current differs from both" branch ("a different state may reflect an external update").

**F5 — Bounded retention is not coordinated with the reconciliation obligation (1674, 1676).**
Records live in "operational state with bounded retention," but unreconciled interrupted-install records can age out before any new paired session occurs — notably in the self-update case, where restoring Ready mode (the prerequisite for a new session) is itself "a pending user decision" (1676). Expiry silently deletes the only evidence, the before-install gate never triggers, and the 1674 promise of "outcome unknown **until** independent package-state verification" becomes permanently unsatisfiable with no user-visible terminal outcome. Retention must hold unreconciled operations until reconciled, or expiry must surface a permanent unknown.

**F6 (minor) — The self-update outcome ignores available phone-side evidence (1674, 1676).**
The self-deployed companion's install is marked unknown at teardown and reconciles only on a new paired ADB session, which additionally requires a human to restore Ready mode. Yet the restarted app can directly attest its own installed version; no phone-side or user-facing resolution path exists, so the one outcome most trivially verifiable stays unknown indefinitely pending user action.

Not clean; six findings, F1–F4 substantive.
