Skip to content

feat: Easy session failure reporting #4183

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 4 commits into
base: main
Choose a base branch
from

Conversation

ki3ani
Copy link
Contributor

@ki3ani ki3ani commented Aug 19, 2025

Summary

Implements #3244 - adds "Report a Failure" button with automated system info collection and GitHub Issues integration.

Users can now report failures directly within the app instead of manually navigating to GitHub. The modal automatically collects system information and submits reports with
proper error handling and fallback logging.

Screenshots

Before: Settings Help & Feedback Section

before

After: New "Report a Failure" Button Added

before-two

Report Failure Modal - System Info Auto-Collection

before-three

Success State After Submission

before-four

Implementation Details

  • ReportFailureModal component with form validation and automatic system info collection
  • Backend API endpoint /report-failure with GitHub Issues integration and fallback logging
  • Automatic data collection: Goose version, platform, architecture, extension count, provider type, recent errors
  • GitHub integration creates properly formatted issues matching the bug report template
  • Fallback logging ensures reports are captured even when GitHub API is unavailable
  • Proper error handling with user feedback for all failure scenarios

Technical Changes

Frontend (ui/desktop/)

  • Added ReportFailureModal.tsx with system info collection logic
  • Enhanced AppSettingsSection.tsx to include the new "Report a Failure" button
  • Extended preload.ts to expose process.arch for architecture detection

Backend (crates/goose-server/)

  • Added /report-failure endpoint in feedback.rs
  • GitHub Issues API integration with proper authentication
  • Structured logging for manual processing when API unavailable
  • Bug report template formatting matching existing GitHub templates

Test Plan

  • Modal opens and automatically collects system information
  • Form validation prevents empty submissions
  • API endpoint receives and processes failure reports correctly
  • GitHub issue format matches existing bug report template structure
  • Fallback logging works when GitHub token not available
  • Success/error states provide appropriate user feedback
  • System info collection works across different platforms

Notes

  • Requires GITHUB_TOKEN environment variable for GitHub Issues integration
  • Falls back to local logging when GitHub API unavailable
  • Architecture detection now properly exposed through Electron API
  • Version detection includes fallback for development builds

@ki3ani ki3ani changed the title Easy session failure reporting feat: Easy session failure reporting Aug 19, 2025
@jamadeo
Copy link
Collaborator

jamadeo commented Aug 20, 2025

Thanks @ki3ani this is a good feature. However I don't think we should dependon a github token set in goosed -- rather, you can do this more simply by opening the system web browser at something like

https://github.com/block/goose/issues/new?title=YOUR_TITLE&body=YOUR_BODY&labels=LABEL1,LABEL2&milestone=MILESTONE_NAME&assignees=ASSIGNEE1,ASSIGNEE2&template=TEMPLATE_NAME

ki3ani added 3 commits August 21, 2025 11:06
Signed-off-by: ki3ani <kimanim68@gmail.com>
Signed-off-by: ki3ani <kimanim68@gmail.com>
@ki3ani ki3ani force-pushed the easy-session-failure-reporting branch from caa86fd to 2fd5de7 Compare August 21, 2025 08:07
@ki3ani
Copy link
Contributor Author

ki3ani commented Aug 21, 2025

Thanks @ki3ani this is a good feature. However I don't think we should dependon a github token set in goosed -- rather, you can do this more simply by opening the system web browser at something like

https://github.com/block/goose/issues/new?title=YOUR_TITLE&body=YOUR_BODY&labels=LABEL1,LABEL2&milestone=MILESTONE_NAME&assignees=ASSIGNEE1,ASSIGNEE2&template=TEMPLATE_NAME

That was well noted @jamadeo, ive refactored to open pre-filled GitHub URL in browser instead.

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.

2 participants