fix(ui): guide legacy session account recovery - #4102
Conversation
|
This is a synthesis of the independent blind review by @Sol-404ARE at exact head What I checked myself:
Findings from Sol's review (file:line anchored): Standards — NO-GO — 3×P2 + 1×P3 (worst P2)
No other Standards finding; EN/zh and architecture boundaries pass. Spec — NO-GO — 1×P2 (worst P2)
Spec exclusions that were verified as green: TUI correctly limits Verification: What I did not judge: a true picker refresh-failure → stale-choice → no-op E2E with a real Host/catalog was not executed beyond race-inspection — verification was by code inspection and the tests noted above. Gate: Standards 3×P2 and Spec 1×P2 remain; despite
|
|
This is a synthesis of the feature-gate audit by @feature杀手 at exact head What I checked myself:
Findings from the feature audit (file:line anchored, Overall — Necessity GO, existing Host authority design GO; CODE / GLOBAL-DESIGN NO-GO — not merge-ready.
Globally it is correct not to split the PR and not to add a new Runtime Host operation/wire/epoch/durable migration: the existing exact Verification: Desktop Gate: two P-level blockers remain on the increment
|
|
This is a synthesis of the independent blind review by @Sol-404ARE at exact head What I checked myself:
Findings from Sol's bounded review: Standards — NO-GO — 2×P2 + 3×P3 (worst P2)
No new layer violation was found; Shotgun Surgery remains excluded. Entropy is mixed: the shared notice plus composed oracle reduce entropy, but boolean state and repeated fixtures add some. Spec — GO — 0 P0–P3
Verification: incremental/full What I did not judge: a true picker refresh-failure → stale-choice → no-op E2E with a live Host was not executed beyond race-inspection — verification was by code inspection and the tests noted above. Gate: Standards
|
|
This is a synthesis of the independent blind review by @Sol-404ARE at exact head What I checked myself:
Findings from Sol's bounded review: Standards — NO-GO — 1×P2 (worst P2)
Spec — GO — 0 P0–P3
Verification: incremental/full What I did not judge: a true picker refresh-failure → stale-choice → no-op E2E with a live Host was not executed beyond race-inspection — verification was by code inspection and the tests noted above. Gate: Standards 1×P2 (attribution) remains; despite Spec GO, head
|
Summary
{ connectionId, connectionSlug, model }; no Session is auto-rebound. Side conversations wait for the source's exact connection/model and may replace only empty stale forks, preserving admitted or durable content./modelrecovery path, with/setupmentioned only for API-key connections. Renderer recovery state now uses one model-switch availability contract and an explicitunrequested | refreshing | readyconnection projection.This reuses existing Runtime Host and Session mutation authority. It adds no Runtime Host protocol operation, compatibility-epoch change, or durable migration.
Refs #3852
Verification
npm --workspace @maka/ui run buildnpm --workspace @maka/ui run test:dist— 249 passednpm --workspace @maka/desktop run typechecknpm run astryx:surface-inventorygit diff --checkUI evidence captured from the production Desktop Electron
turn-narrativefixture at exact feature headcfda0cb0e544827d3fb171a30012a570ad1f132b, Chinese locale, reduced motion, isolated profile, 1440×900.Recovery prompt:
The CTA opens the existing account-and-model picker:
AI use
Select exactly one:
Tool(s) and scope: OpenAI Codex assisted with code changes, tests, and review analysis; agent-browser/CDP drove and captured the deterministic Electron UI fixture.
Checklist
Does this PR entail a change in behavior?