hungry-ghost-hive 0.48.0 → 0.49.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/agents/base-agent.d.ts +11 -11
- package/dist/agents/base-agent.d.ts.map +1 -1
- package/dist/agents/base-agent.js +25 -25
- package/dist/agents/base-agent.js.map +1 -1
- package/dist/agents/base-agent.test.js +2 -1
- package/dist/agents/base-agent.test.js.map +1 -1
- package/dist/agents/intermediate.d.ts +2 -0
- package/dist/agents/intermediate.d.ts.map +1 -1
- package/dist/agents/intermediate.js +25 -18
- package/dist/agents/intermediate.js.map +1 -1
- package/dist/agents/junior.d.ts +2 -0
- package/dist/agents/junior.d.ts.map +1 -1
- package/dist/agents/junior.js +25 -18
- package/dist/agents/junior.js.map +1 -1
- package/dist/agents/qa.d.ts +2 -0
- package/dist/agents/qa.d.ts.map +1 -1
- package/dist/agents/qa.js +47 -38
- package/dist/agents/qa.js.map +1 -1
- package/dist/agents/senior.d.ts +2 -0
- package/dist/agents/senior.d.ts.map +1 -1
- package/dist/agents/senior.js +40 -27
- package/dist/agents/senior.js.map +1 -1
- package/dist/agents/tech-lead.d.ts +2 -0
- package/dist/agents/tech-lead.d.ts.map +1 -1
- package/dist/agents/tech-lead.js +37 -31
- package/dist/agents/tech-lead.js.map +1 -1
- package/dist/cli/commands/add-repo.js +2 -2
- package/dist/cli/commands/add-repo.js.map +1 -1
- package/dist/cli/commands/add-repo.test.js +1 -1
- package/dist/cli/commands/add-repo.test.js.map +1 -1
- package/dist/cli/commands/agents.d.ts.map +1 -1
- package/dist/cli/commands/agents.js +12 -10
- package/dist/cli/commands/agents.js.map +1 -1
- package/dist/cli/commands/agents.test.js +7 -7
- package/dist/cli/commands/agents.test.js.map +1 -1
- package/dist/cli/commands/approach.js +2 -2
- package/dist/cli/commands/approach.js.map +1 -1
- package/dist/cli/commands/approvals.js +7 -7
- package/dist/cli/commands/approvals.js.map +1 -1
- package/dist/cli/commands/approvals.test.js +8 -8
- package/dist/cli/commands/approvals.test.js.map +1 -1
- package/dist/cli/commands/assign.js +4 -4
- package/dist/cli/commands/assign.js.map +1 -1
- package/dist/cli/commands/assign.test.js +18 -16
- package/dist/cli/commands/assign.test.js.map +1 -1
- package/dist/cli/commands/cleanup.d.ts.map +1 -1
- package/dist/cli/commands/cleanup.js +8 -8
- package/dist/cli/commands/cleanup.js.map +1 -1
- package/dist/cli/commands/cleanup.test.js +5 -1
- package/dist/cli/commands/cleanup.test.js.map +1 -1
- package/dist/cli/commands/escalations.js +9 -7
- package/dist/cli/commands/escalations.js.map +1 -1
- package/dist/cli/commands/escalations.test.js +2 -2
- package/dist/cli/commands/escalations.test.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +48 -5
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/cli/commands/init.test.js +4 -0
- package/dist/cli/commands/init.test.js.map +1 -1
- package/dist/cli/commands/manager/agent-monitoring.d.ts +2 -2
- package/dist/cli/commands/manager/agent-monitoring.d.ts.map +1 -1
- package/dist/cli/commands/manager/agent-monitoring.js +1 -1
- package/dist/cli/commands/manager/agent-monitoring.js.map +1 -1
- package/dist/cli/commands/manager/auditor-lifecycle.js +3 -3
- package/dist/cli/commands/manager/auditor-lifecycle.js.map +1 -1
- package/dist/cli/commands/manager/auditor-lifecycle.test.js +21 -14
- package/dist/cli/commands/manager/auditor-lifecycle.test.js.map +1 -1
- package/dist/cli/commands/manager/auto-reject-comment-only-reviews.test.js +28 -23
- package/dist/cli/commands/manager/auto-reject-comment-only-reviews.test.js.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.d.ts +2 -2
- package/dist/cli/commands/manager/escalation-handler.d.ts.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.js +11 -10
- package/dist/cli/commands/manager/escalation-handler.js.map +1 -1
- package/dist/cli/commands/manager/escalation-handler.test.js +8 -8
- package/dist/cli/commands/manager/escalation-handler.test.js.map +1 -1
- package/dist/cli/commands/manager/feature-sign-off.js +7 -7
- package/dist/cli/commands/manager/feature-sign-off.js.map +1 -1
- package/dist/cli/commands/manager/feature-sign-off.test.js +40 -31
- package/dist/cli/commands/manager/feature-sign-off.test.js.map +1 -1
- package/dist/cli/commands/manager/feature-test-result.d.ts.map +1 -1
- package/dist/cli/commands/manager/feature-test-result.js +12 -13
- package/dist/cli/commands/manager/feature-test-result.js.map +1 -1
- package/dist/cli/commands/manager/handoff-recovery.d.ts.map +1 -1
- package/dist/cli/commands/manager/handoff-recovery.js +14 -15
- package/dist/cli/commands/manager/handoff-recovery.js.map +1 -1
- package/dist/cli/commands/manager/index.d.ts.map +1 -1
- package/dist/cli/commands/manager/index.js +26 -26
- package/dist/cli/commands/manager/index.js.map +1 -1
- package/dist/cli/commands/manager/index.test.js +3 -3
- package/dist/cli/commands/manager/index.test.js.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.d.ts +2 -2
- package/dist/cli/commands/manager/merged-story-cleanup.d.ts.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.js +6 -7
- package/dist/cli/commands/manager/merged-story-cleanup.js.map +1 -1
- package/dist/cli/commands/manager/merged-story-cleanup.test.js +27 -18
- package/dist/cli/commands/manager/merged-story-cleanup.test.js.map +1 -1
- package/dist/cli/commands/manager/pr-sync-orchestrator.d.ts.map +1 -1
- package/dist/cli/commands/manager/pr-sync-orchestrator.js +46 -38
- package/dist/cli/commands/manager/pr-sync-orchestrator.js.map +1 -1
- package/dist/cli/commands/manager/qa-review-handler.d.ts.map +1 -1
- package/dist/cli/commands/manager/qa-review-handler.js +25 -22
- package/dist/cli/commands/manager/qa-review-handler.js.map +1 -1
- package/dist/cli/commands/manager/spin-down.d.ts.map +1 -1
- package/dist/cli/commands/manager/spin-down.js +23 -19
- package/dist/cli/commands/manager/spin-down.js.map +1 -1
- package/dist/cli/commands/manager/stale-escalations.d.ts +2 -3
- package/dist/cli/commands/manager/stale-escalations.d.ts.map +1 -1
- package/dist/cli/commands/manager/stale-escalations.js.map +1 -1
- package/dist/cli/commands/manager/stuck-story-helpers.js +8 -8
- package/dist/cli/commands/manager/stuck-story-helpers.js.map +1 -1
- package/dist/cli/commands/manager/stuck-story-processor.d.ts +2 -2
- package/dist/cli/commands/manager/stuck-story-processor.d.ts.map +1 -1
- package/dist/cli/commands/manager/stuck-story-processor.js +23 -22
- package/dist/cli/commands/manager/stuck-story-processor.js.map +1 -1
- package/dist/cli/commands/manager/tech-lead-lifecycle.js +6 -6
- package/dist/cli/commands/manager/tech-lead-lifecycle.js.map +1 -1
- package/dist/cli/commands/manager/types.d.ts +2 -3
- package/dist/cli/commands/manager/types.d.ts.map +1 -1
- package/dist/cli/commands/manager/types.js.map +1 -1
- package/dist/cli/commands/msg.test.js +2 -2
- package/dist/cli/commands/msg.test.js.map +1 -1
- package/dist/cli/commands/my-stories.d.ts.map +1 -1
- package/dist/cli/commands/my-stories.js +17 -18
- package/dist/cli/commands/my-stories.js.map +1 -1
- package/dist/cli/commands/my-stories.test.js +2 -2
- package/dist/cli/commands/my-stories.test.js.map +1 -1
- package/dist/cli/commands/nuke.test.js +1 -1
- package/dist/cli/commands/nuke.test.js.map +1 -1
- package/dist/cli/commands/pr.js +32 -32
- package/dist/cli/commands/pr.js.map +1 -1
- package/dist/cli/commands/pr.test.js +10 -6
- package/dist/cli/commands/pr.test.js.map +1 -1
- package/dist/cli/commands/progress.d.ts.map +1 -1
- package/dist/cli/commands/progress.js +4 -5
- package/dist/cli/commands/progress.js.map +1 -1
- package/dist/cli/commands/progress.test.js +1 -1
- package/dist/cli/commands/progress.test.js.map +1 -1
- package/dist/cli/commands/req-headless.test.d.ts +2 -0
- package/dist/cli/commands/req-headless.test.d.ts.map +1 -0
- package/dist/cli/commands/req-headless.test.js +128 -0
- package/dist/cli/commands/req-headless.test.js.map +1 -0
- package/dist/cli/commands/req-spawn.test.js +5 -1
- package/dist/cli/commands/req-spawn.test.js.map +1 -1
- package/dist/cli/commands/req.d.ts.map +1 -1
- package/dist/cli/commands/req.js +13 -14
- package/dist/cli/commands/req.js.map +1 -1
- package/dist/cli/commands/resume.d.ts.map +1 -1
- package/dist/cli/commands/resume.js +7 -8
- package/dist/cli/commands/resume.js.map +1 -1
- package/dist/cli/commands/resume.test.js +1 -1
- package/dist/cli/commands/resume.test.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +42 -40
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/commands/status.test.js +1 -1
- package/dist/cli/commands/status.test.js.map +1 -1
- package/dist/cli/commands/stories.js +9 -9
- package/dist/cli/commands/stories.js.map +1 -1
- package/dist/cli/commands/stories.test.js +2 -2
- package/dist/cli/commands/stories.test.js.map +1 -1
- package/dist/cli/commands/teams.js +11 -11
- package/dist/cli/commands/teams.js.map +1 -1
- package/dist/cli/commands/teams.test.js +2 -2
- package/dist/cli/commands/teams.test.js.map +1 -1
- package/dist/cli/dashboard/index.d.ts +2 -2
- package/dist/cli/dashboard/index.d.ts.map +1 -1
- package/dist/cli/dashboard/index.js +29 -20
- package/dist/cli/dashboard/index.js.map +1 -1
- package/dist/cli/dashboard/index.test.js +34 -32
- package/dist/cli/dashboard/index.test.js.map +1 -1
- package/dist/cli/dashboard/panels/activity.d.ts +3 -3
- package/dist/cli/dashboard/panels/activity.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/activity.js +1 -1
- package/dist/cli/dashboard/panels/activity.js.map +1 -1
- package/dist/cli/dashboard/panels/agents.d.ts +3 -3
- package/dist/cli/dashboard/panels/agents.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/agents.js +2 -2
- package/dist/cli/dashboard/panels/agents.js.map +1 -1
- package/dist/cli/dashboard/panels/escalations.d.ts +3 -3
- package/dist/cli/dashboard/panels/escalations.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/escalations.js +1 -1
- package/dist/cli/dashboard/panels/escalations.js.map +1 -1
- package/dist/cli/dashboard/panels/merge-queue.d.ts +3 -3
- package/dist/cli/dashboard/panels/merge-queue.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/merge-queue.js +1 -1
- package/dist/cli/dashboard/panels/merge-queue.js.map +1 -1
- package/dist/cli/dashboard/panels/pipeline.d.ts +3 -3
- package/dist/cli/dashboard/panels/pipeline.d.ts.map +1 -1
- package/dist/cli/dashboard/panels/pipeline.js +1 -1
- package/dist/cli/dashboard/panels/pipeline.js.map +1 -1
- package/dist/config/schema.d.ts +85 -82
- package/dist/config/schema.d.ts.map +1 -1
- package/dist/config/schema.js +1 -0
- package/dist/config/schema.js.map +1 -1
- package/dist/connectors/project-management/operations.d.ts +7 -7
- package/dist/connectors/project-management/operations.d.ts.map +1 -1
- package/dist/connectors/project-management/operations.js +2 -3
- package/dist/connectors/project-management/operations.js.map +1 -1
- package/dist/context-files/index.test.js +1 -0
- package/dist/context-files/index.test.js.map +1 -1
- package/dist/db/client.d.ts +6 -0
- package/dist/db/client.d.ts.map +1 -1
- package/dist/db/client.js +7 -0
- package/dist/db/client.js.map +1 -1
- package/dist/db/postgres-provider.d.ts +43 -0
- package/dist/db/postgres-provider.d.ts.map +1 -0
- package/dist/db/postgres-provider.integration.test.d.ts +2 -0
- package/dist/db/postgres-provider.integration.test.d.ts.map +1 -0
- package/dist/db/postgres-provider.integration.test.js +399 -0
- package/dist/db/postgres-provider.integration.test.js.map +1 -0
- package/dist/db/postgres-provider.js +315 -0
- package/dist/db/postgres-provider.js.map +1 -0
- package/dist/db/postgres-provider.test.d.ts +2 -0
- package/dist/db/postgres-provider.test.d.ts.map +1 -0
- package/dist/db/postgres-provider.test.js +72 -0
- package/dist/db/postgres-provider.test.js.map +1 -0
- package/dist/db/provider.d.ts +59 -0
- package/dist/db/provider.d.ts.map +1 -0
- package/dist/db/provider.js +121 -0
- package/dist/db/provider.js.map +1 -0
- package/dist/db/provider.test.d.ts +2 -0
- package/dist/db/provider.test.d.ts.map +1 -0
- package/dist/db/provider.test.js +226 -0
- package/dist/db/provider.test.js.map +1 -0
- package/dist/db/queries/agents.d.ts +13 -13
- package/dist/db/queries/agents.d.ts.map +1 -1
- package/dist/db/queries/agents.js +27 -28
- package/dist/db/queries/agents.js.map +1 -1
- package/dist/db/queries/agents.test.js +113 -111
- package/dist/db/queries/agents.test.js.map +1 -1
- package/dist/db/queries/escalations.d.ts +16 -16
- package/dist/db/queries/escalations.d.ts.map +1 -1
- package/dist/db/queries/escalations.js +34 -35
- package/dist/db/queries/escalations.js.map +1 -1
- package/dist/db/queries/escalations.test.js +133 -131
- package/dist/db/queries/escalations.test.js.map +1 -1
- package/dist/db/queries/heartbeat.d.ts +5 -5
- package/dist/db/queries/heartbeat.d.ts.map +1 -1
- package/dist/db/queries/heartbeat.js +7 -23
- package/dist/db/queries/heartbeat.js.map +1 -1
- package/dist/db/queries/heartbeat.test.js +76 -76
- package/dist/db/queries/heartbeat.test.js.map +1 -1
- package/dist/db/queries/integration-sync.d.ts +7 -7
- package/dist/db/queries/integration-sync.d.ts.map +1 -1
- package/dist/db/queries/integration-sync.js +13 -14
- package/dist/db/queries/integration-sync.js.map +1 -1
- package/dist/db/queries/logs.d.ts +10 -10
- package/dist/db/queries/logs.d.ts.map +1 -1
- package/dist/db/queries/logs.js +44 -42
- package/dist/db/queries/logs.js.map +1 -1
- package/dist/db/queries/logs.test.js +149 -146
- package/dist/db/queries/logs.test.js.map +1 -1
- package/dist/db/queries/messages.d.ts +6 -6
- package/dist/db/queries/messages.d.ts.map +1 -1
- package/dist/db/queries/messages.js +12 -11
- package/dist/db/queries/messages.js.map +1 -1
- package/dist/db/queries/messages.test.js +47 -46
- package/dist/db/queries/messages.test.js.map +1 -1
- package/dist/db/queries/pull-requests.d.ts +18 -18
- package/dist/db/queries/pull-requests.d.ts.map +1 -1
- package/dist/db/queries/pull-requests.js +50 -48
- package/dist/db/queries/pull-requests.js.map +1 -1
- package/dist/db/queries/pull-requests.test.js +195 -198
- package/dist/db/queries/pull-requests.test.js.map +1 -1
- package/dist/db/queries/requirements.d.ts +8 -8
- package/dist/db/queries/requirements.d.ts.map +1 -1
- package/dist/db/queries/requirements.js +17 -18
- package/dist/db/queries/requirements.js.map +1 -1
- package/dist/db/queries/requirements.test.js +83 -81
- package/dist/db/queries/requirements.test.js.map +1 -1
- package/dist/db/queries/stories.d.ts +29 -29
- package/dist/db/queries/stories.d.ts.map +1 -1
- package/dist/db/queries/stories.js +58 -64
- package/dist/db/queries/stories.js.map +1 -1
- package/dist/db/queries/stories.test.js +172 -170
- package/dist/db/queries/stories.test.js.map +1 -1
- package/dist/db/queries/teams.d.ts +6 -6
- package/dist/db/queries/teams.d.ts.map +1 -1
- package/dist/db/queries/teams.js +11 -12
- package/dist/db/queries/teams.js.map +1 -1
- package/dist/db/queries/teams.test.js +36 -34
- package/dist/db/queries/teams.test.js.map +1 -1
- package/dist/integrations/jira/repair.test.js +26 -24
- package/dist/integrations/jira/repair.test.js.map +1 -1
- package/dist/integrations/jira/stories.d.ts +3 -3
- package/dist/integrations/jira/stories.d.ts.map +1 -1
- package/dist/integrations/jira/stories.js +12 -12
- package/dist/integrations/jira/stories.js.map +1 -1
- package/dist/integrations/jira/stories.test.js +10 -8
- package/dist/integrations/jira/stories.test.js.map +1 -1
- package/dist/integrations/jira/sync.d.ts +7 -7
- package/dist/integrations/jira/sync.d.ts.map +1 -1
- package/dist/integrations/jira/sync.js +17 -20
- package/dist/integrations/jira/sync.js.map +1 -1
- package/dist/integrations/jira/sync.test.js +63 -62
- package/dist/integrations/jira/sync.test.js.map +1 -1
- package/dist/integrations/jira/transitions.d.ts +3 -3
- package/dist/integrations/jira/transitions.d.ts.map +1 -1
- package/dist/integrations/jira/transitions.js +3 -3
- package/dist/integrations/jira/transitions.js.map +1 -1
- package/dist/orchestrator/agent-selector.d.ts +3 -3
- package/dist/orchestrator/agent-selector.d.ts.map +1 -1
- package/dist/orchestrator/agent-selector.js +5 -6
- package/dist/orchestrator/agent-selector.js.map +1 -1
- package/dist/orchestrator/dependency-resolver.d.ts +4 -4
- package/dist/orchestrator/dependency-resolver.d.ts.map +1 -1
- package/dist/orchestrator/dependency-resolver.js +6 -6
- package/dist/orchestrator/dependency-resolver.js.map +1 -1
- package/dist/orchestrator/feature-branch.d.ts +3 -3
- package/dist/orchestrator/feature-branch.d.ts.map +1 -1
- package/dist/orchestrator/feature-branch.js +9 -10
- package/dist/orchestrator/feature-branch.js.map +1 -1
- package/dist/orchestrator/feature-branch.test.js +80 -78
- package/dist/orchestrator/feature-branch.test.js.map +1 -1
- package/dist/orchestrator/orphan-recovery.d.ts +2 -2
- package/dist/orchestrator/orphan-recovery.d.ts.map +1 -1
- package/dist/orchestrator/orphan-recovery.js +10 -10
- package/dist/orchestrator/orphan-recovery.js.map +1 -1
- package/dist/orchestrator/scheduler.d.ts +4 -4
- package/dist/orchestrator/scheduler.d.ts.map +1 -1
- package/dist/orchestrator/scheduler.js +90 -76
- package/dist/orchestrator/scheduler.js.map +1 -1
- package/dist/orchestrator/scheduler.test.js +496 -374
- package/dist/orchestrator/scheduler.test.js.map +1 -1
- package/dist/utils/auto-merge.d.ts.map +1 -1
- package/dist/utils/auto-merge.js +74 -56
- package/dist/utils/auto-merge.js.map +1 -1
- package/dist/utils/auto-merge.test.js +101 -66
- package/dist/utils/auto-merge.test.js.map +1 -1
- package/dist/utils/cli-helpers.d.ts +5 -5
- package/dist/utils/cli-helpers.d.ts.map +1 -1
- package/dist/utils/cli-helpers.js +8 -9
- package/dist/utils/cli-helpers.js.map +1 -1
- package/dist/utils/cli-helpers.test.js +28 -30
- package/dist/utils/cli-helpers.test.js.map +1 -1
- package/dist/utils/paths.d.ts +6 -0
- package/dist/utils/paths.d.ts.map +1 -1
- package/dist/utils/paths.js +12 -1
- package/dist/utils/paths.js.map +1 -1
- package/dist/utils/paths.test.js +1 -0
- package/dist/utils/paths.test.js.map +1 -1
- package/dist/utils/pr-sync.d.ts +10 -10
- package/dist/utils/pr-sync.d.ts.map +1 -1
- package/dist/utils/pr-sync.js +20 -21
- package/dist/utils/pr-sync.js.map +1 -1
- package/dist/utils/pr-sync.test.js +52 -50
- package/dist/utils/pr-sync.test.js.map +1 -1
- package/dist/utils/with-hive-context.d.ts.map +1 -1
- package/dist/utils/with-hive-context.js +70 -1
- package/dist/utils/with-hive-context.js.map +1 -1
- package/package.json +3 -1
- package/src/agents/base-agent.test.ts +2 -1
- package/src/agents/base-agent.ts +32 -28
- package/src/agents/intermediate.ts +27 -18
- package/src/agents/junior.ts +27 -18
- package/src/agents/qa.ts +54 -40
- package/src/agents/senior.ts +42 -27
- package/src/agents/tech-lead.ts +42 -32
- package/src/cli/commands/add-repo.test.ts +1 -1
- package/src/cli/commands/add-repo.ts +2 -2
- package/src/cli/commands/agents.test.ts +7 -7
- package/src/cli/commands/agents.ts +12 -10
- package/src/cli/commands/approach.ts +2 -2
- package/src/cli/commands/approvals.test.ts +8 -8
- package/src/cli/commands/approvals.ts +9 -7
- package/src/cli/commands/assign.test.ts +19 -18
- package/src/cli/commands/assign.ts +4 -4
- package/src/cli/commands/cleanup.test.ts +5 -1
- package/src/cli/commands/cleanup.ts +11 -9
- package/src/cli/commands/escalations.test.ts +2 -2
- package/src/cli/commands/escalations.ts +9 -7
- package/src/cli/commands/init.test.ts +5 -0
- package/src/cli/commands/init.ts +53 -5
- package/src/cli/commands/manager/agent-monitoring.ts +3 -3
- package/src/cli/commands/manager/auditor-lifecycle.test.ts +21 -14
- package/src/cli/commands/manager/auditor-lifecycle.ts +3 -3
- package/src/cli/commands/manager/auto-reject-comment-only-reviews.test.ts +28 -23
- package/src/cli/commands/manager/escalation-handler.test.ts +13 -13
- package/src/cli/commands/manager/escalation-handler.ts +19 -12
- package/src/cli/commands/manager/feature-sign-off.test.ts +40 -31
- package/src/cli/commands/manager/feature-sign-off.ts +7 -7
- package/src/cli/commands/manager/feature-test-result.ts +13 -16
- package/src/cli/commands/manager/handoff-recovery.ts +20 -20
- package/src/cli/commands/manager/index.test.ts +4 -4
- package/src/cli/commands/manager/index.ts +58 -59
- package/src/cli/commands/manager/merged-story-cleanup.test.ts +28 -19
- package/src/cli/commands/manager/merged-story-cleanup.ts +11 -14
- package/src/cli/commands/manager/pr-sync-orchestrator.ts +115 -110
- package/src/cli/commands/manager/qa-review-handler.ts +50 -63
- package/src/cli/commands/manager/spin-down.ts +27 -25
- package/src/cli/commands/manager/stale-escalations.ts +2 -3
- package/src/cli/commands/manager/stuck-story-helpers.ts +10 -10
- package/src/cli/commands/manager/stuck-story-processor.ts +56 -62
- package/src/cli/commands/manager/tech-lead-lifecycle.ts +6 -6
- package/src/cli/commands/manager/types.ts +2 -3
- package/src/cli/commands/msg.test.ts +2 -2
- package/src/cli/commands/my-stories.test.ts +4 -2
- package/src/cli/commands/my-stories.ts +22 -27
- package/src/cli/commands/nuke.test.ts +1 -1
- package/src/cli/commands/pr.test.ts +10 -6
- package/src/cli/commands/pr.ts +41 -32
- package/src/cli/commands/progress.test.ts +1 -1
- package/src/cli/commands/progress.ts +11 -6
- package/src/cli/commands/req-headless.test.ts +170 -0
- package/src/cli/commands/req-spawn.test.ts +12 -2
- package/src/cli/commands/req.ts +13 -14
- package/src/cli/commands/resume.test.ts +1 -1
- package/src/cli/commands/resume.ts +7 -8
- package/src/cli/commands/status.test.ts +1 -1
- package/src/cli/commands/status.ts +52 -40
- package/src/cli/commands/stories.test.ts +4 -2
- package/src/cli/commands/stories.ts +11 -11
- package/src/cli/commands/teams.test.ts +2 -2
- package/src/cli/commands/teams.ts +11 -11
- package/src/cli/dashboard/index.test.ts +35 -34
- package/src/cli/dashboard/index.ts +34 -23
- package/src/cli/dashboard/panels/activity.ts +10 -4
- package/src/cli/dashboard/panels/agents.ts +8 -5
- package/src/cli/dashboard/panels/escalations.ts +4 -4
- package/src/cli/dashboard/panels/merge-queue.ts +4 -4
- package/src/cli/dashboard/panels/pipeline.ts +10 -4
- package/src/config/schema.ts +1 -0
- package/src/connectors/project-management/operations.ts +9 -10
- package/src/context-files/index.test.ts +1 -0
- package/src/db/client.ts +17 -0
- package/src/db/pg-migrations/001-full-schema.sql +209 -0
- package/src/db/postgres-provider.integration.test.ts +574 -0
- package/src/db/postgres-provider.test.ts +97 -0
- package/src/db/postgres-provider.ts +364 -0
- package/src/db/provider.test.ts +283 -0
- package/src/db/provider.ts +161 -0
- package/src/db/queries/agents.test.ts +114 -113
- package/src/db/queries/agents.ts +50 -36
- package/src/db/queries/escalations.test.ts +134 -133
- package/src/db/queries/escalations.ts +72 -57
- package/src/db/queries/heartbeat.test.ts +77 -78
- package/src/db/queries/heartbeat.ts +24 -46
- package/src/db/queries/integration-sync.ts +26 -26
- package/src/db/queries/logs.test.ts +151 -148
- package/src/db/queries/logs.ts +78 -53
- package/src/db/queries/messages.test.ts +48 -50
- package/src/db/queries/messages.ts +26 -18
- package/src/db/queries/pull-requests.test.ts +194 -199
- package/src/db/queries/pull-requests.ts +117 -88
- package/src/db/queries/requirements.test.ts +84 -83
- package/src/db/queries/requirements.ts +33 -28
- package/src/db/queries/stories.test.ts +173 -172
- package/src/db/queries/stories.ts +141 -110
- package/src/db/queries/teams.test.ts +37 -36
- package/src/db/queries/teams.ts +22 -14
- package/src/integrations/jira/repair.test.ts +27 -26
- package/src/integrations/jira/stories.test.ts +15 -16
- package/src/integrations/jira/stories.ts +15 -15
- package/src/integrations/jira/sync.test.ts +68 -68
- package/src/integrations/jira/sync.ts +29 -39
- package/src/integrations/jira/transitions.ts +6 -6
- package/src/orchestrator/agent-selector.ts +9 -8
- package/src/orchestrator/dependency-resolver.ts +16 -7
- package/src/orchestrator/feature-branch.test.ts +85 -80
- package/src/orchestrator/feature-branch.ts +13 -14
- package/src/orchestrator/orphan-recovery.ts +14 -13
- package/src/orchestrator/scheduler.test.ts +536 -394
- package/src/orchestrator/scheduler.ts +129 -115
- package/src/utils/auto-merge.test.ts +102 -68
- package/src/utils/auto-merge.ts +161 -168
- package/src/utils/cli-helpers.test.ts +30 -32
- package/src/utils/cli-helpers.ts +15 -11
- package/src/utils/paths.test.ts +1 -0
- package/src/utils/paths.ts +14 -1
- package/src/utils/pr-sync.test.ts +55 -52
- package/src/utils/pr-sync.ts +27 -32
- package/src/utils/with-hive-context.ts +89 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DatabaseProvider } from '../db/provider.js';
|
|
2
2
|
import type { AgentRow } from '../db/queries/agents.js';
|
|
3
3
|
/**
|
|
4
4
|
* Select the agent with the least workload (queue-depth aware).
|
|
5
5
|
* Returns the agent with fewest active stories; breaks ties by creation order.
|
|
6
6
|
*/
|
|
7
|
-
export declare function selectAgentWithLeastWorkload(db:
|
|
7
|
+
export declare function selectAgentWithLeastWorkload(db: DatabaseProvider, agents: AgentRow[]): Promise<AgentRow>;
|
|
8
8
|
/**
|
|
9
9
|
* Calculate queue depth for an agent (number of active stories).
|
|
10
10
|
*/
|
|
11
|
-
export declare function getAgentWorkload(db:
|
|
11
|
+
export declare function getAgentWorkload(db: DatabaseProvider, agentId: string): Promise<number>;
|
|
12
12
|
//# sourceMappingURL=agent-selector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-selector.d.ts","sourceRoot":"","sources":["../../src/orchestrator/agent-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"agent-selector.d.ts","sourceRoot":"","sources":["../../src/orchestrator/agent-selector.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD;;;GAGG;AACH,wBAAsB,4BAA4B,CAChD,EAAE,EAAE,gBAAgB,EACpB,MAAM,EAAE,QAAQ,EAAE,GACjB,OAAO,CAAC,QAAQ,CAAC,CAanB;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,gBAAgB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAU7F"}
|
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
// Licensed under the Hungry Ghost Hive License. See LICENSE.
|
|
2
|
-
import { queryOne } from '../db/client.js';
|
|
3
2
|
/**
|
|
4
3
|
* Select the agent with the least workload (queue-depth aware).
|
|
5
4
|
* Returns the agent with fewest active stories; breaks ties by creation order.
|
|
6
5
|
*/
|
|
7
|
-
export function selectAgentWithLeastWorkload(db, agents) {
|
|
6
|
+
export async function selectAgentWithLeastWorkload(db, agents) {
|
|
8
7
|
let selectedAgent = agents[0];
|
|
9
|
-
let minWorkload = getAgentWorkload(db, selectedAgent.id);
|
|
8
|
+
let minWorkload = await getAgentWorkload(db, selectedAgent.id);
|
|
10
9
|
for (let i = 1; i < agents.length; i++) {
|
|
11
|
-
const workload = getAgentWorkload(db, agents[i].id);
|
|
10
|
+
const workload = await getAgentWorkload(db, agents[i].id);
|
|
12
11
|
if (workload < minWorkload) {
|
|
13
12
|
minWorkload = workload;
|
|
14
13
|
selectedAgent = agents[i];
|
|
@@ -19,8 +18,8 @@ export function selectAgentWithLeastWorkload(db, agents) {
|
|
|
19
18
|
/**
|
|
20
19
|
* Calculate queue depth for an agent (number of active stories).
|
|
21
20
|
*/
|
|
22
|
-
export function getAgentWorkload(db, agentId) {
|
|
23
|
-
const result = queryOne(
|
|
21
|
+
export async function getAgentWorkload(db, agentId) {
|
|
22
|
+
const result = await db.queryOne(`
|
|
24
23
|
SELECT COUNT(*) as count FROM stories
|
|
25
24
|
WHERE assigned_agent_id = ?
|
|
26
25
|
AND status IN ('in_progress', 'review', 'qa', 'qa_failed')
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-selector.js","sourceRoot":"","sources":["../../src/orchestrator/agent-selector.ts"],"names":[],"mappings":"AAAA,6DAA6D;
|
|
1
|
+
{"version":3,"file":"agent-selector.js","sourceRoot":"","sources":["../../src/orchestrator/agent-selector.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAK7D;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,4BAA4B,CAChD,EAAoB,EACpB,MAAkB;IAElB,IAAI,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9B,IAAI,WAAW,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,aAAa,CAAC,EAAE,CAAC,CAAC;IAE/D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACvC,MAAM,QAAQ,GAAG,MAAM,gBAAgB,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAC1D,IAAI,QAAQ,GAAG,WAAW,EAAE,CAAC;YAC3B,WAAW,GAAG,QAAQ,CAAC;YACvB,aAAa,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,aAAa,CAAC;AACvB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,EAAoB,EAAE,OAAe;IAC1E,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,QAAQ,CAC9B;;;;GAID,EACC,CAAC,OAAO,CAAC,CACV,CAAC;IACF,OAAO,MAAM,EAAE,KAAK,IAAI,CAAC,CAAC;AAC5B,CAAC"}
|
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { DatabaseProvider } from '../db/provider.js';
|
|
2
2
|
import { type StoryRow } from '../db/queries/stories.js';
|
|
3
3
|
/**
|
|
4
4
|
* Build a dependency graph for stories.
|
|
5
5
|
* Returns a map of story ID to its direct dependencies.
|
|
6
6
|
*/
|
|
7
|
-
export declare function buildDependencyGraph(db:
|
|
7
|
+
export declare function buildDependencyGraph(db: DatabaseProvider, stories: StoryRow[]): Promise<Map<string, Set<string>>>;
|
|
8
8
|
/**
|
|
9
9
|
* Topological sort of stories based on dependencies.
|
|
10
10
|
* Returns stories in order where dependencies come before dependents.
|
|
11
11
|
* Returns null if circular dependency is detected.
|
|
12
12
|
*/
|
|
13
|
-
export declare function topologicalSort(db:
|
|
13
|
+
export declare function topologicalSort(db: DatabaseProvider, stories: StoryRow[]): Promise<StoryRow[] | null>;
|
|
14
14
|
/**
|
|
15
15
|
* Check if a story's dependencies are satisfied.
|
|
16
16
|
* A dependency is satisfied only if it's merged (completed).
|
|
17
17
|
*/
|
|
18
|
-
export declare function areDependenciesSatisfied(db:
|
|
18
|
+
export declare function areDependenciesSatisfied(db: DatabaseProvider, storyId: string): Promise<boolean>;
|
|
19
19
|
//# sourceMappingURL=dependency-resolver.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../src/orchestrator/dependency-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"dependency-resolver.d.ts","sourceRoot":"","sources":["../../src/orchestrator/dependency-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAC1D,OAAO,EAGL,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,QAAQ,EAAE,GAClB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAwBnC;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,QAAQ,EAAE,GAClB,OAAO,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,CA+C5B;AAED;;;GAGG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,gBAAgB,EACpB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC,CAWlB"}
|
|
@@ -4,7 +4,7 @@ import { getBatchStoryDependencies, getStoryDependencies, } from '../db/queries/
|
|
|
4
4
|
* Build a dependency graph for stories.
|
|
5
5
|
* Returns a map of story ID to its direct dependencies.
|
|
6
6
|
*/
|
|
7
|
-
export function buildDependencyGraph(db, stories) {
|
|
7
|
+
export async function buildDependencyGraph(db, stories) {
|
|
8
8
|
const graph = new Map();
|
|
9
9
|
const storyIds = new Set(stories.map(s => s.id));
|
|
10
10
|
// Initialize all stories in the graph
|
|
@@ -14,7 +14,7 @@ export function buildDependencyGraph(db, stories) {
|
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
16
|
// Fetch all dependencies in a single query to avoid N+1 pattern
|
|
17
|
-
const allDepsMap = getBatchStoryDependencies(db, Array.from(storyIds));
|
|
17
|
+
const allDepsMap = await getBatchStoryDependencies(db, Array.from(storyIds));
|
|
18
18
|
// Add dependencies (only within the planned set; external deps handled by areDependenciesSatisfied)
|
|
19
19
|
for (const [storyId, depIds] of allDepsMap) {
|
|
20
20
|
for (const depId of depIds) {
|
|
@@ -30,8 +30,8 @@ export function buildDependencyGraph(db, stories) {
|
|
|
30
30
|
* Returns stories in order where dependencies come before dependents.
|
|
31
31
|
* Returns null if circular dependency is detected.
|
|
32
32
|
*/
|
|
33
|
-
export function topologicalSort(db, stories) {
|
|
34
|
-
const graph = buildDependencyGraph(db, stories);
|
|
33
|
+
export async function topologicalSort(db, stories) {
|
|
34
|
+
const graph = await buildDependencyGraph(db, stories);
|
|
35
35
|
const storyMap = new Map(stories.map(s => [s.id, s]));
|
|
36
36
|
// Kahn's algorithm for topological sort
|
|
37
37
|
const inDegree = new Map();
|
|
@@ -75,8 +75,8 @@ export function topologicalSort(db, stories) {
|
|
|
75
75
|
* Check if a story's dependencies are satisfied.
|
|
76
76
|
* A dependency is satisfied only if it's merged (completed).
|
|
77
77
|
*/
|
|
78
|
-
export function areDependenciesSatisfied(db, storyId) {
|
|
79
|
-
const dependencies = getStoryDependencies(db, storyId);
|
|
78
|
+
export async function areDependenciesSatisfied(db, storyId) {
|
|
79
|
+
const dependencies = await getStoryDependencies(db, storyId);
|
|
80
80
|
for (const dep of dependencies) {
|
|
81
81
|
// Check if dependency is in a terminal state (merged)
|
|
82
82
|
if (dep.status !== 'merged') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../src/orchestrator/dependency-resolver.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAG7D,OAAO,EACL,yBAAyB,EACzB,oBAAoB,GAErB,MAAM,0BAA0B,CAAC;AAElC;;;GAGG;AACH,MAAM,UAAU,oBAAoB,
|
|
1
|
+
{"version":3,"file":"dependency-resolver.js","sourceRoot":"","sources":["../../src/orchestrator/dependency-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { Database } from 'sql.js';
|
|
2
1
|
import type { HiveConfig } from '../config/schema.js';
|
|
2
|
+
import type { DatabaseProvider } from '../db/provider.js';
|
|
3
3
|
import { type RequirementRow } from '../db/queries/requirements.js';
|
|
4
4
|
/**
|
|
5
5
|
* Generate a feature branch name for a requirement.
|
|
@@ -28,7 +28,7 @@ export declare function isEligibleForFeatureBranch(requirement: RequirementRow,
|
|
|
28
28
|
* @param saveFn - Optional function to persist database changes
|
|
29
29
|
* @returns The feature branch name, or null if creation failed
|
|
30
30
|
*/
|
|
31
|
-
export declare function createRequirementFeatureBranch(db:
|
|
31
|
+
export declare function createRequirementFeatureBranch(db: DatabaseProvider, repoPath: string, requirementId: string, saveFn?: () => void): Promise<string | null>;
|
|
32
32
|
/**
|
|
33
33
|
* Create a PR from a feature branch back to main.
|
|
34
34
|
* Called after sign-off passes for a requirement.
|
|
@@ -46,5 +46,5 @@ export declare function createFeatureBranchPR(repoPath: string, requirement: Req
|
|
|
46
46
|
* Returns requirement IDs for stories being assigned where the requirement
|
|
47
47
|
* is in 'planned' status and doesn't have a feature branch yet.
|
|
48
48
|
*/
|
|
49
|
-
export declare function getRequirementsNeedingFeatureBranch(db:
|
|
49
|
+
export declare function getRequirementsNeedingFeatureBranch(db: DatabaseProvider, storyIds: string[], hiveConfig: HiveConfig | undefined): Promise<string[]>;
|
|
50
50
|
//# sourceMappingURL=feature-branch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-branch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"feature-branch.d.ts","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,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,gBAAgB,EACpB,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,wBAAsB,mCAAmC,CACvD,EAAE,EAAE,gBAAgB,EACpB,QAAQ,EAAE,MAAM,EAAE,EAClB,UAAU,EAAE,UAAU,GAAG,SAAS,GACjC,OAAO,CAAC,MAAM,EAAE,CAAC,CAoBnB"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
// Licensed under the Hungry Ghost Hive License. See LICENSE.
|
|
2
2
|
import { execa } from 'execa';
|
|
3
|
-
import { queryAll } from '../db/client.js';
|
|
4
3
|
import { createLog } from '../db/queries/logs.js';
|
|
5
4
|
import { getRequirementById, updateRequirement, } from '../db/queries/requirements.js';
|
|
6
5
|
import { createPullRequest as createGitHubPR } from '../git/github.js';
|
|
@@ -46,9 +45,9 @@ export function isEligibleForFeatureBranch(requirement, hiveConfig) {
|
|
|
46
45
|
* @returns The feature branch name, or null if creation failed
|
|
47
46
|
*/
|
|
48
47
|
export async function createRequirementFeatureBranch(db, repoPath, requirementId, saveFn) {
|
|
49
|
-
const requirement = getRequirementById(db, requirementId);
|
|
48
|
+
const requirement = await getRequirementById(db, requirementId);
|
|
50
49
|
if (!requirement) {
|
|
51
|
-
createLog(db, {
|
|
50
|
+
await createLog(db, {
|
|
52
51
|
agentId: 'scheduler',
|
|
53
52
|
eventType: 'FEATURE_BRANCH_FAILED',
|
|
54
53
|
status: 'error',
|
|
@@ -79,14 +78,14 @@ export async function createRequirementFeatureBranch(db, repoPath, requirementId
|
|
|
79
78
|
timeout: GIT_TIMEOUT_MS,
|
|
80
79
|
});
|
|
81
80
|
// Update the requirement with the feature branch info
|
|
82
|
-
updateRequirement(db, requirementId, {
|
|
81
|
+
await updateRequirement(db, requirementId, {
|
|
83
82
|
featureBranch,
|
|
84
83
|
targetBranch: featureBranch,
|
|
85
84
|
status: 'in_progress',
|
|
86
85
|
});
|
|
87
86
|
if (saveFn)
|
|
88
87
|
saveFn();
|
|
89
|
-
createLog(db, {
|
|
88
|
+
await createLog(db, {
|
|
90
89
|
agentId: 'scheduler',
|
|
91
90
|
eventType: 'FEATURE_BRANCH_CREATED',
|
|
92
91
|
message: `Created feature branch ${featureBranch} for requirement ${requirementId}`,
|
|
@@ -96,7 +95,7 @@ export async function createRequirementFeatureBranch(db, repoPath, requirementId
|
|
|
96
95
|
}
|
|
97
96
|
catch (err) {
|
|
98
97
|
const errorMessage = err instanceof Error ? err.message : String(err);
|
|
99
|
-
createLog(db, {
|
|
98
|
+
await createLog(db, {
|
|
100
99
|
agentId: 'scheduler',
|
|
101
100
|
eventType: 'FEATURE_BRANCH_FAILED',
|
|
102
101
|
status: 'error',
|
|
@@ -105,7 +104,7 @@ export async function createRequirementFeatureBranch(db, repoPath, requirementId
|
|
|
105
104
|
});
|
|
106
105
|
// Still transition requirement to in_progress even if branch creation fails,
|
|
107
106
|
// but without the feature branch. Stories will target main as fallback.
|
|
108
|
-
updateRequirement(db, requirementId, { status: 'in_progress' });
|
|
107
|
+
await updateRequirement(db, requirementId, { status: 'in_progress' });
|
|
109
108
|
if (saveFn)
|
|
110
109
|
saveFn();
|
|
111
110
|
return null;
|
|
@@ -140,18 +139,18 @@ export async function createFeatureBranchPR(repoPath, requirement) {
|
|
|
140
139
|
* Returns requirement IDs for stories being assigned where the requirement
|
|
141
140
|
* is in 'planned' status and doesn't have a feature branch yet.
|
|
142
141
|
*/
|
|
143
|
-
export function getRequirementsNeedingFeatureBranch(db, storyIds, hiveConfig) {
|
|
142
|
+
export async function getRequirementsNeedingFeatureBranch(db, storyIds, hiveConfig) {
|
|
144
143
|
if (!requiresFeatureBranch(hiveConfig))
|
|
145
144
|
return [];
|
|
146
145
|
if (storyIds.length === 0)
|
|
147
146
|
return [];
|
|
148
147
|
const requirementIds = new Set();
|
|
149
148
|
for (const storyId of storyIds) {
|
|
150
|
-
const stories = queryAll(
|
|
149
|
+
const stories = await db.queryAll('SELECT * FROM stories WHERE id = ?', [storyId]);
|
|
151
150
|
const story = stories[0];
|
|
152
151
|
if (!story?.requirement_id)
|
|
153
152
|
continue;
|
|
154
|
-
const requirement = getRequirementById(db, story.requirement_id);
|
|
153
|
+
const requirement = await getRequirementById(db, story.requirement_id);
|
|
155
154
|
if (!requirement)
|
|
156
155
|
continue;
|
|
157
156
|
if (isEligibleForFeatureBranch(requirement, hiveConfig)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feature-branch.js","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAE7D,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAG9B,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"feature-branch.js","sourceRoot":"","sources":["../../src/orchestrator/feature-branch.ts"],"names":[],"mappings":"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"}
|