4.5 KiB
4.5 KiB
BugSETI
Distributed Bug Fixing - like SETI@home but for code
BugSETI is a system tray application that helps developers contribute to open source by fixing bugs in their spare CPU cycles. It fetches issues from GitHub repositories, prepares context using AI, and guides you through the fix-and-submit workflow.
Features
- System Tray Integration: Runs quietly in the background, ready when you are
- Issue Queue: Automatically fetches and queues issues from configured repositories
- AI Context Seeding: Prepares relevant code context for each issue using pattern matching
- Workbench UI: Full-featured interface for reviewing issues and submitting fixes
- Automated PR Submission: Streamlined workflow from fix to pull request
- Stats & Leaderboard: Track your contributions and compete with the community
Installation
From Source
# Clone the repository
git clone https://forge.lthn.ai/core/go.git
cd core
# Build BugSETI
task bugseti:build
# The binary will be in build/bin/bugseti
Prerequisites
- Go 1.25 or later
- Node.js 18+ and npm (for frontend)
- GitHub CLI (
gh) authenticated - Chrome/Chromium (optional, for webview features)
Configuration
On first launch, BugSETI will show an onboarding wizard to configure:
- GitHub Token: For fetching issues and submitting PRs
- Repositories: Which repos to fetch issues from
- Filters: Issue labels, difficulty levels, languages
- Notifications: How to alert you about new issues
Configuration File
Settings are stored in ~/.config/bugseti/config.json:
{
"github_token": "ghp_...",
"repositories": [
"host-uk/core",
"example/repo"
],
"filters": {
"labels": ["good first issue", "help wanted", "bug"],
"languages": ["go", "typescript"],
"max_age_days": 30
},
"notifications": {
"enabled": true,
"sound": true
},
"fetch_interval_minutes": 30
}
Usage
Starting BugSETI
# Run the application
./bugseti
# Or use task runner
task bugseti:run
The app will appear in your system tray. Click the icon to see the quick menu or open the workbench.
Workflow
- Browse Issues: Click the tray icon to see available issues
- Select an Issue: Choose one to work on from the queue
- Review Context: BugSETI shows relevant files and patterns
- Fix the Bug: Make your changes in your preferred editor
- Submit PR: Use the workbench to create and submit your pull request
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Ctrl+Shift+B |
Open workbench |
Ctrl+Shift+N |
Next issue |
Ctrl+Shift+S |
Submit PR |
Architecture
cmd/bugseti/
main.go # Application entry point
tray.go # System tray service
icons/ # Tray icons (light/dark/template)
frontend/ # Angular frontend
src/
app/
tray/ # Tray panel component
workbench/ # Main workbench
settings/ # Settings panel
onboarding/ # First-run wizard
internal/bugseti/
config.go # Configuration service
fetcher.go # GitHub issue fetcher
queue.go # Issue queue management
seeder.go # Context seeding via AI
submit.go # PR submission
notify.go # Notification service
stats.go # Statistics tracking
Contributing
We welcome contributions! Here's how to get involved:
Development Setup
# Install dependencies
cd cmd/bugseti/frontend
npm install
# Run in development mode
task bugseti:dev
Running Tests
# Go tests
go test ./cmd/bugseti/... ./internal/bugseti/...
# Frontend tests
cd cmd/bugseti/frontend
npm test
Submitting Changes
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature - Make your changes and add tests
- Run the test suite:
task test - Submit a pull request
Code Style
- Go: Follow standard Go conventions, run
go fmt - TypeScript/Angular: Follow Angular style guide
- Commits: Use conventional commit messages
Roadmap
- Auto-update mechanism
- Team/organization support
- Integration with more issue trackers (GitLab, Jira)
- AI-assisted code review
- Mobile companion app
License
MIT License - see LICENSE for details.
Acknowledgments
- Inspired by SETI@home and distributed computing projects
- Built with Wails v3 for native desktop integration
- Uses Angular for the frontend
Happy Bug Hunting!