hungry-ghost-hive 0.34.1 → 0.36.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.
- package/dist/db/queries/logs.d.ts +1 -1
- package/dist/db/queries/logs.d.ts.map +1 -1
- package/dist/db/queries/logs.js.map +1 -1
- package/dist/orchestrator/feature-branch.d.ts +50 -0
- package/dist/orchestrator/feature-branch.d.ts.map +1 -0
- package/dist/orchestrator/feature-branch.js +163 -0
- package/dist/orchestrator/feature-branch.js.map +1 -0
- package/dist/orchestrator/feature-branch.test.d.ts +2 -0
- package/dist/orchestrator/feature-branch.test.d.ts.map +1 -0
- package/dist/orchestrator/feature-branch.test.js +437 -0
- package/dist/orchestrator/feature-branch.test.js.map +1 -0
- package/dist/orchestrator/prompt-templates.d.ts +5 -0
- package/dist/orchestrator/prompt-templates.d.ts.map +1 -1
- package/dist/orchestrator/prompt-templates.js +81 -0
- package/dist/orchestrator/prompt-templates.js.map +1 -1
- package/dist/orchestrator/prompt-templates.test.js +54 -1
- package/dist/orchestrator/prompt-templates.test.js.map +1 -1
- package/dist/orchestrator/scheduler.d.ts +23 -0
- package/dist/orchestrator/scheduler.d.ts.map +1 -1
- package/dist/orchestrator/scheduler.js +47 -2
- package/dist/orchestrator/scheduler.js.map +1 -1
- package/package.json +1 -1
- package/src/db/queries/logs.ts +3 -1
- package/src/orchestrator/feature-branch.test.ts +549 -0
- package/src/orchestrator/feature-branch.ts +197 -0
- package/src/orchestrator/prompt-templates.test.ts +155 -0
- package/src/orchestrator/prompt-templates.ts +90 -0
- package/src/orchestrator/scheduler.ts +92 -2
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Database } from 'sql.js';
|
|
2
2
|
import { type AgentLogRow } from '../client.js';
|
|
3
3
|
export type { AgentLogRow };
|
|
4
|
-
export type EventType = 'AGENT_SPAWNED' | 'AGENT_SPAWN_FAILED' | 'AGENT_TERMINATED' | 'AGENT_RESUMED' | 'AGENT_CHECKPOINT' | 'WORKTREE_REMOVAL_FAILED' | 'REQUIREMENT_RECEIVED' | 'PLANNING_STARTED' | 'PLANNING_COMPLETED' | 'STORY_CREATED' | 'STORY_ESTIMATED' | 'STORY_ASSIGNED' | 'STORY_STARTED' | 'STORY_PROGRESS_UPDATE' | 'STORY_COMPLETED' | 'STORY_REVIEW_REQUESTED' | 'STORY_QA_STARTED' | 'STORY_QA_PASSED' | 'STORY_QA_FAILED' | 'STORY_PR_CREATED' | 'STORY_MERGED' | 'DUPLICATE_ASSIGNMENT_PREVENTED' | 'ORPHANED_STORY_RECOVERED' | 'CODEBASE_SWEEP_STARTED' | 'CODEBASE_SWEEP_COMPLETED' | 'BUILD_STARTED' | 'BUILD_PASSED' | 'BUILD_FAILED' | 'CODE_QUALITY_CHECK_STARTED' | 'CODE_QUALITY_CHECK_PASSED' | 'CODE_QUALITY_CHECK_FAILED' | 'ESCALATION_CREATED' | 'ESCALATION_RESOLVED' | 'TEAM_SCALED_UP' | 'TEAM_SCALED_DOWN' | 'QA_SPAWNED' | 'PR_SUBMITTED' | 'PR_REVIEW_STARTED' | 'PR_APPROVED' | 'PR_MERGED' | 'PR_REJECTED' | 'PR_CLOSED' | 'PR_MERGE_FAILED' | 'PR_MERGE_SKIPPED' | 'PR_SYNC_SKIPPED' | 'JIRA_SYNC_STARTED' | 'JIRA_SYNC_COMPLETED' | 'JIRA_SYNC_WARNING' | 'JIRA_EPIC_CREATED' | 'JIRA_STORY_CREATED' | 'JIRA_TRANSITION_SUCCESS' | 'JIRA_TRANSITION_FAILED' | 'JIRA_BOARD_POLL_STARTED' | 'JIRA_BOARD_POLL_COMPLETED' | 'JIRA_EPIC_INGESTED' | 'JIRA_ASSIGNMENT_REPAIRED' | 'JIRA_ASSIGNMENT_REPAIR_FAILED' | 'APPROACH_POSTED';
|
|
4
|
+
export type EventType = 'AGENT_SPAWNED' | 'AGENT_SPAWN_FAILED' | 'AGENT_TERMINATED' | 'AGENT_RESUMED' | 'AGENT_CHECKPOINT' | 'WORKTREE_REMOVAL_FAILED' | 'REQUIREMENT_RECEIVED' | 'PLANNING_STARTED' | 'PLANNING_COMPLETED' | 'STORY_CREATED' | 'STORY_ESTIMATED' | 'STORY_ASSIGNED' | 'STORY_STARTED' | 'STORY_PROGRESS_UPDATE' | 'STORY_COMPLETED' | 'STORY_REVIEW_REQUESTED' | 'STORY_QA_STARTED' | 'STORY_QA_PASSED' | 'STORY_QA_FAILED' | 'STORY_PR_CREATED' | 'STORY_MERGED' | 'DUPLICATE_ASSIGNMENT_PREVENTED' | 'ORPHANED_STORY_RECOVERED' | 'CODEBASE_SWEEP_STARTED' | 'CODEBASE_SWEEP_COMPLETED' | 'BUILD_STARTED' | 'BUILD_PASSED' | 'BUILD_FAILED' | 'CODE_QUALITY_CHECK_STARTED' | 'CODE_QUALITY_CHECK_PASSED' | 'CODE_QUALITY_CHECK_FAILED' | 'ESCALATION_CREATED' | 'ESCALATION_RESOLVED' | 'TEAM_SCALED_UP' | 'TEAM_SCALED_DOWN' | 'QA_SPAWNED' | 'PR_SUBMITTED' | 'PR_REVIEW_STARTED' | 'PR_APPROVED' | 'PR_MERGED' | 'PR_REJECTED' | 'PR_CLOSED' | 'PR_MERGE_FAILED' | 'PR_MERGE_SKIPPED' | 'PR_SYNC_SKIPPED' | 'JIRA_SYNC_STARTED' | 'JIRA_SYNC_COMPLETED' | 'JIRA_SYNC_WARNING' | 'JIRA_EPIC_CREATED' | 'JIRA_STORY_CREATED' | 'JIRA_TRANSITION_SUCCESS' | 'JIRA_TRANSITION_FAILED' | 'JIRA_BOARD_POLL_STARTED' | 'JIRA_BOARD_POLL_COMPLETED' | 'JIRA_EPIC_INGESTED' | 'JIRA_ASSIGNMENT_REPAIRED' | 'JIRA_ASSIGNMENT_REPAIR_FAILED' | 'APPROACH_POSTED' | 'FEATURE_BRANCH_CREATED' | 'FEATURE_BRANCH_FAILED';
|
|
5
5
|
export interface CreateLogInput {
|
|
6
6
|
agentId: string;
|
|
7
7
|
storyId?: string | null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/db/queries/logs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzE,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,gCAAgC,GAChC,0BAA0B,GAC1B,wBAAwB,GACxB,0BAA0B,GAC1B,eAAe,GACf,cAAc,GACd,cAAc,GACd,4BAA4B,GAC5B,2BAA2B,GAC3B,2BAA2B,GAC3B,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,mBAAmB,GACnB,aAAa,GACb,WAAW,GACX,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,0BAA0B,GAC1B,+BAA+B,GAC/B,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.d.ts","sourceRoot":"","sources":["../../../src/db/queries/logs.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,EAA2B,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAEzE,YAAY,EAAE,WAAW,EAAE,CAAC;AAE5B,MAAM,MAAM,SAAS,GACjB,eAAe,GACf,oBAAoB,GACpB,kBAAkB,GAClB,eAAe,GACf,kBAAkB,GAClB,yBAAyB,GACzB,sBAAsB,GACtB,kBAAkB,GAClB,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,eAAe,GACf,uBAAuB,GACvB,iBAAiB,GACjB,wBAAwB,GACxB,kBAAkB,GAClB,iBAAiB,GACjB,iBAAiB,GACjB,kBAAkB,GAClB,cAAc,GACd,gCAAgC,GAChC,0BAA0B,GAC1B,wBAAwB,GACxB,0BAA0B,GAC1B,eAAe,GACf,cAAc,GACd,cAAc,GACd,4BAA4B,GAC5B,2BAA2B,GAC3B,2BAA2B,GAC3B,oBAAoB,GACpB,qBAAqB,GACrB,gBAAgB,GAChB,kBAAkB,GAClB,YAAY,GACZ,cAAc,GACd,mBAAmB,GACnB,aAAa,GACb,WAAW,GACX,aAAa,GACb,WAAW,GACX,iBAAiB,GACjB,kBAAkB,GAClB,iBAAiB,GACjB,mBAAmB,GACnB,qBAAqB,GACrB,mBAAmB,GACnB,mBAAmB,GACnB,oBAAoB,GACpB,yBAAyB,GACzB,wBAAwB,GACxB,yBAAyB,GACzB,2BAA2B,GAC3B,oBAAoB,GACpB,0BAA0B,GAC1B,+BAA+B,GAC/B,iBAAiB,GACjB,wBAAwB,GACxB,uBAAuB,CAAC;AAE5B,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC3C;AAiGD,wBAAgB,SAAS,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,cAAc,GAAG,WAAW,CA0B1E;AAED,wBAAgB,UAAU,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAE5E;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAM,GAAG,WAAW,EAAE,CAWxF;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,EAAE,CAU3E;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,KAAK,SAAM,GAAG,WAAW,EAAE,CAWjG;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,SAAK,GAAG,WAAW,EAAE,CAUrE;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,GAAG,WAAW,EAAE,CAUvE;AAED,wBAAgB,sBAAsB,CAAC,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAW5E;AAED,wBAAgB,YAAY,CAAC,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,GAAG,MAAM,CAiBxE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/db/queries/logs.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAG7D,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,EAAoB,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"logs.js","sourceRoot":"","sources":["../../../src/db/queries/logs.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import type { Database } from 'sql.js';
|
|
2
|
+
import type { HiveConfig } from '../config/schema.js';
|
|
3
|
+
import { type RequirementRow } from '../db/queries/requirements.js';
|
|
4
|
+
/**
|
|
5
|
+
* Generate a feature branch name for a requirement.
|
|
6
|
+
* Format: feature/REQ-xxx (lowercased requirement ID)
|
|
7
|
+
*/
|
|
8
|
+
export declare function getFeatureBranchName(requirementId: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Check if a requirement has e2e_tests configured and should use feature branches.
|
|
11
|
+
*/
|
|
12
|
+
export declare function requiresFeatureBranch(hiveConfig: HiveConfig | undefined): boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Check if a requirement is eligible for feature branch creation.
|
|
15
|
+
* A requirement is eligible when:
|
|
16
|
+
* - It has no feature_branch set yet
|
|
17
|
+
* - It is in 'planned' status (about to transition to in_progress)
|
|
18
|
+
* - The hive config has e2e_tests configured
|
|
19
|
+
*/
|
|
20
|
+
export declare function isEligibleForFeatureBranch(requirement: RequirementRow, hiveConfig: HiveConfig | undefined): boolean;
|
|
21
|
+
/**
|
|
22
|
+
* Create a feature branch for a requirement from main and push it to the remote.
|
|
23
|
+
* Updates the requirement's target_branch and feature_branch fields.
|
|
24
|
+
*
|
|
25
|
+
* @param db - Database instance
|
|
26
|
+
* @param repoPath - Full path to the repository
|
|
27
|
+
* @param requirementId - The requirement ID (e.g., REQ-ABCD1234)
|
|
28
|
+
* @param saveFn - Optional function to persist database changes
|
|
29
|
+
* @returns The feature branch name, or null if creation failed
|
|
30
|
+
*/
|
|
31
|
+
export declare function createRequirementFeatureBranch(db: Database, repoPath: string, requirementId: string, saveFn?: () => void): Promise<string | null>;
|
|
32
|
+
/**
|
|
33
|
+
* Create a PR from a feature branch back to main.
|
|
34
|
+
* Called after sign-off passes for a requirement.
|
|
35
|
+
*
|
|
36
|
+
* @param repoPath - Full path to the repository
|
|
37
|
+
* @param requirement - The requirement row
|
|
38
|
+
* @returns The PR URL, or null if creation failed
|
|
39
|
+
*/
|
|
40
|
+
export declare function createFeatureBranchPR(repoPath: string, requirement: RequirementRow): Promise<{
|
|
41
|
+
number: number;
|
|
42
|
+
url: string;
|
|
43
|
+
} | null>;
|
|
44
|
+
/**
|
|
45
|
+
* Get requirements that need feature branch creation during story assignment.
|
|
46
|
+
* Returns requirement IDs for stories being assigned where the requirement
|
|
47
|
+
* is in 'planned' status and doesn't have a feature branch yet.
|
|
48
|
+
*/
|
|
49
|
+
export declare function getRequirementsNeedingFeatureBranch(db: Database, storyIds: string[], hiveConfig: HiveConfig | undefined): string[];
|
|
50
|
+
//# sourceMappingURL=feature-branch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-branch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAGL,KAAK,cAAc,EACpB,MAAM,+BAA+B,CAAC;AAOvC;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAElE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAEjF;AAED;;;;;;GAMG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,cAAc,EAC3B,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAKT;AAED;;;;;;;;;GASG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,EACrB,MAAM,CAAC,EAAE,MAAM,IAAI,GAClB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwExB;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,MAAM,EAChB,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAAC,CAejD;AAED;;;;GAIG;AACH,wBAAgB,mCAAmC,CACjD,EAAE,EAAE,QAAQ,EACZ,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,MAAM,EAAE,CAoBV"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
// Licensed under the Hungry Ghost Hive License. See LICENSE.
|
|
2
|
+
import { execa } from 'execa';
|
|
3
|
+
import { queryAll } from '../db/client.js';
|
|
4
|
+
import { createLog } from '../db/queries/logs.js';
|
|
5
|
+
import { getRequirementById, updateRequirement, } from '../db/queries/requirements.js';
|
|
6
|
+
import { createPullRequest as createGitHubPR } from '../git/github.js';
|
|
7
|
+
/** Timeout in ms for git operations during feature branch management */
|
|
8
|
+
const GIT_TIMEOUT_MS = 30000;
|
|
9
|
+
/**
|
|
10
|
+
* Generate a feature branch name for a requirement.
|
|
11
|
+
* Format: feature/REQ-xxx (lowercased requirement ID)
|
|
12
|
+
*/
|
|
13
|
+
export function getFeatureBranchName(requirementId) {
|
|
14
|
+
return `feature/${requirementId}`;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Check if a requirement has e2e_tests configured and should use feature branches.
|
|
18
|
+
*/
|
|
19
|
+
export function requiresFeatureBranch(hiveConfig) {
|
|
20
|
+
return !!hiveConfig?.e2e_tests?.path;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Check if a requirement is eligible for feature branch creation.
|
|
24
|
+
* A requirement is eligible when:
|
|
25
|
+
* - It has no feature_branch set yet
|
|
26
|
+
* - It is in 'planned' status (about to transition to in_progress)
|
|
27
|
+
* - The hive config has e2e_tests configured
|
|
28
|
+
*/
|
|
29
|
+
export function isEligibleForFeatureBranch(requirement, hiveConfig) {
|
|
30
|
+
if (!requiresFeatureBranch(hiveConfig))
|
|
31
|
+
return false;
|
|
32
|
+
if (requirement.feature_branch)
|
|
33
|
+
return false;
|
|
34
|
+
if (requirement.status !== 'planned')
|
|
35
|
+
return false;
|
|
36
|
+
return true;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Create a feature branch for a requirement from main and push it to the remote.
|
|
40
|
+
* Updates the requirement's target_branch and feature_branch fields.
|
|
41
|
+
*
|
|
42
|
+
* @param db - Database instance
|
|
43
|
+
* @param repoPath - Full path to the repository
|
|
44
|
+
* @param requirementId - The requirement ID (e.g., REQ-ABCD1234)
|
|
45
|
+
* @param saveFn - Optional function to persist database changes
|
|
46
|
+
* @returns The feature branch name, or null if creation failed
|
|
47
|
+
*/
|
|
48
|
+
export async function createRequirementFeatureBranch(db, repoPath, requirementId, saveFn) {
|
|
49
|
+
const requirement = getRequirementById(db, requirementId);
|
|
50
|
+
if (!requirement) {
|
|
51
|
+
createLog(db, {
|
|
52
|
+
agentId: 'scheduler',
|
|
53
|
+
eventType: 'FEATURE_BRANCH_FAILED',
|
|
54
|
+
status: 'error',
|
|
55
|
+
message: `Requirement ${requirementId} not found`,
|
|
56
|
+
});
|
|
57
|
+
return null;
|
|
58
|
+
}
|
|
59
|
+
const featureBranch = getFeatureBranchName(requirementId);
|
|
60
|
+
try {
|
|
61
|
+
// Fetch latest main to ensure we branch from the latest commit
|
|
62
|
+
try {
|
|
63
|
+
await execa('git', ['fetch', 'origin', 'main'], {
|
|
64
|
+
cwd: repoPath,
|
|
65
|
+
timeout: GIT_TIMEOUT_MS,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
catch (_err) {
|
|
69
|
+
// Fetch failure is non-fatal; proceed with local state
|
|
70
|
+
}
|
|
71
|
+
// Create the feature branch from origin/main
|
|
72
|
+
await execa('git', ['branch', featureBranch, 'origin/main'], {
|
|
73
|
+
cwd: repoPath,
|
|
74
|
+
timeout: GIT_TIMEOUT_MS,
|
|
75
|
+
});
|
|
76
|
+
// Push the feature branch to the remote
|
|
77
|
+
await execa('git', ['push', 'origin', featureBranch], {
|
|
78
|
+
cwd: repoPath,
|
|
79
|
+
timeout: GIT_TIMEOUT_MS,
|
|
80
|
+
});
|
|
81
|
+
// Update the requirement with the feature branch info
|
|
82
|
+
updateRequirement(db, requirementId, {
|
|
83
|
+
featureBranch,
|
|
84
|
+
targetBranch: featureBranch,
|
|
85
|
+
status: 'in_progress',
|
|
86
|
+
});
|
|
87
|
+
if (saveFn)
|
|
88
|
+
saveFn();
|
|
89
|
+
createLog(db, {
|
|
90
|
+
agentId: 'scheduler',
|
|
91
|
+
eventType: 'FEATURE_BRANCH_CREATED',
|
|
92
|
+
message: `Created feature branch ${featureBranch} for requirement ${requirementId}`,
|
|
93
|
+
metadata: { requirementId, featureBranch },
|
|
94
|
+
});
|
|
95
|
+
return featureBranch;
|
|
96
|
+
}
|
|
97
|
+
catch (err) {
|
|
98
|
+
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
99
|
+
createLog(db, {
|
|
100
|
+
agentId: 'scheduler',
|
|
101
|
+
eventType: 'FEATURE_BRANCH_FAILED',
|
|
102
|
+
status: 'error',
|
|
103
|
+
message: `Failed to create feature branch for ${requirementId}: ${errorMessage}`,
|
|
104
|
+
metadata: { requirementId, featureBranch },
|
|
105
|
+
});
|
|
106
|
+
// Still transition requirement to in_progress even if branch creation fails,
|
|
107
|
+
// but without the feature branch. Stories will target main as fallback.
|
|
108
|
+
updateRequirement(db, requirementId, { status: 'in_progress' });
|
|
109
|
+
if (saveFn)
|
|
110
|
+
saveFn();
|
|
111
|
+
return null;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Create a PR from a feature branch back to main.
|
|
116
|
+
* Called after sign-off passes for a requirement.
|
|
117
|
+
*
|
|
118
|
+
* @param repoPath - Full path to the repository
|
|
119
|
+
* @param requirement - The requirement row
|
|
120
|
+
* @returns The PR URL, or null if creation failed
|
|
121
|
+
*/
|
|
122
|
+
export async function createFeatureBranchPR(repoPath, requirement) {
|
|
123
|
+
if (!requirement.feature_branch)
|
|
124
|
+
return null;
|
|
125
|
+
try {
|
|
126
|
+
const result = await createGitHubPR(repoPath, {
|
|
127
|
+
title: `feat: merge ${requirement.feature_branch} for ${requirement.id}`,
|
|
128
|
+
body: `## Feature Branch Merge\n\n**Requirement:** ${requirement.id}\n**Title:** ${requirement.title}\n\nThis PR merges the feature branch back to main after sign-off passed.\nAll stories for this requirement have been merged into \`${requirement.feature_branch}\` and E2E tests have passed.`,
|
|
129
|
+
baseBranch: 'main',
|
|
130
|
+
headBranch: requirement.feature_branch,
|
|
131
|
+
});
|
|
132
|
+
return result;
|
|
133
|
+
}
|
|
134
|
+
catch (_err) {
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* Get requirements that need feature branch creation during story assignment.
|
|
140
|
+
* Returns requirement IDs for stories being assigned where the requirement
|
|
141
|
+
* is in 'planned' status and doesn't have a feature branch yet.
|
|
142
|
+
*/
|
|
143
|
+
export function getRequirementsNeedingFeatureBranch(db, storyIds, hiveConfig) {
|
|
144
|
+
if (!requiresFeatureBranch(hiveConfig))
|
|
145
|
+
return [];
|
|
146
|
+
if (storyIds.length === 0)
|
|
147
|
+
return [];
|
|
148
|
+
const requirementIds = new Set();
|
|
149
|
+
for (const storyId of storyIds) {
|
|
150
|
+
const stories = queryAll(db, 'SELECT * FROM stories WHERE id = ?', [storyId]);
|
|
151
|
+
const story = stories[0];
|
|
152
|
+
if (!story?.requirement_id)
|
|
153
|
+
continue;
|
|
154
|
+
const requirement = getRequirementById(db, story.requirement_id);
|
|
155
|
+
if (!requirement)
|
|
156
|
+
continue;
|
|
157
|
+
if (isEligibleForFeatureBranch(requirement, hiveConfig)) {
|
|
158
|
+
requirementIds.add(requirement.id);
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
return Array.from(requirementIds);
|
|
162
|
+
}
|
|
163
|
+
//# sourceMappingURL=feature-branch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-branch.js","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"feature-branch.test.d.ts","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.test.ts"],"names":[],"mappings":""}
|