DEV Community

Atharv Vhanalkar
Atharv Vhanalkar

Posted on Fully Autonomous

SnapTicket: Turn Client-Side Crashes Into Instant Engineering Tickets

🎫 SnapTicket Agent

Autonomous Incident Triage & Telemetry Fusion Engine

Gemma 4
FastAPI
License: MIT
Status


⚑ Executive Summary

SnapTicket bridges the critical chasm between chaotic client-side runtime crashes and structured engineering issue trackers. By fusing low-level macOS diagnostic telemetry (.ips reports) with visual error screenshots, SnapTicket leverages Gemma 4 to eliminate ambiguous bug reports, diagnose root causes in seconds, and dispatch production-ready tickets seamlessly.


πŸ›‘ 01 // The Friction: The "It Crashed" Dilemma

When an application fails in production, teams face a massive information gap:

  • The User Side: End-user reports are notoriously vague ("the screen froze"), lacking essential stack traces, exception codes, and environment metadata.
  • The System Side: Native OS crash logs (.ips files) contain invaluable post-mortem dataβ€”memory registers, faulting thread dumps, and dyld imagesβ€”but are buried in cryptic system directories (~/Library/Logs/DiagnosticReports/).
  • The Manual Bottleneck: Manually correlating when a user captured a visual glitch with which thread faulted in the system logs wastes hours of engineering triage time.

🧠 02 // The Solution: Autonomous Telemetry & Visual Fusion

SnapTicket automates this pipeline entirely through a local-first, multimodal approach:

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”      β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚ Visual Glitch Capture  β”‚  +   β”‚ macOS Telemetry (.ips Log Trace) β”‚
β”‚ (Retina Screenshot)    β”‚      β”‚ (Faulting Thread, Exception Code)β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜      β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
            β”‚                                    β”‚
            β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚        Gemma 4 Multimodal Reasoning          β”‚
        β”‚  - Correlates UI error state with log dumps  β”‚
        β”‚  - Identifies target app category (Native/3rd)β”‚
        β”‚  - Formats reproduction steps & diagnostics  β”‚
        β”‚  - Dynamically deduces canonical portal URL  β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β–Ό
        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
        β”‚       Privacy & Consent Control Studio       β”‚
        β”‚   [Attach Visual Evidence] vs [Text Only]    β”‚
        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                              β–Ό
                 Automated Dispatch Pipeline
                 β”œβ”€β”€ Channel A: Authenticated GitHub REST API
                 └── Channel B: Human-Assisted Web Portal Co-Pilot
Enter fullscreen mode Exit fullscreen mode

πŸ› οΈ 03 // Core Architecture & CapabilitiesPassive Telemetry SensingNon-intrusively scans ~/Library/Logs/DiagnosticReports/ for recent incident dumps, extracting exact exception codes and faulting process names instantly.Context-Aware ClassificationDeduces whether an app is a Native macOS App (routing toward Apple Feedback Assistant) or a 3rd-Party App (routing to respective repositories).Multimodal Inference (Gemma 4)Downscales Retina captures to optimize memory headroom, fusing visual pixel evidence with stack trace telemetry into a structured Markdown report.Binary Privacy Consent GateEnables total data custody with a binary toggle: attach visual proof or strip images completely for an air-gapped, text-only diagnostic dispatch.Dual-Channel DispatcherPushes clean Markdown tickets directly via authenticated GitHub REST APIs or stages them via a browser co-pilot paired with native pbcopy clipboard fallback.πŸ“Š 04 // Technical SpecificationsComponentTechnology / ImplementationRoleCore AI EngineGemma 4 (via local Ollama or Google AI Studio)Multimodal visual and log cross-reasoningBackend FrameworkFastAPI + Uvicorn (Async Python)Non-blocking REST API endpointsOS Telemetry ParserCustom Python log sensor (core/log_sensor.py)Extracts .ips exception vectors & threadsFrontend UIVanilla HTML5 / CSS3 (Zero-dependency)Responsive dashboard with animated progress trackingDispatch PipelineGitHub REST API & Playwright / pbcopyAutomated issue creation & browser autofillπŸš€ 05 // Quickstart GuideGet the project running locally in seconds:Bash# 1. Clone the repository
git clone https://github.com/AtharvVhanalkar/snapticket-agent.git
cd snapticket-agent

2. Install dependencies

pip3 install -r requirements.txt

3. Configure environment

cp .env.example .env

4. Launch the agent server

python3 main.py
Open http://127.0.0.1:8000 in your browser to start triaging.πŸ”’ 06 // Security & Data SovereigntyLocal Sovereignty: When running in local mode via Ollama, diagnostics, logs, and screenshots never leave your machine.Credential Protection: API keys and tokens are restricted strictly to local .env variables and excluded from version control.

Top comments (0)