taskplane 0.5.5 → 0.5.7
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/dashboard/public/app.js
CHANGED
|
@@ -554,7 +554,7 @@ function renderMergeAgents(batch, tmuxSessions) {
|
|
|
554
554
|
// Repo filtering: if a repo is selected and this merge has repoResults,
|
|
555
555
|
// check if the selected repo is among them
|
|
556
556
|
const repoResults = mr.repoResults || [];
|
|
557
|
-
if (selectedRepo && showRepos && repoResults.length >=
|
|
557
|
+
if (selectedRepo && showRepos && repoResults.length >= 1) {
|
|
558
558
|
const hasSelectedRepo = repoResults.some(rr => rr.repoId === selectedRepo);
|
|
559
559
|
if (!hasSelectedRepo) continue;
|
|
560
560
|
}
|
|
@@ -582,8 +582,8 @@ function renderMergeAgents(batch, tmuxSessions) {
|
|
|
582
582
|
html += `<td style="font-size:0.8rem;color:var(--text-muted);">${mr.failureReason ? escapeHtml(mr.failureReason) : "—"}</td>`;
|
|
583
583
|
html += `</tr>`;
|
|
584
584
|
|
|
585
|
-
// Per-repo sub-rows:
|
|
586
|
-
if (showRepos && repoResults.length >=
|
|
585
|
+
// Per-repo sub-rows: show when workspace mode has repo results
|
|
586
|
+
if (showRepos && repoResults.length >= 1) {
|
|
587
587
|
const displayRepos = selectedRepo
|
|
588
588
|
? repoResults.filter(rr => rr.repoId === selectedRepo)
|
|
589
589
|
: repoResults;
|
|
@@ -190,17 +190,42 @@ export async function executeOrchBatch(
|
|
|
190
190
|
// Worktrees branch from it; merges target it via update-ref.
|
|
191
191
|
const opId = resolveOperatorId(orchConfig);
|
|
192
192
|
const orchBranch = `orch/${opId}-${batchState.batchId}`;
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
193
|
+
|
|
194
|
+
// In workspace mode, create the orch branch in every repo that might
|
|
195
|
+
// have tasks. In repo mode, create it only in the single repo.
|
|
196
|
+
if (workspaceConfig) {
|
|
197
|
+
let orchBranchFailed = false;
|
|
198
|
+
for (const [repoId, repoConf] of workspaceConfig.repos) {
|
|
199
|
+
const rRoot = repoConf.path;
|
|
200
|
+
const repoBranch = getCurrentBranch(rRoot) || "HEAD";
|
|
201
|
+
const result = runGit(["branch", orchBranch, repoBranch], rRoot);
|
|
202
|
+
if (result.ok) {
|
|
203
|
+
execLog("batch", batchState.batchId, `created orch branch in ${repoId}`, { orchBranch, base: repoBranch });
|
|
204
|
+
} else {
|
|
205
|
+
const errDetail = result.stderr || result.stdout || "unknown error";
|
|
206
|
+
execLog("batch", batchState.batchId, `failed to create orch branch in ${repoId}: ${errDetail}`);
|
|
207
|
+
batchState.phase = "failed";
|
|
208
|
+
batchState.endedAt = Date.now();
|
|
209
|
+
batchState.errors.push(`Failed to create orch branch '${orchBranch}' in ${repoId}: ${errDetail}`);
|
|
210
|
+
onNotify(`❌ Failed to create orch branch '${orchBranch}' in ${repoId}: ${errDetail}`, "error");
|
|
211
|
+
orchBranchFailed = true;
|
|
212
|
+
break;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (orchBranchFailed) return;
|
|
216
|
+
} else {
|
|
217
|
+
const branchResult = runGit(["branch", orchBranch, batchState.baseBranch], repoRoot);
|
|
218
|
+
if (!branchResult.ok) {
|
|
219
|
+
batchState.phase = "failed";
|
|
220
|
+
batchState.endedAt = Date.now();
|
|
221
|
+
const errDetail = branchResult.stderr || branchResult.stdout || "unknown error";
|
|
222
|
+
batchState.errors.push(`Failed to create orch branch '${orchBranch}': ${errDetail}`);
|
|
223
|
+
onNotify(`❌ Failed to create orch branch '${orchBranch}': ${errDetail}`, "error");
|
|
224
|
+
return;
|
|
225
|
+
}
|
|
226
|
+
execLog("batch", batchState.batchId, "created orch branch", { orchBranch, baseBranch: batchState.baseBranch });
|
|
201
227
|
}
|
|
202
228
|
batchState.orchBranch = orchBranch;
|
|
203
|
-
execLog("batch", batchState.batchId, "created orch branch", { orchBranch, baseBranch: batchState.baseBranch });
|
|
204
229
|
|
|
205
230
|
onNotify(
|
|
206
231
|
ORCH_MESSAGES.orchStarting(batchState.batchId, rawWaves.length, batchState.totalTasks),
|
|
@@ -1025,7 +1025,11 @@ export function mergeWaveByRepo(
|
|
|
1025
1025
|
|
|
1026
1026
|
for (const group of repoGroups) {
|
|
1027
1027
|
const groupRepoRoot = resolveRepoRoot(group.repoId, repoRoot, workspaceConfig);
|
|
1028
|
-
|
|
1028
|
+
// In workspace mode with orch branch, always merge into the orch branch
|
|
1029
|
+
// (passed as baseBranch from engine.ts). Do NOT use resolveBaseBranch()
|
|
1030
|
+
// which returns the repo's current branch (e.g., develop), bypassing
|
|
1031
|
+
// the orch branch model entirely.
|
|
1032
|
+
const groupBaseBranch = baseBranch;
|
|
1029
1033
|
|
|
1030
1034
|
execLog("merge", `W${waveIndex}`, `merging repo group: ${group.repoId ?? "(default)"}`, {
|
|
1031
1035
|
repoRoot: groupRepoRoot,
|