[Epic] 1951-epic-desktop-experience-uxs - #1975
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.
…nstance conn Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
…compatibilit Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
…untime and r 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
…d-propr-api-20260829-1408-n3k [1954 by GPT-5.6 Sol] Create a shared ProPR API client and instance connection model
…anging Electron security configuration. Implemented the packaging supply-chain follow-up without changing Electron security configuration. Changes: - Upgraded all Electron Forge packages to `8.0.0-alpha.10`. - Pinned safe overrides: - `@electron/packager` 20.3.0 - `@electron/rebuild` 4.2.0 - Regenerated [package-lock.json](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T14-44-22/package-lock.json). - Added separate runtime and packaging audit scripts in [package.json](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T14-44-22/package.json). - Added a lockfile-first [desktop release guard](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T14-44-22/.github/workflows/desktop-release-guard.yml) that fails: - Runtime advisories at low or higher. - Desktop packaging advisories at high or critical. - Documented the audit policy in [apps/desktop/README.md](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T14-44-22/apps/desktop/README.md). Verification passed: - Clean `npm ci` - Runtime audit: 0 vulnerabilities - Desktop packaging audit: 0 vulnerabilities - Full `npm audit`: 0 vulnerabilities - Desktop/UI typecheck - 15 desktop tests - Linux desktop packaging - Workflow YAML validation and `git diff --check` The vulnerable `extract-zip`, Electron `node-gyp`, and `cacache` chains are absent. No advisory exception or constrained-exposure documentation was necessary. Changes remain uncommitted as requested. PR: #1967 Comment by: @integry (ID: 5463039825) Model: gpt-5.6-sol
…ktop-pairin-20260829-1408-o5i [1955 by GPT-5.6 Sol] Add secure desktop pairing tokens and compatibility discovery to the API
Implemented the release-blocking packaging fix. - Disabled only `LoadBrowserProcessSpecificV8Snapshot`; all hardened fuses remain enforced. - Added a packaged Linux smoke test that: - Validates every fuse state. - Launches without `--no-sandbox` or `--disable-sandbox`. - Requires Electron’s `ready-to-show` renderer event. - Requires a clean exit. - Added the smoke test to the desktop release guard using Xvfb and a correctly configured Chromium setuid sandbox helper. - Added `desktop:smoke` and documented its usage. Verification passed: - Shared package build - Desktop/UI typecheck - All 15 desktop tests - Forge Linux packaging - Fuse inspection, including the snapshot fuse disabled - Script syntax and `git diff --check` The current execution container cannot complete the final launch because it prohibits user namespaces and provides no root/sudo or Xvfb; Electron correctly failed closed instead of disabling its sandbox. The release CI now supplies the required sandbox helper configuration and display server to execute that proof automatically. PR: #1967 Comment by: @integry (ID: 5463056792) Model: gpt-5.6-sol
[Epic] 1953-epic-desktop-transport-api
Implemented the self-contained desktop preparation: - Added `desktop:prepare` to build `@propr/shared`. - Made `desktop:typecheck` and `desktop:package` invoke preparation first. - Added `packages/shared/**` to the release-guard trigger. - Documented the behavior. Files changed: [package.json](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-02-01/package.json:75), [desktop-release-guard.yml](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-02-01/.github/workflows/desktop-release-guard.yml:10), and [README.md](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-02-01/apps/desktop/README.md:23). Verification: - Runtime audit: 0 vulnerabilities - Packaging audit: 0 vulnerabilities - `npm ci`: passed - Typecheck from absent `packages/shared/dist`: passed and recreated output - Desktop tests: 15/15 passed - Forge Linux package: passed, independently rebuilding shared first - JSON, script syntax, and `git diff --check`: passed The packaged launch smoke was attempted but this execution host lacks both `sudo` and Xvfb and forbids unprivileged user namespaces. The harness verified the fuse configuration, then correctly failed closed because `chrome-sandbox` could not be made root-owned mode `4755`. The CI workflow retains the required sandbox-helper setup and Xvfb launch steps. PR: #1967 Comment by: @integry (ID: 5463103357) Model: gpt-5.6-sol
…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
…ed release smoke: Implemented the Electron entry-format repair and strengthened release smoke: - Main/preload now emit explicit CommonJS `.cjs` bundles; packaged manifest and preload path match. - Packaged renderer uses a restricted app-owned protocol, preserving the disabled file-protocol privilege fuse, as [Electron recommends](https://www.electronjs.org/docs/latest/tutorial/security). - Renderer-ready is emitted only after verifying `window.proprDesktop`. - Smoke rejects known main-process uncaught-exception markers. Key changes: [package.json](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-14-42/apps/desktop/package.json:11), [main.ts](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-14-42/apps/desktop/src/main.ts:22), [smoke-packaged.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-14-42/apps/desktop/scripts/smoke-packaged.mjs:12). Validation: - Typecheck: passed - Desktop tests: 15/15 passed - Forge package: passed - Packaged manifest/bundle inspection: passed - Fuse validation: passed, including V8 snapshot fuse disabled - Functional packaged launch: reached renderer-ready with `"preloadBridgeExposed":true` The exact sandbox smoke was rerun but this container lacks `sudo` and cannot make `chrome-sandbox` root-owned mode `4755`; Chromium correctly refused to start rather than disabling sandboxing. The existing release workflow performs that ownership setup before running the unchanged smoke command. PR: #1967 Comment by: @integry (ID: 5463184150) Model: gpt-5.6-sol
…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
…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
…ing the user-facing product name and all security settings. Implemented the Linux space-free package path while preserving the user-facing product name and all security settings. Changes: - Forge now emits `apps/desktop/out/propr-desktop-linux-x64` via [forge.config.ts](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-42-24/apps/desktop/forge.config.ts:11). - Smoke launches the exact space-free binary path in [smoke-packaged.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-42-24/apps/desktop/scripts/smoke-packaged.mjs:20). - CI configures the exact sandbox helper path without globbing in [desktop-release-guard.yml](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-42-24/.github/workflows/desktop-release-guard.yml:62). - Packaged ASAR metadata still contains `"productName":"ProPR Desktop"`. Verification passed: - Both audits: 0 vulnerabilities - Clean `npm ci`: 0 vulnerabilities - Desktop and renderer typecheck - Desktop tests: 15/15 - Forge package - Exact artifact and metadata assertions - Hardened fuse validation - `git diff --check` The final local renderer-ready launch could not complete because this container has neither `sudo` nor `xvfb-run`; it stopped at Chromium’s expected root/setuid ownership check. Its diagnostic used the complete new space-free path without truncation. The CI workflow retains the required `chown root:root`, mode `4755`, Xvfb, and sandboxed renderer-ready/bridge proof. PR: #1967 Comment by: @integry (ID: 5463320073) Model: gpt-5.6-sol
…st.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-50-52/test/orchestratorConfig.test.mjs:25). Fixed the full-suite failure in [test/orchestratorConfig.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T15-50-52/test/orchestratorConfig.test.mjs:25). The VAPID fixture now pads OpenSSL-generated private scalars to the required 32-byte width, preventing intermittent “malformed” results when a leading zero was omitted. Validation: - Exact suite-runner test: 56/56 passed - `git diff --check`: passed - No commit created - Only the test fixture file was modified PR: #1967 Comment by: @github-actions[bot] (ID: 5463323066) Model: gpt-5.6-sol
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
Implemented F1–F3 only. - [security.ts](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T16-10-43/apps/desktop/src/security.ts): packaged renderer trust now allows hash routes while rejecting queries, alternate hosts, and documents. - [desktop.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T16-10-43/propr-ui/src/desktop.tsx): activating a profile now reloads the renderer for fresh REST/socket module configuration. - [package.json](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T16-10-43/apps/desktop/package.json): dev, make, DEB, and RPM entrypoints prepare `@propr/shared`. - Added routed-IPC and two-endpoint switching regression tests. Validation passed: - Desktop tests: 15/15 - UI tests: 466/466 - Desktop and UI typechecks - All preparation hooks - `git diff --check` No commit created. PR: #1967 Comment by: @integry (ID: 5463457877) Model: gpt-5.6-sol
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
Implemented only F4, F5, and F6. - F4: Deep-link IPC now registers eagerly in preload and buffers links until React subscribes. Main-process pending links are queued, preserving startup and loading-time second-instance links. - F5: Desktop logout now uses the active Electron session with credentials and manual redirects, then navigates internally to `#/login?logged_out=true` without external browsing. - F6: Credential mutations are serialized per profile with deterministic invocation-order semantics, including profile removal. Verification passed: - Desktop tests: 20/20 - UI tests: 467/467 - Desktop and UI typechecks - Electron Forge package - `git diff --check` No commit was created. PR: #1967 Comment by: @integry (ID: 5463548749) Model: gpt-5.6-sol
Implemented F6 only. - Desktop authentication now resolves only after a profile-specific completion signal. - Login refreshes shared authentication state, then navigates to the intended return path. - The sign-in button remains disabled while authentication is pending. - Added focused success-path and adapter completion tests. Key changes: [LoginPage.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-34-38/propr-ui/src/pages/LoginPage.tsx:320), [types.ts](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-34-38/propr-ui/src/desktop/types.ts:29), [desktop authentication test](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-34-38/propr-ui/src/pages/LoginPage.desktopAuthentication.test.tsx:23). Verification passed: - 41 focused tests - UI TypeScript check - UI lint - `git diff --check` PR: #1968 Comment by: @integry (ID: 5463572792) Model: gpt-5.6-sol
Implemented F7 only. - Successful desktop authentication now reconnects the still-current profile. - Added a positive-path test covering authentication-required → authenticated → connected app. - Preserved existing authentication failure handling. Verification passed: - DesktopExperience tests: 16/16 - `propr-ui` TypeScript typecheck - `git diff --check` Modified only [DesktopExperience.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-54-22/propr-ui/src/desktop/DesktopExperience.tsx) and [DesktopExperience.test.tsx](/tmp/git-processor/worktrees/integry/propr/pr-1968-followup-2026-08-29T16-54-22/propr-ui/src/desktop/DesktopExperience.test.tsx). PR: #1968 Comment by: @integry (ID: 5463666356) Model: gpt-5.6-sol
Implemented only F7, F8, and F9. - F7: Added an exact shared `propr-app://renderer` CORS boundary for REST and Socket.IO, enabled CORS on the registered scheme, and extended the packaged smoke test with a real credentialed renderer request. - F8: Added development-only inline-script CSP support and corrected Vite’s shared renderer entry resolution. Packaged output retains strict `script-src 'self'`. - F9: Added deterministic deep-link queue coordination and regression coverage for the post-load/pre-assignment race. Verification passed: - Desktop tests: 22/22 - API CORS tests: 12/12 - Desktop, UI, and API typechecks - API lint - Desktop profile UI test - Forge packaging - Vite development HTML and renderer module loading The packaged launch smoke was attempted but this container cannot configure the Chromium helper as root-owned mode `4755` or provide Xvfb. The existing release workflow provisions both before running the enhanced smoke test. PR: #1967 Comment by: @integry (ID: 5463673605) Model: gpt-5.6-sol
…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
…st.ts](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T17-17-44/packages/api/test/webPushDispatcher.test.ts:15). Fixed the flaky full-suite failure in [webPushDispatcher.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1967-followup-2026-08-29T17-17-44/packages/api/test/webPushDispatcher.test.ts:15). The fixture now uses a stable historical timestamp, preventing SQLite wall-clock comparisons from intermittently hiding claimable delivery jobs. Validation passed: - Dispatcher suite: 20 consecutive runs, 340/340 tests - Notification suites: 42/42 tests - API typecheck - API lint - `git diff --check` Only the intended test file changed; no commit was created. PR: #1967 Comment by: @github-actions[bot] (ID: 5463780771) Model: gpt-5.6-sol
…69159331347b0ac022d613`. Implemented functional F6 on exact head `f916c794e5d399524169159331347b0ac022d613`. - Added the isolated, ACL-validated probe profile/environment in [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-07-48/apps/desktop/scripts/test-installed-windows-app.ps1:391). - Passed the smoke directory to both presence and absence probes. - Added focused containment, ACL/reparse, idempotence, path-separation, seven-key allowlist, and environment-isolation assertions in [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-07-48/apps/desktop/src/release-workflow.test.ts:698). - MSI authoring and unrelated files were untouched. Validation: - Installer tests: 7/7 passed - Release workflow tests: 20/20 passed - Desktop/UI typechecks: passed - Desktop tests: 159 passed, 6 platform-specific skipped - `git diff --check`: passed Changes remain uncommitted as requested. PR: #2034 Comment by: @integry (ID: 5485352611) Model: gpt-5.6-sol
…8934ff55cbb212bd8967df`. Implemented diagnostic F7 on exact head `5ec88c0835c58628b78934ff55cbb212bd8967df`. - Added allowlisted Win32 spawn mappings and `UNKNOWN` fallback in [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-19-18/apps/desktop/scripts/test-installed-windows-app.ps1:549). - Preserved plain `SPAWN_FAILED` for non-Win32 failures. - Added exact-source, mapping behavior, fallback, and sentinel-redaction tests in [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-19-18/apps/desktop/src/release-workflow.test.ts:625). - No MSI authoring or F6 probe containment/environment/process semantics changed. Validation passed: - Packaging tests: 7/7 - Release workflow tests: 21/21 - `git diff --check` passed No commit created. PR: #2034 Comment by: @integry (ID: 5485498108) Model: gpt-5.6-sol
…c18e4ae8365`. Implemented F8 on exact head `1b3a179a4f39f45deafe3e487abebc18e4ae8365`. - Updated the spawn catch to accept only direct Win32 exceptions or an exact `MethodInvocationException` with an immediate Win32 inner exception. No deeper traversal or other wrappers are accepted: [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-33-22/apps/desktop/scripts/test-installed-windows-app.ps1:550) - Preserved the existing category allowlist and bare fallback behavior. - Added wrapper-depth/type, mapping, UNKNOWN, and sentinel-redaction coverage, plus a Windows-only PowerShell catch execution: [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T22-33-22/apps/desktop/src/release-workflow.test.ts:626) - Corrected the test mapping type to `Record<number, string>`. Validation: - Focused release-workflow tests: 21 passed, 1 Windows-only test skipped on Linux. - Desktop typecheck: passed. - `git diff --check`: passed. - Only the two requested files changed; no commit created. PR: #2034 Comment by: @integry (ID: 5485619615) Comment by: @integry (ID: 5485644642) Model: gpt-5.6-sol
…af64ef09e59`. Implemented F9 on exact head `2a008f7461250bc514e15118d2ce4af64ef09e59`. - Changed `$spawnFailureCategories` to a normal PowerShell hashtable in [test-installed-windows-app.ps1](/home/node/workspace/apps/desktop/scripts/test-installed-windows-app.ps1:561). - Replaced the reflection-based deeper-wrapper fixture with explicit nested `MethodInvocationException` objects. - Added real PowerShell coverage for code 87 → `INVALID_PARAMETER`. - Preserved all existing selection, redaction, fallback, MSI, environment, ACL, process, and cleanup behavior. Validation: - Desktop typecheck passed. - Focused release workflow tests passed: 21 passed, 1 expected Windows-only skip. - `git diff --check` passed. - No commit created. PR: #2034 Comment by: @integry (ID: 5485801525) Model: gpt-5.6-sol
…b986453225de560ae483c4e`. Implemented diagnostic F10 on exact head `86faa47925fdaf288b986453225de560ae483c4e`. - Added all 16 requested fixed Win32 categories in [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-01-22/apps/desktop/scripts/test-installed-windows-app.ps1:561). - Updated exact 23-entry mapping/cardinality, native Windows lookup coverage, UNKNOWN handling, and sentinel redaction tests in [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-01-22/apps/desktop/src/release-workflow.test.ts:674). - Preserved wrapper selection, numeric hashtable lookup, fallbacks, redaction, and process behavior. Validation: - Focused release workflow: 21 passed, 1 Windows-only test skipped on Linux. - Desktop typecheck: passed. - `git diff --check`: passed. - Only the two intended files changed; no commit created. PR: #2034 Comment by: @integry (ID: 5485923810) Model: gpt-5.6-sol
Implemented F3 only.
- Changed `$shortcutProbeExitCategories` from `[ordered]@{}` to ordinary `@{}` for numeric-key lookup.
- Updated the corresponding source-structure assertion.
- Focused test passed: 21 passed, 1 Windows-only skipped.
- `git diff --check` passed.
- No commit created.
PR: #2034
Comment by: @integry (ID: 5485956015)
Model: gpt-5.6-sol
…178cd975fcb40057`. Implemented F4 only on exact head `fe67899ebe7f1c98b0819a9c178cd975fcb40057`. - Replaced the failing shortcut `Process.Start` proof with `LogonUserW(LOGON32_LOGON_NETWORK)` and `WindowsIdentity.RunImpersonated`. - Added exact ordinary-user SID verification, bounded shortcut metadata/read checks, and secure password buffer zero/free cleanup. - Disposes identities, streams, and `SafeAccessTokenHandle`. - Preserved fixed redacted outcomes, canonical CommonPrograms path, and ownership-aware cleanup. - Removed obsolete shortcut child-process/profile/exit-code machinery and tests. - MSI/WiX authoring and workflows remain untouched. Files changed: - [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-16-01/apps/desktop/scripts/test-installed-windows-app.ps1:90) - [release-workflow.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2034-followup-2026-08-31T23-16-01/apps/desktop/src/release-workflow.test.ts:541) Validation: - Desktop/UI typecheck: passed - Focused release-workflow/installer tests: 28 passed - Full desktop tests: 160 passed, 6 platform-specific skipped - `git diff --check`: passed - Only the two scoped files are modified - No commit, merge, base sync, or additional native diagnostic run performed Fresh x64 and ARM64 installed-package validation remains for the native Windows CI runners. PR: #2034 Comment by: @integry (ID: 5486062025) Model: gpt-5.6-sol
…si-start-me-20260831-2021-uou [2032 by GPT-5.6 Sol] Make Windows MSI Start Menu shortcut machine-wide
…on numeric b Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
…ive display Implemented by ProPR AI using gpt-5.6-sol model. Implementation completed successfully.
…`57bfef695e4428611fcf7a152f344ac58f076d12`. Implemented the Windows validation-order fix on exact head `57bfef695e4428611fcf7a152f344ac58f076d12`. - [release-config.ts](/tmp/git-processor/worktrees/integry/propr/pr-2038-followup-2026-08-31T23-57-32/apps/desktop/src/release-config.ts:40) now validates canonical stable SemVer before applying Windows MSI bounds. - [release-config.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2038-followup-2026-08-31T23-57-32/apps/desktop/src/release-config.test.ts:54) explicitly covers Windows malformed/prerelease/build diagnostics, canonical numeric overflow, and unchanged macOS/Linux behavior. - Direct installer-builder validation remains unchanged. Validation passed: - Focused release-config: 13 passed - Installer-builder: 9 passed - Desktop typecheck - Full desktop suite: 166 passed, 6 platform-specific skipped - `git diff --check` Only the two release-config files were modified; no commit was created. PR: #2038 Comment by: @integry (ID: 5486469236) Model: gpt-5.6-sol
…s-installer-20260831-2347-o25 [2037 by GPT-5.6 Sol] Enforce Windows Installer ProductVersion numeric bounds
…window-sizi-20260831-2347-ql3 [2036 by GPT-5.6 Sol] Clamp desktop window sizing to the active display work area
sync(desktop): propagate finalized packaging runtime into UX epic
…960/gpt-5.6-sol-implement-the-guided-loca-20260829-1840-7k8 Automatically resolved merge conflicts after merging target branch into PR branch. Resolved conflicts in: - apps/desktop/README.md - apps/desktop/forge.config.ts - apps/desktop/package.json - apps/desktop/src/logger.ts - apps/desktop/src/main.ts - propr-ui/src/desktop.tsx - propr-ui/src/desktop/DesktopExperience.test.tsx PR: #1978 Model: gpt-5.6-sol
Implemented the UX/runtime reconciliation and deep-link seam. Key outcomes: - Exact merge commit exists at `6813708122ad`, with parents: - `a6b5b5c841231b67200492e55e1b46b78e354ab3` - `0ec939446c2c71eab11c1aac43e9cd3e0cbe1d64` - Added ordered preload deep-link buffering, exactly-once boundary subscription, teardown/remount safety, and typed adapter exposure. - Connect links only stage untrusted candidates for explicit confirmation. - Open links validate active-profile identity and bounded routes, with fixed redacted rejection UI. - Preserved remote platform flows, Linux local setup, canonical packaged resources, and inert smoke behavior. - No conflicts, unmerged entries, conflict markers, or whitespace errors. Validation passed: - Desktop/UI typechecks - Focused deep-link, preload, boundary, remount, wizard, main, and smoke tests - Complete desktop suite - Unit suite: 278 passed - Browser smoke: 4 passed - UI suite: 71 files, 508 tests passed - Full Suite: all 342 non-live files plus native workspace suite passed - Validate Changes build/lint/package/release/client/notification checks - `git diff --check` Per the harness instruction, the follow-up working-tree changes are ready for its system-managed commit. PR: #1978 Comment by: @integry (ID: 5486959279) Model: gpt-5.6-sol
Implemented the requested #1978 follow-ups without committing. Key changes: - Darwin skips only the Linux `/proc/<pid>/fd` rename/swap proof. - Windows skips only the POSIX/Linux controller and filesystem-capability suites; schema, secrets, remote bridge/auth tests still run. - Added canonical HTTPS remote browser authentication with a validated `/api/auth/github` endpoint and `propr://connect` recovery. - macOS/Windows renderer bridges now reject local setup without IPC and expose no lifecycle/Docker authority. - Updated packaged smoke checks for the final welcome-card Connect flow, including no persistence/activation and remote-only setup. - Extracted desktop presentation panels and split management tests; affected files are all under 400 lines. Validation passed: - Full desktop suite: 228 tests, 0 failures. - Darwin-mode targeted run: 37 passed, exactly one `/proc` test skipped. - Windows-mode targeted run: platform-neutral tests passed; only explicit POSIX suites skipped. - UI targeted suite: 32 passed. - `npm run desktop:typecheck` - Full UI lint - Packaged smoke support/authorization tests - `git diff --check` including new files. PR: #1978 Comment by: @integry (ID: 5487399603) Comment by: @integry (ID: 5487406606) Comment by: @github-actions[bot] (ID: 5487412763) Comment by: @integry (ID: 5487428417) Comment by: @integry (ID: 5487441045) Model: gpt-5.6-sol
…fbe9972a5818c6c020e18439608dd0b3b2c9`. No commit was created. Implemented the consolidated correction on exact head `e22dfbe9972a5818c6c020e18439608dd0b3b2c9`. No commit was created. - Replaced browser-cookie OAuth with main-owned two-phase desktop pairing, secure credential storage, origin-bound bearer injection, activation tickets/scopes, authenticated REST/socket handling, and renderer-safe adapters. - Removed obsolete `remote-authentication.ts` and its URL-only tests. - Updated packaged smoke to exercise `window.__PROPR_DESKTOP__`, while independently proving macOS/Windows legacy bridges expose no lifecycle authority. - Closed the coordinator cancellation race and added deterministic delayed-cleanup overlap coverage. Verification passed: - Desktop: 328 tests, 0 failures - Client pairing/transport: 51 tests - API desktop authentication: 16 tests - UI desktop/transport suites: 67 tests - Desktop/UI/API typechecks and lint - Desktop packaging and packaged-artifact/fuse inspection - `git diff --check` The live packaged smoke was attempted but could not launch because the environment has no valid X display or Xvfb installation. The packaged artifact itself built and passed static smoke inspection. PR: #1978 Comment by: @integry (ID: 5487666617) Model: gpt-5.6-sol
…c40e1109c2bf378570e342239d7c7558`, without committing. Implemented the complete correction on exact head `6f8599a8c40e1109c2bf378570e342239d7c7558`, without committing. Key changes include: - Restored bounded, ordered IPC/session/protocol/setup/lifecycle/credential/profile/window shutdown and admission draining. - Restored native durability and release workflow gates. - Separated metadata-only local activation from ticketed remote scope publication. - Added encryption-unavailable metadata storage while keeping all secret writes fail-closed. - Guarded every SocketProvider application event against stale scopes. - Corrected Windows realpath, HTTPS runtime-config, and explicit Linux preload fixtures. - Preserved coordinator cancellation exclusion and bridge authority behavior. Validation passed: - Desktop typecheck and full suite: 351 tests, 345 passed, 6 expected platform skips. - Native durability gate: 117/117, zero skips. - Focused UI regressions: 95/95. - UI lint, typecheck, build, client tests/build. - Linux package build and packaged executable/fuse inspection. - Release metadata verification and `git diff --check`. Environment limitations: - Live packaged GUI smoke could not launch because this runner has no X display or `xvfb-run`. - Windows and Darwin native execution require their respective CI hosts. - The pinned actionlint container image was unavailable locally. PR: #1978 Comment by: @integry (ID: 5488054466) Model: gpt-5.6-sol
…7b29003aaafebf42dea8d60265be0a51c2` without committing. Implemented all requested corrections on exact head `76ba297b29003aaafebf42dea8d60265be0a51c2` without committing. Key changes: - Restored `@propr/client` build ordering in root `test:prepare`. - Fixed packaged layout inspection to use retained `elements.card`. - Added executable packaged transport/security coverage for bearer REST, Socket.IO/Engine.IO scope authentication and rotation, stale rejection, complete origin-storage cleanup/rollback, OS-backed credential custody, renderer-secret exclusion, and success/retry/forced-timeout shutdown. - Added Linux CI provisioning for D-Bus, Secret Service, keyring custody scanning, and both x64/ARM64 smoke jobs. - Moved local activation persistence behind main-process tickets, generation checks, serialized profile mutations, and exact rollback authority. - Added deterministic overlapping activation coverage proving superseded attempts neither remain selected nor publish transport state. Validation passed: - Desktop tests: 346 passed, 6 platform skips. - Native durability: 118/118. - IPC shutdown and pairing lifecycle: 21 passed. - Desktop/UI typechecks, lint, builds, targeted renderer tests. - Validate unit, hosted-tunnel, notification, CLI package, client, and Playwright browser suites. - Linux x64 package build and executable/fuse inspection. - Release workflow and packaged-smoke support tests. - `git diff --check`. Full Suite reached test 200/349 with completed tests passing, then was stopped because this host has no Redis server or Docker and repeatedly returned `ECONNREFUSED`. Full executable Linux smoke requires Xvfb and GNOME Keyring, which are unavailable here; ARM64, native Windows, and Darwin execution likewise require their CI runners. The workflow now provisions and runs those gates. PR: #1978 Comment by: @integry (ID: 5488378817) Model: gpt-5.6-sol
…dd7552c55d58e0f7`. Implemented F17/F18 on exact head `b0012fb8703ded3949b254cedd7552c55d58e0f7`. - F17: [socketAuthentication.ts](/home/node/workspace/packages/api/services/socketAuthentication.ts) now uses frozen, socket-specific header facades and never mutates the shared Engine.IO request. New namespaces receive the same authentication middleware. Added deterministic failure/reconnect isolation coverage in [socketAuthenticationIsolation.test.ts](/home/node/workspace/packages/api/test/socketAuthenticationIsolation.test.ts). - F18: [ConfigManager.ts](/home/node/workspace/packages/cli/src/config/ConfigManager.ts) treats successful atomic-save resolution as the commit point, with rollback only on save rejection. Added abort-at-resolution memory/disk parity coverage. Passed: - 33 targeted tests - API/CLI lint and typecheck - Validate application gates, including 279 fast tests, 321 tunnel tests, CLI packaging, client/UI/docs builds, and notification suites - Linux x64 desktop package - 118/118 native durability tests - Desktop suite: 346 passed, 6 platform skips - Packaged executable/fuse inspection Environment-limited: - Full Suite reached file 209/350 with all prior files green, then required Redis. Docker and Redis are unavailable here. - Darwin, Windows, ARM64, Linux executable smoke, and native DEB/RPM jobs require their CI runners and missing host tools. No commit was created. PR: #1978 Comment by: @integry (ID: 5488805044) Model: gpt-5.6-sol
…77509dc5d692`. Implemented F19 on exact head `7866809d20e4f086718e4f6e39f177509dc5d692`. - [socketAuthentication.ts](/tmp/git-processor/worktrees/integry/propr/pr-1978-followup-2026-09-01T04-50-39/packages/api/services/socketAuthentication.ts:28) now attaches authentication to root, all pre-existing namespaces, and future namespaces through one idempotent enumeration abstraction. - [socketAuthenticationIsolation.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1978-followup-2026-09-01T04-50-39/packages/api/test/socketAuthenticationIsolation.test.ts:125) adds deterministic pre-registration coverage for missing/wrong credentials and later-namespace credential isolation. Verification: - Focused authentication: 13 passed - API typecheck/lint: passed - Full Suite: 349/350 runs passed; only `llmMetrics.test.ts` timed out because Redis/Docker is unavailable - Host-compatible Validate stages: passed - Linux x64 package, fuse inspection, typechecks: passed - Native durability: 118/118 passed - Desktop tests: 346 passed, 6 platform skips - Runtime/desktop audits: zero vulnerabilities The remaining native matrix legs and Linux launch smoke could not run because this host lacks macOS/Windows/ARM64 runners, Docker, Redis, `xvfb-run`, keyring, and RPM tooling. Only the two requested files are modified; no commit was created. PR: #1978 Comment by: @integry (ID: 5489066697) Model: gpt-5.6-sol
…702d868a5e9c`. Implemented F20 on exact HEAD `7d9f0978e0131e9db1b4b96ba235702d868a5e9c`. - Added shared 16–512 character webhook-secret policy in [webhook-secret-policy.ts](/tmp/git-processor/worktrees/integry/propr/pr-1978-followup-2026-09-01T05-27-32/apps/desktop/src/webhook-secret-policy.ts). - Enforced it in native prompt acquisition and capability issuance/validation. - Added 15-character rejection, 16-character acceptance, 512 acceptance, and 513 rejection coverage. - Added exact shortest-secret renderer/log/diagnostic redaction checks while preserving structured errors. - Confirmed one-character contextual strings are not globally redacted. Verification passed: - Full Suite: all 350 files plus native workspace suite - Desktop typecheck and tests: 349 passed, 6 platform skips - Native durability: 118/118 - Validate’s locally reproducible stages - Linux x64 package build and executable/fuse inspection - `git diff --check` Unavailable locally: GUI packaged smoke due missing Xvfb, and the five non-Linux-x64 native/package runners. No commit was created. PR: #1978 Comment by: @integry (ID: 5489339922) Model: gpt-5.6-sol
…guided-loca-20260829-1840-7k8 [1960 by GPT-5.6 Sol] Implement the guided local Linux setup wizard in the desktop app
|
CI failed: Validate unsigned linux-arm64 package Please investigate and fix this CI failure.
Failure evidence
|
|
CI failed: Validate unsigned darwin-arm64 package Please investigate and fix this CI failure.
Failure evidence
|
|
CI failed: Validate unsigned win32-x64 package Please investigate and fix this CI failure.
Failure evidence
|
|
CI failed: Validate unsigned darwin-x64 package Please investigate and fix this CI failure.
Failure evidence
|
|
CI failed: Validate unsigned win32-arm64 package Please investigate and fix this CI failure.
Failure evidence
|
|
CI failed: Validate unsigned linux-x64 package Please investigate and fix this CI failure.
Failure evidence
|
Epic PR
This PR aggregates all changes from child PRs merged to the
1951-epic-desktop-experience-uxsbranch.Created automatically by ProPR