@vibescope/mcp-server 0.3.0 → 0.3.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.
@@ -21,6 +21,7 @@ const validateTaskSchema = {
21
21
  approved: { type: 'boolean', required: true },
22
22
  validation_notes: { type: 'string' },
23
23
  skip_pr_check: { type: 'boolean' },
24
+ // Note: pr_checks_passing may arrive as string from some MCP clients, handled in validateTask
24
25
  pr_checks_passing: { type: 'boolean' },
25
26
  };
26
27
  export const getTasksAwaitingValidation = async (args, _ctx) => {
@@ -79,12 +80,15 @@ export const validateTask = async (args, ctx) => {
79
80
  const { task_id, approved, validation_notes, skip_pr_check, pr_checks_passing } = parseArgs(args, validateTaskSchema);
80
81
  const { session } = ctx;
81
82
  const currentSessionId = session.currentSessionId;
83
+ // Ensure pr_checks_passing is a proper boolean (MCP may send as string)
84
+ // Cast to unknown first to satisfy TypeScript
85
+ const checksPassingBool = pr_checks_passing === true || pr_checks_passing === 'true';
82
86
  const apiClient = getApiClient();
83
87
  const response = await apiClient.validateTask(task_id, {
84
88
  approved,
85
89
  validation_notes,
86
90
  skip_pr_check,
87
- pr_checks_passing,
91
+ pr_checks_passing: pr_checks_passing !== undefined ? checksPassingBool : undefined,
88
92
  }, currentSessionId || undefined);
89
93
  if (!response.ok) {
90
94
  // Handle PR required error specially
package/dist/tools.js CHANGED
@@ -1638,6 +1638,10 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
1638
1638
  type: 'boolean',
1639
1639
  description: 'Skip PR existence check (use only for tasks that legitimately do not need a PR)',
1640
1640
  },
1641
+ create_fix_task: {
1642
+ type: 'boolean',
1643
+ description: 'When rejecting (approved: false), create a new fix task linked to the original. The fix task will contain the rejection reason and be assigned the same git branch.',
1644
+ },
1641
1645
  },
1642
1646
  required: ['task_id', 'approved'],
1643
1647
  },
package/docs/TOOLS.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  > Auto-generated from tool definitions. Do not edit manually.
4
4
  >
5
- > Generated: 2026-01-24
5
+ > Generated: 2026-01-30
6
6
  >
7
7
  > Total tools: 152
8
8
 
@@ -1025,6 +1025,7 @@ Validate a completed task. Include test results in validation_notes. For github-
1025
1025
  | `approved` | `boolean` | Yes | Whether the task passes validation (true = approved, false = needs more work) |
1026
1026
  | `pr_checks_passing` | `boolean` | No | REQUIRED when approving tasks with PRs. Confirm you verified PR checks are passing via `gh pr view <PR_NUMBER> --json statusCheckRollup`. Set to true only if all required checks pass. |
1027
1027
  | `skip_pr_check` | `boolean` | No | Skip PR existence check (use only for tasks that legitimately do not need a PR) |
1028
+ | `create_fix_task` | `boolean` | No | When rejecting (approved: false), create a new fix task linked to the original. The fix task will contain the rejection reason and be assigned the same git branch. |
1028
1029
 
1029
1030
  ---
1030
1031
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vibescope/mcp-server",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "description": "MCP server for Vibescope - AI project tracking tools",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "repository": {
13
13
  "type": "git",
14
- "url": "https://github.com/Nonatomic/Vibescope.git",
14
+ "url": "https://github.com/PaulNonatomic/Vibescope.git",
15
15
  "directory": "packages/mcp-server"
16
16
  },
17
17
  "publishConfig": {
@@ -26,6 +26,7 @@ const validateTaskSchema = {
26
26
  approved: { type: 'boolean' as const, required: true as const },
27
27
  validation_notes: { type: 'string' as const },
28
28
  skip_pr_check: { type: 'boolean' as const },
29
+ // Note: pr_checks_passing may arrive as string from some MCP clients, handled in validateTask
29
30
  pr_checks_passing: { type: 'boolean' as const },
30
31
  };
31
32
 
@@ -100,12 +101,16 @@ export const validateTask: Handler = async (args, ctx) => {
100
101
  const { session } = ctx;
101
102
  const currentSessionId = session.currentSessionId;
102
103
 
104
+ // Ensure pr_checks_passing is a proper boolean (MCP may send as string)
105
+ // Cast to unknown first to satisfy TypeScript
106
+ const checksPassingBool = pr_checks_passing === true || (pr_checks_passing as unknown) === 'true';
107
+
103
108
  const apiClient = getApiClient();
104
109
  const response = await apiClient.validateTask(task_id, {
105
110
  approved,
106
111
  validation_notes,
107
112
  skip_pr_check,
108
- pr_checks_passing,
113
+ pr_checks_passing: pr_checks_passing !== undefined ? checksPassingBool : undefined,
109
114
  }, currentSessionId || undefined);
110
115
 
111
116
  if (!response.ok) {
package/src/tools.ts CHANGED
@@ -1641,6 +1641,10 @@ This marks the task as cleaned up so it won't appear in get_stale_worktrees.`,
1641
1641
  type: 'boolean',
1642
1642
  description: 'Skip PR existence check (use only for tasks that legitimately do not need a PR)',
1643
1643
  },
1644
+ create_fix_task: {
1645
+ type: 'boolean',
1646
+ description: 'When rejecting (approved: false), create a new fix task linked to the original. The fix task will contain the rejection reason and be assigned the same git branch.',
1647
+ },
1644
1648
  },
1645
1649
  required: ['task_id', 'approved'],
1646
1650
  },