@goodtek/vibeops 2.4.1 → 2.4.2

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/CHANGELOG.md CHANGED
@@ -4,6 +4,12 @@ All notable changes to VibeOps are documented here.
4
4
 
5
5
  ## Unreleased
6
6
 
7
+ ## 2.4.2 - 2026-06-24
8
+
9
+ ### Fixed
10
+
11
+ - **GitLab (`glab` 1.105+):** `task merge` / `task ship` now resolve merge requests using `-F json` and `-M`/`-c`/`-A` state filters instead of deprecated `--output` / `-S` flags.
12
+
7
13
  ## 2.4.0 - 2026-06-12
8
14
 
9
15
  ### Changed
@@ -114,22 +114,31 @@ async function ghFindMergeRequestByBranches(opts) {
114
114
  }
115
115
  async function glabFindMergeRequestByBranches(opts) {
116
116
  const state = opts.state ?? "open";
117
- const glabState = state === "open" ? "opened" : state === "merged" ? "merged" : state === "closed" ? "closed" : "all";
118
- const { stdout } = await execFileAsync("glab", [
117
+ const args = [
119
118
  "mr",
120
119
  "list",
121
120
  "--source-branch",
122
121
  opts.headBranch,
123
122
  "--target-branch",
124
123
  opts.baseBranch,
125
- "-S",
126
- glabState,
124
+ "-F",
125
+ "json",
127
126
  "-P",
128
127
  "1",
129
- "--output",
130
- "json",
131
- "web_url,state",
132
- ], { cwd: opts.cwd, maxBuffer: 1024 * 1024 });
128
+ ];
129
+ if (state === "merged") {
130
+ args.push("-M");
131
+ }
132
+ else if (state === "closed") {
133
+ args.push("-c");
134
+ }
135
+ else if (state === "all") {
136
+ args.push("-A");
137
+ }
138
+ const { stdout } = await execFileAsync("glab", args, {
139
+ cwd: opts.cwd,
140
+ maxBuffer: 1024 * 1024,
141
+ });
133
142
  const trimmed = stdout.trim();
134
143
  if (trimmed.length === 0 || trimmed === "[]")
135
144
  return null;
@@ -181,8 +190,9 @@ export async function getMergeRequestState(cwd, host, url) {
181
190
  const ref = prRefFromUrl(url);
182
191
  try {
183
192
  if (host === "gitlab") {
184
- const { stdout } = await execFileAsync("glab", ["mr", "view", ref, "--output", "json", "state"], { cwd, maxBuffer: 1024 * 1024 });
185
- const state = stdout.trim().toLowerCase();
193
+ const { stdout } = await execFileAsync("glab", ["mr", "view", ref, "-F", "json"], { cwd, maxBuffer: 1024 * 1024 });
194
+ const parsed = JSON.parse(stdout.trim());
195
+ const state = (parsed.state ?? "").toLowerCase();
186
196
  if (state === "merged")
187
197
  return "merged";
188
198
  if (state === "opened" || state === "open")
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@goodtek/vibeops",
3
- "version": "2.4.1",
3
+ "version": "2.4.2",
4
4
  "description": "Minimal CLI rails for Cursor-based TASK-driven vibe coding.",
5
5
  "type": "module",
6
6
  "author": "VibeOps contributors",