Skip to content

[P1][CF-8] Prove the complete conversation-to-Notes workflow with E2E, native acceptance, and rollout gates #281

Open

Description

@BunsDev

Goal and dependencies

Parent: #273. Priority: P1 — final integration/acceptance gate. Blocked for completion by: #274, #275, #276, #277, #278, #279 and #280. Fixtures and reference inventory may be prepared earlier; do not close this issue until the integrated candidate is verified.

Prove one complete, recoverable coding experience rather than certifying a collection of attractive disconnected panels.

Scope

The target is a documented behavior matrix for specified Modex/provider/client builds, not universal or proprietary ChatGPT/Codex identity. Release preparation #272 remains separate; do not alter its scope, pick a new release version, tag, merge or publish as part of this issue.

Use current AGENTS.md, release-signing.md, event-journal.md and the child issues' actual evidence. Existing native/Store/iPhone acceptance limits stay explicit. Do not recreate the old permissions bug, retire known fixes, or claim scripts/synthetic images prove provider behavior.

Deliverables and paths

  • Add apps/desktop/e2e/conversation-fidelity.spec.ts using existing Electron/fake-CLI/mock fixtures and real main-process bridge paths.
  • Extend existing paired journal and iPhone tests; avoid a second integration harness.
  • Add docs/reviews/2026-10-18-conversation-fidelity-acceptance.md containing the requirement/evidence matrix, exact tested SHA, executable/schema versions, commands, results, skips and unresolved gates.
  • Add docs/conversation-fidelity.md with supported features, fallbacks, privacy limits, migration/rollback behavior and reference capture manifest.
  • Store selected non-sensitive reference/candidate images under docs/screenshots/conversation-fidelity/, recording origin, capture date, product/build, platform, theme, viewport and scale. Do not describe approximate or generated images as observed product screenshots.

Implementation steps

  • Refresh main, all seven child PRs and release status. Reconcile actual landed scope; add focused integration regressions only for real remaining gaps. Pin one candidate SHA before producing acceptance evidence.
  • Build the golden fixture: open project → request a small change → inspect plan/files → answer supported question → approve a specific action → stream overlapping work/output → inspect changed file and actual test result → final response → explicit save to project Notes → reopen Note → reconnect a supported paired client. Use a disposable repository with known expected bytes and check results.
  • Add negative variants: denial with unchanged file; command failure; unknown outcome; Stop while executing; request withdrawal; simultaneous desktop/phone answers; reconnect after a decision send; old snapshot migration; journal-off mode; expired cursor; stale Note revision; missing artifact. Count native tool/decision calls so replay/preview cannot hide duplicate effects.
  • Capture live/waiting/failed/completed/restored states in Graphite, Jev and OpenCoven, including 900×600 and a fixed wider reference viewport. Mask only nondeterministic values in screenshot tests, not layout/content defects. Verify keyboard navigation, screen-reader labels, focus/selection/drafts, reduced motion and reader-controlled scrolling; obtain human VoiceOver acceptance separately.
  • Measure long transcript and log-heavy streaming on a named environment; compare before/after rather than invent hardware-independent latency claims. Check memory/output bounds and child-specific regressions. Preserve original failure logs and investigate causes rather than merely extending timeouts.
  • Run supported native Codex and Claude smoke scenarios with authorized accounts and benign disposable tasks. Record method/account-mode/model/version and genuine capability limits. Native questions, live plugin generation and unsupported platforms must remain unverified where not exercised. Verify existing app-owned ChatGPT multi-agent restrictions are not accidentally weakened.
  • Complete compatibility/rollback documentation and a staged release recommendation: feature readiness and supported matrix first, separately authorized release later. Do not turn the journal or preview approval gate on by default. Link criterion-level evidence back to every child and tracker.

Acceptance matrix required before closure

  • Golden fixture passes through the actual Electron/main/native-adapter path and persists the expected diff/check/Note evidence.
  • Every negative variant has a deterministic assertion, including zero unintended execution on denial/replay/reconnect.
  • Final item/turn outcomes, reasoning representation and source/asset provenance match recorded events, not model success prose.
  • Legacy and supported paired-client recovery converge with safe non-actionable fallbacks for unsupported requests.
  • Fresh pnpm build, pnpm typecheck, pnpm test, and pnpm test:e2e results name the candidate SHA; native iPhone/Store/platform results identify their own builds and skips.
  • Live Codex/Claude acceptance and human keyboard/VoiceOver evidence are attached for the supported release scope. Missing required evidence keeps the gate open; it is not silently waived by green mock tests.
  • Reference/candidate captures and measured performance are reproducible; any remaining visual differences are listed instead of declaring universal pixel parity.
  • Privacy documentation accurately describes Streamer Mode's visual-only limits, and no release/merge/tag or policy-default change occurs without separate authorization.

CF-3 native question: human acceptance (from #276)

Steps, setup and the record to keep: docs/reviews/2026-10-22-cf3-question-acceptance.md (#369). Codex must offer its question tool, through codex features enable default_mode_request_user_input on the CLI account. Turn it off afterwards. The iPhone rows need the phone-answer PR and a Companion build Val uploads to TestFlight. A row that cannot run stays open with its reason.

  • D1 Desktop, keyboard only: the card is reachable and labelled; the header reads "Waiting for your answer"; options are radios; the secret is a password field.
  • D2 Desktop: an incomplete answer is refused on the card, and the agent hears nothing.
  • D3 Desktop: choices and text survive switching threads.
  • D4 Desktop: submit from the keyboard. The card shows "(hidden)", the model gets the exact token (whitespace kept), and the token is in no file under ~/.modex with the journal on.
  • D5 Desktop: Stop withdraws the card; nothing more reaches Codex.
  • V1–V3 Desktop VoiceOver: question, options, selected state and secure field are announced; the refusal is reachable; the token is never read aloud. Deferred for now by Val, 2026-11-01: “skip voiceover for now and just proceed”; not run or passed.
  • P1 iPhone: a native card, not the text notice.
  • P2 iPhone: an incomplete answer is refused on the card.
  • P3 iPhone: answer from the phone. The Mac shows "Answered on your phone." and the model's reply is right.
  • P4 iPhone: when the Mac answers first, the phone shows "This question was already answered." and the model replies once.
  • P5 iPhone VoiceOver: options, selected state, secure field and Send answer. Deferred for now by Val, 2026-11-01: “skip voiceover for now and just proceed”; not run or passed.
  • P6 Older Companion (0.3.0 (8) or earlier): text notice, no buttons.

Long-running goal prompt — implement and evaluate

Complete CF-8, the integration gate for Modex tracker #273. Start by reading current AGENTS.md, status, all child issues #274–#280, their actual PRs/CI/evidence and the release guide. Use an owned worktree, pinned pnpm and Superpowers verification/debugging. Pin the integrated candidate and reconcile what already shipped; do not reproduce solved work or claim release preparation is publication.
Build the golden conversation-to-Notes-and-reconnect test through the real existing app/bridge/adapters, plus every negative variant in this issue. Assert actual file bytes, native call counts, outcomes, note revisions and replay identity—not just visible success text. Capture the specified UI states/themes/viewports, run keyboard/reduced-motion and long-transcript checks, and document the reference build. Perform authorized benign live native checks only where the environment permits, keeping provider, mock, native-platform and human VoiceOver evidence separate. Fix integration faults with failing regressions first and bounded signed commits; link repairs to their owner issues. Run fresh full checks and prepare an acceptance receipt and review-ready PR. Leave unresolved native/human gates open with the exact next action. Do not merge, tag, publish, invent parity claims, enable journal/approval defaults or bypass safeguards.

Follow-up long-running goal prompt — close evidence gaps

Resume CF-8 from current main and its last candidate/evidence checkpoint. Verify worktree ownership and whether the candidate changed; invalidate stale whole-build claims when code changed, retaining historical evidence. Check each #274–#280 criterion and the integration matrix against actual test/native outputs, not issue checkmarks or prior assistant summaries.
Rerun the golden workflow, then prioritize the most consequential unverified boundary: uncertain approval send, Stop/late message, replay/migration, stale project Note, source/asset access or unsupported companion action. Reproduce failures, add a failing test and make the smallest repair without widening architecture. Re-capture changed UI states and repeat named performance checks. Obtain or explicitly leave open required live Codex/Claude and human keyboard/VoiceOver acceptance. Record exact SHAs, versions, commands/results, skips, evidence links and residual differences. Update the tracker with a truthful supported-scope readiness recommendation and remaining gates. Completion requires evidence, not a universal replica claim; no merge, release, tagging or policy-default changes without separate authorization.

Activity

  1. self-assigned this
    on Oct 18, 2026
  2. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    CF-8 claim: preparation, 2026-10-18, from the session that did CF-1, CF-4's typed turns, CF-6's first half, CF-5 and CF-7's first parts (#282, #284, #285, #287, and CF-7 to come)

    This issue stays open until #275 (CF-2, PR #286) and #276 (CF-3) land and the live-provider and human gates are done, as its acceptance matrix requires. This session is preparing what can be prepared now, in .worktrees/cf8-fidelity, stacked on CF-7 until it merges:

    • A golden fixture, e2e/conversation-fidelity.spec.ts. It runs through the real Electron app, main process and the claude -p adapter, against a fake Claude CLI that edits a disposable repository and counts its own executions. It covers:

      • request, then a reported plan
      • an approval, then a real file edit
      • a check command with its outcome
      • the final answer, then Save to Notes, then reopening the note
      • a restart that restores the same items

      The assertions are file bytes, execution counts, outcomes and note revision, not success text.

    • Negative variants that need no CF-2 or CF-3 work: a denial leaves the file unchanged and runs nothing; a failing check; Stop while a command runs; and journal-off mode.

    • Docs: docs/conversation-fidelity.md and docs/reviews/2026-10-18-conversation-fidelity-acceptance.md. The second is a matrix with every unverified gate (CF-2, CF-3, live Codex/Claude, VoiceOver, performance, screenshots) left explicitly open.

    Nothing here is merged, tagged or published without authorization, and no policy default changes.

  3. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: CF-8 first part landed

    Landed: #294 squash-merged as d3dfe76 on main (head df82ab3, base 04b7ec7).

    What it contains:

    • e2e/conversation-fidelity.spec.ts: a fixture Claude CLI edits greeting.txt for real and counts what it executes. Four cases:
      • Golden path: plan → approval → edit → check → answer → Save to Notes → Open → restart. Execution counts are unchanged after the restart, the note goes from revision 1 to 2, and thread:items are identical.
      • Denial.
      • Failing check.
      • Stop during a check.
    • docs/conversation-fidelity.md.
    • docs/reviews/2026-10-18-conversation-fidelity-acceptance.md, the integration matrix with each requirement's state.
    • A status line. Prove the conversation path end to end and record what fidelity still needs (CF-8, first part) #294 is also dropped from the steward's in-flight list.

    CI:

    • The first macOS run timed out in store-desktop.spec.ts:150, which this PR doesn't touch. That test passed on main's own run and locally (4 of 4).
    • main then moved (Record what shipped across plans, specs and reference docs (steward cycle 1) #292), so I rebased onto it and pushed df82ab3 with a lease.
    • All checks passed on that head.
    • Locally: root pnpm build passed, and the fidelity and task-to-notes e2e passed 6 of 6.

    Still open for #281 (see the review's matrix):

  4. BunsDev commented on Oct 18, 2026

    @BunsDev
    ContributorAuthor

    Checkpoint: CF-8 machine-only rows landed

    Landed: #301 squash-merged as 844ae04 (head 314749c, base ce75495).

    What landed:

    • Reference captures. 33 images in docs/screenshots/conversation-fidelity/, with a manifest of state, theme, viewport, scale, source commit and hash. They cover waiting, live, failed, completed and restored in Graphite, Jev and OpenCoven, at 900×600 and 1440×900, plus the typed turn in each theme. They are fixture references, not provider screenshots or pixel baselines.
    • Measurement. e2e/transcript-measure.spec.ts, run on MacBook Pro Mac15,9 (M3 Max, 48 GB, macOS 26.7.1), 5 interleaved runs per build, before (89c98f2) and after:
      • Cold open of a 1,400-item transcript: 69 ms before, 73 ms after.
      • Bytes sent to the window for a 3 MiB log: 80.2 MB before, 0.66 MB after.
      • Main CPU during that stream: 344 ms before, 240 ms after.
      • Full tables are in the acceptance review.
    • Three defects found and fixed, each failing test first:

    Checks:

    Still open for #281:

  5. 14 remaining items

  6. mariscate commented on Oct 22, 2026

    @mariscate

    Refreshed goal prompts — 2026-10-22 (main at 0e674e7)

    Recorded so far:

    Still open:

    The cf8-main-sync and cf8-reconcile worktrees are still checked out after their PRs landed.

    Long-running goal prompt

    Drive CF-8 (#281) to a verified integrated candidate in TypeSafeAI/modex. Read AGENTS.md, the acceptance receipt, the keyboard-voiceover checklist and #273's latest checkpoint, then verify main's SHA. Create your own worktree. Don't rewrite historical results; add new ones beside them. (1) Pin a candidate on current main. Check there's enough disk first (each worktree extracts Electron, and an earlier run hit ENOSPC). Run, first pass and recorded exactly: pnpm install --frozen-lockfile, build, typecheck, test, test:e2e (desktop and site) and the iPhone UI classes as Scripts/test-e2e.sh does. (2) Update the behaviour matrix: fixture, live Claude, live Codex and human, each tied to the candidate SHA. (3) After 2026-10-25 09:35, rerun the live Codex golden path and Stop on the candidate. (4) Relaunch the seeded VoiceOver review build for Val and record the result exactly as Val reports it. Never mark it passed on Val's behalf. If #276–#280 land more code, repin. Record evidence in docs/reviews and update status.md. Close only when every matrix row has evidence or a written deferral from Val. No tagging or release, which #272/release prep owns.
    

    Follow-up / resume prompt

    Resume CF-8. Fetch main and compare it with the last pinned candidate. If anything that affects the matrix has landed, repin and rerun first pass. Check disk space before creating worktrees. Read Val's latest VoiceOver notes, if any, and the state of #276–#280. Run the next pending gate. Post a checkpoint: candidate SHA, environment, exact counts, open rows with owners, and one next action.
    
  7. BunsDev commented on Oct 22, 2026

    @BunsDev
    ContributorAuthor

    Once #385 lands, the CF-3 question acceptance rows no longer need the default_mode_request_user_input flag: turn on Plan mode for a Codex thread and Codex will ask its question. Setup step 2 in docs/reviews/2026-10-22-cf3-question-acceptance.md offers both routes.

  8. BunsDev commented on Oct 23, 2026

    @BunsDev
    ContributorAuthor

    Refreshed goal prompts — 2026-10-23 (main at 203a350)

    Recorded so far:

    Still open:

    An unpushed candidate at ec7be57 sits staged in the cf8-integrated-oct22 worktree (owner 01a16501…, no PR). Its notes record desktop e2e 388 passed and 6 skipped, iPhone 43/43 on an isolated simulator, and a live Claude probe that failed on zero plan items. That candidate is now stale; keep its evidence as history. cf8-main-sync and cf8-reconcile are still checked out after their PRs landed.

    Long-running goal prompt

    Drive CF-8 (#281) to a verified integrated candidate in TypeSafeAI/modex. Read AGENTS.md, docs/conversation-fidelity.md, the acceptance receipt, the keyboard-voiceover checklist, docs/reviews/2026-10-22-cf3-question-acceptance.md, docs/reviews/2026-10-22-cf6-gates.md and the latest comments on #273 and #276–#280, then verify main's SHA. Work in your own worktree (scripts/worktree.sh new <name>), or claim cf8-integrated-oct22 from its owner and carry its staged ec7be57 evidence forward as history. Never edit the primary checkout or rewrite earlier results. (1) Wait for #394 and #371 to land, or pin now and say they are excluded. Check free disk first. Run first pass and record exactly: pnpm install --frozen-lockfile, build, typecheck, test, test:e2e (desktop and site), and the iPhone UI classes as Scripts/test-e2e.sh does. (2) Live gates on the candidate, with benign disposable tasks and recorded CLI versions and models: the Codex golden path and Stop, and the Claude golden path and Stop. Make the Claude probe expect what Modex shows on Claude Code 2.1.308 and later (no plan, or the task tools only when the CLI offers them), or ask Val to defer the plan row. (3) Update the matrix in the acceptance receipt: every row tied to the candidate SHA as fixture, live or human. Move "Missing artifact" to verified (unit) with #328's tests if they still pass, and mark CF-6's deferred rows with Val's written deferral. (4) Relaunch the seeded review build for Val and record the keyboard/VoiceOver, C1–C5 and CF-3 D/V/P results exactly as Val reports them. Never mark a row passed on Val's behalf. Land evidence through signed docs PRs on Val's go-ahead, and update status.md. Close #281 only when every row has evidence or Val's written deferral. No tagging or release.
    

    Follow-up / resume prompt

    Resume CF-8. Fetch main and compare it with the last pinned candidate. If code that affects the matrix has landed (#394, #371 or later), repin and rerun first pass. Check disk space before creating a worktree. Read Val's latest results or deferrals on #276, #277 and here. Run the next pending gate. Post a checkpoint: candidate SHA, environment, exact counts, open rows with owners, and one next action.
    
  9. BunsDev commented on Oct 28, 2026

    @BunsDev
    ContributorAuthor

    CF-3 rows (D1–D5, V1–V3, P1–P6), 2026-10-28: the run is prepared on main at 6c9000f and waiting on Val. The candidate record (ad-hoc Mac build and hash, codex-cli 0.164.0, Plan-mode route, disposable project, Companion 0.4.0 (9) not yet on TestFlight) is in #420, docs only. Every row is still open; nothing is ticked here until Val reports it. Details and Val's next action are on #276.

  10. BunsDev commented on Oct 28, 2026

    @BunsDev
    ContributorAuthor

    CF-8 checkpoint, 2026-10-28: integrated candidate b643617

    Candidate: main at b64361750983068160fe95293192ccea03000f88 (#422). It carries every CF-1 to CF-7 slice: #394 merged 2026-10-24 and the CF-4 close-out from #371 landed through #404 (#371 was closed as superseded). Nothing in scope is excluded. Worktree cf8-candidate-oct28; the staged ec7be57 and 0e674e7 evidence from cf8-integrated-oct22 is carried in as history, unchanged.

    First pass, no reruns (Apple M5 Max, macOS 27.0.1, Node v24.22.0, pnpm 10.34.5, Xcode 27.1; 6.4 TiB free; 11:50–12:27 UTC):

    • pnpm install --frozen-lockfile, pnpm build, pnpm typecheck: passed.
    • pnpm test: exit 0. Worktree scripts 117/117, core 16/16, desktop 2,011 passed / 17 skipped / 0 failed of 2,028 (second stage 21 passed / 6 skipped), site 10/10, store-desktop 16/16. Skips are Windows-only and opt-in native proofs.
    • pnpm test:e2e: exit 0. Desktop 470 passed, 7 skipped (claude-live-stop 1, live-smoke 3, knowledge 3), 0 failed in 22.7 min; site 7/7. The CF-4 first-open budget passed: median 246.5 ms ≤ 500 ms.
    • iPhone UI as Scripts/test-e2e.sh, on a dedicated iPhone 17 / iOS 27.0 simulator by UDID as CI does (the script's default iOS 26.5 destination is not installed): CompanionFlowTests 23/23, DemoWorkspaceTests 20/20.

    Live gates on the candidate, through the real app in Chat mode, disposable repository, approvals in the window:

    • Claude Code 2.1.312 (Haiku): passed. One approval (Chat mode disallows Edit at the CLI, so Claude's Edit call read failed and it edited with an approved sed), the check succeeded, final answer, "Claude Code reported no plan for this turn" (no plan tool offered or called, as expected on 2.1.308+), Save to Notes, Open, restart identical, Stop: idle in 0.8 s, call interrupted, file never written. Two earlier probe starts failed inside the probe (an ESM __dirname; an over-strict note assertion) and are kept as history.
    • codex-cli 0.164.0 (gpt-6.1-sol, ChatGPT account): passed. Two approvals, apply_patch and the check with exit code 0, a final answer, "Codex reported no plan for this turn" (no turn/plan/updated), Save to Notes, Open, restart identical, Stop: idle in 0.1 s, call interrupted, file never written.

    Matrix: every row is tied to b643617 as fixture, unit, live or human in the receipt. "Missing artifact" is verified (unit): #328's test passed in this run. CF-6's deferred rows carry Val's 2026-10-23 written deferral. Docs PR: #428 (draft, signed, docs only), waiting for Val's go-ahead.

    Open rows, all Val's. None is marked here.

    1. Keyboard A1–A8, VoiceOver B1–B7, Markdown C1–C5. The seeded offline build from b643617 is running now (MODEX_HOME=/tmp/modex-voiceover-b643617/home, from .worktrees/cf8-candidate-oct28/apps/desktop). Post the filled tables here, or defer in writing.
    2. CF-3 D1–D5, V1–V3. The docs: CF-3 question acceptance, run 1 prepared for Val (#276) #420 Mac build and disposable project, Plan mode on a Codex thread. Report on [P1][CF-3] Add typed native questions and a main-owned, race-safe human-request lifecycle #276 and here.
    3. CF-3 P1–P6. Upload Companion 0.4.0 (9) to TestFlight first.

    Raw evidence: ~/.claude/task-evidence/cf8-2026-10-28/. No tag or release.

  11. BunsDev commented on Oct 28, 2026

    @BunsDev
    ContributorAuthor

    Val's decisions, 2026-10-28 (through the session's question prompt):

    #281 stays open until those rows have Val's result or written deferral.

  12. BunsDev commented on Nov 1, 2026

    @BunsDev
    ContributorAuthor

    CF-3 checkpoint, 2026-11-01

    Fetched origin/main: 32f1cb4127be7a6331094480fe6b511aa3de08bc. This is the current source SHA, not a newly built or human-accepted Mac candidate. The prepared Mac run remains the historical 6c9000f5b6bc7d1733cec9db15ba00d5b9844291 candidate recorded in the acceptance document; no current-main build claim is made.

    Companion: current main still declares 0.4.0 (9) in apps/ios/ModexCompanion/project.yml, and Sources/CompanionViews.swift contains and renders the native QuestionCard. The last explicit upload report on #276 says build 9 was not yet on TestFlight. No later upload confirmation was found in the latest #276/#281 comments or checked release records; App Store Connect was not available to this session, so current upload/processing/install status is unverified. Desktop v0.4.0/v0.4.1 publication does not establish Companion delivery.

    Val's latest human-row decision: “I will run them later.” (record on #281). That record explicitly keeps the rows open and says nothing is deferred or marked. No newer CF-3 result or written deferral was found.

    Status Count Rows
    Passed 0 None reported
    Failed 0 None reported
    Deferred 0 None
    Open 14 D1–D5, V1–V3, P1–P6

    D/V rows await Val's keyboard and VoiceOver run. P1–P5 require confirmation of a question-card Companion build on TestFlight and the physical-phone run; P6 requires a qualifying older Companion at hand or Val's written deferral. The actual run must record its Modex SHA, CLI version, selected model, Companion build, iPhone model and iOS version. Simulator and e2e results supply no human-row passes. With no new results, the acceptance document and #281 checkboxes remain unchanged; #276 stays open.

    One next action for Val: upload Companion 0.4.0 (9) from a verified pinned source containing the question card, then report the uploaded build number, source SHA and TestFlight processing/availability status on #276 so the phone run can be scheduled.

  13. BunsDev commented on Nov 1, 2026

    @BunsDev
    ContributorAuthor

    CF-8 checkpoint, 2026-11-01 (main at 0a8c513, candidate b643617)

    Receipt reconciled: #474, docs only. It records three things:

    Reseeded on b643617 with the committed seed.mjs, which is unchanged since the candidate. I built it in a new worktree with pnpm install --frozen-lockfile && pnpm build. A copy of the home opened on that build with the Markdown review thread. That is a smoke check only, not a human row.

    cd ~/Documents/GitHub/TypeSafeAI/modex/.worktrees/cf8-voiceover-b643617/apps/desktop
    MODEX_HOME=$PWD/.probes/voiceover-b643617/home npx electron .

    A pristine copy of the seeded home is in ~/.claude/task-evidence/lane-b-2026-11-01/cf8-voiceover/voiceover-b643617-pristine.tgz.

    One question for Val: should A1–A8 and B1–B7 run on this b643617 build, or on a new candidate pinned from current main?

    I have not pinned or built anything new.

    Rows:

    • A1–A8: open.
    • B1–B7: open.
    • C1–C5: deferred by Val (2026-10-30).
    • D1–D5, V1–V3, P1–P6: open. See the #276 check: the question path is unchanged since 6c9000f, the DMG hash matches, and TestFlight is unconfirmed.

    Nothing has passed or failed.

    🤖 Generated with Claude Code

  14. BunsDev commented on Nov 1, 2026

    @BunsDev
    ContributorAuthor

    Val's CF-3 decision, 2026-11-01: “skip voiceover for now and just proceed”. V1–V3 and P5 are deferred for now, not run or passed. #281's checklist now carries that wording beside those rows; their checkboxes remain unticked. The docs-only signed PR #476 preserves the historical table and adds this later decision; it is awaiting Val’s merge go-ahead.

    Fetched main at 9ecccc9bcea42ec99cd76092b1fe3bec15d05775; only docs changed since the prepared source candidate 85d2c001a73395d5e6e2a1ee388b58253d4bce83. #476 previously passed hosted checks at cd8d50e8eaec5c74e2988403d0ed4cdb161e990c. Its docs conflict with newer CF-8 notes is now reconciled at signed commit b6bbcc6eab7d3e2eea6d19483f80edcb0409cd2b; GitHub reports it mergeable, with fresh checks queued/in progress (run). It remains unmerged pending fresh CI and Val’s go-ahead. Application source is unchanged from the prepared candidate. These checks add no human-row results. Companion remains 0.4.0 (9) with the native question card; its TestFlight upload is still unconfirmed. The refreshed ad-hoc Mac 0.4.1 build is ready at .worktrees/cf3-vo-deferral/apps/desktop/release/Modex-0.4.1-arm64.dmg (SHA-256 05ef468da1e50b0e9fa4a43809499043c928f46dd1e5dde101e5bffb895dc36d). The empty disposable repository is .worktrees/cf3-vo-deferral/apps/desktop/.probes/cf3-disposable; use codex-cli 0.166.0, Plan mode and Read only. The build is ad-hoc signed and is not a release artifact. Start its release/mac-arm64/Modex.app with MODEX_EVENT_JOURNAL=1 for D4.

    Rows: 0 passed, 0 failed, 4 deferred for now (V1–V3, P5), 10 open (D1–D5, P1–P4, P6). No simulator or e2e result is counted as human acceptance. #276 remains open.

    Next action for Val: run D1–D5 with the prepared Mac candidate and report each result; VoiceOver is skipped for this pass.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

enhancementNew feature or request

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions