issue-flow 0.13.0 → 0.14.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 (162) hide show
  1. package/dist/agent-OX3KPHE4.js +30 -0
  2. package/dist/{analyze-WS47UYGN.js → analyze-WIND2SEB.js} +21 -18
  3. package/dist/{analyze-WS47UYGN.js.map → analyze-WIND2SEB.js.map} +1 -1
  4. package/dist/{apply-OS62UWRN.js → apply-JNOI2LR4.js} +14 -11
  5. package/dist/{apply-OS62UWRN.js.map → apply-JNOI2LR4.js.map} +1 -1
  6. package/dist/{bench-SA3BOME5.js → bench-B4VZON7E.js} +30 -26
  7. package/dist/{bench-SA3BOME5.js.map → bench-B4VZON7E.js.map} +1 -1
  8. package/dist/{chunk-PIVGJM6K.js → chunk-2IQ6M4ZE.js} +11 -11
  9. package/dist/{chunk-QCXPNSEL.js → chunk-3BWZO4YI.js} +2 -2
  10. package/dist/chunk-3WFZETIM.js +163 -0
  11. package/dist/chunk-3WFZETIM.js.map +1 -0
  12. package/dist/{chunk-6FDFRNXZ.js → chunk-67YIU2VB.js} +25 -20
  13. package/dist/chunk-67YIU2VB.js.map +1 -0
  14. package/dist/{chunk-TM67EHSV.js → chunk-6BENHR2I.js} +19 -19
  15. package/dist/chunk-6BENHR2I.js.map +1 -0
  16. package/dist/{chunk-IYV6KNVF.js → chunk-6QYMSNVA.js} +66 -240
  17. package/dist/chunk-6QYMSNVA.js.map +1 -0
  18. package/dist/{chunk-IV5SS4JN.js → chunk-76MMPJ53.js} +9 -7
  19. package/dist/{chunk-IV5SS4JN.js.map → chunk-76MMPJ53.js.map} +1 -1
  20. package/dist/{chunk-LZ6GFQAG.js → chunk-B72RQZBV.js} +35 -25
  21. package/dist/chunk-B72RQZBV.js.map +1 -0
  22. package/dist/{chunk-KQHB7ZT3.js → chunk-BEZ5BA5U.js} +82 -16
  23. package/dist/chunk-BEZ5BA5U.js.map +1 -0
  24. package/dist/{chunk-BQDQTIM7.js → chunk-BRCNQXYQ.js} +4 -4
  25. package/dist/{chunk-ARFVHC2F.js → chunk-CGKLE6WR.js} +115 -23
  26. package/dist/chunk-CGKLE6WR.js.map +1 -0
  27. package/dist/{chunk-BHJCGWQX.js → chunk-F6TOYSYY.js} +9 -9
  28. package/dist/chunk-G5EK2XRN.js +25 -0
  29. package/dist/chunk-G5EK2XRN.js.map +1 -0
  30. package/dist/{chunk-TX5WIVYP.js → chunk-HAKDLR6N.js} +6 -1
  31. package/dist/chunk-HAKDLR6N.js.map +1 -0
  32. package/dist/{chunk-DIG5XKQQ.js → chunk-J3SOTUVI.js} +2 -2
  33. package/dist/{chunk-SNTTOQAD.js → chunk-JN6D3MY6.js} +2 -2
  34. package/dist/{chunk-MIVHK5YI.js → chunk-KMRFRXIT.js} +3 -3
  35. package/dist/{chunk-5TB6KLC2.js → chunk-KT7JKOXB.js} +8 -8
  36. package/dist/{chunk-NEZZ6KDR.js → chunk-LBGHI4S2.js} +49 -2
  37. package/dist/chunk-LBGHI4S2.js.map +1 -0
  38. package/dist/{chunk-3XLCNVMD.js → chunk-LEW4QM74.js} +2 -2
  39. package/dist/{chunk-IHIEXUTC.js → chunk-LFEQIZLB.js} +85 -10
  40. package/dist/chunk-LFEQIZLB.js.map +1 -0
  41. package/dist/{chunk-TVN2JVOF.js → chunk-OOVG2KBY.js} +3 -3
  42. package/dist/{chunk-7KD66LIM.js → chunk-OR43364P.js} +3 -3
  43. package/dist/{chunk-J62QSVP6.js → chunk-PBTA3QQX.js} +8 -7
  44. package/dist/{chunk-J62QSVP6.js.map → chunk-PBTA3QQX.js.map} +1 -1
  45. package/dist/{chunk-664Y3NDX.js → chunk-PHW2YV6N.js} +8 -8
  46. package/dist/{chunk-PV4OX5TC.js → chunk-PZTWU277.js} +11 -11
  47. package/dist/{chunk-HJGGNLWI.js → chunk-QD4VOILZ.js} +9 -9
  48. package/dist/{chunk-CNBYCMSU.js → chunk-QJ5UZAH5.js} +27 -18
  49. package/dist/{chunk-CNBYCMSU.js.map → chunk-QJ5UZAH5.js.map} +1 -1
  50. package/dist/{chunk-HQAHNIAR.js → chunk-QK7WUO7A.js} +14 -14
  51. package/dist/{chunk-UJ7XWK7J.js → chunk-QZVKRDJY.js} +16 -14
  52. package/dist/{chunk-UJ7XWK7J.js.map → chunk-QZVKRDJY.js.map} +1 -1
  53. package/dist/{chunk-FZDR7CGH.js → chunk-REO3PXXO.js} +3 -3
  54. package/dist/{chunk-UOCPC2Y2.js → chunk-RVO7L4FX.js} +4 -4
  55. package/dist/{chunk-QXDNBYQF.js → chunk-SZMHCEYV.js} +21 -10
  56. package/dist/chunk-SZMHCEYV.js.map +1 -0
  57. package/dist/chunk-TYRNTSPJ.js +243 -0
  58. package/dist/chunk-TYRNTSPJ.js.map +1 -0
  59. package/dist/{agent-BXRIEKVM.js → chunk-UJ3L2MS7.js} +22 -22
  60. package/dist/chunk-UJ3L2MS7.js.map +1 -0
  61. package/dist/{chunk-37N2RJW2.js → chunk-V7MO5EDS.js} +3 -3
  62. package/dist/{chunk-HEF2RMKN.js → chunk-WB2X37MO.js} +18 -16
  63. package/dist/{chunk-HEF2RMKN.js.map → chunk-WB2X37MO.js.map} +1 -1
  64. package/dist/{chunk-OPNGPUKJ.js → chunk-X44FKNKP.js} +133 -42
  65. package/dist/chunk-X44FKNKP.js.map +1 -0
  66. package/dist/cli.js +43 -40
  67. package/dist/cli.js.map +1 -1
  68. package/dist/{config-MEM2IWWN.js → config-HMFMCY2M.js} +12 -9
  69. package/dist/{conventions-WV4NDXGH.js → conventions-NJF2OPVQ.js} +14 -11
  70. package/dist/{conventions-WV4NDXGH.js.map → conventions-NJF2OPVQ.js.map} +1 -1
  71. package/dist/diagnostics-THH42ZMP.js +23 -0
  72. package/dist/execute-KFNNZZHI.js +35 -0
  73. package/dist/{generate-MVQI7A45.js → generate-FW5C6NP7.js} +23 -20
  74. package/dist/{generate-MVQI7A45.js.map → generate-FW5C6NP7.js.map} +1 -1
  75. package/dist/{git-YRVRUN3C.js → git-W72QQ6GT.js} +4 -2
  76. package/dist/init-HTN4V67Q.js +24 -0
  77. package/dist/{operations-LU6JA3BX.js → operations-BCFOBH42.js} +17 -14
  78. package/dist/{operations-LU6JA3BX.js.map → operations-BCFOBH42.js.map} +1 -1
  79. package/dist/{permissions-7NMDFU27.js → permissions-4AKNQZHK.js} +4 -4
  80. package/dist/plan-SIZLGA4V.js +34 -0
  81. package/dist/{policy-JSYEK5B2.js → policy-DT6Q6ZVM.js} +13 -10
  82. package/dist/{policy-JSYEK5B2.js.map → policy-DT6Q6ZVM.js.map} +1 -1
  83. package/dist/pr-OMWCGUOW.js +39 -0
  84. package/dist/pr-review-N24CZPKR.js +32 -0
  85. package/dist/prd-5OFTZAHJ.js +33 -0
  86. package/dist/{ps-TNE44R5V.js → ps-RFORTCUD.js} +11 -8
  87. package/dist/{ps-TNE44R5V.js.map → ps-RFORTCUD.js.map} +1 -1
  88. package/dist/{recorder-XGF55WXI.js → recorder-KCCPMKQG.js} +5 -4
  89. package/dist/registry-GLPXOMFG.js +15 -0
  90. package/dist/{resume-QMEPMSZW.js → resume-M5RLKP4I.js} +44 -40
  91. package/dist/{resume-QMEPMSZW.js.map → resume-M5RLKP4I.js.map} +1 -1
  92. package/dist/review-YM4JAABY.js +35 -0
  93. package/dist/{routing-2ZUMZPJB.js → routing-NNT5WKGX.js} +13 -10
  94. package/dist/{routing-2ZUMZPJB.js.map → routing-NNT5WKGX.js.map} +1 -1
  95. package/dist/run-PZUKHPQK.js +54 -0
  96. package/dist/run-PZUKHPQK.js.map +1 -0
  97. package/dist/session-publisher-T7EI3CIP.js +11 -0
  98. package/dist/session-publisher-T7EI3CIP.js.map +1 -0
  99. package/dist/{state-manager-X3PT3FGT.js → state-manager-GQH32C44.js} +3 -3
  100. package/dist/state-manager-GQH32C44.js.map +1 -0
  101. package/dist/{usage-VCFLDA5Y.js → usage-V2CHE5PY.js} +13 -10
  102. package/dist/{usage-VCFLDA5Y.js.map → usage-V2CHE5PY.js.map} +1 -1
  103. package/dist/{web-XVHLX62B.js → web-EA3KGNFN.js} +18 -14
  104. package/dist/{web-XVHLX62B.js.map → web-EA3KGNFN.js.map} +1 -1
  105. package/package.json +1 -1
  106. package/web/AGENTS.md +150 -11
  107. package/web/public/app.css +343 -110
  108. package/web/public/app.js +408 -18
  109. package/web/public/index.html +44 -1
  110. package/dist/agent-BXRIEKVM.js.map +0 -1
  111. package/dist/chunk-6FDFRNXZ.js.map +0 -1
  112. package/dist/chunk-ARFVHC2F.js.map +0 -1
  113. package/dist/chunk-IHIEXUTC.js.map +0 -1
  114. package/dist/chunk-IYV6KNVF.js.map +0 -1
  115. package/dist/chunk-KQHB7ZT3.js.map +0 -1
  116. package/dist/chunk-LZ6GFQAG.js.map +0 -1
  117. package/dist/chunk-NEZZ6KDR.js.map +0 -1
  118. package/dist/chunk-OPNGPUKJ.js.map +0 -1
  119. package/dist/chunk-QXDNBYQF.js.map +0 -1
  120. package/dist/chunk-TM67EHSV.js.map +0 -1
  121. package/dist/chunk-TX5WIVYP.js.map +0 -1
  122. package/dist/execute-NITIHHCK.js +0 -31
  123. package/dist/init-OKWEC3EV.js +0 -21
  124. package/dist/plan-LEJJF3DE.js +0 -31
  125. package/dist/pr-HPVUZ7S3.js +0 -36
  126. package/dist/pr-review-R2QZBT3F.js +0 -29
  127. package/dist/prd-5O6GYCC6.js +0 -30
  128. package/dist/registry-LGPE53QD.js +0 -15
  129. package/dist/review-YKWD6SNN.js +0 -32
  130. package/dist/run-YU4TR62R.js +0 -50
  131. /package/dist/{config-MEM2IWWN.js.map → agent-OX3KPHE4.js.map} +0 -0
  132. /package/dist/{chunk-PIVGJM6K.js.map → chunk-2IQ6M4ZE.js.map} +0 -0
  133. /package/dist/{chunk-QCXPNSEL.js.map → chunk-3BWZO4YI.js.map} +0 -0
  134. /package/dist/{chunk-BQDQTIM7.js.map → chunk-BRCNQXYQ.js.map} +0 -0
  135. /package/dist/{chunk-BHJCGWQX.js.map → chunk-F6TOYSYY.js.map} +0 -0
  136. /package/dist/{chunk-DIG5XKQQ.js.map → chunk-J3SOTUVI.js.map} +0 -0
  137. /package/dist/{chunk-SNTTOQAD.js.map → chunk-JN6D3MY6.js.map} +0 -0
  138. /package/dist/{chunk-MIVHK5YI.js.map → chunk-KMRFRXIT.js.map} +0 -0
  139. /package/dist/{chunk-5TB6KLC2.js.map → chunk-KT7JKOXB.js.map} +0 -0
  140. /package/dist/{chunk-3XLCNVMD.js.map → chunk-LEW4QM74.js.map} +0 -0
  141. /package/dist/{chunk-TVN2JVOF.js.map → chunk-OOVG2KBY.js.map} +0 -0
  142. /package/dist/{chunk-7KD66LIM.js.map → chunk-OR43364P.js.map} +0 -0
  143. /package/dist/{chunk-664Y3NDX.js.map → chunk-PHW2YV6N.js.map} +0 -0
  144. /package/dist/{chunk-PV4OX5TC.js.map → chunk-PZTWU277.js.map} +0 -0
  145. /package/dist/{chunk-HJGGNLWI.js.map → chunk-QD4VOILZ.js.map} +0 -0
  146. /package/dist/{chunk-HQAHNIAR.js.map → chunk-QK7WUO7A.js.map} +0 -0
  147. /package/dist/{chunk-FZDR7CGH.js.map → chunk-REO3PXXO.js.map} +0 -0
  148. /package/dist/{chunk-UOCPC2Y2.js.map → chunk-RVO7L4FX.js.map} +0 -0
  149. /package/dist/{chunk-37N2RJW2.js.map → chunk-V7MO5EDS.js.map} +0 -0
  150. /package/dist/{execute-NITIHHCK.js.map → config-HMFMCY2M.js.map} +0 -0
  151. /package/dist/{git-YRVRUN3C.js.map → diagnostics-THH42ZMP.js.map} +0 -0
  152. /package/dist/{init-OKWEC3EV.js.map → execute-KFNNZZHI.js.map} +0 -0
  153. /package/dist/{permissions-7NMDFU27.js.map → git-W72QQ6GT.js.map} +0 -0
  154. /package/dist/{plan-LEJJF3DE.js.map → init-HTN4V67Q.js.map} +0 -0
  155. /package/dist/{pr-HPVUZ7S3.js.map → permissions-4AKNQZHK.js.map} +0 -0
  156. /package/dist/{pr-review-R2QZBT3F.js.map → plan-SIZLGA4V.js.map} +0 -0
  157. /package/dist/{prd-5O6GYCC6.js.map → pr-OMWCGUOW.js.map} +0 -0
  158. /package/dist/{recorder-XGF55WXI.js.map → pr-review-N24CZPKR.js.map} +0 -0
  159. /package/dist/{registry-LGPE53QD.js.map → prd-5OFTZAHJ.js.map} +0 -0
  160. /package/dist/{review-YKWD6SNN.js.map → recorder-KCCPMKQG.js.map} +0 -0
  161. /package/dist/{run-YU4TR62R.js.map → registry-GLPXOMFG.js.map} +0 -0
  162. /package/dist/{state-manager-X3PT3FGT.js.map → review-YM4JAABY.js.map} +0 -0
@@ -3,10 +3,19 @@ import {
3
3
  formatPhaseLine,
4
4
  loadPhaseTiming,
5
5
  snapshotTimingFields
6
- } from "./chunk-37N2RJW2.js";
6
+ } from "./chunk-V7MO5EDS.js";
7
+ import {
8
+ mostRecent,
9
+ prReviewDir,
10
+ readPrReviewIndex,
11
+ runPrReview
12
+ } from "./chunk-QZVKRDJY.js";
13
+ import {
14
+ runPrd
15
+ } from "./chunk-QD4VOILZ.js";
7
16
  import {
8
17
  runReview
9
- } from "./chunk-QXDNBYQF.js";
18
+ } from "./chunk-SZMHCEYV.js";
10
19
  import {
11
20
  PIPELINE_PHASES,
12
21
  PIPELINE_PHASES_NO_BRANCH,
@@ -28,58 +37,49 @@ import {
28
37
  saveExecutionPlan,
29
38
  setQueueBranch,
30
39
  setQueuePullRequest
31
- } from "./chunk-7KD66LIM.js";
40
+ } from "./chunk-OR43364P.js";
32
41
  import {
33
42
  runInit
34
- } from "./chunk-BHJCGWQX.js";
43
+ } from "./chunk-F6TOYSYY.js";
35
44
  import {
36
45
  printQueueSummary,
37
46
  printRunSummary,
38
47
  runExecute,
39
48
  stripMarkdown
40
- } from "./chunk-LZ6GFQAG.js";
49
+ } from "./chunk-B72RQZBV.js";
41
50
  import {
42
51
  ensureWebMonitor
43
- } from "./chunk-IHIEXUTC.js";
52
+ } from "./chunk-LFEQIZLB.js";
44
53
  import {
45
54
  runPlan
46
- } from "./chunk-TM67EHSV.js";
55
+ } from "./chunk-6BENHR2I.js";
47
56
  import {
48
57
  runPr
49
- } from "./chunk-PIVGJM6K.js";
50
- import {
51
- mostRecent,
52
- prReviewDir,
53
- readPrReviewIndex,
54
- runPrReview
55
- } from "./chunk-UJ7XWK7J.js";
58
+ } from "./chunk-2IQ6M4ZE.js";
56
59
  import {
57
60
  listPullRequests,
58
61
  publishGitState
59
- } from "./chunk-J62QSVP6.js";
60
- import {
61
- runPrd
62
- } from "./chunk-HJGGNLWI.js";
62
+ } from "./chunk-PBTA3QQX.js";
63
63
  import {
64
64
  resolveCommandIssue
65
- } from "./chunk-FZDR7CGH.js";
65
+ } from "./chunk-REO3PXXO.js";
66
66
  import {
67
67
  getProvider
68
- } from "./chunk-PV4OX5TC.js";
68
+ } from "./chunk-PZTWU277.js";
69
69
  import {
70
70
  beginUsageScope,
71
71
  getRunUsageTotals
72
- } from "./chunk-664Y3NDX.js";
72
+ } from "./chunk-PHW2YV6N.js";
73
73
  import {
74
74
  assessDecomposition,
75
75
  buildDecompositionReport,
76
76
  proposeSubIssues,
77
77
  resetAgentInvocationState
78
- } from "./chunk-ARFVHC2F.js";
78
+ } from "./chunk-CGKLE6WR.js";
79
79
  import {
80
80
  JournalPublisher,
81
81
  MultiPublisher
82
- } from "./chunk-QCXPNSEL.js";
82
+ } from "./chunk-3BWZO4YI.js";
83
83
  import {
84
84
  describeRunAgents,
85
85
  getActiveResilienceConfig,
@@ -87,19 +87,16 @@ import {
87
87
  loadIssuesConfig,
88
88
  loadWebConfig,
89
89
  onShutdown
90
- } from "./chunk-CNBYCMSU.js";
90
+ } from "./chunk-QJ5UZAH5.js";
91
91
  import {
92
92
  resolveIssuePaths,
93
93
  resolveProjectPaths,
94
94
  resolveQueuePaths
95
- } from "./chunk-HQAHNIAR.js";
95
+ } from "./chunk-QK7WUO7A.js";
96
96
  import {
97
- FilePublisher,
98
- MemoryPublisher,
99
97
  formatDuration,
100
98
  getIcons,
101
99
  getInactivityTimeout,
102
- getSessionPublisher,
103
100
  isVerbose,
104
101
  printError,
105
102
  printInfo,
@@ -108,26 +105,40 @@ import {
108
105
  setActivityCallback,
109
106
  setInactivityTimeout,
110
107
  setOutputCallback,
111
- setSessionPublisher,
112
108
  setStoryStageCallback,
113
109
  setStoryUpdateCallback
114
- } from "./chunk-IYV6KNVF.js";
110
+ } from "./chunk-TYRNTSPJ.js";
115
111
  import {
116
- isoNow,
117
- loadTaskPlan,
118
- saveTaskPlan
119
- } from "./chunk-DIG5XKQQ.js";
112
+ FilePublisher,
113
+ MemoryPublisher,
114
+ getSessionPublisher,
115
+ setSessionPublisher
116
+ } from "./chunk-6QYMSNVA.js";
120
117
  import {
121
- acquireRunLock,
122
- describeRunLockOwner
123
- } from "./chunk-NEZZ6KDR.js";
118
+ bindDiagnosticContext,
119
+ flushDiagnostics,
120
+ writeDiagnostic
121
+ } from "./chunk-3WFZETIM.js";
124
122
  import {
125
123
  committedStoryIds,
126
124
  describePreflight,
127
125
  getBaseBranch,
126
+ getCurrentBranch,
127
+ getHeadCommit,
128
+ getProjectRoot,
129
+ localBranchExists,
128
130
  preflightRepository,
129
131
  run
130
- } from "./chunk-KQHB7ZT3.js";
132
+ } from "./chunk-BEZ5BA5U.js";
133
+ import {
134
+ isoNow,
135
+ loadTaskPlan,
136
+ saveTaskPlan
137
+ } from "./chunk-J3SOTUVI.js";
138
+ import {
139
+ acquireRunLock,
140
+ describeRunLockOwner
141
+ } from "./chunk-LBGHI4S2.js";
131
142
 
132
143
  // src/commands/run.ts
133
144
  import { randomUUID } from "crypto";
@@ -1058,6 +1069,21 @@ async function claimRunOwnership(target, detached = false) {
1058
1069
  async function runIssueSession(issueNumber, mode, input) {
1059
1070
  resetAgentInvocationState();
1060
1071
  const paths = await resolveIssuePaths(issueNumber);
1072
+ try {
1073
+ const project = await resolveProjectPaths();
1074
+ bindDiagnosticContext({
1075
+ project: project.projectId,
1076
+ projectRoot: await getProjectRoot(),
1077
+ issue: issueNumber,
1078
+ sessionId: null,
1079
+ executionId: null,
1080
+ phase: null,
1081
+ story: null,
1082
+ harness: null,
1083
+ model: null
1084
+ });
1085
+ } catch {
1086
+ }
1061
1087
  const resilience = await initResilienceConfig();
1062
1088
  const configuredInactivity = resilience.watchdog?.inactivityTimeoutMs;
1063
1089
  if (configuredInactivity !== void 0 && getInactivityTimeout() === void 0) {
@@ -1149,6 +1175,12 @@ async function runIssueSession(issueNumber, mode, input) {
1149
1175
  });
1150
1176
  }
1151
1177
  await publisher.close();
1178
+ writeDiagnostic({
1179
+ level: result.code === 0 ? "info" : "error",
1180
+ message: `Issue Flow session ${result.code === 0 ? "completed" : "failed"}`,
1181
+ context: { code: result.code, failedPhase: result.failedPhase }
1182
+ });
1183
+ await flushDiagnostics();
1152
1184
  setSessionPublisher(void 0);
1153
1185
  }
1154
1186
  }
@@ -1210,7 +1242,7 @@ async function maybeCreateSubIssues(issueNumber, plan, reportFile) {
1210
1242
  printInfo("Nothing left to split: no pending story.");
1211
1243
  return;
1212
1244
  }
1213
- const { runGenerate } = await import("./generate-MVQI7A45.js");
1245
+ const { runGenerate } = await import("./generate-FW5C6NP7.js");
1214
1246
  for (const proposal of proposals) {
1215
1247
  const instruction = [
1216
1248
  `Create a sub-issue of #${issueNumber}: ${proposal.title}.`,
@@ -1275,6 +1307,19 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1275
1307
  };
1276
1308
  const tasksPath = paths.tasksFile;
1277
1309
  const sessionId = randomUUID();
1310
+ bindDiagnosticContext({
1311
+ sessionId,
1312
+ issue: issueNumber,
1313
+ executionId: null,
1314
+ phase: null,
1315
+ story: null,
1316
+ harness: null,
1317
+ model: null
1318
+ });
1319
+ const [initialBranch, initialCommit] = await Promise.all([
1320
+ getCurrentBranch().catch(() => ""),
1321
+ getHeadCommit()
1322
+ ]);
1278
1323
  let publishedIssueNumber = toIssueNumber(issueNumber);
1279
1324
  const publishSessionStart = (phases, at, info) => {
1280
1325
  publisher.publish({
@@ -1284,7 +1329,10 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1284
1329
  issueNumber: publishedIssueNumber,
1285
1330
  issueUrl: info?.issueUrl,
1286
1331
  branch: info?.branch,
1332
+ branchCreated: info?.branchCreated,
1333
+ startCommit: info?.startCommit,
1287
1334
  phases: [...phases],
1335
+ configuration: configurationSnapshot,
1288
1336
  environment: {
1289
1337
  node: process.version,
1290
1338
  platform: process.platform,
@@ -1296,6 +1344,29 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1296
1344
  const agentSummary = await describeRunAgents(
1297
1345
  prReview ? ["prd", "plan", "execute", "review", "pr", "pr-review"] : ["prd", "plan", "execute", "review", "pr"]
1298
1346
  );
1347
+ const fallbacks = getActiveResilienceConfig().providers?.chain ?? [];
1348
+ const configurationSnapshot = {
1349
+ precedence: ["default", "global", "project", "env", "cli", "step override"],
1350
+ defaultProvider: {
1351
+ value: agentSummary.defaultProvider,
1352
+ source: agentSummary.defaultOrigin.provider
1353
+ },
1354
+ defaultModel: {
1355
+ value: agentSummary.defaultModel,
1356
+ source: agentSummary.defaultOrigin.model
1357
+ },
1358
+ phases: Object.entries(agentSummary.byPhase).map(([phase, resolved]) => ({
1359
+ phase,
1360
+ provider: { value: resolved.provider, source: resolved.origin.provider },
1361
+ model: { value: resolved.model, source: resolved.origin.model }
1362
+ })),
1363
+ fallbacks,
1364
+ overrides: Object.entries(agentSummary.byPhase).filter(
1365
+ ([, resolved]) => resolved.provider !== agentSummary.defaultProvider || resolved.model !== agentSummary.defaultModel
1366
+ ).map(
1367
+ ([phase, resolved]) => `${phase}: ${resolved.provider}${resolved.model ? ` \xB7 ${resolved.model}` : ""}`
1368
+ )
1369
+ };
1299
1370
  printInfo(
1300
1371
  `Starting pipeline for issue #${issueNumber} (mode: ${mode}, agent: ${agentSummary.label})`
1301
1372
  );
@@ -1394,6 +1465,8 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1394
1465
  const phaseOrder = finalPr ? effectivePrReview ? RUNNABLE_QUEUE_PR_PHASES_WITH_REVIEW : RUNNABLE_QUEUE_PR_PHASES : inQueue ? RUNNABLE_PHASES_NO_BRANCH : effectiveNoBranch ? RUNNABLE_PHASES_NO_BRANCH : effectivePrReview ? RUNNABLE_PHASES_WITH_PR_REVIEW : RUNNABLE_PHASES;
1395
1466
  const queueCommitScope = queue === void 0 ? void 0 : `issue-${issueNumber}`;
1396
1467
  let producedBranch = null;
1468
+ let plannedExecutionBranch = planBranch ?? null;
1469
+ let branchExistedBeforeExecution = effectiveNoBranch || planBranch === void 0 || planBranch === null ? null : await localBranchExists(planBranch).catch(() => null);
1397
1470
  if (queue !== void 0 && finalPr === void 0 && !effectiveNoBranch) {
1398
1471
  producedBranch = await adoptQueueBranch(tasksPath, queue.plan.branchName);
1399
1472
  if (producedBranch !== null) {
@@ -1402,7 +1475,9 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1402
1475
  }
1403
1476
  publishSessionStart(activePhases, sessionStartedAt, {
1404
1477
  issueUrl: planIssueUrl ?? resolvedIssue.issue.remoteRef ?? void 0,
1405
- branch: planBranch
1478
+ branch: effectiveNoBranch ? initialBranch : planBranch,
1479
+ branchCreated: effectiveNoBranch ? false : branchExistedBeforeExecution === true ? false : null,
1480
+ startCommit: initialCommit
1406
1481
  });
1407
1482
  publishIssueDetails(publisher, resolvedIssue.issue, sessionStartedAt);
1408
1483
  publishStorySeed(publisher, planStories, sessionStartedAt);
@@ -1462,11 +1537,24 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1462
1537
  prd: makeRunner(() => runPrd(issueNumber, resolvedIssue), "prd"),
1463
1538
  plan: async () => {
1464
1539
  await makeRunner(
1465
- () => runPlan(issueNumber, resolvedIssue, { continueFlag: continueNumbering, startUs }),
1540
+ () => runPlan(issueNumber, resolvedIssue, {
1541
+ continueFlag: continueNumbering,
1542
+ startUs,
1543
+ ...effectiveNoBranch && initialBranch ? { branchName: initialBranch } : {}
1544
+ }),
1466
1545
  "plan"
1467
1546
  )();
1468
1547
  try {
1469
1548
  const plan = await loadTaskPlan(tasksPath);
1549
+ if (!effectiveNoBranch) {
1550
+ plannedExecutionBranch = plan.branchName;
1551
+ branchExistedBeforeExecution = await localBranchExists(plan.branchName).catch(() => null);
1552
+ publisher.publish({
1553
+ type: "git:update",
1554
+ at: isoNow(),
1555
+ branchCreated: branchExistedBeforeExecution === true ? false : null
1556
+ });
1557
+ }
1470
1558
  publishStorySeed(publisher, plan.userStories, isoNow());
1471
1559
  if (effectiveNoBranch || effectivePrReview) {
1472
1560
  if (effectiveNoBranch) plan.noBranch = true;
@@ -1546,6 +1634,9 @@ async function runPipelinePhases(issueNumber, paths, mode, publisher, input) {
1546
1634
  publisher.publish({ type: "phase:start", at: isoNow(), phase });
1547
1635
  try {
1548
1636
  await fn();
1637
+ if (phase === "execute" && branchExistedBeforeExecution === false && plannedExecutionBranch !== null && await getCurrentBranch().catch(() => "") === plannedExecutionBranch) {
1638
+ publisher.publish({ type: "git:update", at: isoNow(), branchCreated: true });
1639
+ }
1549
1640
  await publishGitState(publisher);
1550
1641
  await publishInstrumentedPhaseEnd(publisher, phase, issueNumber, true);
1551
1642
  } catch (err) {
@@ -2011,4 +2102,4 @@ export {
2011
2102
  publishIssueDetails,
2012
2103
  runPipeline
2013
2104
  };
2014
- //# sourceMappingURL=chunk-OPNGPUKJ.js.map
2105
+ //# sourceMappingURL=chunk-X44FKNKP.js.map