Repository navigation
fix(desktop): retire demo IPC requests before teardown - #1726
Draft
luokerenx4 wants to merge 1 commit into
Draft
luokerenx4 wants to merge 1 commit into
luokerenx4 wants to merge 1 commit into
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and behavior
Closes #1688.
On the latest dev base (
82226d43), demobefore-quitkilled the fixture child while app-protocol requests could still send IPC. The callback correctly surfaced EPIPE, but Electron then reported that rejection during otherwise successful smoke teardown. #1685 repaired a separate destroyed-window error; the issue has no comments and no existing IPC teardown repair was found.Retire the fixture's web-request source before killing it. Pending and subsequent requests return unavailable (503), including requests still reading their body. Request abort also completes promptly. Late replies/send callbacks cannot revive cancelled work. Live-source send errors and timeouts still reject; unexpected fixture exit is logged and exits nonzero.
Following the subtraction principle, the existing pending-request map remains the single owner: settlement now centralizes timer/listener/map cleanup instead of duplicating it across response, send-error and cancellation branches. The only new source state is a weak closed-source marker:
child.connectedcannot express intentional retirement before kill or prevent a delayed body reader from dispatching. Demo teardown has one idempotent owner. No catch-all EPIPE suppression, parallel transport, packaged smoke runner, production main, broker or persisted-state change.Verification
All local validation used disposable HOME, OPENALICE_HOME, global/Supervisor and Pi paths under
/tmp/oa1688; no real broker, SSH or native user state.Passed:
pnpm test:owner:desktop --receipt /tmp/oa1688/desktop-final.json: 26 files / 130 assertions, including seven focused lifecycle regressions (source isolation/late callbacks, body-read cancellation, request abort, unexpected synchronous/callback errors, timeout).pnpm -F @traderalice/desktop typecheck.pnpm test:contract:workflow: 12 files / 104 assertions.LOCAL_GIT_DIRECTORY=/usr GIT_EXEC_PATH=/usr/lib/git-core pnpm test:critical --receipt /tmp/oa1688/critical-system-git.json: all 18 assertions. This uses dugite's supported system-Git override, not packaged Git acceptance.pnpm build;pnpm exec tsc -p tests/tsconfig.json --noEmit.pnpm electron:smoke:demo.Failed/environment-limited attempts:
--ignore-scripts; downloaded Electron successfully using the environment proxy.Full monorepo tests were not selected: the runtime change remains within the desktop owner; its complete suite, owner types and existing dev required gates were selected. Draft for human review; do not merge automatically. Exact-head remote CI completed successfully:
clean-buildrun 36929441448 one88a50e93acaee251ff2ebacda79b1c6ee632096passed dependency install, workflow contracts, required critical evidence, complete workspace build and registered-suite typecheck. All reported PR checks are terminal/success. This does not replace the unrun native smoke assertions.