Skip to content

CL-7220 sidecar child runtime cancel/stop calls are fire-and-forget - #606

Merged
TheGreatAxios merged 4 commits into
mainfrom
cl-7220-sidecar-child-runtime-cancelstop-calls-are-fire-and-forget
Sep 4, 2026
Merged

TheGreatAxios merged 4 commits into
mainfrom
cl-7220-sidecar-child-runtime-cancelstop-calls-are-fire-and-forget

Conversation

@TheGreatAxios

@TheGreatAxios TheGreatAxios commented Sep 3, 2026 •

Copy link
Copy Markdown
Contributor

CL-7220 stacked

Fixes CL-7220

@TheGreatAxios
TheGreatAxios force-pushed the cl-7220-sidecar-child-runtime-cancelstop-calls-are-fire-and-forget branch 2 times, most recently from f779591 to 836609d Compare September 3, 2026 22:48
@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Fixes CL-7220

@TheGreatAxios
TheGreatAxios force-pushed the cl-7220-sidecar-child-runtime-cancelstop-calls-are-fire-and-forget branch from 836609d to 8afbabe Compare September 4, 2026 04:52
@linear-code

linear-code Bot commented Sep 4, 2026

Copy link
Copy Markdown

CL-7220

@TheGreatAxios

Copy link
Copy Markdown
Contributor Author

Self-review

Verdict: the diff correctly routes previously fire-and-forget handle.cancel/signalChannel.stop rejections through reportError via a small fireAndForget helper, with test seams (runtimeRun, reportError, createSignalChannel) that avoid bun's process-wide mock.module. Ready.

Findings:

  • CONFIRMED-FIXED (pre-existing, not from this PR): n/a — no defects found in this diff.
  • DISMISSED: test seams (runtimeRun, reportError, createSignalChannel) added to SidecarRunChildDeps are documented as test-only with no production caller setting them; acceptable since production code paths still default to the real implementations.
  • DISMISSED: fireAndForget swallows the rejection after reporting — intended behavior per the issue (report instead of losing to an unhandled rejection), not a new fallback path.

Targeted tests: bun test in apps/sidecar — 230 pass, 0 fail (includes new workflow-substrate-factory-child-cancel-report.test.ts with 3 red/green cases for cancel-on-abort, signal-channel-stop, and spawn-suspendable cancel rejections).

Fire-and-forget handle.cancel and signalChannel.stop calls now catch
and report through reportError so a rejected cancel during parent abort
cannot become an unhandled rejection.
bun's mock.module replaces @intx/workflow process-wide and cannot be
undone for later files in the same bun test process. The cancel-report
test's never-resolving runtimeRun then hung the suspendable-child suite.

Inject runtimeRun and reportError through SidecarRunChildDeps instead.
signalChannel.stop and spawn-suspendable abort cancel already report
through fire-and-forget. Pin that those rejections go through
reportError and never become unhandled rejections.
@TheGreatAxios
TheGreatAxios force-pushed the cl-7220-sidecar-child-runtime-cancelstop-calls-are-fire-and-forget branch from 8afbabe to 66305f5 Compare September 4, 2026 06:20
@TheGreatAxios
TheGreatAxios changed the base branch from cl-7221-sidecars-top-level-sigtermsigint-handler-has-no-error to main September 4, 2026 06:20
@TheGreatAxios
TheGreatAxios merged commit 9fe3e46 into main Sep 4, 2026
7 checks passed
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