@tickernelz/paperclip-pro-server 2026.928.1 → 2026.928.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/dist/build-info.json +1 -1
  2. package/dist/routes/issues.d.ts.map +1 -1
  3. package/dist/routes/issues.js +28 -8
  4. package/dist/routes/issues.js.map +1 -1
  5. package/dist/routes/openapi.js +1 -1
  6. package/dist/routes/openapi.js.map +1 -1
  7. package/dist/services/heartbeat.d.ts +3 -3
  8. package/dist/services/heartbeat.d.ts.map +1 -1
  9. package/dist/services/heartbeat.js +3 -2
  10. package/dist/services/heartbeat.js.map +1 -1
  11. package/dist/services/legacy-execution-recovery.d.ts.map +1 -1
  12. package/dist/services/legacy-execution-recovery.js +2 -1
  13. package/dist/services/legacy-execution-recovery.js.map +1 -1
  14. package/dist/services/steering-acknowledgements.d.ts +9 -0
  15. package/dist/services/steering-acknowledgements.d.ts.map +1 -0
  16. package/dist/services/steering-acknowledgements.js +25 -0
  17. package/dist/services/steering-acknowledgements.js.map +1 -0
  18. package/dist/services/task-watchdogs.d.ts +1 -1
  19. package/package.json +21 -21
  20. package/ui-dist/assets/{Agents.production-DnNn75nn.js → Agents.production-DjLgD8Fp.js} +2 -2
  21. package/ui-dist/assets/{CompanyActivity.production-BY7txBud.js → CompanyActivity.production-CaNV-c_e.js} +1 -1
  22. package/ui-dist/assets/{CompanyExport-CM6gvMQK.js → CompanyExport-Bx-trKPv.js} +1 -1
  23. package/ui-dist/assets/{CompanySkills.production-D-APop9n.js → CompanySkills.production-CbfnmhC4.js} +1 -1
  24. package/ui-dist/assets/{Costs.production-BLGB0Sf8.js → Costs.production-DVn0oet3.js} +1 -1
  25. package/ui-dist/assets/{MarkdownEditor-Pip4OXiJ.js → MarkdownEditor-DfrwLv1M.js} +1 -1
  26. package/ui-dist/assets/{OrgChart.production-BAnt5soz.js → OrgChart.production-BnI1PljD.js} +1 -1
  27. package/ui-dist/assets/{RoutineDetail.production-DcR87XCo.js → RoutineDetail.production-qJIGUNKj.js} +1 -1
  28. package/ui-dist/assets/{RoutineRunVariablesDialog-BdO_mZGp.js → RoutineRunVariablesDialog-Bt4KAWCh.js} +1 -1
  29. package/ui-dist/assets/{Routines.production-Wo_pIGw6.js → Routines.production-DxtvLQGU.js} +1 -1
  30. package/ui-dist/assets/{checkbox-CmMbs2PZ.js → checkbox-757DLJRS.js} +1 -1
  31. package/ui-dist/assets/{definition-C0oghTDp.js → definition-ftJgFFS4.js} +1 -1
  32. package/ui-dist/assets/{index-DhwreIEp.js → index-CgTz21on.js} +5 -5
  33. package/ui-dist/assets/{label-C2ddSDJj.js → label-BueB30Ch.js} +1 -1
  34. package/ui-dist/assets/{sheet-DeCxNmfl.js → sheet-CQJe5sfn.js} +1 -1
  35. package/ui-dist/index.html +6 -6
  36. package/ui-dist/sw.js +1 -1
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "f3eba09d13ff7b4642ae4771d0b3d7fff4480d0c"
2
+ "commit": "41adf0ce5873b82f07218efaf871b624f8463387"
3
3
  }
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/routes/issues.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { queuedInteractionId, readQueuedInteractionResponse, hasQueuedInteractionResponse } from "../services/queued-interaction-response.js";
2
- import { deliverConversationComments, isConversation } from "../services/agent-conversations.js";
2
+ import { deliverConversationComments, isConversation, isConversationReset } from "../services/agent-conversations.js";
3
3
  import { issueRecoveryActionReadModel } from "../services/issue-recovery-actions.js";
4
4
  import { getExecutionBlocker } from "../services/execution-blocker.js";
5
5
  import { IssueRunModelOverrideError, buildIssueRunModelOverrideView, readIssueRunModelOverrideInheritance, resolveIssueRunModelOverrideUpdate, writeIssueRunModelOverride, } from "../services/issue-run-model-override.js";
@@ -4644,7 +4644,7 @@ export function issueRoutes(db, storage, opts = {}) {
4644
4644
  queuedCommentCount: comments.length,
4645
4645
  liveSteeringTarget: input.activeRun ? hasLiveAdapterSteering(input.activeRun.id) : false,
4646
4646
  });
4647
- const steeringDisposition = input.issue.conversationAgentId ? "unsupported" : steering.kind !== "probe"
4647
+ const steeringDisposition = steering.kind !== "probe"
4648
4648
  ? steering.kind
4649
4649
  : input.steeringDisposition
4650
4650
  ?? (await getNativeSessionSteeringState(steering.steeringRunId)
@@ -11514,6 +11514,21 @@ export function issueRoutes(db, storage, opts = {}) {
11514
11514
  }
11515
11515
  return "steering_failed";
11516
11516
  }
11517
+ async function conversationMessageMaySteer(issue, commentId) {
11518
+ const [comment] = await db
11519
+ .select({ body: issueComments.body, createdAt: issueComments.createdAt })
11520
+ .from(issueComments)
11521
+ .where(and(eq(issueComments.id, commentId), eq(issueComments.companyId, issue.companyId)));
11522
+ if (!comment || isConversationReset(comment.body))
11523
+ return false;
11524
+ const [earlier] = await db
11525
+ .select({ id: agentWakeupRequests.id })
11526
+ .from(agentWakeupRequests)
11527
+ .innerJoin(issueComments, sql `${agentWakeupRequests.idempotencyKey} = 'conversation-comment:' || ${issueComments.id}::text`)
11528
+ .where(and(eq(agentWakeupRequests.companyId, issue.companyId), eq(issueComments.issueId, issue.id), inArray(agentWakeupRequests.status, ["deferred_issue_execution", "queued"]), sql `(${issueComments.createdAt}, ${issueComments.id}) < (${comment.createdAt.toISOString()}::timestamptz, ${commentId}::uuid)`))
11529
+ .limit(1);
11530
+ return !earlier;
11531
+ }
11517
11532
  /**
11518
11533
  * Resolve how a freshly posted message was actually delivered, and steer it
11519
11534
  * when the resolved mode is `"steer"`.
@@ -11532,10 +11547,12 @@ export function issueRoutes(db, storage, opts = {}) {
11532
11547
  return { deliveredAs: "queued", steeringUnavailable: "board_only" };
11533
11548
  }
11534
11549
  if (input.issue.conversationAgentId) {
11535
- return {
11536
- deliveredAs: "queued",
11537
- steeringUnavailable: input.requested === "steer" ? "conversation_issue" : "not_requested",
11538
- };
11550
+ const maySteer = await conversationMessageMaySteer(input.issue, input.commentId).catch((err) => {
11551
+ logger.warn({ err, issueId: input.issue.id, commentId: input.commentId }, "failed to check chat order before steering a posted comment");
11552
+ return false;
11553
+ });
11554
+ if (!maySteer)
11555
+ return { deliveredAs: "queued", steeringUnavailable: "conversation_order" };
11539
11556
  }
11540
11557
  try {
11541
11558
  await input.wakeDispatch;
@@ -11629,8 +11646,11 @@ export function issueRoutes(db, storage, opts = {}) {
11629
11646
  const issue = await getAccessibleResource(req, res, svc.getById(id), "Issue not found");
11630
11647
  if (!issue)
11631
11648
  return;
11632
- if (issue.conversationAgentId)
11633
- throw conflict("Conversation messages are processed in order at turn boundaries");
11649
+ if (issue.conversationAgentId && !(await conversationMessageMaySteer(issue, commentId))) {
11650
+ throw conflict("An earlier chat message is still waiting, or this message resets the chat.", {
11651
+ code: "conversation_order",
11652
+ });
11653
+ }
11634
11654
  const decision = await decideIssueAccess(req, issue, "issue:comment");
11635
11655
  if (!decision.allowed)
11636
11656
  throw forbidden(decision.explanation, authorizationDeniedDetails(decision));