standup-mr 1.0.0 → 1.0.1
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 +16 -0
- package/dist/{chunk-S7DAKN36.js → chunk-3C3PBI3T.js} +4 -7
- package/dist/cli.js +1 -1
- package/dist/index.js +1 -1
- package/dist/mcp/server.js +13 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,22 @@ All notable changes to standup-mr are recorded here. The format follows
|
|
|
4
4
|
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and the project uses
|
|
5
5
|
[semantic versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
6
|
|
|
7
|
+
## [1.0.1] - 2026-10-12
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- GitLab merge requests take their pipeline from `head_pipeline`, the one
|
|
12
|
+
GitLab shows on the MR. The `/pipelines` list is not ordered newest first,
|
|
13
|
+
so a merge request could be reported blocked by a stale red pipeline from an
|
|
14
|
+
earlier commit, and the current failure's log was never read.
|
|
15
|
+
- Error lines from GitLab's timestamped job logs no longer start with the
|
|
16
|
+
stream marker (`01O`, `00E+`) that follows each timestamp.
|
|
17
|
+
|
|
18
|
+
### Added
|
|
19
|
+
|
|
20
|
+
- Every MCP tool declares a human-readable `title`, which clients show in
|
|
21
|
+
their tool lists and permission prompts.
|
|
22
|
+
|
|
7
23
|
## [1.0.0] - 2026-10-12
|
|
8
24
|
|
|
9
25
|
First stable release. From here on the CLI commands and flags, the JSON that
|
|
@@ -383,7 +383,7 @@ var SECTION = /section_(start|end):\d+:\S*/g;
|
|
|
383
383
|
var SIGNAL = /(\berror\b|Error:|fatal:|npm ERR!|\bfailed\b)/i;
|
|
384
384
|
var NOISE = /^(Cleaning up|Job failed: exit status|ERROR: Job failed|Uploading artifacts|Job succeeded)/i;
|
|
385
385
|
var MAX_LINE = 200;
|
|
386
|
-
var TIMESTAMP = /^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s
|
|
386
|
+
var TIMESTAMP = /^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s+(?:[0-9a-f]{2}[OE]\+?\s)?/;
|
|
387
387
|
var ERROR_MARKER = /^##\[error\]\s*/;
|
|
388
388
|
var GROUP_START = /^##\[group\]/;
|
|
389
389
|
var GROUP_END = /^##\[endgroup\]/;
|
|
@@ -904,14 +904,11 @@ var GitLabProvider = class {
|
|
|
904
904
|
async shapeMr(mr) {
|
|
905
905
|
const projectId = mr.project_id;
|
|
906
906
|
const iid = mr.iid;
|
|
907
|
-
const [
|
|
908
|
-
this.getJson(
|
|
909
|
-
`projects/${projectId}/merge_requests/${iid}/pipelines`,
|
|
910
|
-
{ per_page: 1 }
|
|
911
|
-
),
|
|
907
|
+
const [detail, unresolved] = await Promise.all([
|
|
908
|
+
this.getJson(`projects/${projectId}/merge_requests/${iid}`),
|
|
912
909
|
this.countUnresolved(projectId, iid)
|
|
913
910
|
]);
|
|
914
|
-
const latest =
|
|
911
|
+
const latest = detail?.head_pipeline ?? void 0;
|
|
915
912
|
return {
|
|
916
913
|
provider: "gitlab",
|
|
917
914
|
project: String(mr.references.full).split("!")[0],
|
package/dist/cli.js
CHANGED
package/dist/index.js
CHANGED
package/dist/mcp/server.js
CHANGED
|
@@ -306,7 +306,7 @@ var SECTION = /section_(start|end):\d+:\S*/g;
|
|
|
306
306
|
var SIGNAL = /(\berror\b|Error:|fatal:|npm ERR!|\bfailed\b)/i;
|
|
307
307
|
var NOISE = /^(Cleaning up|Job failed: exit status|ERROR: Job failed|Uploading artifacts|Job succeeded)/i;
|
|
308
308
|
var MAX_LINE = 200;
|
|
309
|
-
var TIMESTAMP = /^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s
|
|
309
|
+
var TIMESTAMP = /^\d{4}-\d{2}-\d{2}T[\d:.]+Z\s+(?:[0-9a-f]{2}[OE]\+?\s)?/;
|
|
310
310
|
var ERROR_MARKER = /^##\[error\]\s*/;
|
|
311
311
|
var GROUP_START = /^##\[group\]/;
|
|
312
312
|
var GROUP_END = /^##\[endgroup\]/;
|
|
@@ -936,14 +936,11 @@ var GitLabProvider = class {
|
|
|
936
936
|
async shapeMr(mr) {
|
|
937
937
|
const projectId = mr.project_id;
|
|
938
938
|
const iid = mr.iid;
|
|
939
|
-
const [
|
|
940
|
-
this.getJson(
|
|
941
|
-
`projects/${projectId}/merge_requests/${iid}/pipelines`,
|
|
942
|
-
{ per_page: 1 }
|
|
943
|
-
),
|
|
939
|
+
const [detail, unresolved] = await Promise.all([
|
|
940
|
+
this.getJson(`projects/${projectId}/merge_requests/${iid}`),
|
|
944
941
|
this.countUnresolved(projectId, iid)
|
|
945
942
|
]);
|
|
946
|
-
const latest =
|
|
943
|
+
const latest = detail?.head_pipeline ?? void 0;
|
|
947
944
|
return {
|
|
948
945
|
provider: "gitlab",
|
|
949
946
|
project: String(mr.references.full).split("!")[0],
|
|
@@ -1280,6 +1277,9 @@ async function runPostTool(args, deps = {}) {
|
|
|
1280
1277
|
async function runInstructionsTool() {
|
|
1281
1278
|
return text(readStandupSkillBody());
|
|
1282
1279
|
}
|
|
1280
|
+
var STANDUP_TOOL_TITLE = "Get standup data";
|
|
1281
|
+
var POST_TOOL_TITLE = "Post standup note";
|
|
1282
|
+
var INSTRUCTIONS_TOOL_TITLE = "Get note instructions";
|
|
1283
1283
|
var STANDUP_TOOL_ANNOTATIONS = {
|
|
1284
1284
|
readOnlyHint: true,
|
|
1285
1285
|
destructiveHint: false,
|
|
@@ -1319,6 +1319,7 @@ function createServer() {
|
|
|
1319
1319
|
server.registerTool(
|
|
1320
1320
|
"get_standup_data",
|
|
1321
1321
|
{
|
|
1322
|
+
title: STANDUP_TOOL_TITLE,
|
|
1322
1323
|
description: STANDUP_TOOL_DESCRIPTION,
|
|
1323
1324
|
inputSchema: STANDUP_TOOL_SCHEMA,
|
|
1324
1325
|
annotations: STANDUP_TOOL_ANNOTATIONS
|
|
@@ -1328,6 +1329,7 @@ function createServer() {
|
|
|
1328
1329
|
server.registerTool(
|
|
1329
1330
|
"post_standup_note",
|
|
1330
1331
|
{
|
|
1332
|
+
title: POST_TOOL_TITLE,
|
|
1331
1333
|
description: POST_TOOL_DESCRIPTION,
|
|
1332
1334
|
inputSchema: POST_TOOL_SCHEMA,
|
|
1333
1335
|
annotations: POST_TOOL_ANNOTATIONS
|
|
@@ -1337,6 +1339,7 @@ function createServer() {
|
|
|
1337
1339
|
server.registerTool(
|
|
1338
1340
|
"get_note_instructions",
|
|
1339
1341
|
{
|
|
1342
|
+
title: INSTRUCTIONS_TOOL_TITLE,
|
|
1340
1343
|
description: INSTRUCTIONS_TOOL_DESCRIPTION,
|
|
1341
1344
|
annotations: INSTRUCTIONS_TOOL_ANNOTATIONS
|
|
1342
1345
|
},
|
|
@@ -1366,13 +1369,16 @@ if (entryUrl && import.meta.url === entryUrl) {
|
|
|
1366
1369
|
export {
|
|
1367
1370
|
INSTRUCTIONS_TOOL_ANNOTATIONS,
|
|
1368
1371
|
INSTRUCTIONS_TOOL_DESCRIPTION,
|
|
1372
|
+
INSTRUCTIONS_TOOL_TITLE,
|
|
1369
1373
|
POST_TOOL_ANNOTATIONS,
|
|
1370
1374
|
POST_TOOL_DESCRIPTION,
|
|
1371
1375
|
POST_TOOL_SCHEMA,
|
|
1376
|
+
POST_TOOL_TITLE,
|
|
1372
1377
|
SERVER_ICONS,
|
|
1373
1378
|
STANDUP_TOOL_ANNOTATIONS,
|
|
1374
1379
|
STANDUP_TOOL_DESCRIPTION,
|
|
1375
1380
|
STANDUP_TOOL_SCHEMA,
|
|
1381
|
+
STANDUP_TOOL_TITLE,
|
|
1376
1382
|
WEBHOOK_URL_ENV,
|
|
1377
1383
|
collect,
|
|
1378
1384
|
createServer,
|