Skip to content

[2109 by GPT-5.6 Sol] Desktop packaged Connect: stabilize macOS browser approval readiness - #2110

Merged
integry merged 4 commits into
1953-epic-desktop-transport-apifrom
2109/gpt-5.6-sol-desktop-packaged-connect--20260904-1655-c39
Sep 4, 2026
Merged

[2109 by GPT-5.6 Sol] Desktop packaged Connect: stabilize macOS browser approval readiness#2110
integry merged 4 commits into
1953-epic-desktop-transport-apifrom
2109/gpt-5.6-sol-desktop-packaged-connect--20260904-1655-c39

Conversation

@propr-dev

@propr-dev propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #2109

Branch: 2109/gpt-5.6-sol-desktop-packaged-connect--20260904-1655-c39
Commits: ✅ Changes committed (bb07cbe)


AI Processing Completed

Execution Details:

Summary:
Implemented the macOS browser-approval readiness fix.

  • Added approval-task tracking so expired/cancelled pairing promises cannot leave browser navigation running after the harness advances.
  • Drain approval work after both negative cases and before terminal READY.
  • Preserved the isolated, credentialless, single-GET approval flow and exact evidence counts.
  • Kept Windows behavior unchanged.
  • Added delayed-approval and lifecycle-order regressions.

Changed files:

Validation:

  • Desktop typecheck passed.
  • Full desktop suite passed: 425 passed, 25 platform-specific skipped, 0 failed.
  • Targeted approval and packaged lifecycle suites passed.
  • No visual preview created because the change is non-visual.

Detailed Logs:

  • Conversation: 79 messages
  • Session: 01a06d59-29a0-7b23-a167-e51c776767e3

Log files stored at:

  • conversation: /tmp/claude-logs/issue-2109-2026-09-04T17-05-08-371Z-conversation.json
  • output: /tmp/claude-logs/issue-2109-2026-09-04T17-05-08-371Z-output.txt
Latest Conversation Messages

This PR was created automatically by ProPR after processing issue #2109.


💡 Need changes?

Comment on this PR to request refinements — the AI agent monitors comments and will update the implementation based on your feedback. Keep iterating until you're satisfied!

…cOS browser

Implemented by ProPR AI using gpt-5.6-sol model.

Implementation completed successfully.
@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

/ultrafix goal=9 max=3

@propr-dev propr-dev Bot added the ultrafix label Sep 4, 2026
@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🔄 Ultrafix loop started (goal: 9/10, max cycles: 3)

First action: /review

💡 Tip: Remove the ultrafix label from this PR to stop further ultrafix cycles.

@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

/review

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

AI Code Review Complete requested by @integry

Posted 1 review:

View Task Details

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🔍 AI Code Review — codex:gpt-5.6-sol

Overall Evaluation

This PR correctly adds ownership and draining for delayed packaged browser-approval work. No source-level blocker is evident, but it needs minor follow-up before merge because five authoritative current-head checks are failing and eight remain pending.

Approval work remains ownedcreatePackagedApprovalTaskTracker registers tasks synchronously, observes late rejection, and drains all active work before returning.

Lifecycle sequencing is explicitmain.ts drains approvals after both negative cases and before reporting terminal journey completion.

Focused regression coverage — The new test verifies delayed approvals complete exactly once before the next pairing case advances.

Merge blockers

No merge blockers.

Suggestions

These are optional follow-ups and are not sent to /fix.

S1: 🟢 Cover rejection bookkeeping

Add a focused test in apps/desktop/src/packaged-approval-session.test.ts confirming that a rejected tracked approval is fully drained and causes waitForIdle() to reject. The implementation appears correct, so this is optional coverage rather than a merge blocker.

Score

The implementation appears correct within scope and includes useful regression coverage, but the five current-head failures prevent calling it merge-ready until their causes are resolved or shown to be unrelated.

Score: 7/10


🤖 Review Details

  • Model: GPT-5.6 Sol
  • Time: 58s
  • Tokens: 40,777 (38,105 in / 2,672 out)
  • Cost: $0.22

View Task


💡 Next step: Comment /fix to address F# merge blockers only.
F# IDs increment across review comments and remain permanent, so selectors such as /fix F3 F5 stay unambiguous across cycles. Suggestions require a separate ordinary follow-up request.

🤖 Review by ProPR

@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Darwin x64 fails deterministically on this head: original job 101107304625 and targeted rerun attempt 2 job 101109684947 both report PAIRING_START_COUNT_MISMATCH. Linux x64/ARM64 pass. This is owned by #2110 and must be corrected before merge.

Diagnose whether the new approval tracker changes fixture mode transitions, releases a late task too early, or causes a missing/duplicate POST /api/desktop/pairings. Add bounded secret-safe diagnostic classification that distinguishes missing vs duplicate start without logging counts, URLs, or secrets. Add a real packaged lifecycle regression that reproduces delayed Darwin approval readiness and asserts exactly three intended pairing starts, exactly three approval GETs, one poll, one activation, no late request after terminal/cancel/expiry, and successful pair + fresh reprobe. Do not loosen the exact evidence invariant. Preserve cancellation/expiry cases, session/WebContents ownership boundaries, Linux behavior, and Windows out-of-scope. Fresh Darwin x64 must pass; Darwin ARM64 storage identity remains separately owned by #2108.

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🛑 Execution Cancelled

The task processing was stopped by user request.

You can post a new comment to restart processing.

@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Retry after stale worker pr-comments-batch-integry-propr-2110-1788542238944 exited without a commit. The blocker remains: Darwin x64 jobs 101107304625 and rerun 101109684947 both fail PAIRING_START_COUNT_MISMATCH on bb07cbe, while Linux passes.

Diagnose and fix the owned readiness/tracker ordering bug. Preserve exactly three intended POST pairing starts and three credentialless approval GETs, one poll, one activation, expiry/cancel isolation, no late request after terminal state, and real pair plus fresh reprobe. Add fixed secret-safe missing-vs-duplicate start classification and a lifecycle regression that actually delays macOS approval readiness and proves the complete exact evidence set. Consider the scoped macOS loopback local-network permission boundary if it is the cause, but allow only the claimed approval WebContents/main frame and exact active approval URL/origin; deny every other permission. Do not loosen counts or touch Windows. Fresh Darwin x64 and Linux x64/ARM64 must pass.

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Applied the requested follow-up changes in commit f5af300

Summary of Changes

Implementation and focused validation are complete. I’m doing one final full desktop-suite pass on the exact final tree, then I’ll report the platform limitation: this workspace has no packaged Darwin/Linux artifacts, so the fresh x64/ARM64 packaged matrix must be exercised by CI. No visual preview is warranted because all changes are harness/tracker behavior and diagnostics.


🤖 Implementation Details

  • Model: GPT-5.6 Sol (high)
  • Requested By: @integry
  • Time: 15m 24s

Undo ChangesView Task Execution


💡 ProPR Slash Commands
Command Description Example
/merge Merge target branch into this PR and resolve conflicts /merge
/review Request an AI code review /review or /review claude-sonnet
/fix Implement fixes for issues found by /review /fix or /fix address the null check issue
/switch Change the AI model for this PR /switch claude-opus
/use Override the model for a single follow-up run /use claude-sonnet
/ultrafix Loop review→fix cycles until score goal is met /ultrafix or /ultrafix goal=8 max=10

🤖 Generated by ProPR
Processing comment ID: 5544223426✓

…ng one final full desktop-suite pass on the exact final tree, then I’ll report the platform limitation: this workspace has no packaged Darwin/Linux artifacts, so the fresh x64/ARM64 packaged matrix must be exercised by CI. No visual preview is warranted because all changes are harness/tracker behavior and diagnostics.

Implementation and focused validation are complete. I’m doing one final full desktop-suite pass on the exact final tree, then I’ll report the platform limitation: this workspace has no packaged Darwin/Linux artifacts, so the fresh x64/ARM64 packaged matrix must be exercised by CI. No visual preview is warranted because all changes are harness/tracker behavior and diagnostics.

PR: #2110
Comment by: @integry (ID: 5544223426)
Model: gpt-5.6-sol
@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

/merge

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🔀 Auto-merged 1953-epic-desktop-transport-api into 2109/gpt-5.6-sol-desktop-packaged-connect--20260904-1655-c39 (clean merge) in commit a129e09

No conflicts were found — the merge was verified by an AI agent.


🤖 Verification Details

  • Model: gpt-5.6-sol
  • Time: 1m 39s

View Task Execution


System-triggered merge conflict resolution

… into 2109/gpt-5.6-sol-desktop-packaged-connect--20260904-1655-c39
@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

/review

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

AI Code Review Complete requested by @integry

Posted 1 review:

View Task Details

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🔍 AI Code Review — codex:gpt-5.6-sol

Overall Evaluation

This PR correctly addresses delayed macOS approval work by tracking browser tasks, waiting for cancellation readiness, and draining outstanding work before fixture transitions and terminal readiness. It is ready to merge within scope once the pending platform checks complete.

Approval lifecycle ownershipmain.ts now drains tracked approval work after expiry, cancellation, and before journey completion.

Exact secret-safe diagnostics — The evidence evaluator distinguishes missing from duplicate pairing starts while returning only fixed event and code fields.

Real delayed-readiness coverage — The Darwin fixture delays approval responses and verifies method boundaries, credential absence, request ordering, and lifecycle isolation.

Merge blockers

No merge blockers.

Suggestions

These are optional follow-ups and are not sent to /fix.

No suggestions.

Score

The changed behavior is internally consistent and well covered by unit, evidence, lifecycle, and packaged-platform validation. No current check has failed, although the decisive Darwin and Linux packaged checks remain pending.

Score: 8/10


🤖 Review Details

  • Model: GPT-5.6 Sol
  • Time: 2m 58s
  • Tokens: 59,003 (49,603 in / 9,400 out)
  • Cost: $0.48

View Task


💡 Next step: Comment /fix to address F# merge blockers only.
F# IDs increment across review comments and remain permanent, so selectors such as /fix F3 F5 stay unambiguous across cycles. Suggestions require a separate ordinary follow-up request.

🤖 Review by ProPR

@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

The current combined head a129e09 is not merge-ready because the base merge exposed one deterministic composition-test incompatibility. Jobs 101121493035, 101121493123, and 101121493162 fail apps/desktop/scripts/packaged-connect-platform.test.mjs:67: the regex requires runPhase('reprobe') immediately after if (outcome.ok && journeyFixture) {, but #2110 intentionally inserts the secret-safe pairingRequestCountAtPairTerminal snapshot before reprobe.

Fix only this stale structural assertion so it proves all of the intended ordering: pair completes; execution enters the successful journey-fixture block; the terminal pairing-request snapshot is captured before reprobe; reprobe then runs. Keep it strict enough to fail if the snapshot moves after reprobe or outside the successful pair block. Do not remove or weaken the snapshot/evidence invariant and do not change production runtime behavior for this test-only correction.

Also note packaged Darwin ARM64 job 101121437574 passed certificate creation, keychain setup, signing, initial signature verification, and the pairing flow, then failed later at JOURNEY_REPROBE_REACT_CONNECTED with RENDERER_STATE_TIMEOUT. Do not speculate or change runtime for that single result in this correction; fresh exact-head CI after the deterministic test fix should classify it. Windows remains out of scope.

@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

Applied the requested follow-up changes in commit 24ffd83

Summary of Changes

Updated the stale structural assertion in packaged-connect-platform.test.mjs.

It now strictly verifies:

pair completes → successful journey-fixture block begins → terminal request snapshot is captured → reprobe runs.

No runtime or Windows changes were made. Darwin ARM64 behavior remains untouched for fresh CI classification.

Validation: 41 tests passed across the platform and lifecycle suites; git diff --check passed. No visual preview was needed for this test-only change.


🤖 Implementation Details

  • Model: GPT-5.6 Sol (high)
  • Requested By: @integry
  • Time: 2m 22s
  • Tokens: 209,199 (205,471 in / 3,728 out)
  • Cost: $0.42

Undo ChangesView Task Execution


💡 ProPR Slash Commands
Command Description Example
/merge Merge target branch into this PR and resolve conflicts /merge
/review Request an AI code review /review or /review claude-sonnet
/fix Implement fixes for issues found by /review /fix or /fix address the null check issue
/switch Change the AI model for this PR /switch claude-opus
/use Override the model for a single follow-up run /use claude-sonnet
/ultrafix Loop review→fix cycles until score goal is met /ultrafix or /ultrafix goal=8 max=10

🤖 Generated by ProPR
Processing comment ID: 5544503194✓

…-platform.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2110-followup-2026-09-04T18-00-19/apps/desktop/scripts/packaged-connect-platform.test.mjs:117).

Updated the stale structural assertion in [packaged-connect-platform.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2110-followup-2026-09-04T18-00-19/apps/desktop/scripts/packaged-connect-platform.test.mjs:117).

It now strictly verifies:

`pair` completes → successful journey-fixture block begins → terminal request snapshot is captured → `reprobe` runs.

No runtime or Windows changes were made. Darwin ARM64 behavior remains untouched for fresh CI classification.

Validation: 41 tests passed across the platform and lifecycle suites; `git diff --check` passed. No visual preview was needed for this test-only change.

PR: #2110
Comment by: @integry (ID: 5544503194)
Model: gpt-5.6-sol
@integry

integry commented Sep 4, 2026

Copy link
Copy Markdown
Owner

Merging the completed #2109 scope into the transport epic. Exact head 24ffd83 fixes the deterministic pairing-start/browser-readiness regression; full suite, Validate Changes, all unsigned Darwin/Linux packages, packaged Darwin x64, and packaged Linux x64/ARM64 pass. The sole remaining red, packaged Darwin ARM64 post-activation reprobe renderer-state timeout, is isolated in #2111 and is not a pairing/signing/storage failure.

@integry
integry merged commit b3ce045 into 1953-epic-desktop-transport-api Sep 4, 2026
26 of 32 checks passed
@propr-dev

propr-dev Bot commented Sep 4, 2026

Copy link
Copy Markdown
Contributor Author

🛑 Execution Cancelled

The task processing was stopped by user request.

You can post a new comment to restart processing.

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

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant