The decision surface — a refused open becomes a live repair, in place
Phase 3 of the decision surface, completing the card (01 ▸ Malformed input, settled 2026-07-31). An attended open's fail-fast walk transforms the loading window's content into one aggregated surface — never a sheet, never a chain: defects grouped by class, each class stated once with its files listed (Reveal in Finder + Open in Editor per row), a class-level default preselected, per-item override behind a disclosure. Only honest choices: YAML and malformed-schema get Editor + Re-check (Skip below the root); newer-than-app gets Skip alone and blocks the board at the root; the two root repairs — minted index, schema: 1 stamp — are defaults. Repair and Open applies fixes in one store-less write bracket and re-walks: clean proceeds, remainder re-aggregates into the same surface. Cancel and ⌘W retire to welcome's row; restored opens never see the surface at all (OpenOrigin rides the PendingOpen carrier). Skips are per-open consent that rides the session — the store retains the skip set and every reload passes it — and the opened board posts a warning-tone notice naming what was left out, each item's Reveal riding the banner strip's new reveal control. On Pro boards the repair bracket binds its own EchoLedger, heal-marks everything, and the store adopts it before the committer starts, so repairs land as one separate commit authored Lanework Integrity — pinned end to end. Also fixed en route: a retired loading window left its close interception installed and returned false from windowShouldClose forever, blocking quit. Claude-Session: https://claude.ai/code/session_01CqjXB7ASoWtbyoGod68k97
This commit is contained in:
@@ -22,8 +22,9 @@ enum FixtureBoard {
|
||||
/// lot of it.
|
||||
case large
|
||||
|
||||
/// A well-formed board with exactly one unparseable card `index.md`, for the fail-fast pass. It
|
||||
/// is the only variant whose board window is *expected* never to appear.
|
||||
/// A well-formed board with exactly one unparseable card `index.md`, for the fail-fast pass. Its
|
||||
/// window is the only one that never holds a board: the open is attended, so the refusal
|
||||
/// transforms the loading content into the decision surface (`FailFastLaunchTests`).
|
||||
case malformed
|
||||
|
||||
/// `UITestLaunch.fixtureFlag` plus this variant's own flag. Both, always: the first is what "this
|
||||
@@ -149,8 +150,10 @@ extension XCUIApplication {
|
||||
/// Launches the app on `board` — the audit fixture unless told otherwise — and waits for its
|
||||
/// window.
|
||||
///
|
||||
/// **Not for `.malformed`**, which has no window to wait for: that variant is launched with
|
||||
/// `launched(with:)` and the caller waits for welcome instead.
|
||||
/// **Not for `.malformed`**, whose window never holds a board: since the decision surface (01
|
||||
/// § Malformed input, settled 2026-07-31) that variant's window does appear — carrying the
|
||||
/// surface rather than lanes — so the wait below would pass while saying nothing. That variant is
|
||||
/// launched with `launched(with:)` and the caller waits for the surface instead.
|
||||
@MainActor
|
||||
static func launchedWithFixtureBoard(_ board: FixtureBoard = .standard) -> XCUIApplication {
|
||||
let app = launched(with: board)
|
||||
|
||||
Reference in New Issue
Block a user