@dunnewold-labs/mr-manager 0.4.23 → 0.4.25

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 (2) hide show
  1. package/dist/index.mjs +11 -45
  2. package/package.json +1 -1
package/dist/index.mjs CHANGED
@@ -185,7 +185,7 @@ import { fileURLToPath } from "url";
185
185
  // cli/package.json
186
186
  var package_default = {
187
187
  name: "@dunnewold-labs/mr-manager",
188
- version: "0.4.23",
188
+ version: "0.4.25",
189
189
  description: "Mr. Manager - Task and project management CLI",
190
190
  bin: {
191
191
  mr: "./dist/index.mjs"
@@ -1744,7 +1744,7 @@ async function extractPrUrlFromUpdates(taskId) {
1744
1744
  return null;
1745
1745
  }
1746
1746
  function checkPrStatus(prUrl, repoDir, vcs = "github") {
1747
- const cmd = vcs === "gitlab" ? `glab mr view "${prUrl}" --output json 2>/dev/null` : `gh pr view "${prUrl}" --json merged,mergeable,isDraft,statusCheckRollup,reviewDecision 2>/dev/null`;
1747
+ const cmd = vcs === "gitlab" ? `glab mr view "${prUrl}" --output json 2>/dev/null` : `gh pr view "${prUrl}" --json merged,mergeable 2>/dev/null`;
1748
1748
  return new Promise((resolve9) => {
1749
1749
  exec(cmd, { cwd: repoDir }, (err, stdout) => {
1750
1750
  if (err || !stdout.trim()) {
@@ -1754,18 +1754,15 @@ function checkPrStatus(prUrl, repoDir, vcs = "github") {
1754
1754
  try {
1755
1755
  const data = JSON.parse(stdout.trim());
1756
1756
  if (vcs === "gitlab") {
1757
- const merged = data.state === "merged";
1758
- const hasConflicts = data.has_conflicts === true;
1759
- const isMergeable = !merged && data.state === "opened" && !hasConflicts && !data.draft && (data.merge_status === "can_be_merged" || data.merge_status === "can_be_merged_rebase");
1760
- resolve9({ merged, hasConflicts, isMergeable });
1757
+ resolve9({
1758
+ merged: data.state === "merged",
1759
+ hasConflicts: data.has_conflicts === true
1760
+ });
1761
1761
  } else {
1762
- const merged = data.merged === true;
1763
- const hasConflicts = data.mergeable === "CONFLICTING";
1764
- const checks = data.statusCheckRollup ?? [];
1765
- const allChecksPassed = checks.length === 0 || checks.every((c12) => c12.state === "SUCCESS" || c12.state === "NEUTRAL" || c12.state === "SKIPPED");
1766
- const noChangesRequested = data.reviewDecision !== "CHANGES_REQUESTED";
1767
- const isMergeable = !merged && !hasConflicts && !data.isDraft && data.mergeable === "MERGEABLE" && allChecksPassed && noChangesRequested;
1768
- resolve9({ merged, hasConflicts, isMergeable });
1762
+ resolve9({
1763
+ merged: data.merged === true,
1764
+ hasConflicts: data.mergeable === "CONFLICTING"
1765
+ });
1769
1766
  }
1770
1767
  } catch {
1771
1768
  resolve9(null);
@@ -1773,14 +1770,6 @@ function checkPrStatus(prUrl, repoDir, vcs = "github") {
1773
1770
  });
1774
1771
  });
1775
1772
  }
1776
- function mergePrViaCli(prUrl, repoDir, vcs = "github") {
1777
- const cmd = vcs === "gitlab" ? `glab mr merge "${prUrl}" --squash --remove-source-branch 2>&1` : `gh pr merge "${prUrl}" --squash --delete-branch 2>&1`;
1778
- return new Promise((resolve9) => {
1779
- exec(cmd, { cwd: repoDir }, (err) => {
1780
- resolve9(!err);
1781
- });
1782
- });
1783
- }
1784
1773
  function buildPrototypeSection(protoRefs, workingDir) {
1785
1774
  if (protoRefs.length === 0) return "";
1786
1775
  const sections = [
@@ -2509,10 +2498,7 @@ ${systemPrompt}` : prompt2;
2509
2498
  if (mode === "plan") {
2510
2499
  return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, ...turnsArgs, ...modelArgs, "--permission-mode", "plan", "-p", prompt2] };
2511
2500
  }
2512
- const cfg = loadConfig();
2513
- const permissionMode = cfg.claudePermissionMode ?? "auto";
2514
- const permissionArgs = permissionMode === "dangerously-skip-permissions" ? ["--dangerously-skip-permissions"] : ["--permission-mode", "auto", "--enable-auto-mode"];
2515
- return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, ...turnsArgs, ...modelArgs, ...permissionArgs, "-p", prompt2] };
2501
+ return { bin: "claude", args: [...sessionArgs, ...nameArgs, ...systemArgs, ...turnsArgs, ...modelArgs, "--dangerously-skip-permissions", "-p", prompt2] };
2516
2502
  }
2517
2503
  function commandExists(cmd) {
2518
2504
  return new Promise((resolve9) => {
@@ -4152,26 +4138,6 @@ ${divider}`);
4152
4138
  }
4153
4139
  continue;
4154
4140
  }
4155
- if (task.autoMerge && status.isMergeable) {
4156
- logInfo(prefix, `Auto-merging ${prLabel} for "${paint("bold", task.title)}"`);
4157
- const mergeOk = await mergePrViaCli(task.link, repoDir, vcs);
4158
- if (mergeOk) {
4159
- logSuccess(prefix, `${prLabel} auto-merged \u2014 completing "${paint("bold", task.title)}"`);
4160
- try {
4161
- await api.patch(`/api/tasks/${task.id}`, {
4162
- status: "completed",
4163
- completedAt: (/* @__PURE__ */ new Date()).toISOString(),
4164
- inProgressSince: null
4165
- });
4166
- await postTaskUpdate(task.id, `${prLabel} auto-merged and task completed`, "system");
4167
- } catch (err) {
4168
- logError(prefix, `Failed to complete task after auto-merge: ${err.message}`);
4169
- }
4170
- } else {
4171
- logWarn(prefix, `Auto-merge of ${prLabel} failed for "${paint("bold", task.title)}" \u2014 will retry next poll`);
4172
- }
4173
- continue;
4174
- }
4175
4141
  if (status.hasConflicts) {
4176
4142
  logWarn(prefix, `${prLabel} has merge conflicts \u2014 re-dispatching agent for "${paint("bold", task.title)}"`);
4177
4143
  try {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dunnewold-labs/mr-manager",
3
- "version": "0.4.23",
3
+ "version": "0.4.25",
4
4
  "description": "Mr. Manager - Task and project management CLI",
5
5
  "bin": {
6
6
  "mr": "./dist/index.mjs"