Repository navigation
fix(desktop): activate verified AppImage updates - #21622
juliusmarminge wants to merge 3671 commits into
Conversation
ApprovabilityVerdict: Needs Human Approval Macroscope's review found this PR requires human approval — The changes include extensive release and preview automation plus a new pnpm hook. That hook adds a lint suppression at .pnpmfile.cjs:31, which requires human review even with its documented justification. Needs human approval because:
Adjust the Minimum Blocking Severity for this repo — including turning it Off — in Settings. You can add or adjust custom eligibility rules. Learn more. |
Dismissed: unsolicited automated review from a blocked account.
…w at rest (#33599) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…bar changes (#33611) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…rashpad pipe (#26374) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…ab (#23589) Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: PR Batch Tester <agent@local.test> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
Add a Details action for pending background commands and subagents. Preserve Claude command metadata across roster updates and bind output visibility to the explicit command item. Keep internal task IDs, duplicate command labels, and empty output headings out of the dialog. Validation: check:changed passed with 371 tests; CI and agentic reviews completed on a0326ab. Verified command details in real Codex and Claude runs. Implemented and verified with GPT 6.1 Sol in the Codex harness.
…anup (#33664) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ock (#23001) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…ar file (#26594) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
…ds the inspection limit (#26593) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…eckpoints (#27425) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…4170) Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
Co-authored-by: Sinan Turna <189102964+Sinan53x@users.noreply.github.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…10495) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com> Co-authored-by: maria-rcks <maria@kuuro.net>
…at t3_thread_list takes allProjects (#26525) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5.2 <noreply@anthropic.com>
Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com> Co-authored-by: Julius Marminge <julius0216@outlook.com>
…ll other git work (#26601) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: maria-rcks <maria@kuuro.net>
Co-authored-by: Julius Marminge <julius0216@outlook.com>
Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…inks off (#21641) Co-authored-by: Julius Marminge <julius0216@outlook.com>
…6311) Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Co-authored-by: Claude Fable 5.1 <noreply@anthropic.com>
Co-authored-by: Vladislav Nikonorov <vladislav@nikonorov.dev>
…8379) Co-authored-by: Julius Marminge <julius0216@outlook.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
Drop the test-only copyFile hook in favour of mocking node:fs, and cut the tests to cases that fail when the verified install is not active, plus the alias cases that guard the committed destination. AI-assisted; verified with the tests and tools listed above.
EvidenceRan the real packaged Linux x64 desktop on both commits with fresh isolated state, light theme, identical layout, and the same fully built update payload. All captures use Xvfb and a 1920×840 recording region. The black rectangle redacts an unrelated local CLI path. Steps: launch
Driver · Build and reproduction instructions · Sanitized runtime transcript AI-assisted; verified with the tests and tools listed above. Not shown:
|
|
The automated pipeline stopped on this pull request and will not merge it: not finished after 6 rounds It stays open for a person to finish or close. |






Use verified replacement for explicit installation and defensively cover install-on-quit if enabled; T3 currently disables automatic installation on quit. Activate it lazily on the real AppImage updater and preserve filename events, forced relaunch, and synchronous exit-after-install behavior. Bridge dependency logs into the existing desktop updater tracing context and restore the prior logger when the service closes.
This is the integration layer rebuilt from @MarMarLabs's #20117, above the verified file-replacement layer. It deliberately excludes the original shutdown wrappers and OTLP/file-drain changes. It does not guarantee delivery of final logs at process exit. Raw updater messages remain log messages, outside span attributes. The logger bridge also affects macOS and Windows: updater logs use the existing Effect logging configuration, including its minimum level; those native updater flows were not exercised.
Stack: #21621 is the required file-replacement layer.
Verification:
AppImageUpdater, lazy activation, metadata verification, both launch modes, and the configured logger. Before integration, 6 new cases failed; bypassing production hook activation makes all four targeted integration cases fail.The boundary override relies on
electron-updater6.8.9 internals (doInstall, downloaded metadata,spawnLog); upgrades require revalidation. Packaged Linux success/failure, Electron shutdown/relaunch, and single-instance locking require human qualification before landing. An upstreamelectron-builderfix would remove the need for this local override; no upstream change was submitted. macOS, Windows, iOS, Android and Electron desktop UI were not exercised. No UI changed, so evidence is test/CLI output.Staging always copies the download so a later verification, sync, or final-rename failure leaves the cached download available. This requires another AppImage-sized allocation even on one filesystem, and copy/hash/sync run synchronously during installation. Rename-first staging would need rollback handling to preserve a valid cache after later failures; that optimization is outside this repair.
Two independent full-stack review rounds (Claude Opus 5.5 and GPT-6-Sol) found no remaining code defects. The full-copy allocation/I/O cost is accepted and documented; packaged qualification remains a landing gate.
Implementation and tests: GPT-6.1-Sol and GPT-6-Astra through Codex in T3 Code; independent review: Claude Opus 5.5 and GPT-6-Sol in T3 Code.
Closes https://git.cafe/pingdotgg/t3code/issues/10685
Fixes #10685