@telora/daemon 0.13.1 → 0.13.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 (123) hide show
  1. package/README.md +11 -19
  2. package/build-info.json +2 -2
  3. package/dist/assembly-engine.d.ts +47 -0
  4. package/dist/assembly-engine.d.ts.map +1 -0
  5. package/dist/assembly-engine.js +76 -0
  6. package/dist/assembly-engine.js.map +1 -0
  7. package/dist/assembly-resolvers.d.ts +9 -0
  8. package/dist/assembly-resolvers.d.ts.map +1 -0
  9. package/dist/assembly-resolvers.js +219 -0
  10. package/dist/assembly-resolvers.js.map +1 -0
  11. package/dist/config.d.ts.map +1 -1
  12. package/dist/config.js +0 -2
  13. package/dist/config.js.map +1 -1
  14. package/dist/delivery-lifecycle.d.ts +2 -0
  15. package/dist/delivery-lifecycle.d.ts.map +1 -1
  16. package/dist/delivery-lifecycle.js +40 -1
  17. package/dist/delivery-lifecycle.js.map +1 -1
  18. package/dist/directive-executor.d.ts +43 -0
  19. package/dist/directive-executor.d.ts.map +1 -0
  20. package/dist/directive-executor.js +212 -0
  21. package/dist/directive-executor.js.map +1 -0
  22. package/dist/git-merge.d.ts.map +1 -1
  23. package/dist/git-merge.js +5 -1
  24. package/dist/git-merge.js.map +1 -1
  25. package/dist/git-types.d.ts +2 -0
  26. package/dist/git-types.d.ts.map +1 -1
  27. package/dist/git-types.js.map +1 -1
  28. package/dist/git.d.ts +1 -1
  29. package/dist/git.d.ts.map +1 -1
  30. package/dist/git.js +1 -1
  31. package/dist/git.js.map +1 -1
  32. package/dist/listener.d.ts.map +1 -1
  33. package/dist/listener.js +27 -3
  34. package/dist/listener.js.map +1 -1
  35. package/dist/mcp-resolution.d.ts +8 -0
  36. package/dist/mcp-resolution.d.ts.map +1 -0
  37. package/dist/mcp-resolution.js +8 -0
  38. package/dist/mcp-resolution.js.map +1 -0
  39. package/dist/merge-detector.d.ts +22 -0
  40. package/dist/merge-detector.d.ts.map +1 -0
  41. package/dist/merge-detector.js +188 -0
  42. package/dist/merge-detector.js.map +1 -0
  43. package/dist/queries/deliveries.d.ts +15 -0
  44. package/dist/queries/deliveries.d.ts.map +1 -1
  45. package/dist/queries/deliveries.js +19 -0
  46. package/dist/queries/deliveries.js.map +1 -1
  47. package/dist/queries/schemas.d.ts +2 -0
  48. package/dist/queries/schemas.d.ts.map +1 -1
  49. package/dist/queries/schemas.js +1 -0
  50. package/dist/queries/schemas.js.map +1 -1
  51. package/dist/queries/shared.d.ts.map +1 -1
  52. package/dist/queries/shared.js +5 -2
  53. package/dist/queries/shared.js.map +1 -1
  54. package/dist/queries/strategies.d.ts +35 -18
  55. package/dist/queries/strategies.d.ts.map +1 -1
  56. package/dist/queries/strategies.js +57 -13
  57. package/dist/queries/strategies.js.map +1 -1
  58. package/dist/session-lifecycle.d.ts.map +1 -1
  59. package/dist/session-lifecycle.js +1 -5
  60. package/dist/session-lifecycle.js.map +1 -1
  61. package/dist/spawner.js +2 -2
  62. package/dist/spawner.js.map +1 -1
  63. package/dist/state-cascade.d.ts +41 -0
  64. package/dist/state-cascade.d.ts.map +1 -0
  65. package/dist/state-cascade.js +127 -0
  66. package/dist/state-cascade.js.map +1 -0
  67. package/dist/strategy-completion.d.ts +0 -25
  68. package/dist/strategy-completion.d.ts.map +1 -1
  69. package/dist/strategy-completion.js +0 -110
  70. package/dist/strategy-completion.js.map +1 -1
  71. package/dist/strategy-executor.d.ts +0 -2
  72. package/dist/strategy-executor.d.ts.map +1 -1
  73. package/dist/strategy-executor.js +61 -63
  74. package/dist/strategy-executor.js.map +1 -1
  75. package/dist/strategy-lifecycle.d.ts.map +1 -1
  76. package/dist/strategy-lifecycle.js +7 -6
  77. package/dist/strategy-lifecycle.js.map +1 -1
  78. package/dist/strategy-merge.d.ts.map +1 -1
  79. package/dist/strategy-merge.js +1 -0
  80. package/dist/strategy-merge.js.map +1 -1
  81. package/dist/strategy-prompt-builder.d.ts +0 -9
  82. package/dist/strategy-prompt-builder.d.ts.map +1 -1
  83. package/dist/strategy-prompt-builder.js +0 -61
  84. package/dist/strategy-prompt-builder.js.map +1 -1
  85. package/dist/strategy-provisioning.js +3 -3
  86. package/dist/strategy-provisioning.js.map +1 -1
  87. package/dist/supabase.d.ts +3 -3
  88. package/dist/supabase.d.ts.map +1 -1
  89. package/dist/supabase.js +2 -2
  90. package/dist/supabase.js.map +1 -1
  91. package/dist/team-prompt-variants.d.ts +1 -11
  92. package/dist/team-prompt-variants.d.ts.map +1 -1
  93. package/dist/team-prompt-variants.js +1 -56
  94. package/dist/team-prompt-variants.js.map +1 -1
  95. package/dist/team-spawner.d.ts +1 -3
  96. package/dist/team-spawner.d.ts.map +1 -1
  97. package/dist/team-spawner.js +41 -34
  98. package/dist/team-spawner.js.map +1 -1
  99. package/dist/types/strategy.d.ts +0 -2
  100. package/dist/types/strategy.d.ts.map +1 -1
  101. package/dist/types/workflow.d.ts +25 -0
  102. package/dist/types/workflow.d.ts.map +1 -1
  103. package/dist/unified-init.d.ts.map +1 -1
  104. package/dist/unified-init.js +57 -15
  105. package/dist/unified-init.js.map +1 -1
  106. package/dist/unified-shell-config.d.ts.map +1 -1
  107. package/dist/unified-shell-config.js +0 -4
  108. package/dist/unified-shell-config.js.map +1 -1
  109. package/dist/unified-shell-status.d.ts.map +1 -1
  110. package/dist/unified-shell-status.js +0 -1
  111. package/dist/unified-shell-status.js.map +1 -1
  112. package/dist/unified-shell.d.ts.map +1 -1
  113. package/dist/unified-shell.js +0 -5
  114. package/dist/unified-shell.js.map +1 -1
  115. package/dist/worktree.d.ts +5 -9
  116. package/dist/worktree.d.ts.map +1 -1
  117. package/dist/worktree.js +19 -53
  118. package/dist/worktree.js.map +1 -1
  119. package/package.json +3 -2
  120. package/dist/listener-review.d.ts +0 -37
  121. package/dist/listener-review.d.ts.map +0 -1
  122. package/dist/listener-review.js +0 -217
  123. package/dist/listener-review.js.map +0 -1
package/README.md CHANGED
@@ -15,21 +15,15 @@ Key features:
15
15
 
16
16
  ## Installation
17
17
 
18
- The `@telora/daemon` package is published to an internal Gitea npm registry. You need registry access before installing.
19
-
20
18
  ```bash
21
- # Configure npm to use the Telora registry for @telora packages
22
- # Replace the URL below with your organization's Gitea instance URL
23
- echo '@telora:registry=https://<your-gitea-host>/api/packages/syntelyos/npm/' >> ~/.npmrc
24
-
25
- # Global installation
26
- npm install -g @telora/daemon
19
+ # Install as a dev dependency in your project
20
+ npm install --save-dev @telora/daemon
27
21
 
28
22
  # Or run directly with npx
29
23
  npx @telora/daemon
30
24
  ```
31
25
 
32
- > **Note:** The registry URL is organization-specific. Ask your team lead for the correct URL if you don't have it. The registry requires a valid npm token for authentication.
26
+ > **Note:** The `.mcp.json` file for Claude Code integration is auto-generated by `npx telora-daemon init`.
33
27
 
34
28
  ## Quick Start
35
29
 
@@ -50,7 +44,7 @@ Then set your tracker ID and start the daemon:
50
44
 
51
45
  ```bash
52
46
  export TELORA_TRACKER_ID=your-tracker-id-here
53
- telora-daemon
47
+ npx telora-daemon
54
48
  ```
55
49
 
56
50
  ### Option 2: Manual Setup
@@ -76,7 +70,7 @@ EOF
76
70
  3. **Start the daemon**:
77
71
 
78
72
  ```bash
79
- telora-daemon
73
+ npx telora-daemon
80
74
  ```
81
75
 
82
76
  ## Configuration
@@ -93,7 +87,6 @@ The daemon is configured via environment variables:
93
87
  | `TELORA_WORKTREE_DIR` | No | `.telora/worktrees` | Directory for git worktrees |
94
88
  | `TELORA_LOG_DIR` | No | `.telora/logs` | Directory for agent logs |
95
89
  | `CLAUDE_CODE_PATH` | No | `claude` | Path to Claude Code executable |
96
- | `MCP_CONFIG_PATH` | No | - | Path to MCP config file |
97
90
  | `MAX_TOTAL_SESSIONS` | No | `5` | Max concurrent agents |
98
91
  | `SESSION_TIMEOUT_MS` | No | `3600000` | Session timeout (1 hour) |
99
92
  | `TOKEN_LIMIT` | No | `200000` | Max tokens per session |
@@ -102,7 +95,7 @@ The daemon is configured via environment variables:
102
95
  ## CLI Options
103
96
 
104
97
  ```bash
105
- telora-daemon [options]
98
+ npx telora-daemon [options]
106
99
 
107
100
  Options:
108
101
  -V, --version Output version number
@@ -141,7 +134,6 @@ Available config file fields:
141
134
  - `worktreeDir` - Worktree directory
142
135
  - `integrationBranch` - Integration branch name
143
136
  - `claudeCodePath` - Claude Code executable path
144
- - `mcpConfigPath` - MCP config file path
145
137
  - `logDir` - Log directory
146
138
  - `maxTotalSessions` - Max concurrent agents
147
139
  - `sessionTimeoutMs` - Session timeout in milliseconds
@@ -180,11 +172,11 @@ To run agents on multiple repositories:
180
172
  ```bash
181
173
  # Terminal 1 - Repo A (productId set in .telora/daemon.json)
182
174
  cd /path/to/repo-a
183
- telora-daemon
175
+ npx telora-daemon
184
176
 
185
177
  # Terminal 2 - Repo B (productId set in .telora/daemon.json)
186
178
  cd /path/to/repo-b
187
- telora-daemon
179
+ npx telora-daemon
188
180
  ```
189
181
 
190
182
  Each daemon only picks up deliveries for the configured product.
@@ -199,9 +191,9 @@ Each daemon only picks up deliveries for the configured product.
199
191
  **For production use**, always run the daemon with the compiled version:
200
192
 
201
193
  ```bash
202
- # Global install (recommended)
203
- npm install -g @telora/daemon
204
- telora-daemon
194
+ # Local install (recommended)
195
+ npm install --save-dev @telora/daemon
196
+ npx telora-daemon
205
197
 
206
198
  # Or from source
207
199
  cd packages/daemon
package/build-info.json CHANGED
@@ -1,4 +1,4 @@
1
1
  {
2
- "commitSha": "86d428f",
3
- "builtAt": "2026-03-19T01:41:43.384Z"
2
+ "commitSha": "f2e4cc1",
3
+ "builtAt": "2026-03-20T00:42:26.781Z"
4
4
  }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Context Assembly Engine.
3
+ *
4
+ * Takes an ordered list of data source references (assembly recipe)
5
+ * and resolves each entry into concrete markdown content.
6
+ *
7
+ * Source types are extensible via a registry pattern.
8
+ */
9
+ import type { DaemonConfig } from './types.js';
10
+ /** Context available to resolvers when hydrating a recipe. */
11
+ export interface AssemblyContext {
12
+ strategyId: string;
13
+ deliveryIds: string[];
14
+ worktreePath: string | null;
15
+ config: DaemonConfig;
16
+ organizationId: string;
17
+ productId: string;
18
+ }
19
+ /** A resolver function that hydrates a source reference into markdown. */
20
+ export type SourceResolver = (context: AssemblyContext, params: Record<string, string>) => Promise<string>;
21
+ /** Register a source resolver for a given source type. */
22
+ export declare function registerSourceResolver(sourceType: string, resolver: SourceResolver): void;
23
+ /** Get a registered resolver (for testing). */
24
+ export declare function getResolver(sourceType: string): SourceResolver | undefined;
25
+ /**
26
+ * Parse a source reference string into type and params.
27
+ *
28
+ * Format: "type.subtype" or "type.subtype(key=value,key2=value2)"
29
+ * Examples:
30
+ * "delivery.acceptance_criteria" -> { type: "delivery.acceptance_criteria", params: {} }
31
+ * "delivery.issues(status=done)" -> { type: "delivery.issues", params: { status: "done" } }
32
+ */
33
+ export declare function parseSourceReference(ref: string): {
34
+ type: string;
35
+ params: Record<string, string>;
36
+ };
37
+ /**
38
+ * Resolve an assembly recipe into hydrated markdown content.
39
+ *
40
+ * Iterates through source references in order, resolves each via the
41
+ * registered resolver, and concatenates results with section separators.
42
+ *
43
+ * Failed sources are handled gracefully: a warning comment is included
44
+ * in the output, but the assembly continues.
45
+ */
46
+ export declare function resolveAssemblyRecipe(recipe: string[], context: AssemblyContext): Promise<string>;
47
+ //# sourceMappingURL=assembly-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly-engine.d.ts","sourceRoot":"","sources":["../src/assembly-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE/C,8DAA8D;AAC9D,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,MAAM,EAAE,YAAY,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,0EAA0E;AAC1E,MAAM,MAAM,cAAc,GAAG,CAC3B,OAAO,EAAE,eAAe,EACxB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAC3B,OAAO,CAAC,MAAM,CAAC,CAAC;AAKrB,0DAA0D;AAC1D,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI,CAEzF;AAED,+CAA+C;AAC/C,wBAAgB,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAE1E;AAED;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAelG;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
@@ -0,0 +1,76 @@
1
+ /**
2
+ * Context Assembly Engine.
3
+ *
4
+ * Takes an ordered list of data source references (assembly recipe)
5
+ * and resolves each entry into concrete markdown content.
6
+ *
7
+ * Source types are extensible via a registry pattern.
8
+ */
9
+ // Registry of source resolvers
10
+ const resolverRegistry = new Map();
11
+ /** Register a source resolver for a given source type. */
12
+ export function registerSourceResolver(sourceType, resolver) {
13
+ resolverRegistry.set(sourceType, resolver);
14
+ }
15
+ /** Get a registered resolver (for testing). */
16
+ export function getResolver(sourceType) {
17
+ return resolverRegistry.get(sourceType);
18
+ }
19
+ /**
20
+ * Parse a source reference string into type and params.
21
+ *
22
+ * Format: "type.subtype" or "type.subtype(key=value,key2=value2)"
23
+ * Examples:
24
+ * "delivery.acceptance_criteria" -> { type: "delivery.acceptance_criteria", params: {} }
25
+ * "delivery.issues(status=done)" -> { type: "delivery.issues", params: { status: "done" } }
26
+ */
27
+ export function parseSourceReference(ref) {
28
+ const paramMatch = ref.match(/^([^(]+)\(([^)]*)\)$/);
29
+ if (paramMatch) {
30
+ const type = paramMatch[1];
31
+ const paramStr = paramMatch[2];
32
+ const params = {};
33
+ for (const pair of paramStr.split(',')) {
34
+ const [key, value] = pair.split('=').map(s => s.trim());
35
+ if (key && value !== undefined) {
36
+ params[key] = value;
37
+ }
38
+ }
39
+ return { type, params };
40
+ }
41
+ return { type: ref, params: {} };
42
+ }
43
+ /**
44
+ * Resolve an assembly recipe into hydrated markdown content.
45
+ *
46
+ * Iterates through source references in order, resolves each via the
47
+ * registered resolver, and concatenates results with section separators.
48
+ *
49
+ * Failed sources are handled gracefully: a warning comment is included
50
+ * in the output, but the assembly continues.
51
+ */
52
+ export async function resolveAssemblyRecipe(recipe, context) {
53
+ const sections = [];
54
+ for (const ref of recipe) {
55
+ const { type, params } = parseSourceReference(ref);
56
+ const resolver = resolverRegistry.get(type);
57
+ if (!resolver) {
58
+ sections.push(`<!-- Assembly: unknown source type "${type}" -->`);
59
+ console.warn(`[assembly-engine] No resolver registered for source type "${type}"`);
60
+ continue;
61
+ }
62
+ try {
63
+ const content = await resolver(context, params);
64
+ if (content && content.trim()) {
65
+ sections.push(content);
66
+ }
67
+ }
68
+ catch (err) {
69
+ const message = err.message;
70
+ sections.push(`<!-- Assembly: failed to resolve "${ref}": ${message} -->`);
71
+ console.warn(`[assembly-engine] Failed to resolve source "${ref}": ${message}`);
72
+ }
73
+ }
74
+ return sections.join('\n\n');
75
+ }
76
+ //# sourceMappingURL=assembly-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly-engine.js","sourceRoot":"","sources":["../src/assembly-engine.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAoBH,+BAA+B;AAC/B,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAA0B,CAAC;AAE3D,0DAA0D;AAC1D,MAAM,UAAU,sBAAsB,CAAC,UAAkB,EAAE,QAAwB;IACjF,gBAAgB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC7C,CAAC;AAED,+CAA+C;AAC/C,MAAM,UAAU,WAAW,CAAC,UAAkB;IAC5C,OAAO,gBAAgB,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;AAC1C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC;IACrD,IAAI,UAAU,EAAE,CAAC;QACf,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,QAAQ,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAC/B,MAAM,MAAM,GAA2B,EAAE,CAAC;QAC1C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,EAAE,CAAC;YACvC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;YACxD,IAAI,GAAG,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,CAAC;AACnC,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,MAAgB,EAChB,OAAwB;IAExB,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,oBAAoB,CAAC,GAAG,CAAC,CAAC;QACnD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE5C,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,QAAQ,CAAC,IAAI,CAAC,uCAAuC,IAAI,OAAO,CAAC,CAAC;YAClE,OAAO,CAAC,IAAI,CAAC,6DAA6D,IAAI,GAAG,CAAC,CAAC;YACnF,SAAS;QACX,CAAC;QAED,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,OAAO,IAAI,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;gBAC9B,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAI,GAAa,CAAC,OAAO,CAAC;YACvC,QAAQ,CAAC,IAAI,CAAC,qCAAqC,GAAG,MAAM,OAAO,MAAM,CAAC,CAAC;YAC3E,OAAO,CAAC,IAAI,CAAC,+CAA+C,GAAG,MAAM,OAAO,EAAE,CAAC,CAAC;QAClF,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/B,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Source resolver implementations for the Context Assembly Engine.
3
+ *
4
+ * Each resolver fetches data from the Telora API or local git state
5
+ * and formats it as markdown content. Resolvers are registered at
6
+ * module load time.
7
+ */
8
+ export {};
9
+ //# sourceMappingURL=assembly-resolvers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly-resolvers.d.ts","sourceRoot":"","sources":["../src/assembly-resolvers.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
@@ -0,0 +1,219 @@
1
+ /**
2
+ * Source resolver implementations for the Context Assembly Engine.
3
+ *
4
+ * Each resolver fetches data from the Telora API or local git state
5
+ * and formats it as markdown content. Resolvers are registered at
6
+ * module load time.
7
+ */
8
+ import { execSync } from 'node:child_process';
9
+ import { registerSourceResolver } from './assembly-engine.js';
10
+ import { getStrategyDeliveries, getStrategyIssues } from './queries/strategies.js';
11
+ import { getProductContextForStrategy } from './queries/strategies.js';
12
+ import { getResolvedTransitionBlockForDelivery } from './queries/guards.js';
13
+ import { fetchStrategyWorkflow } from './queries/strategies.js';
14
+ // ── Helpers ──────────────────────────────────────────────────────
15
+ const MAX_DIFF_BYTES = 50 * 1024; // 50 KB truncation limit for git diffs
16
+ /** Format an issue status as a checkbox marker. */
17
+ function statusCheckbox(status) {
18
+ const lower = status.toLowerCase();
19
+ if (lower === 'done')
20
+ return '[x]';
21
+ if (lower === 'in progress')
22
+ return '[-]';
23
+ return '[ ]';
24
+ }
25
+ /**
26
+ * Run git diff in a worktree against the base branch.
27
+ * Returns the raw diff output, or empty string on failure.
28
+ */
29
+ function getGitDiff(worktreePath, baseBranch) {
30
+ try {
31
+ const diff = execSync(`git diff ${baseBranch}...HEAD`, { cwd: worktreePath, maxBuffer: 10 * 1024 * 1024, encoding: 'utf-8' });
32
+ return diff;
33
+ }
34
+ catch {
35
+ return '';
36
+ }
37
+ }
38
+ /**
39
+ * Get a summary of files changed in a diff (for truncation header).
40
+ */
41
+ function getDiffStatSummary(worktreePath, baseBranch) {
42
+ try {
43
+ return execSync(`git diff --stat ${baseBranch}...HEAD`, { cwd: worktreePath, maxBuffer: 1024 * 1024, encoding: 'utf-8' });
44
+ }
45
+ catch {
46
+ return '';
47
+ }
48
+ }
49
+ // ── Resolvers ────────────────────────────────────────────────────
50
+ /**
51
+ * delivery.acceptance_criteria
52
+ *
53
+ * Fetches all deliveries for the strategy and formats acceptance criteria.
54
+ */
55
+ registerSourceResolver('delivery.acceptance_criteria', async (context) => {
56
+ const deliveries = await getStrategyDeliveries(context.strategyId);
57
+ if (deliveries.length === 0)
58
+ return '';
59
+ const sections = deliveries
60
+ .filter((d) => d.acceptanceCriteria)
61
+ .map((d) => `### ${d.name}\n\n${d.acceptanceCriteria}`);
62
+ if (sections.length === 0)
63
+ return '';
64
+ return `## Acceptance Criteria\n\n${sections.join('\n\n')}`;
65
+ });
66
+ /**
67
+ * delivery.description
68
+ *
69
+ * Fetches all deliveries for the strategy and formats descriptions.
70
+ */
71
+ registerSourceResolver('delivery.description', async (context) => {
72
+ const deliveries = await getStrategyDeliveries(context.strategyId);
73
+ if (deliveries.length === 0)
74
+ return '';
75
+ const sections = deliveries
76
+ .filter((d) => d.description)
77
+ .map((d) => `### ${d.name}\n\n${d.description}`);
78
+ if (sections.length === 0)
79
+ return '';
80
+ return `## Delivery Descriptions\n\n${sections.join('\n\n')}`;
81
+ });
82
+ /**
83
+ * delivery.issues
84
+ *
85
+ * Fetches all issues across deliveries and formats as a checklist.
86
+ * Optional param: status (filter by issue status, e.g. "done").
87
+ */
88
+ registerSourceResolver('delivery.issues', async (context, params) => {
89
+ const issues = await getStrategyIssues(context.strategyId);
90
+ if (issues.length === 0)
91
+ return '';
92
+ const statusFilter = params.status?.toLowerCase();
93
+ const filtered = statusFilter
94
+ ? issues.filter((i) => i.status.toLowerCase() === statusFilter)
95
+ : issues;
96
+ if (filtered.length === 0)
97
+ return '';
98
+ // Group issues by delivery
99
+ const byDelivery = {};
100
+ for (const issue of filtered) {
101
+ const group = byDelivery[issue.deliveryId] ?? [];
102
+ group.push(issue);
103
+ byDelivery[issue.deliveryId] = group;
104
+ }
105
+ const sections = [];
106
+ for (const deliveryId of Object.keys(byDelivery)) {
107
+ const deliveryIssues = byDelivery[deliveryId];
108
+ const lines = deliveryIssues.map((i) => {
109
+ const check = statusCheckbox(i.status);
110
+ const typeTag = i.issueType !== 'task' ? ` [${i.issueType}]` : '';
111
+ return `- ${check} ${i.title}${typeTag} (${i.status})`;
112
+ });
113
+ sections.push(`### Delivery ${deliveryId.slice(0, 8)}\n\n${lines.join('\n')}`);
114
+ }
115
+ const header = statusFilter
116
+ ? `## Issues (${statusFilter})`
117
+ : '## Issues';
118
+ return `${header}\n\n${sections.join('\n\n')}`;
119
+ });
120
+ /**
121
+ * strategy.context
122
+ *
123
+ * Fetches product context documents relevant to the strategy.
124
+ */
125
+ registerSourceResolver('strategy.context', async (context) => {
126
+ const docs = await getProductContextForStrategy(context.productId, context.strategyId);
127
+ if (docs.length === 0)
128
+ return '';
129
+ const sections = docs.map((doc) => `### ${doc.title}\n\n${doc.content}`);
130
+ return `## Product Context\n\n${sections.join('\n\n')}`;
131
+ });
132
+ /**
133
+ * git.diff_against_base
134
+ *
135
+ * Runs git diff against the integration branch in the worktree.
136
+ * Truncates large diffs and includes a file change summary.
137
+ */
138
+ registerSourceResolver('git.diff_against_base', async (context) => {
139
+ if (!context.worktreePath) {
140
+ console.warn('[assembly-engine] git.diff_against_base: no worktree path available');
141
+ return '';
142
+ }
143
+ const baseBranch = context.config.integrationBranch;
144
+ const diff = getGitDiff(context.worktreePath, baseBranch);
145
+ if (!diff.trim())
146
+ return '';
147
+ if (diff.length > MAX_DIFF_BYTES) {
148
+ const stat = getDiffStatSummary(context.worktreePath, baseBranch);
149
+ const truncated = diff.slice(0, MAX_DIFF_BYTES);
150
+ return [
151
+ `## Git Diff (against ${baseBranch})`,
152
+ '',
153
+ `> **Truncated** -- diff is ${Math.round(diff.length / 1024)}KB, showing first ${Math.round(MAX_DIFF_BYTES / 1024)}KB.`,
154
+ '',
155
+ '### File Summary',
156
+ '',
157
+ '```',
158
+ stat.trim(),
159
+ '```',
160
+ '',
161
+ '```diff',
162
+ truncated,
163
+ '```',
164
+ ].join('\n');
165
+ }
166
+ return `## Git Diff (against ${baseBranch})\n\n\`\`\`diff\n${diff}\n\`\`\``;
167
+ });
168
+ /**
169
+ * guards.evaluation_results
170
+ *
171
+ * Fetches the most recently resolved transition block for each delivery.
172
+ */
173
+ registerSourceResolver('guards.evaluation_results', async (context) => {
174
+ if (context.deliveryIds.length === 0)
175
+ return '';
176
+ const results = [];
177
+ for (const deliveryId of context.deliveryIds) {
178
+ try {
179
+ const resolved = await getResolvedTransitionBlockForDelivery(deliveryId);
180
+ if (!resolved)
181
+ continue;
182
+ const path = resolved.block.decision_path ?? 'none';
183
+ const directive = resolved.directive_template ?? 'No directive template';
184
+ results.push(`### Delivery ${deliveryId.slice(0, 8)}\n\n` +
185
+ `- **Decision path**: ${path}\n` +
186
+ `- **Directive**: ${directive}`);
187
+ }
188
+ catch (err) {
189
+ console.warn(`[assembly-engine] guards.evaluation_results: failed for delivery ${deliveryId.slice(0, 8)}: ${err.message}`);
190
+ }
191
+ }
192
+ if (results.length === 0)
193
+ return '';
194
+ return `## Guard Evaluation Results\n\n${results.join('\n\n')}`;
195
+ });
196
+ /**
197
+ * workflow.stages
198
+ *
199
+ * Fetches the effective workflow for the strategy and lists all stage metadata.
200
+ */
201
+ registerSourceResolver('workflow.stages', async (context) => {
202
+ try {
203
+ const workflow = await fetchStrategyWorkflow(context.strategyId);
204
+ if (!workflow || workflow.stages.length === 0)
205
+ return '';
206
+ const stageList = workflow.stages
207
+ .sort((a, b) => a.sort_order - b.sort_order)
208
+ .map((s) => {
209
+ const desc = s.description ? ` -- ${s.description}` : '';
210
+ return `- **${s.name}**${desc}`;
211
+ });
212
+ return `## Workflow Stages\n\nWorkflow: \`${workflow.id}\`\n\n${stageList.join('\n')}`;
213
+ }
214
+ catch (err) {
215
+ console.warn(`[assembly-engine] workflow.stages: failed: ${err.message}`);
216
+ return '';
217
+ }
218
+ });
219
+ //# sourceMappingURL=assembly-resolvers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assembly-resolvers.js","sourceRoot":"","sources":["../src/assembly-resolvers.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAqDxD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAkM5D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAS1F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAsCzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA+BtD"}
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAUH,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,YAAY,CAAC;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAqDxD;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,CAgM5D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,YAAY,GAAG,YAAY,CAS1F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAE7F;AAED;;;;;;;;;GASG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CAsCzD;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,IAAI,CA+BtD"}
package/dist/config.js CHANGED
@@ -77,7 +77,6 @@ export function loadConfig(configPath) {
77
77
  const claudeCodePath = base.claudeCodePath || 'claude';
78
78
  const logDir = base.logDir || resolve(repoPath, '.telora', 'logs');
79
79
  const sessionTimeoutMs = base.sessionTimeoutMs ?? 3600000; // 1 hour
80
- const mcpConfigPath = base.mcpConfigPath ?? null;
81
80
  // Resolve products array (always populated at runtime)
82
81
  const products = base.products ?? [];
83
82
  // Validate required base fields
@@ -182,7 +181,6 @@ export function loadConfig(configPath) {
182
181
  repoPath,
183
182
  products,
184
183
  claudeCodePath,
185
- mcpConfigPath,
186
184
  logDir,
187
185
  sessionTimeoutMs,
188
186
  worktreeDir,
@@ -1 +1 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
@@ -97,6 +97,8 @@ export interface DeliveryBranchMergeParams {
97
97
  organizationId: string;
98
98
  sessionId: string | null;
99
99
  workflow: Workflow;
100
+ /** Strategy ID for recording the merge in strategy_merges. Optional for legacy per-delivery path. */
101
+ strategyId?: string;
100
102
  }
101
103
  /**
102
104
  * Merge a delivery's branch to the integration branch.
@@ -1 +1 @@
1
- {"version":3,"file":"delivery-lifecycle.d.ts","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAUhG,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gCAAgC;IAChC,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoH3B;AAID,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,kBAAkB,CAAC,CA0E7B;AAID,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,CAAC,CAqFvB"}
1
+ {"version":3,"file":"delivery-lifecycle.d.ts","sourceRoot":"","sources":["../src/delivery-lifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,QAAQ,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAYhG,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,OAAO,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,WAAW,EAAE,OAAO,CAAC;IACrB,kDAAkD;IAClD,mBAAmB,EAAE,OAAO,CAAC;IAC7B,gCAAgC;IAChC,aAAa,EAAE,WAAW,GAAG,QAAQ,CAAC;IACtC,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,YAAY;IAC3B,kDAAkD;IAClD,cAAc,EAAE,OAAO,CAAC;IACxB,kCAAkC;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,8CAA8C;IAC9C,uBAAuB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxC,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,kBAAkB;IACjC,mDAAmD;IACnD,QAAQ,EAAE,OAAO,CAAC;IAClB,+BAA+B;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,iCAAiC;IACjC,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC3C,6CAA6C;IAC7C,YAAY,EAAE,OAAO,CAAC;IACtB,wBAAwB;IACxB,WAAW,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,EAAE,MAAM,CAAC;IACrB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,mCAAmC,CACvD,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,gBAAgB,CAAC,CAoH3B;AAID,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,QAAQ,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAID;;;;;;;GAOG;AACH,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,kBAAkB,CAAC,CA0E7B;AAID,MAAM,WAAW,yBAAyB;IACxC,MAAM,EAAE,YAAY,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,qGAAqG;IACrG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAID;;;;;;;GAOG;AACH,wBAAsB,mBAAmB,CACvC,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,YAAY,CAAC,CAmGvB"}
@@ -13,9 +13,11 @@
13
13
  */
14
14
  import { updateDeliveryStatus, updateDeliveryMergeCommitSha, createEscalation, createTransitionEvaluation } from './supabase.js';
15
15
  import { mergeToIntegration } from './git.js';
16
+ import { runGitSync, getMergeWorktreePath } from './git-types.js';
16
17
  import { getStageByName, determineTransition } from './workflow-engine.js';
17
18
  import { evaluateGuardsAtTransition, executeTriggers, GuardEvaluationError } from './guard-engine.js';
18
19
  import { withRetry, ESCALATION_REASONS } from '@telora/daemon-core';
20
+ import { recordStrategyMerge } from './queries/deliveries.js';
19
21
  // ── Guard evaluation (unified workflow system) ──────────────────────
20
22
  /**
21
23
  * Evaluate guards at a stage transition for a delivery.
@@ -173,7 +175,7 @@ export async function advanceDeliveryStage(params) {
173
175
  * - Git state reporting
174
176
  */
175
177
  export async function mergeDeliveryBranch(params) {
176
- const { config, branchName, deliveryId, deliveryName, organizationId, sessionId, workflow } = params;
178
+ const { config, branchName, deliveryId, deliveryName, organizationId, sessionId, workflow, strategyId } = params;
177
179
  console.log(`Attempting to merge ${branchName} into ${config.integrationBranch}...`);
178
180
  const onRollbackFailure = (details) => {
179
181
  withRetry(() => createEscalation({
@@ -203,6 +205,17 @@ export async function mergeDeliveryBranch(params) {
203
205
  if (mergeResult.commitSha) {
204
206
  updateDeliveryMergeCommitSha(deliveryId, mergeResult.commitSha).catch(err => console.warn(`[mergeCommitSha] Failed to record merge commit SHA:`, err.message));
205
207
  }
208
+ // Record strategy merge with constituent commits (fire-and-forget)
209
+ if (strategyId && mergeResult.commitSha) {
210
+ const commitShas = extractConstituentCommits(config, branchName, mergeResult.preMergeRef);
211
+ recordStrategyMerge({
212
+ organizationId,
213
+ strategyId,
214
+ mergeCommitSha: mergeResult.commitSha,
215
+ commitShas,
216
+ branchName,
217
+ }).catch(err => console.warn(`[strategyMerge] Failed to record strategy merge:`, err.message));
218
+ }
206
219
  return { mergeSucceeded: true, exitReason, commitSha: mergeResult.commitSha };
207
220
  }
208
221
  // Handle merge conflicts
@@ -242,6 +255,32 @@ export async function mergeDeliveryBranch(params) {
242
255
  console.warn(`Merge to integration failed: ${mergeResult.error}`);
243
256
  return { mergeSucceeded: false, exitReason };
244
257
  }
258
+ // ── Constituent commit extraction ───────────────────────────────────
259
+ /**
260
+ * Extract the list of commit SHAs that were merged from a branch.
261
+ *
262
+ * Uses `git log --format=%H <preMergeRef>..<branchName>` in the merge worktree
263
+ * to list all commits on the branch that were not already on the target branch
264
+ * before the merge.
265
+ *
266
+ * Returns an empty array if extraction fails (best-effort).
267
+ */
268
+ function extractConstituentCommits(config, branchName, preMergeRef) {
269
+ if (!preMergeRef) {
270
+ return [];
271
+ }
272
+ try {
273
+ const mwt = getMergeWorktreePath(config);
274
+ const result = runGitSync(['log', '--format=%H', `${preMergeRef}..${branchName}`], mwt);
275
+ if (result.success && result.output) {
276
+ return result.output.split('\n').filter(Boolean);
277
+ }
278
+ }
279
+ catch (err) {
280
+ console.warn(`[strategyMerge] Failed to extract constituent commits:`, err.message);
281
+ }
282
+ return [];
283
+ }
245
284
  // ── Guard failure helpers ───────────────────────────────────────────
246
285
  /**
247
286
  * Resolve the effective failure mode for a guard evaluation error.