@telora/daemon 0.17.90 → 0.17.98

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 (75) hide show
  1. package/build-info.json +6 -3
  2. package/dist/capability-pointer.d.ts +49 -0
  3. package/dist/capability-pointer.d.ts.map +1 -0
  4. package/dist/capability-pointer.js +54 -0
  5. package/dist/capability-pointer.js.map +1 -0
  6. package/dist/cli/codex-provision.d.ts +12 -29
  7. package/dist/cli/codex-provision.d.ts.map +1 -1
  8. package/dist/cli/codex-provision.js +15 -44
  9. package/dist/cli/codex-provision.js.map +1 -1
  10. package/dist/cli/session-state.d.ts +12 -9
  11. package/dist/cli/session-state.d.ts.map +1 -1
  12. package/dist/cli/session-state.js +14 -9
  13. package/dist/cli/session-state.js.map +1 -1
  14. package/dist/completion/merge-phase.d.ts.map +1 -1
  15. package/dist/completion/merge-phase.js +1 -0
  16. package/dist/completion/merge-phase.js.map +1 -1
  17. package/dist/completion/team-lifecycle.d.ts.map +1 -1
  18. package/dist/completion/team-lifecycle.js +1 -0
  19. package/dist/completion/team-lifecycle.js.map +1 -1
  20. package/dist/delivery-advance-block.d.ts +70 -13
  21. package/dist/delivery-advance-block.d.ts.map +1 -1
  22. package/dist/delivery-advance-block.js +200 -21
  23. package/dist/delivery-advance-block.js.map +1 -1
  24. package/dist/delivery-lifecycle.d.ts +1 -1
  25. package/dist/delivery-lifecycle.d.ts.map +1 -1
  26. package/dist/delivery-lifecycle.js +1 -1
  27. package/dist/delivery-lifecycle.js.map +1 -1
  28. package/dist/discovery-poll.d.ts +7 -14
  29. package/dist/discovery-poll.d.ts.map +1 -1
  30. package/dist/discovery-poll.js +14 -31
  31. package/dist/discovery-poll.js.map +1 -1
  32. package/dist/focus-executor.d.ts +10 -9
  33. package/dist/focus-executor.d.ts.map +1 -1
  34. package/dist/focus-executor.js +36 -23
  35. package/dist/focus-executor.js.map +1 -1
  36. package/dist/focus-lifecycle.d.ts.map +1 -1
  37. package/dist/focus-lifecycle.js +1 -0
  38. package/dist/focus-lifecycle.js.map +1 -1
  39. package/dist/focus-merge.d.ts +27 -17
  40. package/dist/focus-merge.d.ts.map +1 -1
  41. package/dist/focus-merge.js +84 -45
  42. package/dist/focus-merge.js.map +1 -1
  43. package/dist/queries/issues.d.ts +72 -0
  44. package/dist/queries/issues.d.ts.map +1 -1
  45. package/dist/queries/issues.js +131 -0
  46. package/dist/queries/issues.js.map +1 -1
  47. package/dist/queries/local-models.d.ts +13 -8
  48. package/dist/queries/local-models.d.ts.map +1 -1
  49. package/dist/queries/local-models.js +15 -6
  50. package/dist/queries/local-models.js.map +1 -1
  51. package/dist/queries/schemas.d.ts +4 -3
  52. package/dist/queries/schemas.d.ts.map +1 -1
  53. package/dist/queries/schemas.js +11 -7
  54. package/dist/queries/schemas.js.map +1 -1
  55. package/dist/resolvers/focus-context.d.ts +14 -3
  56. package/dist/resolvers/focus-context.d.ts.map +1 -1
  57. package/dist/resolvers/focus-context.js +21 -15
  58. package/dist/resolvers/focus-context.js.map +1 -1
  59. package/dist/resolvers/shared/wiki.d.ts +23 -4
  60. package/dist/resolvers/shared/wiki.d.ts.map +1 -1
  61. package/dist/resolvers/shared/wiki.js +32 -4
  62. package/dist/resolvers/shared/wiki.js.map +1 -1
  63. package/dist/supabase.d.ts +1 -1
  64. package/dist/supabase.d.ts.map +1 -1
  65. package/dist/supabase.js +1 -1
  66. package/dist/supabase.js.map +1 -1
  67. package/dist/worktree-safety.d.ts +36 -0
  68. package/dist/worktree-safety.d.ts.map +1 -1
  69. package/dist/worktree-safety.js +69 -0
  70. package/dist/worktree-safety.js.map +1 -1
  71. package/package.json +3 -3
  72. package/dist/local-model-key-env.d.ts +0 -41
  73. package/dist/local-model-key-env.d.ts.map +0 -1
  74. package/dist/local-model-key-env.js +0 -46
  75. package/dist/local-model-key-env.js.map +0 -1
@@ -5,7 +5,8 @@
5
5
  * including workflow resolution and per-delivery git state reporting.
6
6
  */
7
7
  import type { DaemonConfig, FocusTeamState, MergeConflictResolutionResult } from './types.js';
8
- import { createEscalation } from './queries/issues.js';
8
+ import { reportGitState } from './supabase.js';
9
+ import { createEscalation, hasOpenWorktreeDirtyEscalation } from './queries/issues.js';
9
10
  import { worktreeHasUncommittedChanges } from './worktree-safety.js';
10
11
  /**
11
12
  * Injectable collaborators for the dirty-worktree merge guard. Defaults to the
@@ -15,6 +16,7 @@ import { worktreeHasUncommittedChanges } from './worktree-safety.js';
15
16
  export interface DirtyWorktreeGuardDeps {
16
17
  worktreeHasUncommittedChanges?: typeof worktreeHasUncommittedChanges;
17
18
  createEscalation?: typeof createEscalation;
19
+ hasOpenWorktreeDirtyEscalation?: typeof hasOpenWorktreeDirtyEscalation;
18
20
  }
19
21
  /**
20
22
  * Refuse a focus-branch merge when the worktree still has uncommitted changes.
@@ -22,8 +24,9 @@ export interface DirtyWorktreeGuardDeps {
22
24
  * A merge of a dirty worktree would either silently drop the uncommitted work
23
25
  * or merge an unintended tree -- never acceptable. This guard runs before any
24
26
  * merge attempt: if the worktree is dirty it files an escalation (deduped
25
- * in-memory per delivery) and returns refused=true so the caller aborts the
26
- * merge. A read-only audit worktree that an agent dirtied is the canonical
27
+ * durably at focus grain across the sibling classes -- see
28
+ * hasOpenWorktreeDirtyEscalation) and returns refused=true so the caller aborts
29
+ * the merge. A read-only audit worktree that an agent dirtied is the canonical
27
30
  * case, but the guard is generic -- any dirty worktree refuses.
28
31
  *
29
32
  * Returns refused=false (proceed) when the worktree is clean or no path is
@@ -35,16 +38,12 @@ export declare function refuseMergeIfWorktreeDirty(params: {
35
38
  sessionId: string;
36
39
  deliveryId: string;
37
40
  deliveryName: string;
41
+ focusId: string;
38
42
  branchName: string;
39
43
  integrationBranch: string;
40
44
  }, deps?: DirtyWorktreeGuardDeps): Promise<{
41
45
  refused: boolean;
42
46
  }>;
43
- /**
44
- * Clear the pending dirty-worktree merge-refusal flag for a delivery (e.g.,
45
- * after the worktree is cleaned and a merge succeeds).
46
- */
47
- export declare function clearDirtyWorktreeFlag(deliveryId: string): void;
48
47
  /**
49
48
  * Parameters for merge conflict escalation/reporting.
50
49
  */
@@ -53,6 +52,7 @@ export interface MergeConflictParams {
53
52
  sessionId: string;
54
53
  deliveryId: string;
55
54
  deliveryName: string;
55
+ focusId: string;
56
56
  branchName: string;
57
57
  integrationBranch: string;
58
58
  mergeError: string;
@@ -63,20 +63,30 @@ export interface MergeConflictParams {
63
63
  * Makes the merge failure visible in the frontend delivery detail view.
64
64
  */
65
65
  export declare function reportMergeConflictState(deliveryId: string, branchName: string): Promise<void>;
66
+ /**
67
+ * Injectable collaborators for the merge-conflict escalation. Defaults to the
68
+ * real implementations; tests override them to drive the suppression path
69
+ * without a live Supabase.
70
+ */
71
+ export interface MergeConflictEscalationDeps {
72
+ createEscalation?: typeof createEscalation;
73
+ hasOpenWorktreeDirtyEscalation?: typeof hasOpenWorktreeDirtyEscalation;
74
+ reportGitState?: typeof reportGitState;
75
+ }
66
76
  /**
67
77
  * Create an escalation for a merge conflict and report the git state.
68
78
  *
69
- * Idempotent: skips escalation creation if one is already pending for
70
- * the same delivery (tracked in-memory via pendingMergeConflictDeliveries).
71
- * Always reports merge_conflict git state regardless.
79
+ * Durable, focus-grain dedup: skips escalation creation if any sibling
80
+ * worktree-dirty escalation (advance_blocked / merge_conflict /
81
+ * merge_refused_dirty) is already open for the FOCUS. Because the lookup
82
+ * queries the DB rather than an in-memory Set, the suppression survives a
83
+ * daemon restart and collapses across the sibling paths. Always reports
84
+ * merge_conflict git state regardless (git-state surfacing is not deduped --
85
+ * only the human-facing escalation row is).
72
86
  *
73
87
  * Called by all focus-level merge callers when mergeToIntegration fails.
74
88
  */
75
- export declare function escalateMergeConflict(params: MergeConflictParams): Promise<void>;
76
- /**
77
- * Clear the pending merge conflict flag for a delivery (e.g., after successful retry).
78
- */
79
- export declare function clearMergeConflictFlag(deliveryId: string): void;
89
+ export declare function escalateMergeConflict(params: MergeConflictParams, deps?: MergeConflictEscalationDeps): Promise<void>;
80
90
  /**
81
91
  * Check for deliveries stuck in merge_conflict state and retry the merge.
82
92
  *
@@ -85,7 +95,7 @@ export declare function clearMergeConflictFlag(deliveryId: string): void;
85
95
  * merges), and retries mergeToIntegration for each unique branch.
86
96
  *
87
97
  * On success: reports merged_to_integration for all deliveries on that
88
- * branch and clears their pending merge conflict flags.
98
+ * branch and auto-resolves their open merge_conflict escalations.
89
99
  * On failure: logs quietly (the existing escalation remains active).
90
100
  */
91
101
  export declare function checkResolvedMergeConflicts(config: DaemonConfig): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"focus-merge.d.ts","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAMpB,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAKvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AASrE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B,CAAC,EAAE,OAAO,6BAA6B,CAAC;IACrE,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;CAC5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EACD,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAsD/B;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;;;;;GAQG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,mBAAmB,GAC1B,OAAO,CAAC,IAAI,CAAC,CA2Cf;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAE/D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CA6Gf;AAUD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,MAA6C,GACvD,OAAO,CAAC,6BAA6B,CAAC,CA4DxC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAiL1D"}
1
+ {"version":3,"file":"focus-merge.d.ts","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,YAAY,EACZ,cAAc,EAEd,6BAA6B,EAC9B,MAAM,YAAY,CAAC;AAEpB,OAAO,EAA0B,cAAc,EAA8B,MAAM,eAAe,CAAC;AAInG,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAI/B,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,6BAA6B,EAAE,MAAM,sBAAsB,CAAC;AAErE;;;;GAIG;AACH,MAAM,WAAW,sBAAsB;IACrC,6BAA6B,CAAC,EAAE,OAAO,6BAA6B,CAAC;IACrE,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,8BAA8B,CAAC,EAAE,OAAO,8BAA8B,CAAC;CACxE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,0BAA0B,CAC9C,MAAM,EAAE;IACN,YAAY,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IACxC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;CAC3B,EACD,IAAI,GAAE,sBAA2B,GAChC,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAkE/B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;;;GAIG;AACH,wBAAsB,wBAAwB,CAC5C,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC,CASf;AAED;;;;GAIG;AACH,MAAM,WAAW,2BAA2B;IAC1C,gBAAgB,CAAC,EAAE,OAAO,gBAAgB,CAAC;IAC3C,8BAA8B,CAAC,EAAE,OAAO,8BAA8B,CAAC;IACvE,cAAc,CAAC,EAAE,OAAO,cAAc,CAAC;CACxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,qBAAqB,CACzC,MAAM,EAAE,mBAAmB,EAC3B,IAAI,GAAE,2BAAgC,GACrC,OAAO,CAAC,IAAI,CAAC,CA4Df;AAiCD;;;;;;;;;;GAUG;AACH,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,IAAI,CAAC,CAgHf;AAUD;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,SAAS,EAAE,cAAc,EACzB,aAAa,EAAE,MAAM,EAAE,EACvB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EACzB,SAAS,GAAE,MAA6C,GACvD,OAAO,CAAC,6BAA6B,CAAC,CA4DxC;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,EAClB,iBAAiB,EAAE,MAAM,EAAE,GAC1B,OAAO,CAAC;IAAE,cAAc,EAAE,OAAO,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAoL1D"}
@@ -9,25 +9,21 @@ import { fetchEffectiveWorkflow, reportGitState, getMergeConflictDeliveries } fr
9
9
  import { mergeToIntegration } from './git.js';
10
10
  import { mergeBackFromIntegration } from './git-merge.js';
11
11
  import { mergeDeliveryBranch } from './delivery-lifecycle.js';
12
- import { createEscalation } from './queries/issues.js';
12
+ import { createEscalation, hasOpenWorktreeDirtyEscalation, resolveOpenWorktreeDirtyEscalations, MERGE_CONFLICT_ESCALATION_KIND, MERGE_REFUSED_DIRTY_ESCALATION_KIND, } from './queries/issues.js';
13
13
  import { updateDeliveryMergeCommitSha } from './queries/deliveries.js';
14
14
  import { withRetry, sendMessage, ESCALATION_REASONS, ESCALATION_DISPOSITIONS } from '@telora/daemon-core';
15
15
  import { spawnResolutionAgent } from './spawner/index.js';
16
16
  import { getFocusWorktree } from './focus-worktree-state.js';
17
17
  import { worktreeHasUncommittedChanges } from './worktree-safety.js';
18
- // Track deliveries with pending merge conflict escalations to avoid duplicates
19
- const pendingMergeConflictDeliveries = new Set();
20
- // Track deliveries with a pending dirty-worktree merge-refusal escalation, to
21
- // avoid filing a duplicate on every merge tick while the worktree stays dirty.
22
- const pendingDirtyWorktreeDeliveries = new Set();
23
18
  /**
24
19
  * Refuse a focus-branch merge when the worktree still has uncommitted changes.
25
20
  *
26
21
  * A merge of a dirty worktree would either silently drop the uncommitted work
27
22
  * or merge an unintended tree -- never acceptable. This guard runs before any
28
23
  * merge attempt: if the worktree is dirty it files an escalation (deduped
29
- * in-memory per delivery) and returns refused=true so the caller aborts the
30
- * merge. A read-only audit worktree that an agent dirtied is the canonical
24
+ * durably at focus grain across the sibling classes -- see
25
+ * hasOpenWorktreeDirtyEscalation) and returns refused=true so the caller aborts
26
+ * the merge. A read-only audit worktree that an agent dirtied is the canonical
31
27
  * case, but the guard is generic -- any dirty worktree refuses.
32
28
  *
33
29
  * Returns refused=false (proceed) when the worktree is clean or no path is
@@ -36,18 +32,30 @@ const pendingDirtyWorktreeDeliveries = new Set();
36
32
  export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
37
33
  const hasUncommitted = deps.worktreeHasUncommittedChanges ?? worktreeHasUncommittedChanges;
38
34
  const createEsc = deps.createEscalation ?? createEscalation;
39
- const { worktreePath, organizationId, sessionId, deliveryId, deliveryName, branchName, integrationBranch } = params;
35
+ const hasOpenEsc = deps.hasOpenWorktreeDirtyEscalation ?? hasOpenWorktreeDirtyEscalation;
36
+ const { worktreePath, organizationId, sessionId, deliveryId, deliveryName, focusId, branchName, integrationBranch } = params;
40
37
  if (!worktreePath || !hasUncommitted(worktreePath)) {
41
38
  return { refused: false };
42
39
  }
43
40
  console.warn(`[focus-merge] REFUSING merge of "${deliveryName}" (${branchName} -> ${integrationBranch}): ` +
44
41
  `worktree ${worktreePath} has uncommitted changes.`);
45
- // Dedup: at most one open dirty-worktree escalation per delivery while the
46
- // worktree stays dirty across merge ticks.
47
- if (pendingDirtyWorktreeDeliveries.has(deliveryId)) {
42
+ // Durable, focus-grain dedup: at most one open worktree-dirty escalation per
43
+ // FOCUS, collapsed across the sibling classes (advance_blocked /
44
+ // merge_conflict / merge_refused_dirty). If any sibling is already open for
45
+ // the focus, suppress -- one physical dirty-worktree fact yields one row,
46
+ // and the suppression survives a daemon restart (it reads the DB, holds no
47
+ // in-memory state). Fail open: if the lookup errors we still refuse the
48
+ // merge, and proceed to file rather than swallow a genuine first escalation.
49
+ let alreadyOpen = false;
50
+ try {
51
+ alreadyOpen = await hasOpenEsc(focusId);
52
+ }
53
+ catch (err) {
54
+ console.warn(`[focus-merge] Open worktree-dirty escalation lookup failed for "${deliveryName}", proceeding to file: ${err.message}`);
55
+ }
56
+ if (alreadyOpen) {
48
57
  return { refused: true };
49
58
  }
50
- pendingDirtyWorktreeDeliveries.add(deliveryId);
51
59
  try {
52
60
  await withRetry(() => createEsc({
53
61
  organizationId,
@@ -55,7 +63,8 @@ export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
55
63
  issueId: null,
56
64
  reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
57
65
  disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
58
- anchor: { deliveryId, branch: branchName },
66
+ escalationKind: MERGE_REFUSED_DIRTY_ESCALATION_KIND,
67
+ anchor: { deliveryId, focusId, branch: branchName },
59
68
  description: `Merge refused: focus worktree has uncommitted changes.\n\n` +
60
69
  `**Focus/Delivery:** ${deliveryName}\n` +
61
70
  `**Source branch:** ${branchName}\n` +
@@ -71,18 +80,9 @@ export async function refuseMergeIfWorktreeDirty(params, deps = {}) {
71
80
  }
72
81
  catch (err) {
73
82
  console.error(`[focus-merge] Failed to file dirty-worktree merge-refusal escalation for "${deliveryName}": ${err.message}`);
74
- // Remove from pending so a later tick can retry filing.
75
- pendingDirtyWorktreeDeliveries.delete(deliveryId);
76
83
  }
77
84
  return { refused: true };
78
85
  }
79
- /**
80
- * Clear the pending dirty-worktree merge-refusal flag for a delivery (e.g.,
81
- * after the worktree is cleaned and a merge succeeds).
82
- */
83
- export function clearDirtyWorktreeFlag(deliveryId) {
84
- pendingDirtyWorktreeDeliveries.delete(deliveryId);
85
- }
86
86
  /**
87
87
  * Report merge_conflict git state for a delivery.
88
88
  *
@@ -99,30 +99,51 @@ export async function reportMergeConflictState(deliveryId, branchName) {
99
99
  /**
100
100
  * Create an escalation for a merge conflict and report the git state.
101
101
  *
102
- * Idempotent: skips escalation creation if one is already pending for
103
- * the same delivery (tracked in-memory via pendingMergeConflictDeliveries).
104
- * Always reports merge_conflict git state regardless.
102
+ * Durable, focus-grain dedup: skips escalation creation if any sibling
103
+ * worktree-dirty escalation (advance_blocked / merge_conflict /
104
+ * merge_refused_dirty) is already open for the FOCUS. Because the lookup
105
+ * queries the DB rather than an in-memory Set, the suppression survives a
106
+ * daemon restart and collapses across the sibling paths. Always reports
107
+ * merge_conflict git state regardless (git-state surfacing is not deduped --
108
+ * only the human-facing escalation row is).
105
109
  *
106
110
  * Called by all focus-level merge callers when mergeToIntegration fails.
107
111
  */
108
- export async function escalateMergeConflict(params) {
109
- const { organizationId, sessionId, deliveryId, deliveryName, branchName, integrationBranch, mergeError } = params;
110
- // Always report merge_conflict git state
111
- await reportMergeConflictState(deliveryId, branchName);
112
- // Skip duplicate escalation
113
- if (pendingMergeConflictDeliveries.has(deliveryId)) {
114
- console.log(`[focus-merge] Merge conflict escalation already pending for delivery ${deliveryId}, skipping duplicate`);
112
+ export async function escalateMergeConflict(params, deps = {}) {
113
+ const createEsc = deps.createEscalation ?? createEscalation;
114
+ const hasOpenEsc = deps.hasOpenWorktreeDirtyEscalation ?? hasOpenWorktreeDirtyEscalation;
115
+ const reportState = deps.reportGitState ?? reportGitState;
116
+ const { organizationId, sessionId, deliveryId, deliveryName, focusId, branchName, integrationBranch, mergeError } = params;
117
+ // Always report merge_conflict git state (git-state surfacing is not deduped).
118
+ try {
119
+ await reportState(deliveryId, 'merge_conflict', branchName);
120
+ }
121
+ catch (err) {
122
+ console.warn(`[focus-merge] reportGitState merge_conflict failed for ${deliveryId}:`, err.message);
123
+ }
124
+ // Durable, focus-grain dedup across the sibling classes. Fail open: if the
125
+ // lookup errors we proceed to file rather than swallow a genuine first
126
+ // escalation.
127
+ let alreadyOpen = false;
128
+ try {
129
+ alreadyOpen = await hasOpenEsc(focusId);
130
+ }
131
+ catch (err) {
132
+ console.warn(`[focus-merge] Open worktree-dirty escalation lookup failed for "${deliveryName}", proceeding to file: ${err.message}`);
133
+ }
134
+ if (alreadyOpen) {
135
+ console.log(`[focus-merge] Worktree-dirty escalation already open for focus ${focusId}, skipping duplicate merge-conflict row`);
115
136
  return;
116
137
  }
117
- pendingMergeConflictDeliveries.add(deliveryId);
118
138
  try {
119
- await withRetry(() => createEscalation({
139
+ await withRetry(() => createEsc({
120
140
  organizationId,
121
141
  sessionId,
122
142
  issueId: null,
123
143
  reasonType: ESCALATION_REASONS.ERROR_ENCOUNTERED,
124
144
  disposition: ESCALATION_DISPOSITIONS.NEEDS_OPERATOR,
125
- anchor: { deliveryId, branch: branchName },
145
+ escalationKind: MERGE_CONFLICT_ESCALATION_KIND,
146
+ anchor: { deliveryId, focusId, branch: branchName },
126
147
  description: `Merge conflict merging focus branch into integration.\n\n` +
127
148
  `**Delivery:** ${deliveryName}\n` +
128
149
  `**Source branch:** ${branchName}\n` +
@@ -136,15 +157,27 @@ export async function escalateMergeConflict(params) {
136
157
  }
137
158
  catch (err) {
138
159
  console.error(`[focus-merge] Failed to create merge conflict escalation for "${deliveryName}": ${err.message}`);
139
- // Remove from pending set so a retry can create it later
140
- pendingMergeConflictDeliveries.delete(deliveryId);
141
160
  }
142
161
  }
143
162
  /**
144
- * Clear the pending merge conflict flag for a delivery (e.g., after successful retry).
163
+ * Best-effort: close any open merge_conflict escalation for the focuses behind a
164
+ * branch group once the merge has actually gone through. A clean worktree does
165
+ * NOT clear a content conflict -- only a successful merge does -- so the
166
+ * merge-success path (not the advance-block clean path) owns merge_conflict
167
+ * auto-resolution. Fire-and-forget with a logged catch so it never blocks the
168
+ * merge bookkeeping.
145
169
  */
146
- export function clearMergeConflictFlag(deliveryId) {
147
- pendingMergeConflictDeliveries.delete(deliveryId);
170
+ function resolveMergeConflictEscalations(deliveries) {
171
+ const focusIds = new Set(deliveries.map((d) => d.focus_id).filter((id) => !!id));
172
+ for (const focusId of focusIds) {
173
+ resolveOpenWorktreeDirtyEscalations(focusId, [MERGE_CONFLICT_ESCALATION_KIND])
174
+ .then((n) => {
175
+ if (n > 0) {
176
+ console.log(`[focus-merge] Merge resolved for focus ${focusId}; auto-resolved ${n} merge-conflict escalation(s).`);
177
+ }
178
+ })
179
+ .catch((err) => console.warn(`[focus-merge] Auto-resolve of merge-conflict escalation failed for focus ${focusId}: ${err.message}`));
180
+ }
148
181
  }
149
182
  /**
150
183
  * Check for deliveries stuck in merge_conflict state and retry the merge.
@@ -154,7 +187,7 @@ export function clearMergeConflictFlag(deliveryId) {
154
187
  * merges), and retries mergeToIntegration for each unique branch.
155
188
  *
156
189
  * On success: reports merged_to_integration for all deliveries on that
157
- * branch and clears their pending merge conflict flags.
190
+ * branch and auto-resolves their open merge_conflict escalations.
158
191
  * On failure: logs quietly (the existing escalation remains active).
159
192
  */
160
193
  export async function checkResolvedMergeConflicts(config) {
@@ -189,11 +222,14 @@ export async function checkResolvedMergeConflicts(config) {
189
222
  });
190
223
  if (mergeResult.success) {
191
224
  console.log(`[focus-merge] Merge retry succeeded for branch ${branchName}`);
192
- // Update all deliveries in this branch group
225
+ // Update all deliveries in this branch group. Dedup is durable now (an
226
+ // open escalation suppresses re-filing); now that the merge succeeded we
227
+ // also auto-resolve the open merge_conflict escalation(s) for the focus so
228
+ // a resolved-in-fact conflict stops sitting in the human inbox.
193
229
  for (const d of deliveries) {
194
- clearMergeConflictFlag(d.delivery_id);
195
230
  reportGitState(d.delivery_id, 'merged_to_integration').catch((err) => console.warn(`[focus-merge] reportGitState merged_to_integration failed for ${d.delivery_id}:`, err.message));
196
231
  }
232
+ resolveMergeConflictEscalations(deliveries);
197
233
  }
198
234
  else {
199
235
  console.log(`[focus-merge] Merge retry still failing for branch ${branchName}: ${mergeResult.error ?? 'unknown'}`);
@@ -228,9 +264,9 @@ export async function checkResolvedMergeConflicts(config) {
228
264
  if (retryResult.success) {
229
265
  console.log(`[focus-merge] Merge succeeded after fallback resolution for branch ${branchName}`);
230
266
  for (const d of deliveries) {
231
- clearMergeConflictFlag(d.delivery_id);
232
267
  reportGitState(d.delivery_id, 'merged_to_integration').catch((err) => console.warn(`[focus-merge] reportGitState failed for ${d.delivery_id}:`, err.message));
233
268
  }
269
+ resolveMergeConflictEscalations(deliveries);
234
270
  }
235
271
  }
236
272
  }
@@ -339,6 +375,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
339
375
  sessionId,
340
376
  deliveryId: representativeDeliveryId,
341
377
  deliveryName: teamState.focusName,
378
+ focusId: teamState.focusId,
342
379
  branchName,
343
380
  integrationBranch: config.integrationBranch,
344
381
  });
@@ -380,6 +417,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
380
417
  sessionId,
381
418
  deliveryId: representativeDeliveryId,
382
419
  deliveryName: teamState.focusName,
420
+ focusId: teamState.focusId,
383
421
  branchName,
384
422
  integrationBranch: config.integrationBranch,
385
423
  mergeError: `Merge-back conflict unresolved: ${resolution.reason ?? 'unknown'}`,
@@ -414,6 +452,7 @@ export async function mergeFocusBranch(config, teamState, sessionId, branchName,
414
452
  sessionId,
415
453
  deliveryId: representativeDeliveryId,
416
454
  deliveryName: teamState.focusName,
455
+ focusId: teamState.focusId,
417
456
  branchName,
418
457
  integrationBranch: config.integrationBranch,
419
458
  mergeError: `Fallback resolution agent failed: ${fallbackResult.error ?? 'unknown'}`,
@@ -1 +1 @@
1
- {"version":3,"file":"focus-merge.js","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"focus-merge.js","sourceRoot":"","sources":["../src/focus-merge.ts"],"names":[],"mappings":"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"}
@@ -147,6 +147,78 @@ export declare function hasOpenTeamFailureEscalation(focusId: string): Promise<b
147
147
  * polls files exactly one open escalation instead of one per tick.
148
148
  */
149
149
  export declare function hasOpenEscalationForDelivery(deliveryId: string, escalationKind: string): Promise<boolean>;
150
+ /**
151
+ * escalation_kind discriminators for the two focus-merge worktree-dirty
152
+ * classes. Declared as daemon-local string constants (not imported from
153
+ * @telora/daemon-core's ESCALATION_KINDS) on purpose: the daemon consumes the
154
+ * registry-PUBLISHED daemon-core, so it cannot reference newly-added enum
155
+ * members until a build that depends on a daemon-core publish carrying them.
156
+ * They ARE now in daemon-core (ESCALATION_KINDS.MERGE_CONFLICT /
157
+ * .MERGE_REFUSED_DIRTY, shipped in 0.2.45) for other consumers (frontend, MCP),
158
+ * but the daemon keeps the local strings so this code does not depend on the
159
+ * publish ordering. The DB CHECK is the real constraint -- loosened by the
160
+ * agent_escalations_kind_merge_classes migration to admit these two values --
161
+ * and the daemon stamps them as plain strings.
162
+ * (advance_blocked already shipped in daemon-core as ESCALATION_KINDS.ADVANCE_BLOCKED.)
163
+ */
164
+ export declare const MERGE_CONFLICT_ESCALATION_KIND = "merge_conflict";
165
+ export declare const MERGE_REFUSED_DIRTY_ESCALATION_KIND = "merge_refused_dirty";
166
+ /**
167
+ * The worktree-dirty escalation classes: a single physical fact (one focus
168
+ * worktree with uncommitted changes) can be observed by three independent
169
+ * daemon paths -- the delivery advance-block guard (advance_blocked), the
170
+ * focus-merge dirty-worktree refusal (merge_refused_dirty), and the
171
+ * focus-merge conflict path (merge_conflict). They are siblings: when one is
172
+ * already open for a focus, the others should suppress rather than pile on.
173
+ */
174
+ export declare const WORKTREE_DIRTY_ESCALATION_KINDS: readonly string[];
175
+ /**
176
+ * Returns true when an open (status pending or in_review) worktree-dirty-class
177
+ * escalation exists for the given FOCUS.
178
+ *
179
+ * This generalizes hasOpenEscalationForDelivery from per-delivery to
180
+ * focus/worktree grain. A dirty worktree is a property of one focus worktree
181
+ * shared by all of the focus's deliveries, so deduping per delivery emits N
182
+ * rows for one physical fact. Keying on the focus collapses them to one.
183
+ *
184
+ * It also collapses ACROSS escalation classes: by default the sibling set is
185
+ * { advance_blocked, merge_conflict, merge_refused_dirty }, so an open
186
+ * advance-block escalation suppresses a merge-refuse one (and vice versa) --
187
+ * one dirty-worktree fact yields at most one open escalation regardless of how
188
+ * many code paths observe it. Pass `kinds` to narrow the sibling set.
189
+ *
190
+ * Dedup matches on the typed `focus_id` + `escalation_kind` COLUMNS in
191
+ * preference to the metadata bag, with a metadata fallback (metadata.focusId /
192
+ * metadata.kind) for rows already open at deploy time. Because it queries the
193
+ * DB rather than an in-memory Set, the dedup survives a daemon restart.
194
+ *
195
+ * The request narrows server-side by `focusId` + open `statuses` (both honored
196
+ * by the live escalation_list handler) so the 500-row page is scoped to this
197
+ * focus's open rows, not the org's newest 500 -- closing the gap where a busy
198
+ * org could push the matching sibling off the page. The status + focus + kind
199
+ * predicate is ALSO applied client-side (isOpenWorktreeDirtyMatch) as
200
+ * defense-in-depth.
201
+ */
202
+ export declare function hasOpenWorktreeDirtyEscalation(focusId: string, kinds?: readonly string[]): Promise<boolean>;
203
+ /**
204
+ * Auto-resolve the open worktree-dirty escalations for a focus once their
205
+ * underlying condition has cleared (the worktree is observed clean again, or a
206
+ * merge conflict has been merged through). Lists the open rows for the focus
207
+ * narrowed to `kinds`, resolves each with a daemon-remediation note, and
208
+ * returns the count resolved.
209
+ *
210
+ * This is the close half of the disposition-aware model: an agent_resolvable
211
+ * condition that auto-remediates should also stop showing in the human inbox
212
+ * the moment it clears, instead of lingering as a resolved-in-fact but
213
+ * still-pending row. Best-effort: a resolve failure for one row is logged and
214
+ * skipped, never thrown, so the caller's primary work is not blocked.
215
+ *
216
+ * Callers MUST pass `kinds` narrowed to the conditions the clearing event
217
+ * actually resolves -- e.g. a clean worktree clears advance_blocked /
218
+ * merge_refused_dirty but NOT merge_conflict (a content conflict is not a dirty
219
+ * worktree), and a successful merge clears merge_conflict.
220
+ */
221
+ export declare function resolveOpenWorktreeDirtyEscalations(focusId: string, kinds: readonly string[], resolutionNotes?: string): Promise<number>;
150
222
  /**
151
223
  * Mark an escalation as resolved with optional notes.
152
224
  */
@@ -1 +1 @@
1
- {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"issues.d.ts","sourceRoot":"","sources":["../../src/queries/issues.ts"],"names":[],"mappings":"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"}