On clean dev 0a10220d, macOS arm64, pnpm electron:smoke:demo completes all native demo checks and exits 0, but teardown logs Error: write EPIPE from sendAliceMessage -> fetchAliceWebRequest -> demo-main app protocol handler.
Passed checks include app protocol/preload, isolated Inbox/report/files/conversation, native companion visibility, sound settings, notification defaults/persistence, real Journal-to-background-pet privacy and safe Open. The error follows the final notification PASS and app quit.
Suspected lifecycle: demo-main.ts kills its fixture backend on before-quit while protocol requests may still be dispatched. Callback-based sendAliceMessage already prevents an unhandled ChildProcess error; the protocol request rejects and Electron reports the EPIPE. Establish teardown cancellation/closed-source handling before claiming stderr-clean native smoke. Keep actual unexpected IPC failures visible.
This is separate from #1685's user-visible destroyed-BrowserWindow exception. Deferred to avoid expanding that bounded notification-controller repair into shared IPC/protocol shutdown. No broker or production state was involved; the demo uses its existing disposable profile/backend.
On clean dev
0a10220d, macOS arm64,pnpm electron:smoke:democompletes all native demo checks and exits 0, but teardown logsError: write EPIPEfromsendAliceMessage -> fetchAliceWebRequest -> demo-main app protocol handler.Passed checks include app protocol/preload, isolated Inbox/report/files/conversation, native companion visibility, sound settings, notification defaults/persistence, real Journal-to-background-pet privacy and safe Open. The error follows the final notification PASS and app quit.
Suspected lifecycle:
demo-main.tskills its fixture backend onbefore-quitwhile protocol requests may still be dispatched. Callback-basedsendAliceMessagealready prevents an unhandled ChildProcess error; the protocol request rejects and Electron reports the EPIPE. Establish teardown cancellation/closed-source handling before claiming stderr-clean native smoke. Keep actual unexpected IPC failures visible.This is separate from #1685's user-visible destroyed-BrowserWindow exception. Deferred to avoid expanding that bounded notification-controller repair into shared IPC/protocol shutdown. No broker or production state was involved; the demo uses its existing disposable profile/backend.