Skip to content

Update sentry-triage canvas to 1.3.0 - #5611

Merged
aaronpowell merged 1 commit into
github:mainfrom
pierceboggan:pierceboggan-update-sentry-triage-canvas
Oct 26, 2026
Merged

aaronpowell merged 1 commit into
github:mainfrom
pierceboggan:pierceboggan-update-sentry-triage-canvas

Conversation

@pierceboggan

Copy link
Copy Markdown
Contributor

Pull Request Checklist

  • I have read and followed the CONTRIBUTING.md guidelines.
  • I have read and followed the Guidance for submissions involving paid services.
  • My contribution adds a new instruction, prompt, agent, skill, workflow, or canvas extension file in the correct directory.
  • The file follows the required naming convention.
  • The content is clearly structured and follows the example format.
  • I have tested my instructions, prompt, agent, skill, workflow, or canvas extension with GitHub Copilot.
  • I have run npm start and verified that README.md is up to date.
  • I am targeting the main branch for this pull request.

Description

Syncs extensions/sentry-triage/ with the latest canvas work from pierceboggan/sentry-canvas@natalierharris-polish-sentry-triage-canvas, by Natalie Harris and Pierce Boggan. That branch started from the current upstream code (after #2948), so this is an additive update.

Changes:

  • Faster issue detail. sentryClient.mjs fetches issue lists as 100-item pages, each queued as its own SDK call with interactive/prefetch priority. Opening an issue during a scan drops from 30+ seconds to about 7.
  • Issue drill-in. New POST /api/issue-detail endpoint in server.mjs (key validated against ^[A-Za-z0-9_.-]{1,80}$) backed by issueDetail().
  • Roomier layout. Reworked page.mjs and styles.mjs with more spacing and larger titles. Category labels drop emoji prefixes.
  • Trend charts. Each card gets a 30-point sparkline and the overview gets an "Events over time" chart. Both come from the stats field Sentry already returns, so there are no extra API calls.
  • plugins/sentry-triage/plugin.json bumped 1.2.0 → 1.3.0, with a "What's new" section in the plugin README. marketplace.json regenerated.

The original plugin is by Liz Tom (MIT). The license and attribution are unchanged.


Type of Contribution

  • New instruction file.
  • New prompt file.
  • New agent file.
  • New plugin.
  • New skill file.
  • New agentic workflow.
  • New canvas extension.
  • Update to existing instruction, prompt, agent, plugin, skill, workflow, or canvas extension.
  • Other (please specify):

Additional Notes

  • The source branch's package-lock.json was left out on purpose. Its resolved URLs point at an internal feed, and upstream doesn't ship a lockfile for this extension. package.json is unchanged.
  • The source README's fork-specific install line wasn't copied. The plugin README still uses copilot plugin install sentry-triage@awesome-copilot.

Validation:

  • npm run plugin:validate: passed (all 108 plugins valid)
  • npm run build: passed (README.md/marketplace.json regenerated; only the sentry-triage version changed)
  • node --check on every .mjs in extensions/sentry-triage/: passed
  • bash eng/fix-line-endings.sh: didn't run cleanly on macOS (GNU sed syntax). The changed files were checked by hand and contain no CRLF.
  • Not run in this PR: a manual end-to-end test of the canvas against a live Sentry org.

By submitting this pull request, I confirm that my contribution abides by the Code of Conduct and will be licensed under the MIT License.

Sync the canvas extension with pierceboggan/sentry-canvas
(natalierharris-polish-sentry-triage-canvas): paged issue fetching,
an on-demand issue detail view, a roomier layout, and event trend
sparklines plus an overview chart. Bump the plugin to 1.3.0 and note
the changes in the plugin README.

Co-authored-by: Natalie Harris <natalierharris@users.noreply.github.com>
Co-authored-by: Pierce Boggan <piboggan@microsoft.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@pierceboggan
pierceboggan requested review from a team as code owners October 26, 2026 05:37
Copilot AI max review requested due to automatic review settings October 26, 2026 05:37
@github-actions github-actions Bot added canvas-extension PR touches canvas extensions plugin PR touches plugins awaiting-automation merge-risk:medium labels Oct 26, 2026
@github-actions

github-actions Bot commented Oct 26, 2026 •

Copy link
Copy Markdown
Contributor

🚦 Submission status: 👀 Ready for review

Risk tier: merge-risk:medium — New or substantially changed resource without privileged execution
Required to merge: passing submission-gate checks plus 1 approval from reviewers with write access.

Why this tier
  • Changes 3512 lines (low-risk limit is 40)

Automated checks

Check Status Details
Line endings ✅ Passed Passed · logs
Spelling ✅ Passed Passed · logs
Generated README consistency ✅ Passed Passed · logs
Plugin and extension validation ✅ Passed Passed · logs
Canvas extension validation ✅ Passed Passed · logs
Plugin structure ✅ Passed Passed · logs
Risk scan ✅ Passed Passed · logs
Contributor reputation ✅ Passed Passed · logs
Duplicate resource scan ✅ Passed Passed · logs
PR quality signal ⏭️ Skipped Skipped by its workflow · logs
Canvas/plugin smoke test ✅ Passed Passed · logs

Review

  • Approvals: 0/1
  • Assigned reviewer: not assigned yet — comment /request-review to ask for one
  • Review target date: not set
  • Still needed: 1 more approval(s)
  • No staffed reviewer pool owns these files yet; any reviewer with write access counts as the domain reviewer.

Commands

Command Who What it does
/rerun-checks PR author, maintainers Re-runs failed or incomplete checks and re-evaluates this gate
/request-review PR author, maintainers Asks the review rotation to assign a reviewer (adds needs-reviewer)

Updated for 3d35fad · gate run · This comment is maintained automatically — see submission gate docs.

@github-actions

Copy link
Copy Markdown
Contributor

🔒 PR Risk Scan Results

Scanned 12 changed file(s).

Severity Count
🔴 High 0
🟠 Medium 1
ℹ️ Info 0
Severity Rule File Line Match
🟠 package-exec-command extensions/sentry-triage/sentryClient.mjs 226 // flow — the exact same flow `npx sentry auth login` drives from a

This is an automated soft-gate report. Findings indicate review targets and do not block merge by themselves.

@github-actions

Copy link
Copy Markdown
Contributor

🧩 Canvas smoke test

✅ Passed · 0 error(s), 0 warning(s)

Check Result
Syntax, imports, file safety ✅
Preview image (≥ 400×160 PNG) ✅
Plugin manifests ✅
Materialize ✅
Install (Copilot CLI) ✅

Plugin sentry-triage v1.3.0

Field Value
Description Scan live Sentry issues in a Copilot canvas, group them by urgency, and hand issues off for tracking or a fix PR.
Author Liz Tom — https://github.com/liztom
License MIT
Keywords canvas, copilot-canvas, copilot-extension, error-triage, incident-response, on-call, sentry
Extensions sentry-triage
Materialize ✅
Install ✅
Changed plugin files
  • plugins/sentry-triage/README.md
  • plugins/sentry-triage/plugin.json

Extension sentry-triage

sentry-triage preview

Field Value
Registered by sentry-triage
Package sentry-triage 1.2.0
Preview 544×306, 307.2 KB
Modules 12 (12 reachable from extension.mjs)
Files 18

Permissions and capabilities (static analysis of modules reachable from extension.mjs)

  • Spawns processes (node:child_process)
  • File system access (node:fs)
  • Network sockets / local server (node:http, node:net, ...)
  • Host information (node:os)
  • Outbound HTTP requests (fetch)
  • Reads environment variables (process.env)
  • Third-party runtime packages: sentry
Changed extension files
  • extensions/sentry-triage/components/card.mjs
  • extensions/sentry-triage/components/category.mjs
  • extensions/sentry-triage/components/page.mjs
  • extensions/sentry-triage/extension.mjs
  • extensions/sentry-triage/sentry.mjs
  • extensions/sentry-triage/sentryClient.mjs
  • extensions/sentry-triage/server.mjs
  • extensions/sentry-triage/state.mjs
  • extensions/sentry-triage/styles.mjs

Static checks compile modules without executing them. Minimum preview size is configurable with CANVAS_PREVIEW_MIN_WIDTH/CANVAS_PREVIEW_MIN_HEIGHT. Workflow run

@github-actions github-actions Bot added ready-for-review Submission passed intake validation and is ready for maintainer review and removed awaiting-automation labels Oct 26, 2026
@aaronpowell
aaronpowell merged commit b1a0045 into github:main Oct 26, 2026
28 of 29 checks passed

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟡 Changes recommended

Project scans can truncate silently, and issue-detail lookups and caching can display another organization’s incident.

6 open issues
What changed in this PR

Updates the existing Sentry Triage canvas to 1.3.0 with faster issue navigation, a richer overview, and refreshed presentation.

Changes:

  • Adds issue drill-in, prefetching, and priority-aware SDK scheduling.
  • Introduces paged issue retrieval, tabbed filtering, event trends, and revised layouts.
  • Updates release notes and plugin marketplace metadata.
File Description
plugins/​sentry-triage/​README.md Documents the 1.3.0 features.
plugins/​sentry-triage/​plugin.json Bumps the plugin version to 1.3.0.
extensions/​sentry-triage/​styles.mjs Styles the redesigned dashboard, controls, and detail panel.
extensions/​sentry-triage/​state.mjs Shortens the default model label to “Auto.”
extensions/​sentry-triage/​server.mjs Adds the issue-detail API endpoint.
extensions/​sentry-triage/​sentryClient.mjs Adds priority scheduling, detail caching, and paged issue retrieval.
extensions/​sentry-triage/​sentry.mjs Maps event trends and simplifies category labels.
extensions/​sentry-triage/​extension.mjs Connects detail requests to prioritized SDK calls.
extensions/​sentry-triage/​components/​page.mjs Adds the overview, tabbed filtering, and issue-detail interactions.
extensions/​sentry-triage/​components/​category.mjs Replaces category sections with a tabbed issue table.
extensions/​sentry-triage/​components/​card.mjs Adds detail buttons, compact metrics, and sparklines.
.github/​plugin/​marketplace.json Updates the published Sentry Triage version.

Review effort: Max

Comment on lines +2946 to +2947
const hit = cache.get(key);
if (hit && !hit.detail.partial && Date.now() - hit.at < FRESH_MS) { render(hit.detail); return; }
}

export async function issueDetail(org, key, { part = 'full', priority = PRIORITY.interactive } = {}) {
const view = await cachedCall(`view:${org}:${key}`, priority, async () => (await getSdk()).issue.view({ issue: key, spans: 8 }))
Comment on lines +545 to +546
const next = res && typeof res === 'object' && res.hasMore === true && typeof res.nextCursor === 'string' ? res.nextCursor.trim() : ''
if (!next || page.length === 0) break
+ '</div>'
+ '<span class="card-reason">' + escapeHtml(issue.reason) + '</span>'
+ (meta ? '<span class="card-meta">' + meta + '</span>' : '')
+ '<button type="button" class="card-summary card-open" data-key="' + key + '" title="View issue details">' + escapeHtml(issue.summary) + '</button>'
}, () => fail("Network error."));
request(key, "full").then((res) => {
if (!live()) return;
if (!res.ok || !res.detail) { fail(res.error); return; }
font-size: 13px;
z-index: 1000;
@media (prefers-reduced-motion: reduce) {
*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

canvas-extension PR touches canvas extensions merge-risk:medium plugin PR touches plugins ready-for-review Submission passed intake validation and is ready for maintainer review

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants