[Epic] 1951-epic-desktop-experience-uxs - #1968
Conversation
…gine for CLI Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
…tance connec Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
Implemented the follow-up fix without committing. - [pr-build-check.yml](/tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-25-06/.github/workflows/pr-build-check.yml:34) now builds `@propr/local-setup` before every affected CLI typecheck/test. - [build-publish.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-25-06/packages/cli/scripts/build-publish.mjs:77) now builds and vendors `@propr/local-setup`, rewriting private workspace imports for the standalone CLI package. Verified successfully: - Local-setup and CLI typechecks - CLI lint - Hosted-tunnel suite: 312 tests passed - Init JSON suite: 12 passed - Local-setup suite: 9 passed - Agent Skill suite: 62 passed, 1 platform skip - CLI package dry-run and installed-tarball smoke test - YAML parsing and `git diff --check` Docker was unavailable locally, so the exact containerized `actionlint` invocation could not run. PR: #1963 Comment by: @github-actions[bot] (ID: 5462947943) Model: gpt-5.6-sol
…s](/tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-34-00/packages/cli/src/commands/taskInspectCommands.test.ts:107). Fixed the full-suite failure in [taskInspectCommands.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-34-00/packages/cli/src/commands/taskInspectCommands.test.ts:107). The test now validates concurrent state requests without assuming nondeterministic request order. Canonical output ordering remains separately verified. Validation: - Focused test passed 20 consecutive runs - CLI typecheck passed - `git diff --check` passed - No commit created PR: #1963 Comment by: @github-actions[bot] (ID: 5462991038) Model: gpt-5.6-sol
…p-shaped-ui-20260829-1408-e9w [1959 by GPT-5.6 Sol] Add the desktop-shaped UI mode and instance connection experience
…tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-56-46/.github/workflows/cli-node-compatibility.yml:6): Implemented the follow-up in [cli-node-compatibility.yml](/tmp/git-processor/worktrees/integry/propr/pr-1963-followup-2026-08-29T14-56-46/.github/workflows/cli-node-compatibility.yml:6): - Builds `@propr/shared`, then `@propr/local-setup`, before project-options tests. - Triggers compatibility checks when `packages/local-setup/**` changes. - Audited other clean-checkout CLI paths; they already prepare both dependencies via explicit builds, `test:prepare`, or self-contained `cli:pack`. Validation passed: - Node 22: 26/26 project-options tests - Node 24: 26/26 project-options tests - Full suite: all 309 test files plus UI workspace passed; UI 465/465 tests - `npm run cli:pack` - Actionlint 1.7.12 - Workflow YAML parsing and `git diff --check` Only the compatibility workflow is modified. No commit was created. PR: #1963 Comment by: @integry (ID: 5463097453) Model: gpt-5.6-sol
…-agnostic-l-20260829-1408-o4c [1958 by GPT-5.6 Sol] Extract the UI-agnostic local setup engine for CLI and desktop use
|
!propr The UX epic now contains both validated child implementations (#1964 desktop connection chooser and #1963 extracted local-setup engine), but the epic PR conflicts with its updated top-level base after the validated transport epic landed. Merge the current |
|
/merge |
|
🔀 Resolved merge conflicts from Conflicting Files
Resolution SummaryResolved all actual merge conflict markers in: Conflict details:
Verification:
Git could not mark the files resolved because the linked worktree index is root-owned ( 🤖 Resolution Details
System-triggered merge conflict resolution |
…epic-desktop-experience-uxs Automatically resolved merge conflicts after merging target branch into PR branch. Resolved conflicts in: - propr-ui/src/api/apiClient.ts - propr-ui/src/api/compatibility.ts PR: #1968 Model: gpt-5.6-sol
Checks FailedValidation failed during setup, tests, CLI packaging, linting, or build checks. View Logs |
|
✅ Applied the requested follow-up changes in commit 79e5111 Summary of ChangesFixed the PR build failure in App.tsx. The merged file exceeded ESLint’s 400-line limit by one effective line; the default wrapper is now a compact named function with unchanged behavior. Validation passed:
Only 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
…worktrees/integry/propr/pr-1968-followup-2026-08-29T15-39-39/propr-ui/src/App.tsx:458). The merged file exceeded ESLint’s 400-line limit by one effective line; the default wrapper is now a compact named function with unchanged behavior. Fixed the PR build failure in [App.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T15-39-39/propr-ui/src/App.tsx:458). The merged file exceeded ESLint’s 400-line limit by one effective line; the default wrapper is now a compact named function with unchanged behavior. Validation passed: - UI lint with zero warnings - UI typecheck - UI production build - Focused App and desktop-pairing tests: 9/9 - `git diff --check` Only `propr-ui/src/App.tsx` was modified. No commit was created. PR: #1968 Comment by: @github-actions[bot] (ID: 5463307288) Model: gpt-5.6-sol
|
/ultrafix goal=8 max=10 |
|
🔄 Ultrafix loop started (goal: 8/10, max cycles: 10) First action:
|
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis epic introduces a UI-agnostic local-setup package and a desktop presentation layer supporting instance profiles, connection probing, authentication handoff, and live API-base switching. The visible implementation is thoughtfully separated and well tested, but it is not ready to merge because production fixture activation and rejected adapter operations can leave users in unsafe or unrecoverable states. The supplied diff is explicitly partial, so omitted portions remain unverified. ✅ Strong setup separation — ✅ Security-conscious setup state — The new tests verify private ✅ Clean instance remounting — Successful profile changes update both runtime configuration and the shared API client before mounting a fresh route tree, limiting cross-instance UI state leakage. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F1: 🔴 Production query enables fixture mode
F2: 🔴 Adapter rejection strands connection screen
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Recompute edited profile kind
S2: 🟢 Exercise desktop authentication completionThe visible tests verify connection, retry, editing, and the profile-manager shortcut, but not the complete external-browser authentication return path. An integration test covering callback completion, session availability, and re-probing would help validate the Electron-host contract; this is a follow-up because the host implementation is not present in the supplied partial diff. ScoreThe architectural separation and setup safety work are strong, and all nine authoritative current checks pass. Two localized but merge-blocking desktop issues remain, including a production fixture boundary violation. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit 5b42070
Summary of ChangesImplemented only F1 and F2.
Verification passed:
No commit or PR was created. 🤖 Implementation Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented only F1 and F2. - Fixture query activation now requires `import.meta.env.DEV`; the trusted desktop bridge remains available in production. - Connection probe and persistence failures transition to retryable blocked states with distinct messaging. - Stale connection attempts are ignored. - Added production fixture, rejection, persistence, retry, and stale-attempt regression tests. Verification passed: - 11 focused tests - UI typecheck - UI lint - Production build - `git diff --check` No commit or PR was created. PR: #1968 Comment by: @propr-ultrafix (ID: 0) 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 introduces a desktop presentation layer, dynamic instance selection, and a reusable local-setup package shared with the CLI. The architecture is generally thoughtful, but the desktop profile-management flow has several correctness gaps. The PR needs minor, localized changes before merge. This review is partial because the supplied diff explicitly omits files and ranges. ✅ Safe connection sequencing — ✅ Clean setup separation — ✅ Relevant regression coverage — Tests cover first-run setup, offline recovery, persistence failures during connection, stale asynchronous results, and URL normalization; all reported current-head checks pass. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F3: 🔴 Manager Connect does not connect
F4: 🔴 Adapter failures escape the UI
F5: 🔴 Unsupported local setup is offered
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Propagate cancellation into host workThe setup interfaces pass an S2: 🟢 Harden stored profile validation
ScoreThe core architecture and targeted tests are strong, and all authoritative checks pass, but three desktop paths require localized correctness fixes before the experience is merge-ready. The explicitly omitted diff ranges also limit the completeness of this review. Score: 6/10 🤖 Review Details
🤖 Review by ProPR |
|
/fix F3 F4 F5 |
|
✅ Applied the requested follow-up changes in commit c505632
Summary of ChangesImplemented F3, F4, and F5 only.
Verification passed:
No commit was created. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F3, F4, and F5 only. - Manager additions now connect and activate; active edits reconnect safely, while inactive edits remain save-only. - Save, remove, authentication, browser-launch, and active-clear failures surface as retryable UI errors. - macOS and Windows hide unsupported local setup and show remote-connection guidance. - Added focused regression coverage in [DesktopExperience.test.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-15-38/propr-ui/src/desktop/DesktopExperience.test.tsx). Verification passed: - 15 focused tests - TypeScript typecheck - Targeted ESLint - `git diff --check` No commit was created. PR: #1968 Comment by: @integry (ID: 5463481548) Model: gpt-5.6-sol
|
/review |
|
/review |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
Checks FailedValidation failed during setup, tests, CLI packaging, linting, or build checks. View Logs |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis epic introduces a reusable local-setup package and a desktop presentation layer with profile management, compatibility probing, authentication, and dynamic API switching. The visible implementation is thoughtful and well tested, but it needs a localized concurrency fix before merge; four checks also remain pending, and the supplied diff explicitly omits some ranges. ✅ Clean host boundary — ✅ Strong failure-path coverage — The desktop tests cover offline instances, rejected probes, authentication completion, persistence failures, profile editing, and stale probe results. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F8: 🔴 Stale attempts can overwrite profiles
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Scope desktop focus styles
S2: 🟢 Strengthen modal focus handlingThe instance manager declares S3: 🟢 Add connection cancellationThe connecting panel receives an ScoreThe desktop and local-setup foundations are strong, but the persistent stale-write race is a merge blocker and the supplied review remains partial. Four authoritative head checks are also still pending. Score: 6/10 🤖 Review Details
Files omitted from review diff1 file was omitted because patch content was unavailable from GitHub or did not fit the review context budget. Large, binary, generated, and lockfile changes are deprioritized.
🤖 Review by ProPR |
|
✅ Applied the requested follow-up changes in commit 1da60f5 Summary of ChangesFixed the intermittent notification regression failure in webPushDispatcher.test.ts. The fixture now uses a stable historical timestamp, preventing SQLite/Node wall-clock skew from temporarily hiding claimable jobs. Validation passed:
Only the intended test file changed; no commit was created. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
|
/fix F8. Also implement review suggestions S1, S2, and S3 in the same focused follow-up: scope desktop focus styles to desktop roots, add modal focus trap/background inertness/focus restoration, and expose a recoverable Back/cancel path while connecting. Important CI context: attempt 1's Web Push failure is unrelated to this PR (the PR changes no notification/API files). The exact |
…webPushDispatcher.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T17-05-56/packages/api/test/webPushDispatcher.test.ts:15). Fixed the intermittent notification regression failure in [webPushDispatcher.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T17-05-56/packages/api/test/webPushDispatcher.test.ts:15). The fixture now uses a stable historical timestamp, preventing SQLite/Node wall-clock skew from temporarily hiding claimable jobs. Validation passed: - Full notification suite - Dispatcher test 20/20 repeated runs - API typecheck - API lint - `git diff --check` Only the intended test file changed; no commit was created. PR: #1968 Comment by: @github-actions[bot] (ID: 5463687760) Model: gpt-5.6-sol
|
ℹ️ No authorized review findings were selected. No files were changed because this Processing comment ID: 5463732819✓ |
|
!propr Please apply this focused UX follow-up directly (the prior
Preserve the narrow bridge boundary. Run the focused desktop tests, UI typecheck/lint/build, and diff check. Do not modify other API/notification files. |
|
✅ Applied the requested follow-up changes in commit 0728353 Summary of ChangesImplemented the focused PR #1968 follow-up without committing. Key changes:
Verification passed:
Primary files: DesktopExperience.tsx, DesktopExperience.test.tsx, and desktopExperienceHooks.ts. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented the focused PR #1968 follow-up without committing. Key changes: - Serialized profile/active-ID writes with freshness checks, preventing stale attempts or clears from overwriting newer actions. - Added pending-probe Back cancellation that blocks later commits. - Completed modal focus trapping, background inertness, Escape handling, and opener focus restoration. - Scoped focus styles to desktop roots. - Restored `webPushDispatcher.test.ts` exactly to its pre-`1da60f5` state; no other API/notification files changed. - Added regressions for deferred persistence ordering, cancellation, and modal accessibility. Verification passed: - Focused desktop tests: 25/25 - `DesktopExperience` tests: 19/19 - UI typecheck - UI lint - UI production build - `git diff --check` Primary files: [DesktopExperience.tsx](</tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T17-17-20/propr-ui/src/desktop/DesktopExperience.tsx>), [DesktopExperience.test.tsx](</tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T17-17-20/propr-ui/src/desktop/DesktopExperience.test.tsx>), and [desktopExperienceHooks.ts](</tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T17-17-20/propr-ui/src/desktop/desktopExperienceHooks.ts>). PR: #1968 Comment by: @integry (ID: 5463780360) Model: gpt-5.6-sol
|
/review Independent post-fix checks at head 0728353 passed: net diff contains no API/notification files; diff check; 19/19 DesktopExperience tests including out-of-order persistence, cancellation, and modal accessibility; UI typecheck; and full UI lint. Please rescore the stale-write fix and confirm the mutation queue cannot allow an obsolete attempt/clear to become the final persisted profile or active ID. |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe stale-write fix is correct within the supplied diff and requires no further code changes. The shared FIFO mutation queue, attempt-generation checks, and rejection recovery prevent an obsolete successful connection or clear operation from becoming the final profile or active-ID write: an in-flight older mutation finishes before the newer successful mutation, while queued stale mutations exit before writing. The PR is ready within the reviewed scope, conditional on the pending Validate Changes check; the omitted diff ranges prevent an unconditional whole-PR merge assessment. ✅ Deterministic mutation ordering — ✅ Stale attempts are guarded around side effects — ✅ Relevant race coverage — The supplied tests exercise out-of-order persistence, probe cancellation, rejected storage operations, adapter replacement, and modal accessibility. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe targeted stale-write issue is resolved and the reviewed implementation is well tested, but the explicitly omitted diff ranges constitute a material verification gap; one authoritative head check is also still pending. Score: 7/10 🤖 Review Details
Files omitted from review diff1 file was omitted because patch content was unavailable from GitHub or did not fit the review context budget. Large, binary, generated, and lockfile changes are deprioritized.
🤖 Review by ProPR |
|
/review Final whole-epic pass: all authoritative head checks are now completed and green. Explicitly inspect the previously omitted |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis epic introduces the desktop presentation/profile experience and extracts setup logic into a reusable package with CLI host adapters. It needs a minor correction before merge: the extraction also introduces a platform-wide CLI behavior regression. The supplied patch is explicitly partial, so omitted engine ranges could not be independently assessed here. ✅ Clear host boundary — Docker, API, and process-launch operations remain in CLI adapters while the reusable setup package works through injected actions. ✅ Race-aware desktop lifecycle — Connection attempt invalidation and serialized profile mutations address stale probes and competing persistence operations. ✅ Strong desktop coverage — Tests exercise authentication, retries, profile switching, persistence failures, modal accessibility, and stale-operation handling; all authoritative head checks are green. Merge blockersEvery finding below was introduced by this PR and must be resolved before merging. F9: 🔴 Preserve non-Linux CLI setup
SuggestionsThese are optional follow-ups and are not sent to S1: 🟢 Close manager after switchingWhen a new or active profile is connected from the manager, S2: 🟢 Add authoritative desktop checksThe current authoritative checks cover CLI-related paths but do not include the full UI suite or production UI build. Promoting the added desktop tests and build to required head checks would protect this substantial new surface continuously; this is optional because the supplied focused validation is already reported as successful. ScoreThe implementation is well-structured and thoroughly tested, but the new non-Linux CLI rejection is a user-facing regression that must be corrected. The explicitly omitted diff ranges also limit this review’s independent verification of the complete extracted engine. Score: 6/10 🤖 Review Details
Files omitted from review diff1 file was omitted because patch content was unavailable from GitHub or did not fit the review context budget. Large, binary, generated, and lockfile changes are deprioritized.
🤖 Review by ProPR |
|
!propr Implement review blocker F9 and suggestion S1 together. Preserve the pre-PR |
|
✅ Applied the requested follow-up changes in commit ba2511b Summary of ChangesImplemented F9 and S1 follow-up changes.
All requested checks passed:
No commit was created. 🤖 Implementation Details
Undo Changes • View Task Execution 💡 ProPR Slash Commands
🤖 Generated by ProPR |
Implemented F9 and S1 follow-up changes. - Restored Darwin/Windows CLI setup flow by removing desktop capability gating from the command and platform-neutral setup engine. - Retained Linux-only local setup presentation in DesktopExperience. - Added mocked Darwin/Windows CLI regressions covering agent-skill and sequential engine entry. - Closed the instance manager when new or active profiles begin connecting, preventing the inert overlay from returning. - Added focused UI regressions for both profile paths. All requested checks passed: - Local setup tests: 10/10 - CLI setup tests: 114/114 - CLI/local-setup typechecks - CLI pack: 122 files - DesktopExperience tests: 21/21 - UI typecheck, lint, production build - `git diff --check` No commit was created. PR: #1968 Comment by: @integry (ID: 5463920747) Model: gpt-5.6-sol
|
/review Final green-head review at ba2511b: all authoritative checks pass. Explicitly verify F9 in |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThis epic cleanly extracts the UI-independent setup engine and adds a desktop profile/connection experience. No blocker is evident in the supplied code, and all authoritative head checks pass. The reviewed portion is merge-ready; however, the explicit diff-omission notice prevents certifying the complete epic from this review alone. ✅ Platform boundaries are correct — ✅ Manager transitions are correct — new and active-profile saves select the connecting path, which closes the manager before invoking ✅ Strong focused verification — the supplied local-setup, CLI, desktop, typecheck, production-build, and packaging results are green, alongside all authoritative head checks. Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe reviewed changes show no verified blocker and have strong green-head coverage, but omitted files and ranges constitute a material verification gap under the review rubric. Score: 7/10 🤖 Review Details
Files omitted from review diff1 file was omitted because patch content was unavailable from GitHub or did not fit the review context budget. Large, binary, generated, and lockfile changes are deprioritized.
🤖 Review by ProPR |
|
/review Focused completion review for the only omitted file, |
|
✅ AI Code Review Complete requested by @integry Posted 1 review: |
🔍 AI Code Review — codex:gpt-5.6-solOverall EvaluationThe extraction appears well-structured, and all authoritative checks pass. However, ✅ Platform-neutral dispatch — ✅ Portable lifecycle coverage — Merge blockersNo merge blockers. SuggestionsThese are optional follow-ups and are not sent to No suggestions. ScoreThe visible changes and green checks show no blocker, but the one file this focused review was intended to verify remains unavailable in the supplied diff, leaving a material verification gap. Score: 7/10 🤖 Review Details
Files omitted from review diff1 file was omitted because patch content was unavailable from GitHub or did not fit the review context budget. Large, binary, generated, and lockfile changes are deprioritized.
🤖 Review by ProPR |
|
Integration evidence: two Ultrafix reviews found no blocker or suggestion; both scored 7 only because GitHub omitted the same large replacement diff. Independent closure inspected the actual current file: |
|
ℹ️ Analyzed the follow-up request by @integry Analysis SummaryNo code changes were needed. PR #1968 is already integrated into No code changes were necessary based on the current state of the branch. 🤖 Analysis Details
💡 ProPR Slash Commands
🤖 Generated by ProPR |
Epic PR
This PR aggregates all changes from child PRs merged to the
1951-epic-desktop-experience-uxsbranch.Created automatically by ProPR