Skip to content

fix(jira): queue busy turns async + reliable inline parentId replies - #248

Merged
patroza merged 2 commits into
fork/identityfrom
fix/jira-queue-and-inline-reply
Jul 31, 2026
Merged

fix(jira): queue busy turns async + reliable inline parentId replies#248
patroza merged 2 commits into
fork/identityfrom
fix/jira-queue-and-inline-reply

Conversation

@omegent-app

@omegent-app omegent-app Bot commented Jul 31, 2026

Copy link
Copy Markdown

Summary

  • Busy threads: always thread.turn.start — orchestration queues when mid-turn; no more “already working” short-circuit. Reply stays async via existing forkDetach(bridgeTurn).
  • Inline replies: Jira only accepts children under root comments. Nested parentId → 400 → we used to fall flat. Before POST, GET the trigger comment and use its parentId when set.
  • Webhook parsing accepts REST-style comment.parentId and ignores empty Automation parent.id.

Live evidence (SA-421)

Exact delivery this time:

  • Inbound: jira-comment:SA-421:71413 — Patrick @omegent on nested comment 71413 (parentId on REST is 71399, not in Automation payload).
  • Outbound busy reply 71415 was flat (parent: None / empty Automation parent).
  • Probe: parentId: 71413400 Parent comment not found, and no child comments exist; parentId: 71399200 with parentId: 71399.

Test plan

  • vp test run apps/server/src/jira/JiraWebhook.test.ts (23)
  • vp check (0 errors)
  • Manual: @omegent while thread is busy → no busy text; turn queues; reply posts when done
  • Manual: @omegent as nested reply → bot reply has REST parentId = thread root

opened by Patrick Roza in chat thread Discord · Discord

@patroza
patroza force-pushed the fork/identity branch 5 times, most recently from e5e3872 to 180a4be Compare July 31, 2026 09:28
@patroza
patroza force-pushed the fix/jira-queue-and-inline-reply branch 5 times, most recently from 1823660 to 97f1ede Compare July 31, 2026 09:37
@patroza
patroza enabled auto-merge (squash) July 31, 2026 09:37
…lies

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

Co-authored-by: Patrick Roza <42661+patroza@users.noreply.github.com>
@patroza
patroza force-pushed the fix/jira-queue-and-inline-reply branch from 97f1ede to 86a1581 Compare July 31, 2026 09:40
@patroza
patroza disabled auto-merge July 31, 2026 09:43
@patroza
patroza merged commit 87f2ca5 into fork/identity Jul 31, 2026
3 checks passed
patroza added a commit that referenced this pull request Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 Jul 31, 2026
…lies (#248)

Stop short-circuiting busy threads with "already working" — always
dispatch thread.turn.start so orchestration queues the message, and keep
bridgeTurn fork-detached (async reply when the turn finishes).

Make parentId threading reliable: Jira only accepts children under root
comments (nested parentId → 400, then we used to fall flat). GET the
trigger comment and use its parentId when set before posting. Accept
comment.parentId on webhooks; ignore empty Automation parent.id.

Live evidence SA-421: reply 71415 was flat because parent was nested
71413 (true root 71399); parentId=71399 succeeds.

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 pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
patroza pushed a commit that referenced this pull request Jul 31, 2026
…fixes

Identity product layer based on current fork/changes: session claims,
source attribution, participant UI (#247), and Jira queue/inline replies
(#248), with mobile typecheck fixes for stage label and toolbar clearance.
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