Skip to content

[2024 by GPT-5.6 Sol] Make desktop pairing deadline-settlement tests deterministic - #2025

Merged
integry merged 2 commits into
1953-epic-desktop-transport-apifrom
2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc
Aug 31, 2026
Merged

[2024 by GPT-5.6 Sol] Make desktop pairing deadline-settlement tests deterministic#2025
integry merged 2 commits into
1953-epic-desktop-transport-apifrom
2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc

Conversation

@propr-dev

@propr-dev propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor

AI Implementation Summary

Closes #2024

Branch: 2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc
Commits: ✅ Changes committed (23ff74e)


AI Processing Completed

Execution Details:

Summary:
Implemented deterministic desktop pairing deadline settlement.

Key changes:

  • Added an injectable monotonic pairing clock in desktopPairing.ts.
  • Added explicit overall-timeout classification so deadline-clamped polls return PAIRING_EXPIRED, while header/body and ordinary request timeouts remain unchanged.
  • Updated desktopPairing.test.ts with deterministic microtask and next-task late-response tests under simulated scheduler delay.
  • Tests use a fully valid token response, ensuring it can never be accepted after expiry.

Validation completed:

  • Client typecheck passed.
  • Client build passed.
  • Full client suite passed: 51 tests.
  • Focused deterministic deadline tests passed.

Detailed Logs:

  • Conversation: 39 messages
  • Session: 01a05870-f38b-7371-bead-9371b288451f

Log files stored at:

  • conversation: /tmp/claude-logs/issue-2024-2026-08-31T15-38-17-105Z-conversation.json
  • output: /tmp/claude-logs/issue-2024-2026-08-31T15-38-17-105Z-output.txt
Latest Conversation Messages

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


💡 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!

…nt tests det

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

Implementation completed successfully.
@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

/ultrafix
Triggered automatically by Planner execution settings.

@propr-dev propr-dev Bot added the ultrafix label Aug 31, 2026
@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

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

First action: /review

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

@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

AI Code Review Complete requested by @propr-ultrafix

Posted 1 review:

View Task Details

@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

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

Overall Evaluation

This PR correctly makes desktop pairing expiry deterministic when the transport timeout reaches the pairing deadline before the lifetime timer runs. It is ready to merge.

Boundary-specific classificationpairingProtocol.ts reclassifies only the overall timeout; earlier header and body timeouts retain their transport-timeout behavior.

Late responses remain unusabledesktopPairing.ts marks the pairing terminal before propagating the expiry, and the transport continues owning late promise settlement and response cancellation.

Deterministic regression coverage — Tests cover valid token responses settling in both a microtask and a subsequent task after the simulated deadline.

Merge blockers

No merge blockers.

Suggestions

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

S1: 🟢 Cover early transport timeouts

A focused completeDesktopPairing test could verify that header or body timeouts occurring strictly before the pairing deadline remain kind === 'timeout'. The phase check in packages/client/src/pairingProtocol.ts already implements this correctly, so this would be optional defense against future regression rather than required work.

Score

The implementation is narrowly scoped, internally consistent, well tested for the reported race, and all authoritative checks pass.

Score: 9/10


🤖 Review Details

  • Model: GPT-5.6 Sol
  • Time: 3m 8s
  • Tokens: 43,054 (37,974 in / 5,080 out)
  • Cost: $0.30

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 Aug 31, 2026

Copy link
Copy Markdown
Owner

/merge

@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

🔀 Auto-merged 1953-epic-desktop-transport-api into 2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc (clean merge) in commit 68360b4

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


🤖 Verification Details

  • Model: gpt-5.6-sol
  • Time: 2m 19s

View Task Execution


System-triggered merge conflict resolution

… into 2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc
@integry integry added AI and removed AI labels Aug 31, 2026
@integry

integry commented Aug 31, 2026

Copy link
Copy Markdown
Owner

/review

@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

AI Code Review Complete requested by @integry

Posted 1 review:

View Task Details

@integry integry removed the AI label Aug 31, 2026
@propr-dev

propr-dev Bot commented Aug 31, 2026

Copy link
Copy Markdown
Contributor Author

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

Overall Evaluation

The PR correctly makes desktop pairing expiry deterministic by combining wall-clock and monotonic deadlines and reclassifying only deadline-clamped transport timeouts. It is ready to merge once the four pending checks complete successfully; no current check is failing.

Deadline-safe settlementcompleteDesktopPairing verifies remaining lifetime after each asynchronous boundary, preventing late provisional credentials from being accepted.

Narrow timeout classificationpairingProtocol.ts applies the custom error only to the overall timeout; header, body, cancellation, and caller-abort behavior retain their existing classifications.

Deterministic regression coverage — The tests exercise both microtask and next-task late responses with independent controlled clocks and a fully valid provisional response.

Merge blockers

No merge blockers.

Suggestions

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

S1: 🟢 Add transport-level classification tests

A focused pairingTransport.test.ts case could pass overallTimeoutError and explicitly verify that only the overall boundary uses it while header and body deadlines still produce ordinary timeout errors. The implementation is already narrowly conditioned and the integration tests cover the principal regression, so this is optional defense against future refactoring.

Score

The changed behavior is internally consistent, well bounded, and covered by deterministic regression tests. With no verified blocker or failing check, only completion of the pending CI jobs remains.

Score: 9/10


🤖 Review Details

  • Model: GPT-5.6 Sol
  • Time: 3m 58s
  • Tokens: 46,459 (39,957 in / 6,502 out)
  • Cost: $0.35

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 merged commit b9e29d4 into 1953-epic-desktop-transport-api Aug 31, 2026
18 checks passed
@integry
integry deleted the 2024/gpt-5.6-sol-make-desktop-pairing-dead-20260831-1528-lsc branch September 1, 2026 21:42
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