Status & Roadmap
Active Development
autosolve is being built right now. APIs may change, features may shift. This is a feature, not a bug — your input shapes the project.
What Works Today
- Multi-repo GitHub issue polling with per-repo state persistence in SQLite
- Two-phase scheduler — preflights validate repos, then workers start polling
- Outbox relay — outbox events relayed to goqite job queue
- AI dispatch — IssueExplainer consumes queue, calls Ollama, logs classification
- Global workers — interval tasks not scoped to a repository (e.g. queue consumers)
- Per-error retry with exponential backoff via the
longrunpackage - Degraded mode — unknown errors don't crash workers, they retry with loud logging
- Rate limiting via HTTP transport layer (transparent to domain code)
- Full OpenTelemetry observability — traces, metrics, logs via OTLP/gRPC
- OTEL metrics on OutboxRelay and IssueExplainer — throughput, latency, backpressure
- goose migrations + sqlc-generated DAL — type-safe database layer
- Google Wire DI — clean dependency graph, no magic
Current Epic
Epic: v1 architecture redesign — stabilizing the core before adding the AI dispatch layer.
What's Next
These are the broad directions, not promises. Priorities shift based on real usage and feedback.
| Area | What | Status |
|---|---|---|
| AI Dispatch | Queue consumer calls Ollama, classifies issues | Done (#156) |
| Result Publishing | Post AI results back to GitHub (comments, PRs) | Next (#157) |
| Adaptive Polling | Back off when repos are quiet, speed up when active | #53 |
| longrun extraction | Extract pkg/longrun into a standalone Go module | After API stabilizes |
| Module system | Self-contained modules per partition type | When second partition appears |
| Comment polling | Watch for @bot mentions in comments | Planned |
Tech Stack
| Component | Technology |
|---|---|
| Language | Go 1.26+ |
| Database | SQLite (pure Go, WAL mode) |
| Migrations | goose |
| SQL codegen | sqlc |
| DI | Wire |
| Observability | OpenTelemetry (OTLP/gRPC) |
| CLI | cobra + viper |
Want to Contribute?
The best time to join is now — while the architecture is fresh and decisions are still being made. See Adding a Worker for a concrete starting point, or open an issue with your idea.