Skip to content

fix(server): abandon unadoptable pending turn starts - #278

Merged
omegent-app[bot] merged 2 commits into
fork/discordfrom
fix/server-abandon-orphan-pending-turn
Aug 1, 2026
Merged

fix(server): abandon unadoptable pending turn starts#278
omegent-app[bot] merged 2 commits into
fork/discordfrom
fix/server-abandon-orphan-pending-turn

Conversation

@omegent-app

@omegent-app omegent-app Bot commented Aug 1, 2026

Copy link
Copy Markdown

Summary

A ghost projection_turns pending-start row (user message missing, or no matching turn-start-requested event) blocked the queue forever: every Discord follow-up became message-queued and never drained, so the bot stuck on Working… (Protect Agents / 77ff9acd).

Fix: when turn start fails because the user message is missing, or startup recovery cannot find the persisted event, abandon the pending start (session → ready, clear SQL placeholder) and attempt thread.queue.drain.

Test plan

  • vp test run src/orchestration/Layers/ProviderCommandReactor.test.ts (44 passed), including regression for ghost pending with no event
  • CI Fork CI Check/Test green
  • After deploy/restart, ghost pending + queued follow-ups recover without manual SQL

opened by Patrick Roza in chat thread Discord · Discord · T3

omegent-app Bot and others added 2 commits August 1, 2026 09:08
A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@omegent-app
omegent-app Bot force-pushed the fix/server-abandon-orphan-pending-turn branch from ab97ce6 to 27850f5 Compare August 1, 2026 09:08
@omegent-app
omegent-app Bot merged commit 5561ee5 into fork/discord Aug 1, 2026
8 checks passed
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 1, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 2, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 3, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 4, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
patroza added a commit that referenced this pull request Aug 5, 2026
* fix(server): abandon unadoptable pending turn starts

A pending-start row whose user message (or turn-start event) is gone
used to stick forever. The decider then message-queued every follow-up
and never drained, so Discord sat on Working… (Protect Agents /
77ff9acd). On missing message or missing recovery event, clear the
pending start, settle session to ready, and attempt queue drain.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

* fix(server): avoid net-new Effect.runPromise in reactor tests

Use harness ManagedRuntime.runPromise for the ghost-pending helper so the
manual Effect runtime baseline stays flat.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>

---------

Co-authored-by: omegent-app[bot] <306514130+omegent-app[bot]@users.noreply.github.com>
Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
(cherry picked from commit 5f99dbc)
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.

0 participants