Zero-Latency Go Crash Isolation. Instant AI Diagnosis.
Intercepts Go HTTP server panics non-blockingly using defer + recover. Automatically isolates the crash site and surrounding multi-file package context (struct definitions, constructors, helpers), queries AI models for root causes, and opens automated bugfix Pull Requests with drop-in patches.
See How Triage Isolates Crashes in Real Time
Select a real Go panic scenario below and see how the engine extracts the enclosing AST node, sends it to the AI diagnostics engine, and generates actionable fixes.
func ProcessTransaction(w http.ResponseWriter, r *http.Request) {
var req *PaymentPayload
// Attempting to access struct field without initialization:
if req.Amount <= 0 { // <--- PANIC TRIGGER [LINE 28]
http.Error(w, "invalid amount", http.StatusBadRequest)
return
}
executeTransfer(req)
}ProcessTransaction instead of all 450 lines in the source file. This saves 94% in LLM token cost while preserving complete semantic context.How Triage Delivers Sub-Millisecond Panic Isolation
Designed from the ground up for high-throughput production Go microservices without background database pre-indexing.
Panic Interception
Standard Go defer + recover() hooks intercept HTTP panics. Captures debug.Stack() and immediately releases the client response.
Async Bounded Queue
Telemetry is dispatched to an asynchronous 4-worker pool backed by a 1,000-job buffer. Zero impact on server throughput.
Multi-File AST Slicing
The engine parses the package AST on the fly to isolate the crash site alongside cross-file receiver structs, constructors, and package helpers.
AI Incident Diagnostics
AST code snippet + sanitized panic metadata are sent to the configured AI engine (Gemini, OpenAI, Claude, Ollama) for deterministic root-cause analysis and patch generation.
GitHub Issues & PRs
Persists to embedded SQLite (WAL mode), streams live to Studio Dashboard, and automatically files GitHub issues or opens bugfix Pull Requests with verified patches.
Multi-Layered AST Resolution
Triage avoids heavy full-codebase pre-indexing by resolving AST nodes on demand using a layered caching architecture.
Boundary-aware cache storing full [start..end] function spans in memory.
Persisted ast_nodes table lookup by repository, commit SHA, and line.
Fetches raw source via GitHub App Contents API and parses on the fly.
Engineered for High-Reliability Go Systems
Everything you need to intercept, symbolicate, diagnose, and resolve Go panics without adding latency or managing heavyweight agent sidecars.
Multi-File Package AST Slicing
Extracts the crashing function alongside cross-file receiver structs, referenced types, constructors, and package helpers using Go’s standard go/parser. Eliminates >90% of irrelevant code while preserving full type context.
Non-Blocking Async Dispatch
Middleware captures panics with defer + recover and dispatches telemetry across a bounded 4-goroutine worker pool. Zero latency added to HTTP client responses.
Pluggable AI Diagnostics & Patches
Leverages multi-provider AI (Google Gemini, OpenAI, Anthropic Claude, and local Ollama/vLLM) with deterministic structured JSON schemas to deliver precise root causes and git diff patches.
Automated Fix PRs & Issue Filing
Generates GitHub issues with AST snippets and opens automated bugfix Pull Requests by creating dedicated fix branches and applying AI patches cleanly.
Multi-Project & Monorepo Support
Manage all your Go microservices from a single dashboard with an instant project switcher, automatic go.mod submodule discovery, and project-scoped API keys.
Zero-Trust Secret Scrubbing
Sanitizes HTTP headers, query parameters, Authorization tokens, cookies, and sensitive connection strings before transmitting panic telemetry payloads.
Integrate with Any Go Router in Under 60 Seconds
Triage works as standard Go http.Handler middleware. Drop it into your existing HTTP routers without refactoring.
package main
import (
"net/http"
triage "github.com/algotyrnt/triage/sdk/go"
)
func main() {
mux := http.NewServeMux()
mux.HandleFunc("/api/process", func(w http.ResponseWriter, r *http.Request) {
w.Write([]byte("Process completed successfully"))
})
// Wrap your mux with triage panic isolation middleware
handler := triage.Middleware(
"your_sample_api_key",
"https://triage.yourcompany.com/api/v1/telemetry",
)(mux)
http.ListenAndServe(":8080", handler)
}Local VCS commit detection with API-key-based repository and root-path resolution.
Bounded 4-worker pool with 1,000-job buffer protects memory.
Auto-injects W3C traceparent and X-Triage-Trace-ID headers.
Standard library defer and recover boundary for non-blocking crash recovery.
Engineered for Extreme Efficiency
Triage isolates crashes with negligible server overhead while reducing LLM diagnostic token consumption by over 93% compared to industry-standard APM and error tracking platforms.
Non-blocking defer/recover with async worker queue
Exact function and receiver type context extracted on the fly
*ast.FuncDecl subtree containing the panic site.Pure Go standard library implementation with zero external bloat
net/http, runtime/debug, sync).Technical Comparison
Architecture and feature matrix for Go HTTP microservices
| Capability | Triage | Sentry (sentry-go) | Datadog (dd-trace-go) | Bugsnag (bugsnag-go) |
|---|---|---|---|---|
| Panic Interception | Non-blocking (4-worker queue) | Synchronous panic hook | Synchronous tracer span | Synchronous panic notifier |
| Code Context Slicing | Multi-File AST (*ast.FuncDecl) | 5-line stack window | Trace spans & stacks only | 7-line raw text snippet |
| Diagnostic Tokens | ~240 tokens (>93% saved) | 3,000+ tokens (Seer AI) | N/A (No AI diagnosis) | N/A (No AI diagnosis) |
| Automated Bugfix PRs | 1-Click Verified PR | Manual review only | Alert notification only | Error dashboard only |
| Crash Deduplication | SHA-256 Hash + Count Badge | Heuristic issue grouping | Tag aggregation | Error class hashing |
| Client Dependencies | 0 (Pure Go Standard Library) | 8+ external packages | 14+ external packages | 6+ external packages |
| AI Model Flexibility | Gemini, OpenAI, Claude, Local | Proprietary SaaS (Seer) | Proprietary SaaS (Bits) | None |
| Deployment Model | 1 Docker Container (Self-Hostable) | 30+ Helm pods or SaaS | Proprietary Cloud SaaS only | Enterprise On-Prem / SaaS |
Everything You Need to Know
Common architectural and operational questions regarding Triage panic isolation.