@arii/boomtick-mcp 0.3.5 → 0.3.6

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.
@@ -82,6 +82,10 @@
82
82
  "state": {
83
83
  "anyOf": [
84
84
  {
85
+ "enum": [
86
+ "open",
87
+ "closed"
88
+ ],
85
89
  "type": "string"
86
90
  },
87
91
  {
@@ -89,7 +93,7 @@
89
93
  }
90
94
  ],
91
95
  "default": null,
92
- "description": "The state to set the issue to (open or closed).",
96
+ "description": "The state to set the issue to.",
93
97
  "title": "State"
94
98
  }
95
99
  },
@@ -2,13 +2,20 @@
2
2
  "properties": {
3
3
  "state": {
4
4
  "default": "open",
5
- "description": "The state of the PRs to search for (open, closed, all).",
5
+ "description": "The state of the PRs to search for.",
6
+ "enum": [
7
+ "open",
8
+ "closed",
9
+ "all"
10
+ ],
6
11
  "title": "State",
7
12
  "type": "string"
8
13
  },
9
14
  "limit": {
10
15
  "default": 100,
11
16
  "description": "The maximum number of PRs to return (default: 100, range: 1-100).",
17
+ "maximum": 100,
18
+ "minimum": 1,
12
19
  "title": "Limit",
13
20
  "type": "integer"
14
21
  },
package/CHANGELOG.md CHANGED
@@ -1,5 +1,14 @@
1
1
  # Changelog
2
2
 
3
+ ## [0.3.6](https://github.com/arii/boomtick/compare/mcp-v0.3.5...mcp-v0.3.6) (2026-08-13)
4
+
5
+
6
+ ### Bug Fixes
7
+
8
+ * **ai:** add gemini fallback logic to AIClient ([5cc87cc](https://github.com/arii/boomtick/commit/5cc87cc79e65df79db98bc27e679d14ffdd2d18d))
9
+ * **ai:** add gemini fallback logic to AIClient ([3ba37ec](https://github.com/arii/boomtick/commit/3ba37ec50a7447a9517e9f0029ff05ee01adf4d8))
10
+ * resolve td-cli not found in impact-analysis CI action ([#508](https://github.com/arii/boomtick/issues/508)) ([702643f](https://github.com/arii/boomtick/commit/702643f9d0d2447ae7baf20d22d553a7dfbae777))
11
+
3
12
  ## [0.3.5](https://github.com/arii/boomtick/compare/mcp-v0.3.4...mcp-v0.3.5) (2026-08-05)
4
13
 
5
14
 
@@ -7,7 +7,7 @@ inputs:
7
7
  runs:
8
8
  using: composite
9
9
  steps:
10
- - uses: ./mcp/actions/setup
10
+ - uses: arii/boomtick/mcp/actions/setup@main
11
11
  - name: AI review
12
12
  env:
13
13
  PR_NUMBER: ${{ inputs.pr_number }}
@@ -7,7 +7,7 @@ inputs:
7
7
  runs:
8
8
  using: composite
9
9
  steps:
10
- - uses: ./mcp/actions/setup
10
+ - uses: arii/boomtick/mcp/actions/setup@main
11
11
 
12
12
  - name: Install dependencies
13
13
  run: pnpm install --frozen-lockfile --prefer-offline
@@ -3,7 +3,7 @@ description: Runs pre-submit checks via td-cli CLI
3
3
  runs:
4
4
  using: composite
5
5
  steps:
6
- - uses: ./mcp/actions/setup
6
+ - uses: arii/boomtick/mcp/actions/setup@main
7
7
  - name: Pre-submit gate
8
8
  run: td-cli gh pre-submit
9
9
  shell: bash
@@ -16,7 +16,7 @@ inputs:
16
16
  runs:
17
17
  using: composite
18
18
  steps:
19
- - uses: ./mcp/actions/setup
19
+ - uses: arii/boomtick/mcp/actions/setup@main
20
20
 
21
21
  - name: pnpm install
22
22
  run: pnpm install --frozen-lockfile --prefer-offline
@@ -26,6 +26,9 @@ runs:
26
26
  env:
27
27
  PR_NUMBER: ${{ inputs.pr_number }}
28
28
  run: |
29
+ if [[ -z "$PR_NUMBER" ]]; then
30
+ exit 0
31
+ fi
29
32
  if [[ ! "$PR_NUMBER" =~ ^[0-9]+$ ]]; then
30
33
  echo "::error::Invalid PR_NUMBER: must be numeric."
31
34
  exit 1
@@ -275,7 +278,7 @@ runs:
275
278
 
276
279
  if [[ "$VERDICT" == "warn" ]]; then
277
280
  # Only allow specific safe-skip reasons for warnings to pass CI
278
- IS_TRUNCATED=$(jq -r '.isTruncated // .truncated // "false"' "$f" 2>/dev/null)
281
+ IS_TRUNCATED=$(jq -r '.isTruncated // "false"' "$f" 2>/dev/null)
279
282
  SKIP_REASON=$(jq -r '.skipReason // "NONE"' "$f" 2>/dev/null)
280
283
 
281
284
  if [[ "$IS_TRUNCATED" == "true" || "$SKIP_REASON" == *"MISSING_API_KEY"* || "$SKIP_REASON" == *"RATE_LIMIT"* || "$SKIP_REASON" == *"UNHANDLED_ERROR"* || "$SKIP_REASON" == *"TRUNCATED"* || "$SKIP_REASON" == *"PARSE_ERROR"* || "$SKIP_REASON" == "NONE" ]]; then
@@ -333,7 +336,7 @@ runs:
333
336
 
334
337
  - name: Update Impact Analysis Feedback (Final Result)
335
338
  if: always()
336
- uses: ./mcp/actions/update-pr-comment
339
+ uses: arii/boomtick/mcp/actions/update-pr-comment@main
337
340
  with:
338
341
  github_token: ${{ inputs.github_token }}
339
342
  status_line: '✅ **Impact Analysis Complete**'
@@ -372,6 +375,10 @@ runs:
372
375
  env:
373
376
  GITHUB_TOKEN: ${{ inputs.github_token }}
374
377
  run: |
378
+ # Inject custom CLI path for td-cli resolution
379
+ PYTHON_SCRIPTS_PATH=$(python3 -c "import sysconfig; print(sysconfig.get_path('scripts'))")
380
+ export PATH="$PYTHON_SCRIPTS_PATH:$HOME/.local/bin:/github/home/.local/bin:$PATH"
381
+
375
382
  # Resolve CLI dir for PYTHONPATH
376
383
  if [ -d "cli" ]; then
377
384
  export PYTHONPATH="cli:$PYTHONPATH"
@@ -10,10 +10,10 @@ inputs:
10
10
  runs:
11
11
  using: composite
12
12
  steps:
13
- - uses: ./mcp/actions/setup
13
+ - uses: arii/boomtick/mcp/actions/setup@main
14
14
 
15
15
  - name: Run Project Gate
16
- uses: ./mcp/actions/run-project-gate
16
+ uses: arii/boomtick/mcp/actions/run-project-gate@main
17
17
  with:
18
18
  target: ${{ inputs.target }}
19
19
  github_token: ${{ inputs.github_token }}
@@ -8,7 +8,7 @@ runs:
8
8
  shell: bash
9
9
 
10
10
  - name: Setup Workspace
11
- uses: ./.github/actions/setup-workspace
11
+ uses: arii/boomtick/.github/actions/setup-workspace@main
12
12
 
13
13
  - name: Verify setup
14
14
  run: td-cli doctor
@@ -11,7 +11,7 @@ inputs:
11
11
  runs:
12
12
  using: composite
13
13
  steps:
14
- - uses: ./mcp/actions/setup
14
+ - uses: arii/boomtick/mcp/actions/setup@main
15
15
 
16
16
  - name: pnpm install
17
17
  run: pnpm install --frozen-lockfile --prefer-offline
@@ -1,4 +1,31 @@
1
1
  import { runCommand } from "../lib/shell.js";
2
+ import { execSync } from "child_process";
3
+ import * as fs from "fs";
4
+ import * as path from "path";
5
+ export const loadStandaloneAgentContext = (repoRoot = process.cwd()) => {
6
+ const configPath = path.join(repoRoot, "project_config.json");
7
+ let config = {};
8
+ if (fs.existsSync(configPath)) {
9
+ try {
10
+ config = JSON.parse(fs.readFileSync(configPath, "utf-8"));
11
+ }
12
+ catch (e) {
13
+ console.warn(`[MCP Warning] Failed to parse ${configPath}:`, e);
14
+ }
15
+ }
16
+ let gitCommit = "unknown";
17
+ try {
18
+ gitCommit = execSync("git rev-parse HEAD", { cwd: repoRoot, encoding: "utf-8" }).trim();
19
+ }
20
+ catch {
21
+ // Fallback if git is unavailable (e.g. Docker container without git)
22
+ }
23
+ return {
24
+ packageName: config.packageName ?? "boomtick",
25
+ gitCommit,
26
+ config,
27
+ };
28
+ };
2
29
  function tryParseJson(text) {
3
30
  try {
4
31
  return JSON.parse(text);