[2126 by GPT-5.6 Sol] Restore real Linux setup wizard in the current desktop UI - #2132
Conversation
… current des Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
|
/ultrafix goal=8 max=1 |
|
🔄 Ultrafix loop started (goal: 8/10, max cycles: 1) First action:
|
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
|
Independent review + current CI correction request for exact head 8259e3c. Finish the currently running Ultrafix review first, then address demonstrated blockers together in one focused pass:
Independent merge inspection confirms rollback finally reconciliation, ProfileStore v3, exact-origin CSP and normal save/probe/pair/activate are preserved; retain them. No workflow diff was introduced, so do not chase the six-target CI display as a new profile regression. Leave PR open for verification and integrate only into desktop epic, never main. |
Checks FailedValidation failed during setup, tests, CLI packaging, linting, or build checks. View Logs |
|
Additional exact CI evidence for the same pending correction pass: Validate Changes run34026886517/job101469336395 fails only UI lint here: propr-ui/src/desktop/electronAdapters.test.ts:445 max-lines warning (406 versus limit400), with --max-warnings0. Root inspected the complete build-check-output artifact; UI typecheck and CLI lint pass. Split the new setup-specific tests into a focused file without disabling lint or dropping coverage. This is a small build correction, not a new feature. |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis PR needs significant rework before merge. The architecture is thoughtful, but the real setup path currently breaks synchronous host-action contracts, has an admission/cancellation race, and mishandles failures after persisted-secret reconfiguration. ✅ Narrow privilege boundary — Renderer requests are strictly parsed, while private keys and webhook secrets remain behind opaque, session-bound main-process capabilities. ✅ Defensive filesystem validation — Setup roots and selected key files receive ownership, permission, symlink, inode, and boundary checks. ✅ Strict connection handoff — Successful setup is routed through the existing probe, pairing, activation, and profile flow, with focused integration coverage. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F1: 🔴 Proxy breaks synchronous actions
F2: 🔴 Setup admission is not atomic
F3: 🔴 Reconfigured failures bypass recovery
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Interrupt long subprocessesThe new signal checks in S2: 🟢 Strengthen resource integrity
ScoreThe security-oriented design is promising, and no current check has failed, but the synchronous-action regression prevents confidence in the primary setup journey while two lifecycle/recovery defects remain. Score: 4/10 🤖 Review Details
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit a54f16b Processed 3 comments:
Summary of ChangesImplemented the PR #2132 follow-up corrections.
Verification passed:
No commit, PR, workflow, or integration action was performed. Visual previewDesktop setup status recoveryThe guided Linux setup now surfaces an unavailable status with visible Back and Retry actions at a 1280×820 desktop viewport. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
|
/fix F1 F2 F3 |
Implemented the PR #2132 follow-up corrections. - Desktop GitHub and agent authentication now opens in a visible Linux terminal asynchronously and supports cancellation/process-tree termination. - macOS temp fixtures use canonical native paths while production symlink protections remain unchanged. - Setup status, cancellation, and recovery retry failures are visible with working Back/Retry actions. - Setup adapter tests were split into a focused file, resolving the UI max-lines lint failure. - Added host-boundary tests without credentials, Docker installation, or a real stack. - Generated focused transient preview evidence for the recovery screen. Verification passed: - 80 focused setup/host/engine tests - 21 focused UI tests - Full desktop suite: 497 passed, 25 platform skips - CLI, desktop, and UI typechecks - CLI lint and UI lint with `--max-warnings 0` - `git diff --check` No commit, PR, workflow, or integration action was performed. PR: #2132 Comment by: @integry (ID: 5558574637) Comment by: @github-actions[bot] (ID: 5558575451) Comment by: @integry (ID: 5558580024) Model: gpt-5.6-sol
|
✅ Applied the requested follow-up changes in commit 9233372
Summary of ChangesImplemented only F1–F3:
Verification:
Visual previewSuggested agent tools
🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented only F1–F3: - Preserved synchronous `SetupActions` return values while validating promises asynchronously. - Made setup admission atomic before capability resolution; cancellation/shutdown now track and abort preflight work. - Restored recovery after failed or cancelled reconfigured retries while retaining form mode for rejected submissions. - Added focused desktop and UI regressions. Verification: - Desktop suite: 499 passed, 25 skipped, 0 failed. - UI setup tests: 7 passed. - Desktop/UI typechecks passed. - UI lint passed with zero warnings. - `git diff --check` passed. Visual capture was blocked by the missing Playwright Chromium binary; `.propr/previews/manifest.json` records the required tooling. No commit was created. PR: #2132 Comment by: @integry (ID: 5558605912) Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis PR substantially restores the Linux desktop setup journey with a well-separated renderer/main-process design, but it is not ready to merge. Four correctness and safety gaps remain around production cancellation, private-key validation, credential recovery, and restart recovery; these require significant correction despite the currently reported zero failed checks. The 19 pending checks must also complete successfully. ✅ Narrow desktop boundary — The renderer receives fixed setup operations and opaque capabilities, while ✅ Visible authentication handoff — GitHub and agent authentication now flow through an asynchronous desktop terminal handoff with propagated abort signals instead of inherited Electron stdio. ✅ Focused integration coverage — The PR tests IPC forwarding, cancellation/retry, unauthenticated host actions, setup-to-pairing handoff, and credential-free persisted recovery paths. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F4: 🔴 Production operations do not cancel promptly
F5: 🔴 Key size validation has a TOCTOU gap
F6: 🔴 Invalid credentials trap recovery in retry
F7: 🔴 Completion is lost across restart
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Enforce mid-operation root assertions
S2: 🟢 Align numeric form validation
ScoreThe architecture and tests are strong, and current-head status reports no failures, but the four remaining lifecycle and capability defects prevent safe merge. The corrections are localized, though they cover important advertised behavior. Score: 5/10 🤖 Review Details
🤖 Review by ProPR |
|
/fix F4 F5 F6 F7 |
|
✅ Applied the requested follow-up changes in commit 338cc73
Summary of ChangesImplemented only F4–F7:
Verification passed:
No commit was created. Visual previewCredential recovery actionsDesktop recovery after a credential-bearing failure, showing separate review and transient retry actions at 1280×820. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented only F4–F7: - Propagated abort signals through Docker startup, image pulls, status checks, and agent connectivity. Child processes terminate, escalate to `SIGKILL`, and are reaped before cancellation settles. - Revalidated key metadata from the opened descriptor and replaced unbounded reads with a 1 MiB-bounded read. - Added separate “Review saved choices” and “Retry setup” recovery actions. - Persisted and validated completed local profiles across restarts, with explicit interrupted recovery for invalid state. - Captured focused visual preview evidence for the updated recovery screen. Verification passed: - CLI setup: 113 tests - Orchestrator: 31 tests - Desktop UI: 102 tests - Full desktop suite: 503 passed, 25 platform skips - CLI, desktop, and UI typechecks - CLI and UI lint - `git diff --check` No commit was created. PR: #2132 Comment by: @integry (ID: 5558793662) Model: gpt-5.6-sol
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
|
Independent exact-head follow-up for 338cc73: F5 bounded opened-descriptor reads and F7 validated completion recovery are fixed. F4 has one narrow remaining gap: agentValidation.ts uses fail-fast Promise.all for concurrent version/host/image checks (around638) and another inside versionInfo (around500). Individual child helpers now correctly terminate and await close, but one rejected child allows the aggregate to enter finally/remove temporary resources and return cancellation while another started child is still terminating/reaping. After the active review finishes, please make a bounded correction that drains all started concurrent checks before cleanup/cancellation settles, preserving the original failure and abort semantics. Add coverage with staggered child termination proving cleanup and cancellation wait for every started check, not only the single Docker pull covered by the existing test. No broader refactor, Windows work, or optional review suggestions. If the active review reports this same issue, treat it as one correction, not two passes. Do not merge. |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis PR restores the Linux local-setup journey through a thoughtfully constrained Electron IPC boundary, native secret handling, resumable state, and the existing setup engine. It needs a minor workflow correction before merge; current checks have no failures but remain largely pending. ✅ Strong privilege boundary — Renderer input is schema-validated, filesystem access uses opaque capabilities, and raw secrets remain in the main process. ✅ Thorough cancellation plumbing — Abort signals reach Docker, authentication, agent validation, controller shutdown, and retry paths, with focused tests covering process reaping and recovery. ✅ Authenticated completion flow — Successful setup returns through the existing profile save, strict probe, pairing, activation, and authenticated reprobe flow. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F8: 🔴 Recovery cannot change ordinary choices
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Reconcile cancelled startup services
S2: 🟢 Validate hydrated resume state
S3: 🟢 Clean up superseded key copiesPrivate-key capabilities copy keys into the setup state directory, but abandoned attempts and later reconfiguration can leave unused copies indefinitely. Tracking and removing demonstrably unreferenced copies would improve sensitive-file lifecycle hygiene without changing the correctness of the current owner-only storage model. ScoreThe implementation is substantial, security-conscious, and well tested, but the recovery dead end affects a core journey promised by the PR. Once that localized UI gate is corrected and pending checks finish successfully, it should be close to merge-ready. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit b231480 Summary of ChangesImplemented the bounded F4 correction without committing or merging.
Validation passed:
No visual preview was created because the change is not user-visible. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
|
/fix F8 |
Full Test Suite ResultsValidation failed during: Full test suite.
View Test Output |
… merging. Implemented the bounded F4 correction without committing or merging. - Both concurrent joins now preserve the first rejection while draining every started check before cleanup: [agentValidation.ts](/tmp/git-processor/worktrees/integry/propr/pr-2132-followup-2026-09-06T11-36-29/packages/cli/src/commands/agentValidation.ts:473). - Added staggered subprocess coverage for host/image version and validation checks, verifying cancellation and temporary-resource cleanup wait for the slowest child: [cliAgentValidation.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2132-followup-2026-09-06T11-36-29/test/cliAgentValidation.test.ts:160). - Updated the existing test orchestrator stub with its required asynchronous Docker method. Validation passed: - Focused cancellation/setup suites: 26 tests - CLI typecheck - CLI lint - CLI build - `git diff --check` No visual preview was created because the change is not user-visible. PR: #2132 Comment by: @integry (ID: 5558903961) Model: gpt-5.6-sol
|
✅ Applied the requested follow-up changes in commit 8286112 Processed 2 comments:
Summary of ChangesImplemented F8 only.
Validation passed:
Visual previewSaved-choice recovery actionOrdinary relay failure now offers Review saved choices alongside retry in the Linux desktop setup recovery screen. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F8 only. - Recovery now offers “Review saved choices” for resumable failed, cancelled, and interrupted setups—not only expired credentials. - Edited choices are submitted through `retry(request)`. - Credential re-entry behavior remains unchanged. - Added regression coverage for changing relay configuration to demo mode across all three recovery phases. - Captured focused visual preview evidence. Validation passed: - Focused tests: 11/11 - UI typecheck - UI lint with zero warnings - `git diff --check` PR: #2132 Comment by: @integry (ID: 5558951327) Comment by: @github-actions[bot] (ID: 5558954537) Model: gpt-5.6-sol



AI Implementation Summary
Closes #2126
Branch:
2126/gpt-5.6-sol-restore-real-linux-setup--20260906-0949-v1eCommits: ✅ Changes committed (8259e3c)
AI Processing Completed
Execution Details:
Summary:
Implemented the real Linux local setup journey.
Key changes:
@propr/local-setupengine through main-process IPC.Verification:
Detailed Logs:
01a07620-1bad-7110-be05-85619d4af603Log files stored at:
/tmp/claude-logs/issue-2126-2026-09-06T10-14-52-858Z-conversation.json/tmp/claude-logs/issue-2126-2026-09-06T10-14-52-858Z-output.txtLatest Conversation Messages
This PR was created automatically by ProPR after processing issue #2126.
💡 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!
Visual preview
Linux setup prerequisites
The production desktop entry opens the restored guided Linux setup journey at a 1280×820 desktop viewport.