Skip to content

fix(crashlytics-autotriage): single trigger + activate Crashlytics MCP tools#88

Merged
stozo04 merged 2 commits into
mainfrom
feature/crashlytics-autotriage-single-trigger
Jun 23, 2026
Merged

fix(crashlytics-autotriage): single trigger + activate Crashlytics MCP tools#88
stozo04 merged 2 commits into
mainfrom
feature/crashlytics-autotriage-single-trigger

Conversation

@stozo04

@stozo04 stozo04 commented Jun 23, 2026

Copy link
Copy Markdown
Owner

Description

Two corrections found during the Phase 0 live test (issue #87):

1. Trigger on labeled only (kill duplicate runs)

The workflow triggered on both issues: opened and issues: labeled. Because the Cloud Function creates each crash issue with the crashlytics-auto label, both fired — two triage runs per crash, doubling Claude API spend. Now triggers on labeled only; the function applies the label when it files a crash, so it reliably catches every case, and a human can still label an existing issue. Also refreshed the stale NOT YET ENABLED header comment.

2. Activate the Crashlytics MCP tool group (--only crashlytics)

On #87 the run succeeded but Claude reported the Crashlytics MCP tools never surfaced, so it triaged with no stacktrace. Verified the cause: those tools are experimental and not in the Firebase MCP server's default set.

$ npx firebase-tools@latest mcp --generate-tool-list            # 63 tools, zero crashlytics
$ npx firebase-tools@latest mcp --only crashlytics --generate-tool-list
  | crashlytics_get_issue | crashlytics | ... |
  | crashlytics_list_events | crashlytics | ... |   (+ the rest)

Added --only crashlytics to .github/firebase-mcp.json. Core tools stay available alongside the crashlytics group.

Type of Change

  • 🐛 Bug Fix (cost/duplication + missing crash data)
  • 🔧 Chore (CI workflow + MCP config)

How Has This Been Tested?

  • Duplicate runs reproduced on [Crashlytics][TEST] Phase 0 retest — real ID #87 (an opened run and a labeled run); labeled-only yields one run.
  • Crashlytics tool activation verified via mcp --generate-tool-list (output above).
  • End-to-end re-test to follow after merge: a fresh crashlytics-auto labeling should now let Claude fetch the real stacktrace.

Dependency note

For the Crashlytics tools to actually return data, the GCP_SA_KEY service account needs roles/firebasecrashlytics.viewer and the project's Crashlytics API must be enabled — already set up per gh-crashlytics-reader.

Checklist

  • 🔍 Self-review performed.
  • 📖 No new parse errors (workflow YAML + JSON validated).

stozo04 added 2 commits June 23, 2026 14:56
…e runs)

The workflow triggered on both `opened` and `labeled`, so an issue created
*with* the crashlytics-auto label fired two triage runs — doubling Claude API
spend per crash. Trigger on `labeled` only: the Cloud Function applies the
label when it files a crash, so `labeled` reliably catches every case, and a
human can still add the label to an existing issue. Also refreshes the stale
"NOT YET ENABLED" header comment.
…nly crashlytics)

The Crashlytics tools are experimental and NOT in the Firebase MCP server's
default tool set (verified: `mcp --generate-tool-list` shows 63 tools, none
crashlytics; `--only crashlytics` surfaces crashlytics_get_issue/list_events/etc).
Without this flag the server connects but the crashlytics_* tools never appear,
so Claude triages with no stacktrace (observed on issue #87). Core tools remain
available alongside the crashlytics group.
@stozo04 stozo04 changed the title fix(crashlytics-autotriage): trigger on labeled only — kill duplicate runs fix(crashlytics-autotriage): single trigger + activate Crashlytics MCP tools Jun 23, 2026
@stozo04 stozo04 merged commit 64466c8 into main Jun 23, 2026
1 check passed
@stozo04 stozo04 deleted the feature/crashlytics-autotriage-single-trigger branch June 23, 2026 20:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant