Skip to content

[Epic] 1953-epic-desktop-transport-api - #1976

Draft
propr-dev[bot] wants to merge 415 commits into
mainfrom
1953-epic-desktop-transport-api
Draft

[Epic] 1953-epic-desktop-transport-api#1976
propr-dev[bot] wants to merge 415 commits into
mainfrom
1953-epic-desktop-transport-api

Conversation

@propr-dev

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

Copy link
Copy Markdown
Contributor

Epic PR

This PR aggregates all changes from child PRs merged to the 1953-epic-desktop-transport-api branch.


Created automatically by ProPR

propr-dev[bot] and others added 30 commits August 30, 2026 19:57
…078647be7ad32839432c37654d4556f6c8c1a19`.

Implemented the narrowly scoped correction on exact base `4078647be7ad32839432c37654d4556f6c8c1a19`.

Changes:

- Native node-gyp rebuild deadline increased from 120 seconds to a fixed 6 minutes.
- Retained 64 KiB output bound.
- Added explicit `SIGKILL`, timer cleanup, and partial build-directory cleanup.
- Added bounded parent-generated progress evidence without paths or raw output.
- Left runtime, ACL policy, catalog policy, ownership, and existing security behavior unchanged.

Files: [native launcher](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T19-50-54/apps/desktop/scripts/build-windows-native-launcher.mjs:21), [focused test](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T19-50-54/apps/desktop/scripts/windows-authority-build.test.mjs:141).

Local validation:

- Desktop suite: 216 tests, 0 failures.
- Fast unit suite: 278 tests, 0 failures.
- Release metadata verification: passed.
- Syntax and `git diff --check`: passed.

Hosted x64, ARM64, Full, and Validate remain pending because the changes are intentionally uncommitted and this Linux runner lacks Docker/Redis. The resulting commit SHA and hosted outcomes will be available after the system-managed commit and CI rerun.

PR: #1972
Comment by: @integry (ID: 5470889637)
Model: gpt-5.6-sol
…`ec12eab6a8769bcc3d4f2e1ebce474d1c0c79c92` without committing.

Implemented the narrow build-only correction on exact HEAD `ec12eab6a8769bcc3d4f2e1ebce474d1c0c79c92` without committing.

Changes:

- Added bounded, environment-free current-token SID derivation and takeown-owner cross-check, granting only that SID build-time `M` access. SYSTEM sealing resets the ACE. [build-windows-native-launcher.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T19-59-25/apps/desktop/scripts/build-windows-native-launcher.mjs:181)
- Split authentication failures into `BOOTSTRAP_READ`, `BOOTSTRAP_AUTH`, `LAUNCHER_AUTH`, and `SAME_IMAGE`. [build-windows-authority-helper.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T19-59-25/apps/desktop/scripts/build-windows-authority-helper.mjs:21)
- Added SID parsing, filtered-token positive, wrong-SID, group-write, and runtime-mode negative coverage. [windows-authority-build.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T19-59-25/apps/desktop/scripts/windows-authority-build.test.mjs:109)
- Preserved the six-minute native rebuild deadline and made no runtime/C++ or #1998 hardening changes.

Outcomes:

- Focused Windows build tests: pass, 25 tests, 0 failures; native cases skipped on Linux.
- Desktop tests: pass, 219 tests, 0 failures.
- Desktop typecheck: pass.
- Validate runnable stages: release verification, 278 fast unit tests, 316 tunnel tests, 66 UI tests, and CLI package all pass.
- `git diff --check`: pass.
- Full reached test file 169/330 without failures, then was blocked because this host has neither Redis nor Docker.
- Native ARM64/x64 catalog-policy, package, and MSI gates: not runnable on this Linux host; pending Windows CI on the committed result.

PR: #1972
Comment by: @integry (ID: 5470929438)
Model: gpt-5.6-sol
…A `f461fb9ca191213f24604fbce9f9ea51fde8eac4`. No commit, merge, or transport sync was performed.

Implemented the discovery-only narrowing on exact source SHA `f461fb9ca191213f24604fbce9f9ea51fde8eac4`. No commit, merge, or transport sync was performed.

- Removed Windows authority service/MSI, broker/bootstrap binaries and sources, compiler/toolchain resolver, receipts, service protocols, installer workflows, and service-only fixtures/tests.
- Added ordinary-user Windows discovery coverage for 9 CLI scenarios, 27 API tests, and one actionable `WINDOWS_AUTHORITY_REQUIRED` check referencing #1997.
- Preserved service-free Windows status with `ACL_DIAGNOSTIC_UNAVAILABLE`.
- Ensured CLI packaging starts from a clean output directory; the 131-file package contains no Windows authority executable/MSI artifact.
- Base-relative audit against `7c8010f3bdf09b0e08a25bb25c76a351d8cc53ca` found no newly added privileged Windows service, MSI, toolchain, proxy, or protocol implementation.

Validation by invocation:

- Full: 323/323 non-live files plus 1/1 workspace suite; UI 69/69 files, 497/497 tests.
- Fast unit: 281/281.
- Platform-safe Connect: 65/65.
- Focused discovery/identity/native: 32 passed, 1 Darwin-only skip.
- API status: 27/27.
- Desktop: 24/24; typecheck and Linux x64 package passed.
- Client: 10/10.
- Browser smoke: 4/4.
- CLI/API/UI/core lint, CLI typecheck, release verification, docs/API/UI/client builds, package verification, workflow YAML parsing, and `git diff --check`: passed.

Hosted Windows and macOS jobs are configured for 9+27+1 and 65+6 checks respectively; they require their native CI runners.

PR: #1989
Comment by: @integry (ID: 5470936153)
Model: gpt-5.6-sol
… `4557fa25820518fd0540d589c788a3fac8ff3771`.

Implemented the bounded Windows staging correction on exact `4557fa25820518fd0540d589c788a3fac8ff3771`.

Key changes:

- Build bootstrap authentication, launcher loading, and compilation now run in a six-minute child process with bounded JSON IPC.
- Parent waits for child exit, validates publication, removes and verifies `.build-staging`, then seals.
- Cleanup failures are secondary `BUILD_COMPILER:LEASE` diagnostics and cannot replace primary `BOOTSTRAP_AUTH`, `LAUNCHER_AUTH`, or `SAME_IMAGE`.
- Cached native builds safely re-stage only the ephemeral bootstrap.
- Added the real Windows lifecycle/fault test, exercised by the existing x64 and ARM64 matrix suite.
- Runtime and `held-build-artifact` prohibition remain unchanged.

Validation passed:

- Desktop suite: 221 tests, 0 failures
- Desktop typecheck
- Focused Windows build tests
- Release workflow tests
- `git diff --check`

Hosted six-target, Full, and Validate jobs require the post-commit CI rerun. No commit, merge, runtime sync, or web-push changes were made.

PR: #1972
Comment by: @integry (ID: 5471040604)
Model: gpt-5.6-sol
…indows-standard-user-connect.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T20-44-44/scripts/verify-windows-standard-user-connect.mjs:22).

Implemented the narrow fixture-only correction in [verify-windows-standard-user-connect.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T20-44-44/scripts/verify-windows-standard-user-connect.mjs:22).

- Canonicalizes both the credentialed temporary fixture and created root using `realpathSync.native`.
- Reports assertion failures using only bounded, allowlisted `status` and `reasonCodes`.
- Removes raw stderr from assertions.
- Leaves production root checks and all service/native/toolchain scope unchanged.

Validation passed:

- Platform-safe Connect: 65/65
- Fast unit: 281/281
- `webPushDispatcher.test.ts`: 17/17
- CLI typecheck/build and clean package: 131 files
- Release metadata, syntax, and `git diff --check`

The Windows ordinary-user and Darwin ACL jobs require their hosted OS runners. Full/complete Validate could not run locally because Docker is unavailable; Redis setup failed at `docker: command not found`. Only the requested fixture file is modified.

PR: #1989
Comment by: @integry (ID: 5471151803)
Model: gpt-5.6-sol
… on `f3f1a96a`.

Implemented the bounded Windows launcher-authentication fix on `f3f1a96a`.

- Added build-bootstrap-only `OPEN`, `FILE_META`, `OWNER`, `DACL`, `DACL_PROTECTED`, `ARCH`, and `HASH` diagnostics while leaving runtime `SecureRegularFile` authority unchanged.
- Propagated exact predicate substages through bounded worker IPC and cleanup failure preservation.
- Added a direct launcher-file `/reset` → protected DACL → fixed-SID grants/owner transition, followed by held-handle authentication.
- Added hosted x64/ARM64 staged-launcher assertions and predicate cleanup tests.
- Did not alter runtime authority, release gates, the six-minute bound, or unrelated Web Push behavior.

Local verification passed:

- Focused Windows authority tests: 28 tests, 0 failures
- Desktop suite: 222 tests, 0 failures
- Fast unit suite: 278 tests, 0 failures
- Desktop/UI typecheck
- Release metadata verification
- CLI package verification
- `git diff --check`

The six native artifact jobs and hosted Full/Validate must rerun after the system commits/publishes this patch. Full cannot run faithfully here because this host has neither Redis nor Docker.

PR: #1972
Comment by: @integry (ID: 5471146702)
Model: gpt-5.6-sol
Implemented the narrow test-harness fix.

- Added fixed `--no-warnings` before fixture `--import` arguments in [verify-windows-standard-user-connect.mjs](/home/node/workspace/scripts/verify-windows-standard-user-connect.mjs:22) and [connectCliIntegration.test.ts](/home/node/workspace/test/connectCliIntegration.test.ts:22).
- Added exact argv-order assertions.
- Removed reliance on ambient `NODE_OPTIONS`.
- Preserved exact stderr equality and all secret/sentinel checks.
- No production, Web Push, transport, or #1997-scope files changed.

Validation passed:

- Fixture CLI integration: 2/2
- Platform-safe Connect: 65/65
- Validate fast unit: 281/281
- CLI typecheck
- CLI package: 131 files
- Release metadata and `git diff --check`

Hosted Windows/Darwin jobs require their respective runners. Full and Docker-backed Validate prerequisites could not run locally because Docker is unavailable. No commit was created.

PR: #1989
Comment by: @integry (ID: 5471261029)
Model: gpt-5.6-sol
Implemented the diagnostic-only Windows harness marker.

- Tracks the allowlisted scenario and all 17 requested stages in [verify-windows-standard-user-connect.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T21-18-16/scripts/verify-windows-standard-user-connect.mjs).
- Failure output contains only `{scenario,stage,status,reasonCodes}` after allowlist validation.
- Added static allowlist/redaction coverage in [windowsStandardUserConnectHarness.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T21-18-16/test/windowsStandardUserConnectHarness.test.ts).
- Confirmed every existing harness assertion is unchanged.

Validation passed:

- Static diagnostic test: 1/1
- CLI integration tests: 2/2
- Platform-safe Connect suite: 65/65
- CLI and root TypeScript checks
- `git diff --check`

I did not rerun job `99322527035`: the edits must remain uncommitted and unsynced, so rerunning it now would only retest `5551dda…` without the marker. The next hosted run after the system commits these changes will expose the exact stage.

PR: #1989
Comment by: @integry (ID: 5471314813)
Model: gpt-5.6-sol
… `44561fae8c5682b7d108a408fcb53fd6e6ca1cf9`.

Implemented the bounded dynamic catalog pivot on exact head `44561fae8c5682b7d108a408fcb53fd6e6ca1cf9`.

- Removed build-only catalog basename/hash/certificate/SPKI allowlists and `POLICY_NAME`, `POLICY_HASH`, and `POLICY_TUPLE` gates.
- Preserved held SHA-256 catalog membership, offline WinVerifyTrust, exact Microsoft publisher/root validation, canonical roots, ACL/identity/lease checks, and full observed manifest evidence.
- Added regressions for nonmembers, wrong/copied and corrupted catalogs, publisher/root failures, replacements, identity mismatches, and distinct x64/ARM64 servicing evidence.
- Left runtime/package Authenticode, update signer pins, runtime authority, sealing, cleanup, and timeout behavior unchanged.

Validation passed:

- `npm run desktop:test`
- `npm run desktop:typecheck`
- Validate fast unit tests: 278 passed
- Release artifact/architecture tests: 41 passed, 4 platform skips
- `npm run test:prepare`
- `npm run cli:pack`
- Release metadata verification
- `git diff --check`

The six native artifact jobs and hosted Full/Validate require CI. Local Full could not start because this host has neither Docker nor Redis (`docker: command not found`). No commit was created.

PR: #1972
Comment by: @integry (ID: 5471267596)
Model: gpt-5.6-sol
Implemented the fixture-only correction.

- Disabled scenario now writes `PROPR_UI_TUNNEL_ENABLED=false` without a token.
- Enabled scenarios retain `root-token-SENTINEL`.
- Added a static regression covering every scenario.
- Changed only [Windows fixture](/home/node/workspace/scripts/verify-windows-standard-user-connect.mjs:40) and [fixture regression](/home/node/workspace/test/windowsStandardUserConnectHarness.test.ts:53). No production or Web Push files changed.

Validation:

- Focused regression: 2/2 passed
- Platform-safe discovery: 65/65 passed
- Fast unit: 281/281 passed
- Hosted tunnel: 321/321 and UI 67/67 passed
- Builds, typechecks, lint, release metadata, and CLI packaging passed
- Full: 324/325 runs passed; `llmMetrics.test.ts` timed out because Redis/Docker is unavailable locally
- Native Windows ordinary-user and Darwin ACL runs require their respective hosted OS runners

PR: #1989
Comment by: @integry (ID: 5471387921)
Model: gpt-5.6-sol
…b5deda034b7acd3fefda8edb150241`.

Implemented the functional-build pivot on exact `5cd8eb9564b5deda034b7acd3fefda8edb150241`.

Key changes:

- Replaced `compileHeld` execution with one absolute-path, no-shell `csc.exe` invocation using deterministic argv.
- Restricted environment to fixed `SystemRoot` and private `TEMP`/`TMP`.
- Added six-minute timeout, bounded output, and redaction to exit class plus up to eight `CS####` codes.
- Compiles an exact private source copy and verifies source bytes, single-link PE32 AnyCPU output, size, and SHA-256 before atomic publication.
- Simplified compiler manifest claims to the fixed framework layout; removed deferred catalog/handle/job/image provenance claims and tests.
- Retained package/runtime manifest validation, launcher/bootstrap hashes, signing pins, runtime held-image authority, and runtime rejection of `held-build-artifact`.
- Added hosted x64/ARM64 assertions for fixed argv/path/environment, redaction, output verification, and residue cleanup.

Validation:

- Focused desktop/build/package/runtime tests: passed.
- `npm run desktop:test`: passed, 219 tests.
- `npm run desktop:typecheck`: passed.
- `npm run release:verify`: passed.
- `npm run test:unit`: passed.
- `git diff --check`: passed.
- Full reached 175/330 files without failures, then was stopped because this host has no Redis service (`ECONNREFUSED 127.0.0.1:6379`).
- The six native unsigned artifacts require the CI Linux/macOS/Windows x64/ARM64 runners.

PR: #1972
Comment by: @integry (ID: 5471398605)
Model: gpt-5.6-sol
…on exact `fba219f398346fe1a831960e350c2cb630dc5087`.

Implemented the diagnostic-only Windows launch-stage split on exact `fba219f398346fe1a831960e350c2cb630dc5087`.

- Added the 12 fixed native codes and matching `TRANSPORT_*` stages in [windows-update-authority.ts](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-04-08/apps/desktop/src/windows-update-authority.ts:71).
- Split `PROCESS_IMAGE` into `JOB_CREATE`, `JOB_LIMIT`, `JOB_ASSIGN`, `IMAGE_QUERY`, `IMAGE_OPEN`, and `IMAGE_AUTH`, preserving cleanup in [propr_windows_launcher.cc](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-04-08/apps/desktop/src/native/windows-launcher/propr_windows_launcher.cc:1239).
- Unknown/native malformed errors remain `TRANSPORT_SPAWN`; no raw diagnostic data is propagated.
- Added static allowlist/redaction tests and Windows-native injection/cleanup tests.

Validation passed:

- Desktop typecheck
- Full desktop suite: 221 tests, 0 failures
- Focused authority/workflow tests
- `git diff --check`

The hosted x64 and ARM64 jobs cannot run before the system-managed commit/push. Updating PR #1972 will automatically trigger both unsigned Windows matrix jobs, which will expose the real bounded stage. No functional correction, runtime sync, merge, or non-Windows/Web Push changes were made.

PR: #1972
Comment by: @integry (ID: 5471533196)
Model: gpt-5.6-sol
Implemented only F8 and F9.

- Restored Windows scaffolding, identity creation, and configuration persistence by separating mutation paths from unavailable discovery authority.
- Added hosted ordinary-user Windows coverage for `scaffoldStack()` and `ConfigManager.save()`.
- Connect readiness now requires all three desktop-auth capabilities. Missing capability returns `incompatible` with `DESKTOP_AUTHENTICATION_UNSUPPORTED`.
- Added regressions for each false capability.

Verification passed:

- 73/73 platform-safe Connect tests
- Focused tests: 42/42
- Windows harness static tests: 3/3
- CLI typecheck, lint, and build
- `git diff --check`

No commit was created.

PR: #1989
Comment by: @integry (ID: 5471553527)
Model: gpt-5.6-sol
…F9 discovery behavior or adding #1997 authority scope.

Implemented the two scoped regressions without changing F8/F9 discovery behavior or adding #1997 authority scope.

- Darwin setup now canonicalizes the created root before identity creation while preserving the original persisted/displayed root and rejecting symlinked `data`: [initStack.ts](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T22-24-04/packages/cli/src/commands/initStack.ts:182)
- Windows identity publication skips unsupported directory-handle `fsync`; file flushing, atomic publication, no-follow, and identity checks remain: [publicInstanceIdentity.ts](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T22-24-04/packages/local-setup/src/publicInstanceIdentity.ts:267)
- Added six fixed, redacted mutation stages to the ordinary-user harness and updated its static contract test: [verify-windows-standard-user-connect.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1989-followup-2026-08-30T22-24-04/scripts/verify-windows-standard-user-connect.mjs:53)

Passed locally:

- Platform-safe proof: 73/73
- CLI init/config: 46/46
- Identity and Windows harness: 28/28
- Fast unit suite: 281/281
- Hosted-tunnel suite: 321/321; UI compatibility: 67/67
- CLI compatibility: 26/26
- Desktop package, typecheck, and runtime tests: 24/24
- CLI package, lint/typecheck, root lint/build, release verification
- `git diff --check`

Environment limitations:

- The hosted limited-user Windows proof requires its Windows runner.
- Full could not start because this environment has neither Docker nor `redis-server`.
- Packaged desktop smoke was blocked by missing `xvfb-run`; packaging itself passed.

No commit was created.

PR: #1989
Comment by: @integry (ID: 5471628707)
Model: gpt-5.6-sol
…47afb77e…`.

Implemented the release-functional Windows pivot on exact `47afb77e…`.

Key changes:

- Direct absolute `spawn(helper.executable, ['--broker'])` with no shell or lookup.
- Child environment contains only authenticated `SystemRoot`, private `TEMP`, and `TMP`.
- Canonical per-session temp directory receives a protected DACL and is removed after bounded child reaping.
- Helper, manifest, bootstrap, and launcher handles remain open until child exit.
- Removed `47afb77` native launch-stage mappings and instrumentation from the release path.
- Preserved authentication, protocol, packaging trust gates, and the direct fixed-`csc.exe` build path.
- Added focused direct-spawn, ordinary-user operations, handle lifetime, and cleanup tests.

Changed files include [windows-update-authority.ts](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-20-17/apps/desktop/src/windows-update-authority.ts) and its native/test counterparts.

Validation passed:

- Desktop typecheck
- Full desktop suite: 218 tests, 0 failures
- Focused authority and workflow tests
- Windows authority build tests
- `git diff --check`

Hosted Windows x64, ARM64, and six-artifact aggregate jobs cannot run until the system-managed commit/push triggers CI. No commit was created.

PR: #1972
Comment by: @integry (ID: 5471610954)
Model: gpt-5.6-sol
…2528b13f118e067d0f9f976abcefb6bc3e`.

Implemented the Windows pre-spawn fix on exact head `3e712a2528b13f118e067d0f9f976abcefb6bc3e`.

- Session-temp-only owner acceptance now permits current user, SYSTEM, or Administrators in [propr_windows_launcher.cc](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-40-19/apps/desktop/src/native/windows-launcher/propr_windows_launcher.cc:929).
- The held directory’s type, reparse state, identity, and exact protected three-principal DACL are verified before/after protection.
- Build, helper, package, and artifact authentication policies remain unchanged.
- Added native coverage for current-user and Administrators ownership, untrusted owner/DACL, junctions, and held-handle substitution in [windows-update-authority.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-40-19/apps/desktop/src/windows-update-authority.test.ts:68).
- Direct spawn, three-entry environment, authentication handles, protocol, and cleanup are unchanged.
- No conditional `TEMP_DIRECTORY`/`CHILD_START` diagnostic was added without a post-fix hosted failure.

Validation:

- Desktop typecheck: passed
- Desktop suite: 219 tests, 0 failures
- `git diff --check`: passed
- Native x64/ARM64 tests could not execute on this Linux host; the existing Windows matrix runs the focused and ordinary-operation tests before aggregation.

PR: #1972
Comment by: @integry (ID: 5471702878)
Model: gpt-5.6-sol
Implemented the bounded Windows MVP packaging pivot.

Key outcomes:

- Windows x64/ARM64 remain required, each producing exactly one canonical MSI.
- Windows self-update now returns fixed `unsupported` before any network, artifact, cache, authority, or apply operation. Exact zero-call tests were added in [signed-update-policy.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-56-49/apps/desktop/src/signed-update-policy.test.ts).
- Authority resources, broker build hooks, READY probes, MSI custom actions, and authority-specific smoke/install tests were removed.
- New package/MSI assertions reject authority resources and broker reachability.
- Installed Windows validation now launches the app as an ordinary user and exercises rendering, local API/setup, remote endpoints, and Connect discovery.
- macOS signed-update behavior remains enabled.
- Release configuration, aggregation, workflow, and [README.md](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-56-49/apps/desktop/README.md) now advertise Windows updates as unsupported.
- Squirrel was not reintroduced.

Local verification passed:

- `npm run desktop:test` — 107 passed, 0 failed, 4 platform skips
- `npm run desktop:typecheck`
- `npm run desktop:package`
- Packaged ASAR authority-reachability inspection
- `git diff --check`

The hosted Windows x64/ARM64, four non-Windows native jobs, and six-artifact aggregate are retained and updated in [desktop-release-guard.yml](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T22-56-49/.github/workflows/desktop-release-guard.yml); they require CI runners and were not executable from this Linux worktree. No commit was created.

PR: #1972
Comment by: @integry (ID: 5471777796)
Model: gpt-5.6-sol
Implemented only the two requested blockers.

- ASAR validation now derives the extraction path from `listPackage`, preserves Windows separators, verifies package `main`, and rejects traversal, duplicate/case-colliding, or ambiguous entries while retaining authority-token scans. See [assert-windows-mvp-package.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T23-23-53/apps/desktop/scripts/assert-windows-mvp-package.mjs:9).
- Packaged smoke behavior now requires an explicit absolute `propr-desktop-smoke-*` user-data directory before setting Electron’s profile path or creating profiles/lifecycle. Negative coverage is in [smoke-test-authorization.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T23-23-53/apps/desktop/src/smoke-test-authorization.test.ts:19).
- Installed Windows smoke creates a protected temporary directory accessible only to the test user, SYSTEM, and Administrators, passes it explicitly, and performs bounded cleanup. See [test-installed-windows-app.ps1](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-30T23-23-53/apps/desktop/scripts/test-installed-windows-app.ps1:26).

Validation passed:

- Desktop typecheck
- Desktop tests: 115 passed, 4 platform skips
- Real Forge win32 x64 and ARM64 application packaging
- MVP package assertion against both generated Windows packages
- `git diff --check`

Native MSI install/ordinary-user GUI smoke and the actual six-platform aggregate require the existing Windows/macOS CI runners; those workflow gates remain unchanged. No commit was created.

PR: #1972
Comment by: @integry (ID: 5471905043)
Model: gpt-5.6-sol
Advances the transport epic to reviewed runtime head d99f006 so transport children can integrate in parallel with final packaging. Final packaging propagation will follow as one mechanical resync before top-level integration.
…n exact head `d8ff4470bcd75c970a8c456ea93fec98f151ccb5`.

Implemented the deterministic packaged-smoke ordering fix on exact head `d8ff4470bcd75c970a8c456ea93fec98f151ccb5`.

- Registers the ready window immediately after preload verification and before packaged smoke assertions.
- Prevents delivery to unregistered/not-yet-ready windows.
- Removes both redundant outer registrations, including activate.
- Preserves replacement-window cleanup.
- Adds focused queued Connect URL ordering and exactly-once regressions.
- Changed only three desktop deep-link files; package flows remain untouched.

Validation passed:

- `npm run desktop:typecheck`
- `npm run desktop:test` — 116 passed, 4 platform skips
- `git diff --check`

The six native package jobs and aggregate can rerun after the system commits the changes.

PR: #1972
Comment by: @integry (ID: 5471978686)
Model: gpt-5.6-sol
…head `dc27bcfb3c717f283fb67db8f1087bfceedb6f2d`:

Implemented the four cross-platform fixture fixes on exact head `dc27bcfb3c717f283fb67db8f1087bfceedb6f2d`:

- Darwin-only native DMG mutation barrier with supported-host assertion.
- Explicit `'darwin'` for all macOS release-config policy assertions.
- Darwin-only macOS filesystem-adapter happy path; Windows unsupported zero-call test remains cross-platform.
- Platform-native smoke paths using `resolve(tmpdir(), smokeLeaf)`.

No production, packaging, MVP, or deep-link code changed.

Validation passed:

- `npm run desktop:test` — 120 tests, 0 failures
- `npm run desktop:typecheck`
- `git diff --check`

Only the four requested test files are modified. Windows and Darwin native execution remains for the hosted matrix rerun.

PR: #1972
Comment by: @integry (ID: 5472007154)
Model: gpt-5.6-sol
…61/gpt-5.6-sol-integrate-remote-instance-20260829-1840-cv7

Automatically resolved merge conflicts after merging target branch into PR branch.
Resolved conflicts in:
- apps/desktop/README.md
- apps/desktop/scripts/smoke-packaged.mjs
- apps/desktop/src/main.ts
- propr-ui/src/desktop.tsx

PR: #1977
Model: gpt-5.6-sol
…ead `5d5ad383b0474c786fad0633208b8004c086fab8`.

Implemented the deterministic MSI compiler fixes on exact head `5d5ad383b0474c786fad0633208b8004c086fab8`.

- Default registry values now omit `Name`, including the preserved protocol command; regressions forbid all generated `Name=""` attributes.
- MSI builds use only canonical [WiX 3.14.1](https://github.com/wixtoolset/wix3/releases/tag/wix3141rtm) Candle/Light paths, validate regular canonical files and version output, and compile with the requested architecture.
- Candle/Light failures now expose bounded, path-redacted `CANDLE`/`LIGHT` diagnostics with numeric exit/signal values.
- Both Windows matrices run a real minimal architecture-specific WXS compile/link probe before `make`.
- Existing install, ordinary-user smoke, authority-absence, architecture, checksum, and aggregate gates remain intact.

Changed files: [installer builder](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-03-13/apps/desktop/scripts/build-windows-machine-installer.mjs:9), [WXS regression](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-03-13/apps/desktop/scripts/build-windows-machine-installer.test.mjs:5), [workflow](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-03-13/.github/workflows/desktop-release-guard.yml:110).

Validation passed:

- `npm run desktop:test` — 121 tests, 115 passed, 6 platform skips
- `npm run desktop:typecheck`
- `node --check`
- `git diff --check`

Real Windows x64/ARM64 make/install smoke and the real six-native-artifact aggregate require the hosted Windows/native matrix and could not be executed from this Linux workspace; those gates are preserved for CI.

PR: #1972
Comment by: @integry (ID: 5472088358)
Model: gpt-5.6-sol
Implemented the exact WiX Light code-page fix:

- Added `Codepage="1252"` and `SummaryCodepage="1252"` to probe and production WXS in [build-windows-machine-installer.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-20-30/apps/desktop/scripts/build-windows-machine-installer.mjs:195).
- Preserved `Unchained Development OÜ`.
- Added x64/ARM64 source and bounded-diagnostic regressions in [build-windows-machine-installer.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-20-30/apps/desktop/scripts/build-windows-machine-installer.test.mjs:11).
- No runtime, updater, authority, workflow, artifact, or signing files changed.

Validation passed:

- `npm run desktop:test` — 0 failures
- `npm run desktop:typecheck`
- `git diff --check`

Real WiX probes and MSI make/install smoke require Windows x64/ARM64 runners; this host is Linux x64 without WiX or PowerShell. The aggregate fixture regressions passed, while native aggregation remains gated by those unchanged hosted jobs.

PR: #1972
Comment by: @integry (ID: 5472188168)
Model: gpt-5.6-sol
…b6f359b43daa9915eb587e234c6d6f`.

Implemented both CI blocker fixes on exact head `8e12da1abeb6f359b43daa9915eb587e234c6d6f`.

- Exported `DesktopApp` without changing rendering, subscriptions, deep-link handling, or cleanup: [desktop.tsx](/home/node/workspace/propr-ui/src/desktop.tsx:7).
- Added platform-specific packaged layout validation: Linux remains exactly `1280x820`; Windows accepts only `880x620`–`1280x820`, contained within the display work area, with strict positive-size, containment, and overlap checks: [packaged-layout.mjs](/home/node/workspace/apps/desktop/scripts/packaged-layout.mjs:30).
- Added exact Linux and clamped `1024x720` Windows regressions: [packaged-layout.test.mjs](/home/node/workspace/apps/desktop/scripts/packaged-layout.test.mjs:33).
- Preserved production BrowserWindow dimensions and added explicit unit proof: [window-options.test.ts](/home/node/workspace/apps/desktop/src/window-options.test.ts:6).
- Transport, credentials, pairing, deep links, shutdown, packaging, updater, and authority behavior were otherwise untouched.

Passed:

- UI lint, typecheck, build, and 542/542 tests
- Client typecheck, build, and 51/51 tests
- Desktop typecheck and 149/149 tests
- Deep-link focused tests: 6/6
- Native Linux durability: 115/115, all category counts exact
- Focused layout regressions: 3/3
- Desktop packaging
- `git diff --check`

Platform limitations:

- Windows-native durability and Windows packaged smoke require the Windows CI runner.
- Linux packaged smoke was attempted but this unprivileged host cannot configure the required root-owned setuid Chromium sandbox helper.
- Full Suite ran all 327 entries; its aggregate command encountered missing Redis and then the container PID ceiling. The affected Redis test passed 5/5 after temporary Redis provisioning, and the affected UI suite passed independently at 542/542.

PR: #1977
Comment by: @integry (ID: 5472084029)
Model: gpt-5.6-sol
Implemented the exact blocker fix on head `5295d7785…`:

- Removed only the redundant explicit `ALLUSERS` property from [build-windows-machine-installer.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-29-22/apps/desktop/scripts/build-windows-machine-installer.mjs:197).
- Added x64/ARM64 regression coverage requiring per-machine scope and forbidding explicit `ALLUSERS` in [build-windows-machine-installer.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-29-22/apps/desktop/scripts/build-windows-machine-installer.test.mjs:32).

Validation:

- Desktop suite: 124 tests, 118 passed, 6 platform skips, 0 failures.
- Focused workflow/WXS tests: 14/14 passed.
- `git diff --check`: passed.
- Diff limited to two files, 14 insertions and 1 deletion.

Real WiX x64/ARM64 compile, production make/install smoke, and hosted aggregation require Windows runners and could not execute on this Linux host; their existing mandatory workflow gates remain unchanged.

PR: #1972
Comment by: @integry (ID: 5472242918)
Model: gpt-5.6-sol
…te-instance-20260829-1840-cv7

[1961 by GPT-5.6 Sol] Integrate remote instance discovery, browser pairing, and revocation in desktop
…`57eb4c6dfd9218ad58e3e74dec844ba5dbf71162`.

Implemented the production Light timeout fix on exact head `57eb4c6dfd9218ad58e3e74dec844ba5dbf71162`.

- Version checks, Candle, and probe Light remain at 120 seconds.
- Production Light now allows 10 minutes.
- Existing no-shell execution, 64 KiB output bound, 4 KiB normalized diagnostics, timeout termination, MSI validation, and cleanup remain unchanged.
- Added focused timeout-policy regression coverage in [build-windows-machine-installer.test.mjs](/tmp/git-processor/worktrees/integry/propr/pr-1972-followup-2026-08-31T00-38-57/apps/desktop/scripts/build-windows-machine-installer.test.mjs:46).

Validation passed:

- Focused tests: 5/5
- Desktop suite: 119 passed, 6 platform-specific skips
- Desktop/UI typecheck
- `git diff --check`

Real x64/ARM64 WiX make/install smoke and hosted aggregation require Windows runners and could not be executed from this Linux environment. No commit was created.

PR: #1972
Comment by: @integry (ID: 5472296766)
Model: gpt-5.6-sol
…87/gpt-5.6-sol-expose-a-secret-free-prop-20260829-2120-4hc

Automatically resolved merge conflicts after merging target branch into PR branch.
Resolved conflicts in:
- packages/api/desktopAuthService.ts
- packages/api/test/desktopAuth.test.ts
- propr-ui/src/config/runtimeConfig.test.ts
- propr-ui/src/config/runtimeConfig.ts

PR: #1989
Model: gpt-5.6-sol
…09d24b3`:

Implemented the exact per-machine Start Menu fix on head `609d24b3`:

- Changed the WiX directory root to `CommonProgramMenuFolder` while preserving the shortcut, properties, removal, and HKLM registration in [build-windows-machine-installer.mjs](/home/node/workspace/apps/desktop/scripts/build-windows-machine-installer.mjs:226).
- Added x64/ARM64 regressions requiring `CommonProgramMenuFolder` and forbidding exact `Directory Id="ProgramMenuFolder"` in [build-windows-machine-installer.test.mjs](/home/node/workspace/apps/desktop/scripts/build-windows-machine-installer.test.mjs:46).

Validation passed:

- Focused MSI tests: 6/6
- Desktop tests: 126 tests, 120 passed, 6 platform-specific skipped
- Desktop typecheck
- Aggregate/finalization fixture coverage
- `git diff --check`

The real WiX probes, MSI make/install, and ordinary-user packaged smoke require native Windows x64/ARM64 CI runners and could not run in this Linux environment. No commit was created.

PR: #1972
Comment by: @integry (ID: 5472367219)
Model: gpt-5.6-sol
@integry

integry commented Sep 3, 2026

Copy link
Copy Markdown
Owner

/merge

Merge current base main at 36442ce into current transport head 8bcd46b. Do not merge PR #1976 into main.

Resolve only the merge and preserve this exact union:

  • package.json: retain all transport Electron/client/local-setup workspaces, overrides, preparation hooks, dependencies, and desktop scripts; also retain main's test/deployPrPreview.test.mjs unit-suite entry.
  • package-lock.json: regenerate deterministically from merged manifests; do not take either side wholesale. Preserve canonical qs 6.16.0, fast-uri 3.1.6, and browserslist 4.28.8, while accepting current compatible browser transitives from the merged manifest.
  • packages/api/test/statusRoutes.test.ts: retain both transport desktop discovery/public-instance-identity coverage and main synthetic-agent load/degraded-pool coverage.
  • packages/api/test/webPushDispatcher.test.ts: retain transport's deterministic fixed SQLite/dispatcher clock and fixed-width VAPID key; retain main pagination and lease-expiry regression intent without reintroducing Date.now() flakiness.
  • packages/cli/src/commands/taskInspectCommands.test.ts: assert exact cardinality plus order-independent equality for requested active states; preserve canonical output-state ordering.
  • Preserve transport workflow files exactly: main has no workflow changes since the merge base.
  • Semantically preserve the union in auto-merged shared files, especially API server/status routes, shared exports, CLI index, proprApi.ts, Layout.tsx, docs, and env configuration.
  • Do not alter or weaken desktop auth, Connect discovery, credential isolation, release guards, signing/update policy, native durability, or artifact checks.
  • No unrelated cleanup or dependency upgrades.

Run merge-focused tests plus Validate Changes/full-suite equivalents. Report the exact resulting head, resolved files, lock versions/integrities, and any environmental limitation.

@propr-dev

propr-dev Bot commented Sep 3, 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 removed the AI label Sep 3, 2026
@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Failed to resolve merge conflicts from main into 1953-epic-desktop-transport-api

Agent failed to resolve all merge conflicts. 24 conflict marker(s) still present in files.

System-triggered merge conflict resolution

1 similar comment
@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Failed to resolve merge conflicts from main into 1953-epic-desktop-transport-api

Agent failed to resolve all merge conflicts. 24 conflict marker(s) still present in files.

System-triggered merge conflict resolution

@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Failed to resolve merge conflicts from main into 1953-epic-desktop-transport-api

Worktree path does not exist: /tmp/git-processor/worktrees/integry/propr/pr-1976-merge-2026-09-03T19-33-55

System-triggered merge conflict resolution

@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Failed to resolve merge conflicts from main into 1953-epic-desktop-transport-api

Worktree path does not exist: /tmp/git-processor/worktrees/integry/propr/pr-1976-merge-2026-09-03T19-36-08

System-triggered merge conflict resolution

@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

🔀 Auto-resolving merge conflicts — merging main into 1953-epic-desktop-transport-api

This is a system-triggered action to keep the PR branch up to date.

@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

Failed to resolve merge conflicts from main into 1953-epic-desktop-transport-api

Not a git repository (or any of the parent directories): /tmp/git-processor/worktrees/integry/propr/pr-1976-merge-2026-09-03T19-45-47

System-triggered merge conflict resolution

@propr-dev

propr-dev Bot commented Sep 3, 2026

Copy link
Copy Markdown
Contributor Author

🔀 Resolved merge conflicts from main into 1953-epic-desktop-transport-api in commit f7d0bf4

Conflicting Files

  • package-lock.json
  • package.json
  • packages/api/test/statusRoutes.test.ts
  • packages/api/test/webPushDispatcher.test.ts
  • packages/cli/src/commands/taskInspectCommands.test.ts

Resolution Summary

Resolved all five conflicted files; no conflict markers remain.

Conflict resolutions

  • package.json

    • Conflict: PR added the pretest:unit build preparation; main added test/deployPrPreview.test.mjs to unit tests.
    • Resolution: Kept both.
    • Why: Both changes are independent and required for their respective test coverage.
  • package-lock.json

    • Conflict: Different electron-to-chromium versions and dependency-tree differences caused by the PR’s desktop/node-gyp additions.
    • Resolution: Used main’s newer electron-to-chromium 1.5.420 while preserving the PR’s node-gyp 12.4.0 transitive entries.
    • Why: This incorporates the dependency update from main without breaking the PR’s desktop packaging dependencies.
  • statusRoutes.test.ts

    • Conflict: PR imported parseProprDesktopDiscovery; main added the SyntheticAgentConfig type.
    • Resolution: Retained both imports.
    • Why: Desktop discovery and synthetic-agent status tests both require their respective symbols.
  • webPushDispatcher.test.ts

    • Conflict: Both branches stabilized VAPID key fixtures, pagination timing, and claim-expiry timing differently.
    • Resolution: Combined the fixed historical clock from the PR with main’s unique event timestamps, 30-second lease, and delayed expiry jump. Consolidated the equivalent VAPID comments.
    • Why: This preserves deterministic PR tests while retaining main’s protections against ordering and timing flakiness.
  • taskInspectCommands.test.ts

    • Conflict: Both branches verified all active lifecycle states using different assertions.
    • Resolution: Used main’s length check plus set equality.
    • Why: It remains order-independent while also detecting duplicate requests.

Validation completed:

  • Full-worktree marker scan: no <<<<<<< or >>>>>>> markers remain.
  • package.json and package-lock.json parse successfully.
  • All three TypeScript files pass Node syntax checking.
  • git diff --check passes.
  • npm ci --dry-run confirms lockfile consistency.
  • Focused tests could not start because dependencies are not installed in this worktree (zod, knex, and commander missing).

No commit was created. Staging was attempted, but Git could not create the linked worktree’s index.lock due to permission denial. Consequently, Git still reports the five files as UU even though their working-tree contents are resolved.


🤖 Resolution Details

  • Model: gpt-5.6-sol
  • Time: 3m 47s

View Task Execution


System-triggered merge conflict resolution

propr-dev[bot] and others added 20 commits September 3, 2026 19:50
Automatically resolved merge conflicts after merging target branch into PR branch.
Resolved conflicts in:
- package-lock.json
- package.json
- packages/api/test/statusRoutes.test.ts
- packages/api/test/webPushDispatcher.test.ts
- packages/cli/src/commands/taskInspectCommands.test.ts

PR: #1976
Model: gpt-5.6-sol
…ervice cases + 37 profile-store + 10 pairing-shutdown = 119. I’m building the shared/client/local-setup/CLI prerequisites once, then will run the focused client suite, the exact 119-case native durability gate, and API status/CORS/socket tests concurrently.

The exact native gate is confirmed in-repo: 72 credential-service cases + 37 profile-store + 10 pairing-shutdown = 119. I’m building the shared/client/local-setup/CLI prerequisites once, then will run the focused client suite, the exact 119-case native durability gate, and API status/CORS/socket tests concurrently.

PR: #2035
Comment by: @integry (ID: 5531301079)
Model: gpt-5.6-sol
…or/worktrees/integry/propr/pr-2035-followup-2026-09-03T20-11-59/scripts/verify-platform-safe-connect.mjs):

Updated [verify-platform-safe-connect.mjs](/tmp/git-processor/worktrees/integry/propr/pr-2035-followup-2026-09-03T20-11-59/scripts/verify-platform-safe-connect.mjs):

- Changed all expected/report counts from 85 to 86.
- Preserved strict fail-closed equality checks.
- Preserved the 90,000ms timeout.
- No focused self-check existed to adjust.
- Script passes: `tests=86 pass=86 fail=0 skipped=0`.
- `git diff --check` passes; only the requested script changed.
- No commit, merge, or preview artifacts created.

PR: #2035
Comment by: @integry (ID: 5531518247)
Model: gpt-5.6-sol
…ndary and all transport-sensitive desktop/API suites; it is now past 110 of 374 files with no failures. I’m letting the sequential runner finish so the final result reflects the complete merged tree.

The repository-wide runner has passed the assembled API boundary and all transport-sensitive desktop/API suites; it is now past 110 of 374 files with no failures. I’m letting the sequential runner finish so the final result reflects the complete merged tree.

PR: #2089
Comment by: @integry (ID: 5531489680)
Model: gpt-5.6-sol
Prepared the exact merge state for the system commit/push:

- Task cwd uses complete node-owned, non-bare `.git`; `inside-work-tree=true`.
- `HEAD`: `8cd66a3791366b86d061baba55b176e52c51072e`
- `MERGE_HEAD`: `6beeda95cd9da99a40fe54c12d66767c1a2db33a`
- `MERGE_MODE=no-ff`
- Six conflicts resolved to 8cd.
- Zero unresolved entries; no unstaged changes.
- Staged diff exactly matches `b494…→6be…`: only `scripts/verify-platform-safe-connect.mjs`, 4 insertions/4 deletions.
- Platform-safe: 86/86 passed.
- Native durability: 120/120 passed.
- No commit created, as instructed. The system commit will therefore have parents 8cd first and 6be second.
- No preview generated because this is ancestry-only and not visually perceptible.

PR: #2089
Comment by: @integry (ID: 5531823572)
Model: gpt-5.6-sol
…tch on `f482e1d7`.

Reapplied and audited the exact bounded eight-file F1–F3 patch on `f482e1d7`.

Implemented:

- Exact legacy `{ "error": "Unauthorized" }` 401 classification with bounded, fatal UTF-8, duplicate-safe parsing.
- Nonterminal discovery milestone and allowlisted journey diagnostics.
- Single terminal READY after pairing and persisted reprobe.
- Cached idempotent fixture cleanup tolerating only `ERR_SERVER_NOT_RUNNING`.
- Ephemeral Linux dbus/gnome-keyring/libsecret provisioning.

Verification passed:

- Client: 71/71
- Credential service: 72/72
- Lifecycle/cleanup: 27/27
- Express boundary: 1/1
- Shared, client, API, and desktop typechecks
- Platform-safe: 86/86
- Native durability: 120/120
- `git diff --check`

HEAD remains `f482e1d7`, with parents `8cd66a37` and `6beeda95`. The eight-file patch is uncommitted for the system commit hook. Cross-platform packaged lanes remain for CI; no visual preview was applicable.

PR: #2089
Comment by: @integry (ID: 5532060503)
Model: gpt-5.6-sol
… `123d31c` without committing.

Implemented the scoped Mac/Linux/shared corrections on head `123d31c` without committing.

- Linux Connect now derives one launch argv and passes `--password-store=gnome-libsecret` through the actual binary spawn.
- Darwin workflow creates, unlocks, selects, restores, and deletes an ephemeral generated-password keychain.
- Added audited LNA permission handling for trusted live main frames with current bindings, exact-origin request enforcement, child/foreign/destroyed renderer denial, and fixed redacted evidence.
- Split renderer diagnostics into manual-form, browser-approval, and activation/dashboard stages.
- Windows runtime behavior remains gated off from the new renderer-network boundary.
- No package-lock, release, signing, publishing, or visual changes.

Verification passed:

- Focused launch/lifecycle/platform tests: 33/33
- Credential/session-security tests: 85/85
- Desktop typecheck
- Platform-safe Connect: exactly 86/86
- Native durability: exactly 120/120
- Workflow YAML and Darwin shell syntax
- Transport ancestry preserved from `f482e1d`

PR: #2089
Comment by: @integry (ID: 5532347770)
Model: gpt-5.6-sol
…t committing.

Implemented the scoped packaged-approval harness fix without committing.

- Added a unique non-persistent Electron session for the hidden approval window in [main.ts](/tmp/git-processor/worktrees/integry/propr/pr-2089-followup-2026-09-03T21-49-25/apps/desktop/src/main.ts:452).
- Added the fail-closed navigation boundary in [packaged-approval-session.ts](/tmp/git-processor/worktrees/integry/propr/pr-2089-followup-2026-09-03T21-49-25/apps/desktop/src/packaged-approval-session.ts:1):
  - Exactly one credentialless main-frame `GET`.
  - Exact URL and HTTP 200 commit/completion required.
  - Permissions, redirects, alternate requests, subframes, popups, webviews, downloads, and external navigation denied.
  - Authorization/Cookie headers rejected; response cookies stripped.
  - Window destruction, handler detachment, and storage clearing are idempotent.
- Added adversarial focused coverage and confirmed the production default session still cancels pairing navigation.
- Left credential preparation, production session/LNA boundaries, identity rules, workflow, lockfile, and UI unchanged.

Verification:

- Focused approval/session tests: 19/19.
- Focused pairing/session suites: 32/32.
- Packaged lifecycle suites: 28/28.
- Desktop typecheck: passed.
- Platform-safe Connect: exactly 86/86.
- Native durability: exactly 120/120.
- Required Darwin x64/arm64 and Linux x64/arm64 Packaged Connect lanes remain in the CI matrix.

The complete desktop command had one baseline Windows-only source-text assertion failure—its legacy spawn literal is already absent at the exact original head. Per scope, no Windows changes were made. No visual preview was created because this changes only a hidden acceptance harness.

PR: #2089
Comment by: @integry (ID: 5532591618)
Model: gpt-5.6-sol
…head `923e5efd6202b0bfd620af0b01ac5a8539df2b94`.

Implemented the scoped Mac/Linux/shared follow-up on exact head `923e5efd6202b0bfd620af0b01ac5a8539df2b94`.

Key changes:

- Split the packaged journey into fixed, redacted stages from authentication-required through durable commit, reprobe, activation, publication, React connected state, and REST/Socket.IO proof.
- Identified and fixed the post-pair boundary: generic packaged-smoke setup was creating synthetic profiles and changing active profile/generation before the real Connect journey. Connect acceptance now bypasses those mutations and layout probes.
- Added bounded operation and renderer-ownership evidence without exposing identifiers, URLs, tokens, bodies, DOM text, or errors.
- Preserved the mandatory `details.frame` rule because no captured evidence proves it is omitted. Explicit, missing, null, stale, foreign, and subframe cases remain fail-closed.
- Strengthened two-phase request evidence: exactly eight credentialless discoveries, three pairing starts/browser approvals, polling, one activation, and authenticated REST/Socket.IO across restart.
- Retained one terminal READY producer after full journey completion.

Validation:

- Platform-safe: `86/86`
- Native durability: `120/120`
- Final focused desktop/session/preload: `15/15`
- Lifecycle/cleanup: `28/28`
- Focused UI: `37/37`
- Launch/lifecycle focused suite: `31/31`
- Desktop and UI typechecks passed
- `git diff --check` passed

A diagnostic full-desktop run also exposed and helped fix one shared source-order regression. Its remaining failure was the pre-existing Windows-only staging assertion, intentionally untouched. All four packaged Mac/Linux lanes are left for CI as requested. No visual preview was generated because there is no visual product change. No commit was created.

PR: #2089
Comment by: @integry (ID: 5533203330)
Model: gpt-5.6-sol
Automatically resolved merge conflicts after merging target branch into PR branch.
Resolved conflicts in:
- package-lock.json
- packages/api/auth.ts
- packages/api/routes/index.ts
- packages/api/server.ts
- packages/cli/src/commands/setup/engine.ts

PR: #1970
Model: gpt-5.6-sol
…fcc725607f5c48861a6c79f`:

Implemented the two scoped fixes on head `4235b1465eeb9bf37fcc725607f5c48861a6c79f`:

- Awaited only the async `createApiClient` branch so `client` is always `ApiClient`.
- Replaced raw error interpolation with a fixed, non-secret message.
- Added adversarial token/Bearer/URL-path/username sentinel coverage for both reporter channels, successful non-blocking health, and exact-once attempts.

Changed only:

- [engine.ts](/tmp/git-processor/worktrees/integry/propr/pr-1970-followup-2026-09-04T09-11-32/packages/cli/src/commands/setup/engine.ts)
- [engine.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-1970-followup-2026-09-04T09-11-32/packages/cli/src/commands/setup/engine.test.ts)

Verification passed:

- CLI typecheck
- Setup engine: 57/57
- Sequential setup: 25/25
- Shared local-setup engine: 7/7
- `git diff --check`

No preview files were created because the changes are not visually perceptible. No commit was made.

PR: #1970
Comment by: @integry (ID: 5538269509)
Model: gpt-5.6-sol
…ed commit.

Prepared the exact resolved merge tree for the system-managed commit.

- Intended direct parents, in order:
  1. `6beeda95cd9da99a40fe54c12d66767c1a2db33a`
  2. `a2c7173790c34e2141043a9a49fec846ad12ac06`
- Confirmed top contains main `c895c1884fa30557c3d20ca24f6e6b7b07daae45`.
- Only conflict: [package.json](/tmp/git-processor/worktrees/integry/propr/pr-2035-followup-2026-09-04T09-18-22/package.json)
  - Retained transport `pretest:unit` for shared and local-setup.
  - Retained transport `test:prepare` including client and local-setup.
  - Used top’s `test:unit`, including `test/agentImagePreparation.test.ts` exactly once.
- Resolved tree: `6fca3fd525325d47d1727384f85d0fcee15bbb9e`; verified identical between the standalone merge and mandated worktree.
- Lockfile retains `fast-uri@3.1.7`, `qs@6.16.0`, and current humanfs versions.

Validation passed:

- Clean `npm ci` and workspace preparation/build.
- Diff checks.
- API/shared/client/desktop/UI/CLI/root typechecks.
- Focused auth/status/Connect/setup suites.
- Desktop focused: 126/126.
- Platform-safe Connect: 86/86.
- Native durability: 119/119, including credentials 72/72.

The bounded full suite reached file 238/380. It encountered one environment-sensitive `config-followup.test.ts` assertion (`400` versus expected `500` after Docker-backed model discovery was unavailable), then blocked on missing Redis at `127.0.0.1:6379`.

Per the critical instruction that the system will commit, I did not manually commit or push. No preview was created because this is not a visual change.

PR: #2035
Comment by: @integry (ID: 5538342483)
Model: gpt-5.6-sol
Implemented the three scoped Mac/Linux CI corrections:

- Enforced exact pairing evidence: 3 starts, 3 browser approvals, 1 poll, 1 activation in [smoke-packaged-connect.mjs](/home/node/workspace/apps/desktop/scripts/smoke-packaged-connect.mjs:620).
- Pre-seeded the disposable Darwin keychain with Electron’s Safe Storage item and unset the generated secret before launch in [desktop-connect-discovery-guard.yml](/home/node/workspace/.github/workflows/desktop-connect-discovery-guard.yml:145).
- Allowed incidental resources to be canceled without invalidating approval, while retaining subframe/main-frame rejection and adding bounded, redacted cleanup in [packaged-approval-session.ts](/home/node/workspace/apps/desktop/src/packaged-approval-session.ts:47).

Validation passed:

- Focused lifecycle/platform/approval: 53 tests
- Platform-safe Connect: 86/86
- Native durability: 120/120
- Client: 72/72
- Focused API auth/boundary: 14/14
- Focused UI: 34/34
- Desktop and UI typechecks
- Diff and secret/marker scans

The [reported full-suite run](https://github.com/integry/propr/actions/runs/33867260810) failed only at the known out-of-scope `test/config-followup.test.ts` infrastructure-dependent assertion (`400 !== 500`); its gate was not weakened. No commit or visual preview was created.

PR: #2089
Comment by: @github-actions[bot] (ID: 5539846056)
Model: gpt-5.6-sol
…test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2089-followup-2026-09-04T12-11-00/test/config-followup.test.ts:67).

Fixed the sole full-suite failure in [test/config-followup.test.ts](/tmp/git-processor/worktrees/integry/propr/pr-2089-followup-2026-09-04T12-11-00/test/config-followup.test.ts:67).

The test now uses the registry-independent valid clear value (`''`) while preserving the same `pr_review_model` write/rollback assertions.

Validation:

- Focused failing suite: 13/13 passed
- Related config routes: 100/100 passed
- `git diff --check`: passed
- No production or visual changes
- No commit created, as requested

PR: #2089
Comment by: @github-actions[bot] (ID: 5540233118)
Model: gpt-5.6-sol
Merge the validated transport implementation into the transport epic branch only. Remaining packaged acceptance blockers are split into targeted follow-up issues before the epic can cascade upward.
…ct evidence

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

Implementation completed successfully.
Implemented F1 only.

- Fixture handshake records now include explicit acceptance status.
- Socket.IO count, scope rotation, and query/auth binding evidence uses accepted handshakes only.
- Added regression coverage for two valid rotated connections plus the expected rejected stale-auth handshake.
- No visual preview generated because the change is non-visual.

Validation passed:

- Desktop script tests: 194 tests, 170 passed, 24 platform skips, 0 failures
- ESLint
- Syntax check
- `git diff --check`

No commit created.

PR: #2107
Comment by: @integry (ID: 5541497961)
Model: gpt-5.6-sol
…ed-journey--20260904-1325-1sq

[2105 by GPT-5.6 Sol] Desktop packaged journey: diagnose exact evidence mismatch and pass Mac/Linux
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant