@penclipai/server 2026.412.1-canary.1 → 2026.413.0

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 (88) hide show
  1. package/dist/onboarding-assets/ceo/HEARTBEAT.md +48 -47
  2. package/dist/services/agent-runtime-localization.js +2 -2
  3. package/dist/services/agent-runtime-localization.js.map +1 -1
  4. package/dist/services/heartbeat.d.ts.map +1 -1
  5. package/dist/services/heartbeat.js +65 -21
  6. package/dist/services/heartbeat.js.map +1 -1
  7. package/dist/services/workspace-runtime.d.ts.map +1 -1
  8. package/dist/services/workspace-runtime.js +127 -59
  9. package/dist/services/workspace-runtime.js.map +1 -1
  10. package/package.json +14 -14
  11. package/ui-dist/assets/{_basePickBy-BYgDuN8i.js → _basePickBy-CoOvt48E.js} +1 -1
  12. package/ui-dist/assets/{_baseUniq-CRjSfvYT.js → _baseUniq-MnI-rwoJ.js} +1 -1
  13. package/ui-dist/assets/{arc-DsBkYNWF.js → arc-BJTwg03W.js} +1 -1
  14. package/ui-dist/assets/{architectureDiagram-VXUJARFQ-B1GkeWYk.js → architectureDiagram-VXUJARFQ-DtU926HT.js} +1 -1
  15. package/ui-dist/assets/{blockDiagram-VD42YOAC-DqPNNrMo.js → blockDiagram-VD42YOAC-BZkR9u7V.js} +1 -1
  16. package/ui-dist/assets/{browser-ponyfill-Cd4BUygM.js → browser-ponyfill-M57mty6A.js} +1 -1
  17. package/ui-dist/assets/{c4Diagram-YG6GDRKO-dFoF-lQz.js → c4Diagram-YG6GDRKO-C_iAt3TU.js} +1 -1
  18. package/ui-dist/assets/channel-CXghPST0.js +1 -0
  19. package/ui-dist/assets/{chunk-4BX2VUAB-rKJtGKNA.js → chunk-4BX2VUAB-CRPeb0to.js} +1 -1
  20. package/ui-dist/assets/{chunk-55IACEB6-DQ1bZ0VT.js → chunk-55IACEB6-CHH6eeZA.js} +1 -1
  21. package/ui-dist/assets/{chunk-B4BG7PRW-SyxOcUYw.js → chunk-B4BG7PRW-Cv4VCjQl.js} +1 -1
  22. package/ui-dist/assets/{chunk-DI55MBZ5-CwDCACNK.js → chunk-DI55MBZ5-BU1p0o69.js} +1 -1
  23. package/ui-dist/assets/{chunk-FMBD7UC4-CPCDJBhv.js → chunk-FMBD7UC4-CD_tSQEl.js} +1 -1
  24. package/ui-dist/assets/{chunk-QN33PNHL-C6jfer6L.js → chunk-QN33PNHL-O3gsX0BW.js} +1 -1
  25. package/ui-dist/assets/{chunk-QZHKN3VN-Nh6NvU9Y.js → chunk-QZHKN3VN-BK8AYNZg.js} +1 -1
  26. package/ui-dist/assets/{chunk-TZMSLE5B-DxIsL_1p.js → chunk-TZMSLE5B-BTsBcHdt.js} +1 -1
  27. package/ui-dist/assets/classDiagram-2ON5EDUG-B7qCNv0-.js +1 -0
  28. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-B7qCNv0-.js +1 -0
  29. package/ui-dist/assets/clone-DudZxRd4.js +1 -0
  30. package/ui-dist/assets/{cose-bilkent-S5V4N54A-BIcbUI0x.js → cose-bilkent-S5V4N54A-BT_PtpHU.js} +1 -1
  31. package/ui-dist/assets/{dagre-6UL2VRFP-DNls9SiL.js → dagre-6UL2VRFP-B166RScf.js} +1 -1
  32. package/ui-dist/assets/{diagram-PSM6KHXK-Cv-WiuFx.js → diagram-PSM6KHXK-DShFnFzM.js} +1 -1
  33. package/ui-dist/assets/{diagram-QEK2KX5R-CqmvEECJ.js → diagram-QEK2KX5R-D2GlNWq0.js} +1 -1
  34. package/ui-dist/assets/{diagram-S2PKOQOG-lAv5etOD.js → diagram-S2PKOQOG-DUR69PbW.js} +1 -1
  35. package/ui-dist/assets/{erDiagram-Q2GNP2WA-AslR0P2H.js → erDiagram-Q2GNP2WA-DSmxsXME.js} +1 -1
  36. package/ui-dist/assets/{flowDiagram-NV44I4VS-NWqqpaop.js → flowDiagram-NV44I4VS-DUJoVSkx.js} +1 -1
  37. package/ui-dist/assets/{ganttDiagram-JELNMOA3-KSxW9l08.js → ganttDiagram-JELNMOA3-D65EE-0f.js} +1 -1
  38. package/ui-dist/assets/{gitGraphDiagram-V2S2FVAM-D-coBrc-.js → gitGraphDiagram-V2S2FVAM-B06W-khA.js} +1 -1
  39. package/ui-dist/assets/{graph-D8fKyeak.js → graph-CDeGKZUE.js} +1 -1
  40. package/ui-dist/assets/{index-FzK5qeqC.js → index-4USwimP_.js} +1 -1
  41. package/ui-dist/assets/index-AvFWBNcP.js +1309 -0
  42. package/ui-dist/assets/{index-CnOStpig.js → index-BF2HIonv.js} +1 -1
  43. package/ui-dist/assets/{index-DpYzyYFa.js → index-BG7UdBNB.js} +1 -1
  44. package/ui-dist/assets/{index-D_mk4-jS.js → index-BIY9d3hQ.js} +1 -1
  45. package/ui-dist/assets/{index-BD7bUv82.js → index-BQNcpAaQ.js} +1 -1
  46. package/ui-dist/assets/{index-CloL7GG2.js → index-BSwdm-Qm.js} +1 -1
  47. package/ui-dist/assets/{index-BwGN7vF0.js → index-BmJtBiew.js} +1 -1
  48. package/ui-dist/assets/{index-DzJ2j1Ly.js → index-BpbHO7Cj.js} +1 -1
  49. package/ui-dist/assets/{index-CYiJQMOA.js → index-BvS_rxZN.js} +1 -1
  50. package/ui-dist/assets/{index-cr2kh1j7.js → index-C2sL1JAQ.js} +1 -1
  51. package/ui-dist/assets/{index-CHH8WtDq.js → index-CAsepOm1.js} +1 -1
  52. package/ui-dist/assets/{index-Dh9PX3Xk.js → index-CP2bgJQO.js} +1 -1
  53. package/ui-dist/assets/{index-y4Ld3okd.js → index-CW16xhOo.js} +1 -1
  54. package/ui-dist/assets/{index-D0QlWkTA.js → index-CWbv9J8w.js} +1 -1
  55. package/ui-dist/assets/{index-iBXaRxpb.js → index-DC2wKQ7E.js} +1 -1
  56. package/ui-dist/assets/{index-qV41Ed6t.js → index-DZ1UPuu8.js} +1 -1
  57. package/ui-dist/assets/{index-BylfIBUb.js → index-LNJqtATM.js} +1 -1
  58. package/ui-dist/assets/{index-CqtlSliA.js → index-Y7r5lVN4.js} +1 -1
  59. package/ui-dist/assets/{index-CEFAvAqA.js → index-_lD2n9gL.js} +1 -1
  60. package/ui-dist/assets/{index-CrQfEO1p.js → index-aLTI2qdu.js} +1 -1
  61. package/ui-dist/assets/{index-C4V8v5gD.js → index-arK94my6.js} +1 -1
  62. package/ui-dist/assets/{index-BBEzW4iY.js → index-uk2auqjZ.js} +1 -1
  63. package/ui-dist/assets/{infoDiagram-HS3SLOUP-B7bjuuGk.js → infoDiagram-HS3SLOUP-CZ_0WEaq.js} +1 -1
  64. package/ui-dist/assets/{journeyDiagram-XKPGCS4Q-CC9cfvtc.js → journeyDiagram-XKPGCS4Q-Cc9Xhh1Q.js} +1 -1
  65. package/ui-dist/assets/{kanban-definition-3W4ZIXB7-B4dRPtrc.js → kanban-definition-3W4ZIXB7-DYmSQpjW.js} +1 -1
  66. package/ui-dist/assets/{layout-DUOyPFFZ.js → layout-B9ZkiLEI.js} +1 -1
  67. package/ui-dist/assets/{linear-DJVQdiOw.js → linear-pxwZxqhs.js} +1 -1
  68. package/ui-dist/assets/{mermaid.core-DNdsUi_1.js → mermaid.core-BiMAwH7A.js} +4 -4
  69. package/ui-dist/assets/{mindmap-definition-VGOIOE7T-C4IyJ0BC.js → mindmap-definition-VGOIOE7T-Bdo0TWyb.js} +1 -1
  70. package/ui-dist/assets/{pieDiagram-ADFJNKIX-BXIoTbfm.js → pieDiagram-ADFJNKIX-BWoc5Kbv.js} +1 -1
  71. package/ui-dist/assets/{quadrantDiagram-AYHSOK5B-BfIyXz7x.js → quadrantDiagram-AYHSOK5B-LlrEDadu.js} +1 -1
  72. package/ui-dist/assets/{requirementDiagram-UZGBJVZJ-BtJTHOpP.js → requirementDiagram-UZGBJVZJ-DzTCknHr.js} +1 -1
  73. package/ui-dist/assets/{sankeyDiagram-TZEHDZUN-BNUyYp9K.js → sankeyDiagram-TZEHDZUN-BwSzleKt.js} +1 -1
  74. package/ui-dist/assets/{sequenceDiagram-WL72ISMW-t2ZFjbXH.js → sequenceDiagram-WL72ISMW-B5D1lDYq.js} +1 -1
  75. package/ui-dist/assets/{stateDiagram-FKZM4ZOC-BmdjWokK.js → stateDiagram-FKZM4ZOC-BdBVbnKf.js} +1 -1
  76. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-DWtYhfJQ.js +1 -0
  77. package/ui-dist/assets/{timeline-definition-IT6M3QCI-CFs6jiks.js → timeline-definition-IT6M3QCI-BmiCGX-c.js} +1 -1
  78. package/ui-dist/assets/{treemap-GDKQZRPO-DCxq1s0Q.js → treemap-GDKQZRPO-QzlX8_tL.js} +1 -1
  79. package/ui-dist/assets/{xychartDiagram-PRI3JC2R-rIgrBkUN.js → xychartDiagram-PRI3JC2R-R305sQ3M.js} +1 -1
  80. package/ui-dist/index.html +1 -1
  81. package/ui-dist/locales/en/common.json +21 -0
  82. package/ui-dist/locales/zh-CN/common.json +21 -0
  83. package/ui-dist/assets/channel-bIpTqifR.js +0 -1
  84. package/ui-dist/assets/classDiagram-2ON5EDUG-DL0Zc9k9.js +0 -1
  85. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-DL0Zc9k9.js +0 -1
  86. package/ui-dist/assets/clone-Cs2UHTDr.js +0 -1
  87. package/ui-dist/assets/index-DJk_jrV7.js +0 -1309
  88. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-QysVRgPw.js +0 -1
@@ -1,72 +1,73 @@
1
- # HEARTBEAT.md -- CEO Heartbeat Checklist
1
+ # HEARTBEAT.md -- CEO 心跳检查清单
2
2
 
3
- Run this checklist on every heartbeat. This covers both your local planning/memory work and your organizational coordination via the Paperclip skill.
3
+ 每次 heartbeat 都要执行这份清单。它同时覆盖你的本地规划/记忆工作,以及通过 Paperclip skill 进行的组织协作。
4
4
 
5
- ## 1. Identity and Context
5
+ ## 1. 身份与上下文
6
6
 
7
- - `GET /api/agents/me` -- confirm your id, role, budget, chainOfCommand.
8
- - Check wake context: `PAPERCLIP_TASK_ID`, `PAPERCLIP_WAKE_REASON`, `PAPERCLIP_WAKE_COMMENT_ID`.
7
+ - `GET /api/agents/me` -- 确认你的 id、角色、预算和 chainOfCommand
8
+ - 检查唤醒上下文:`PAPERCLIP_TASK_ID`、`PAPERCLIP_WAKE_REASON`、`PAPERCLIP_WAKE_COMMENT_ID`。
9
9
 
10
- ## 2. Local Planning Check
10
+ ## 2. 本地规划检查
11
11
 
12
- 1. Read today's plan from `./memory/YYYY-MM-DD.md` under "## Today's Plan".
13
- 2. Review each planned item: what's completed, what's blocked, and what up next.
14
- 3. For any blockers, resolve them yourself or escalate to the board.
15
- 4. If you're ahead, start on the next highest priority.
16
- 5. Record progress updates in the daily notes.
12
+ 1. 阅读 `./memory/YYYY-MM-DD.md` `## Today's Plan` 下的今日计划。
13
+ 2. 逐项查看计划内容:哪些已经完成、哪些被阻塞、接下来该做什么。
14
+ 3. 遇到阻塞时,优先自己解决;无法解决再升级给 board
15
+ 4. 如果进度领先,就开始处理下一个最高优先级事项。
16
+ 5. 把进展更新记录到当天笔记里。
17
17
 
18
- ## 3. Approval Follow-Up
18
+ ## 3. 审批跟进
19
19
 
20
- If `PAPERCLIP_APPROVAL_ID` is set:
20
+ 如果设置了 `PAPERCLIP_APPROVAL_ID`:
21
21
 
22
- - Review the approval and its linked issues.
23
- - Close resolved issues or comment on what remains open.
22
+ - 查看对应审批及其关联 issue。
23
+ - 已解决的问题就关闭,未解决的补充评论说明还剩什么。
24
24
 
25
- ## 4. Get Assignments
25
+ ## 4. 获取分配任务
26
26
 
27
27
  - `GET /api/companies/{companyId}/issues?assigneeAgentId={your-id}&status=todo,in_progress,in_review,blocked`
28
- - Prioritize: `in_progress` first, then `in_review` when you were woken by a comment on it, then `todo`. Skip `blocked` unless you can unblock it.
29
- - If there is already an active run on an `in_progress` task, just move on to the next thing.
30
- - If `PAPERCLIP_TASK_ID` is set and assigned to you, prioritize that task.
28
+ - 优先级顺序:先 `in_progress`,其次是因评论唤醒的 `in_review`,最后才是 `todo`。除非你能解除阻塞,否则跳过 `blocked`。
29
+ - 如果某个 `in_progress` 任务已经有 active run 在执行,就继续处理下一件事。
30
+ - 如果设置了 `PAPERCLIP_TASK_ID` 且该任务分配给你,优先处理它。
31
31
 
32
- ## 5. Checkout and Work
32
+ ## 5. Checkout 与执行
33
33
 
34
- - Always checkout before working: `POST /api/issues/{id}/checkout`.
35
- - Never retry a 409 -- that task belongs to someone else.
36
- - Do the work. Update status and comment when done.
34
+ - 对于带作用域的 issue 唤醒,Paperclip 可能会在你的运行开始前,先在 harness checkout 当前 issue。
35
+ - 只有在你明确要切换到另一个任务,或唤醒上下文并没有先认领该 issue 时,才自己调用 `POST /api/issues/{id}/checkout`。
36
+ - 永远不要重试 409 -- 那表示该任务已经属于别人。
37
+ - 开始执行工作。完成后更新状态并写评论。
37
38
 
38
- ## 6. Delegation
39
+ ## 6. 委派
39
40
 
40
- - Create subtasks with `POST /api/companies/{companyId}/issues`. Always set `parentId` and `goalId`. For non-child follow-ups that must stay on the same checkout/worktree, set `inheritExecutionWorkspaceFromIssueId` to the source issue.
41
- - Use `paperclip-create-agent` skill when hiring new agents.
42
- - Assign work to the right agent for the job.
41
+ - 使用 `POST /api/companies/{companyId}/issues` 创建子任务。务必设置 `parentId` `goalId`。如果某个非子任务 follow-up 必须复用同一个 checkout/worktree,请把 `inheritExecutionWorkspaceFromIssueId` 设为源 issue
42
+ - 需要招聘新 agent 时,使用 `paperclip-create-agent` skill
43
+ - 把工作分配给最适合的人。
43
44
 
44
- ## 7. Fact Extraction
45
+ ## 7. 事实提取
45
46
 
46
- 1. Check for new conversations since last extraction.
47
- 2. Extract durable facts to the relevant entity in `./life/` (PARA).
48
- 3. Update `./memory/YYYY-MM-DD.md` with timeline entries.
49
- 4. Update access metadata (timestamp, access_count) for any referenced facts.
47
+ 1. 检查自上次提取以来是否出现了新的对话。
48
+ 2. 将可长期保留的事实提取到 `./life/`(PARA)中对应的实体。
49
+ 3. `./memory/YYYY-MM-DD.md` 中补充时间线记录。
50
+ 4. 为所有引用到的事实更新访问元数据(timestampaccess_count)。
50
51
 
51
- ## 8. Exit
52
+ ## 8. 退出
52
53
 
53
- - Comment on any in_progress work before exiting.
54
- - If no assignments and no valid mention-handoff, exit cleanly.
54
+ - 退出前,对所有 `in_progress` 工作补一条评论。
55
+ - 如果没有分配任务,也没有有效的 mention-handoff,就干净退出。
55
56
 
56
57
  ---
57
58
 
58
- ## CEO Responsibilities
59
+ ## CEO 职责
59
60
 
60
- - Strategic direction: Set goals and priorities aligned with the company mission.
61
- - Hiring: Spin up new agents when capacity is needed.
62
- - Unblocking: Escalate or resolve blockers for reports.
63
- - Budget awareness: Above 80% spend, focus only on critical tasks.
64
- - Never look for unassigned work -- only work on what is assigned to you.
65
- - Never cancel cross-team tasks -- reassign to the relevant manager with a comment.
61
+ - 战略方向:设定与公司使命一致的目标和优先级。
62
+ - 招聘:当容量不足时,启动新的 agents
63
+ - 解除阻塞:为下属升级或解决阻塞问题。
64
+ - 预算意识:支出超过 80% 后,只专注关键任务。
65
+ - 不要主动寻找未分配的工作 -- 只处理明确分配给你的事项。
66
+ - 不要取消跨团队任务 -- 应通过评论重新分配给相关 manager
66
67
 
67
- ## Rules
68
+ ## 规则
68
69
 
69
- - Always use the Paperclip skill for coordination.
70
- - Always include `X-Paperclip-Run-Id` header on mutating API calls.
71
- - Comment in concise markdown: status line + bullets + links.
72
- - Self-assign via checkout only when explicitly @-mentioned.
70
+ - 始终使用 Paperclip skill 进行协作。
71
+ - 所有变更型 API 调用都必须带上 `X-Paperclip-Run-Id` header
72
+ - 评论请使用简洁 markdown:状态行 + bullets + links
73
+ - 只有在被明确 @ 提及时,才允许通过 checkout 自行认领任务。
@@ -95,7 +95,7 @@ function buildZhCnRuntimeLocalizationPrompt(environment) {
95
95
  "- 输出契约:除非用户本轮明确要求其他语言,所有面向用户的自然语言输出必须使用简体中文;代码、命令、路径、API 字段名和日志原文保持原样。",
96
96
  `- 宿主环境:${environment.labelZh}。`,
97
97
  "- CLI 契约:执行 Paperclip 命令一律使用 `penclip ...`;仅在逐字引用用户文本、日志或历史文档时保留 `paperclipai ...`。",
98
- "- API 契约:任何带请求体的 Paperclip API 调用,必须先将 UTF-8 JSON 写入文件,再用 curl --data-binary @payload.json 发送;不要内联非 ASCII JSON。",
98
+ "- API 契约:优先使用 `penclip` CLI 完成 Paperclip 操作;只有在 CLI 无法覆盖时,才直接调用 API,并确保带上必需的认证与运行标头。",
99
99
  ].join("\n");
100
100
  }
101
101
  function buildEnRuntimeLocalizationPrompt(environment) {
@@ -104,7 +104,7 @@ function buildEnRuntimeLocalizationPrompt(environment) {
104
104
  "- Output contract: unless the current user request explicitly asks for another language, all user-facing natural-language output must be in English. Keep code, commands, file paths, API field names, and raw logs verbatim.",
105
105
  `- Host runtime: ${environment.labelEn}.`,
106
106
  "- CLI contract: use `penclip ...` for Paperclip commands; keep `paperclipai ...` only in verbatim quotes from user text, logs, or historical docs.",
107
- "- API contract: for any Paperclip API call with a request body, write UTF-8 JSON to a file and send it with curl --data-binary @payload.json; do not inline non-ASCII JSON.",
107
+ "- API contract: prefer the `penclip` CLI for Paperclip operations; only call the HTTP API directly when the CLI cannot cover the action, and always include the required auth and run headers.",
108
108
  ].join("\n");
109
109
  }
110
110
  export function readRuntimeUiLocaleFromContextSnapshot(contextSnapshot) {
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime-localization.js","sourceRoot":"","sources":["../../src/services/agent-runtime-localization.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-runtime-localization.js","sourceRoot":"","sources":["../../src/services/agent-runtime-localization.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../src/services/heartbeat.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import { execFile as execFileCallback } from "node:child_process";
4
4
  import { promisify } from "node:util";
5
5
  import { and, asc, desc, eq, gt, inArray, isNull, or, sql } from "drizzle-orm";
6
6
  import { agents, agentRuntimeState, agentTaskSessions, agentWakeupRequests, heartbeatRunEvents, heartbeatRuns, issueComments, issues, projects, projectWorkspaces, } from "@penclipai/db";
7
- import { conflict, notFound } from "../errors.js";
7
+ import { conflict, HttpError, notFound } from "../errors.js";
8
8
  import { logger } from "../middleware/logger.js";
9
9
  import { publishLiveEvent } from "./live-events.js";
10
10
  import { getRunLogStore } from "./run-log-store.js";
@@ -36,6 +36,7 @@ const HEARTBEAT_MAX_CONCURRENT_RUNS_MAX = 10;
36
36
  const DEFERRED_WAKE_CONTEXT_KEY = "_paperclipWakeContext";
37
37
  const WAKE_COMMENT_IDS_KEY = "wakeCommentIds";
38
38
  const PAPERCLIP_WAKE_PAYLOAD_KEY = "paperclipWake";
39
+ const PAPERCLIP_HARNESS_CHECKOUT_KEY = "paperclipHarnessCheckedOut";
39
40
  const DETACHED_PROCESS_ERROR_CODE = "process_detached";
40
41
  const startLocksByAgent = new Map();
41
42
  const REPO_ONLY_CWD_SENTINEL = "/__paperclip_repo_only__";
@@ -553,6 +554,28 @@ function describeSessionResetReason(contextSnapshot) {
553
554
  return "wake reason is execution_changes_requested";
554
555
  return null;
555
556
  }
557
+ function shouldAutoCheckoutIssueForWake(input) {
558
+ if (input.issueAssigneeAgentId !== input.agentId)
559
+ return false;
560
+ const issueStatus = readNonEmptyString(input.issueStatus);
561
+ if (issueStatus !== "todo" &&
562
+ issueStatus !== "backlog" &&
563
+ issueStatus !== "blocked" &&
564
+ issueStatus !== "in_progress") {
565
+ return false;
566
+ }
567
+ const wakeReason = readNonEmptyString(input.contextSnapshot?.wakeReason);
568
+ if (!wakeReason)
569
+ return false;
570
+ if (wakeReason === "issue_comment_mentioned")
571
+ return false;
572
+ if (wakeReason.startsWith("execution_"))
573
+ return false;
574
+ return true;
575
+ }
576
+ function isCheckoutConflictError(error) {
577
+ return error instanceof HttpError && error.status === 409 && error.message === "Issue checkout conflict";
578
+ }
556
579
  function deriveCommentId(contextSnapshot, payload) {
557
580
  const batchedCommentId = extractWakeCommentIds(contextSnapshot).at(-1);
558
581
  return (batchedCommentId ??
@@ -755,6 +778,7 @@ async function buildPaperclipWakePayload(input) {
755
778
  priority: issueSummary.priority,
756
779
  }
757
780
  : null,
781
+ checkedOutByHarness: input.contextSnapshot[PAPERCLIP_HARNESS_CHECKOUT_KEY] === true,
758
782
  executionStage: Object.keys(executionStage).length > 0 ? executionStage : null,
759
783
  commentIds,
760
784
  latestCommentId: commentIds[commentIds.length - 1] ?? null,
@@ -930,6 +954,26 @@ export function heartbeatService(db) {
930
954
  .where(eq(heartbeatRuns.id, runId))
931
955
  .then((rows) => rows[0] ?? null);
932
956
  }
957
+ async function getIssueExecutionContext(companyId, issueId) {
958
+ return db
959
+ .select({
960
+ id: issues.id,
961
+ identifier: issues.identifier,
962
+ title: issues.title,
963
+ status: issues.status,
964
+ priority: issues.priority,
965
+ projectId: issues.projectId,
966
+ projectWorkspaceId: issues.projectWorkspaceId,
967
+ executionWorkspaceId: issues.executionWorkspaceId,
968
+ executionWorkspacePreference: issues.executionWorkspacePreference,
969
+ assigneeAgentId: issues.assigneeAgentId,
970
+ assigneeAdapterOverrides: issues.assigneeAdapterOverrides,
971
+ executionWorkspaceSettings: issues.executionWorkspaceSettings,
972
+ })
973
+ .from(issues)
974
+ .where(and(eq(issues.id, issueId), eq(issues.companyId, companyId)))
975
+ .then((rows) => rows[0] ?? null);
976
+ }
933
977
  async function getRuntimeState(agentId) {
934
978
  return db
935
979
  .select()
@@ -2112,26 +2156,26 @@ export function heartbeatService(db) {
2112
2156
  const taskKey = deriveTaskKeyWithHeartbeatFallback(context, null);
2113
2157
  const sessionCodec = getAdapterSessionCodec(agent.adapterType);
2114
2158
  const issueId = readNonEmptyString(context.issueId);
2115
- const issueContext = issueId
2116
- ? await db
2117
- .select({
2118
- id: issues.id,
2119
- identifier: issues.identifier,
2120
- title: issues.title,
2121
- status: issues.status,
2122
- priority: issues.priority,
2123
- projectId: issues.projectId,
2124
- projectWorkspaceId: issues.projectWorkspaceId,
2125
- executionWorkspaceId: issues.executionWorkspaceId,
2126
- executionWorkspacePreference: issues.executionWorkspacePreference,
2127
- assigneeAgentId: issues.assigneeAgentId,
2128
- assigneeAdapterOverrides: issues.assigneeAdapterOverrides,
2129
- executionWorkspaceSettings: issues.executionWorkspaceSettings,
2130
- })
2131
- .from(issues)
2132
- .where(and(eq(issues.id, issueId), eq(issues.companyId, agent.companyId)))
2133
- .then((rows) => rows[0] ?? null)
2134
- : null;
2159
+ let issueContext = issueId ? await getIssueExecutionContext(agent.companyId, issueId) : null;
2160
+ if (issueId &&
2161
+ issueContext &&
2162
+ shouldAutoCheckoutIssueForWake({
2163
+ contextSnapshot: context,
2164
+ issueStatus: issueContext.status,
2165
+ issueAssigneeAgentId: issueContext.assigneeAgentId,
2166
+ agentId: agent.id,
2167
+ })) {
2168
+ try {
2169
+ await issuesSvc.checkout(issueId, agent.id, ["todo", "backlog", "blocked"], run.id);
2170
+ context[PAPERCLIP_HARNESS_CHECKOUT_KEY] = true;
2171
+ }
2172
+ catch (error) {
2173
+ if (!isCheckoutConflictError(error))
2174
+ throw error;
2175
+ context[PAPERCLIP_HARNESS_CHECKOUT_KEY] = false;
2176
+ }
2177
+ issueContext = await getIssueExecutionContext(agent.companyId, issueId);
2178
+ }
2135
2179
  const issueAssigneeOverrides = issueContext && issueContext.assigneeAgentId === agent.id
2136
2180
  ? parseIssueAssigneeAdapterOverrides(issueContext.assigneeAdapterOverrides)
2137
2181
  : null;