Conversation
|
|
Reviews (2): Last reviewed commit: "minidumpster: init" | Re-trigger Greptile |
There was a problem hiding this comment.
Pull request overview
Introduces the new minidumpster service under svc/minidumpster, providing Crashpad minidump ingestion and Apple crash report upload, background symbolication + grouping, symbol bundle ingestion/retention, and a small authenticated web UI (plus an artifact crawler for Helium release artifacts).
Changes:
- Add HTTP ingestion routes for Crashpad minidumps and authenticated symbol uploads, plus web UI routes for browsing/searching crash groups and reports.
- Implement background processing (worker), signature computation/grouping, and retention jobs for dumps and symbols.
- Add artifact crawler/build-artifact extraction and extensive Deno tests + fixtures, along with Docker/Compose deployment scaffolding.
Reviewed changes
Copilot reviewed 58 out of 59 changed files in this pull request and generated 4 comments.
Show a summary per file
| File | Description |
|---|---|
| svc/minidumpster/test/zip_test.ts | Tests ZIP extraction behavior and zip-slip rejection. |
| svc/minidumpster/test/worker_test.ts | Tests worker pending/poll symbolication, grouping, retries, and retention behaviors. |
| svc/minidumpster/test/upload_test.ts | Tests manual Apple crash report upload flow and worker symbolication endpoint usage. |
| svc/minidumpster/test/ui_test.ts | Tests UI helper rendering and C++ name collapsing behavior. |
| svc/minidumpster/test/symbols_test.ts | Tests symbol upload API authentication and required params. |
| svc/minidumpster/test/signature_test.ts | Tests stack signature computation, sentinel skipping, and platform derivation. |
| svc/minidumpster/test/multipart_test.ts | Tests streaming multipart parser correctness and truncation/boundary failures. |
| svc/minidumpster/test/helpers.ts | Shared test env/config helpers and multipart/gzip helpers. |
| svc/minidumpster/test/fixtures/symbolicator_completed.json | Fixture for completed minidump symbolication responses. |
| svc/minidumpster/test/fixtures/symbolicator_apple_completed.json | Fixture for completed Apple crash report symbolication responses. |
| svc/minidumpster/test/fixtures/apple_report.txt | Fixture for modern translated Apple crash report text. |
| svc/minidumpster/test/crash_test.ts | Tests Crashpad multipart ingest (gzip and plain), size limits, and rate limiting. |
| svc/minidumpster/test/auth_test.ts | Tests OAuth/org-gating and signed session handling. |
| svc/minidumpster/test/artifact_crawler_test.ts | Tests artifact classification and ingestion selection logic. |
| svc/minidumpster/test/applecrash_test.ts | Tests Apple crash report detection, metadata parsing, and normalization. |
| svc/minidumpster/symbolicator.config.yml | Symbolicator filesystem source config for unified symbol layout. |
| svc/minidumpster/src/zip.ts | ZIP extraction helper used for symbol bundle ingestion. |
| svc/minidumpster/src/worker.ts | Background worker that symbolicates reports and assigns groups/signatures. |
| svc/minidumpster/src/ui.ts | Eta rendering + helpers for groups/reports/symbols UI and stack display. |
| svc/minidumpster/src/templates/upload.eta | Upload page for pasting/attaching Apple crash reports. |
| svc/minidumpster/src/templates/symbols.eta | Symbols overview page for artifacts and installed bundles. |
| svc/minidumpster/src/templates/stack.eta | Stacktrace HTML rendering template. |
| svc/minidumpster/src/templates/select.eta | Shared select input partial used by filters. |
| svc/minidumpster/src/templates/search.eta | Search results page template. |
| svc/minidumpster/src/templates/reports-table.eta | Shared report listing table partial. |
| svc/minidumpster/src/templates/report.eta | Individual report page template. |
| svc/minidumpster/src/templates/message.eta | Generic message page template. |
| svc/minidumpster/src/templates/layout.eta | Shared layout with navigation, search, and expandable stack elements. |
| svc/minidumpster/src/templates/groups.eta | Groups listing page template with filters and chart. |
| svc/minidumpster/src/templates/group.eta | Group detail page template with latest stack and recent reports. |
| svc/minidumpster/src/templates/cpp-name.eta | Collapsed/expandable rendering for long C++ symbol names. |
| svc/minidumpster/src/symbols.ts | Symbol upload ingestion pipeline (multipart spooling, ZIP extract, symsorter run, requeue). |
| svc/minidumpster/src/symbolicator.ts | Client for Symbolicator submit-and-poll protocol for minidumps and Apple reports. |
| svc/minidumpster/src/static/style.css | UI stylesheet served publicly (pre-auth). |
| svc/minidumpster/src/signature.ts | Signature computation, sentinel skipping, and platform extraction logic. |
| svc/minidumpster/src/session.ts | Session payload encode/decode used with signed cookies. |
| svc/minidumpster/src/routes/web.ts | Auth-gated web UI routes (groups, reports, upload, symbols, search) + static CSS. |
| svc/minidumpster/src/routes/ingest.ts | Public ingestion routes (/crash, /api/symbols, /healthz) with rate limiting. |
| svc/minidumpster/src/routes/auth.ts | GitHub OAuth + org membership gate and signed session cookie middleware. |
| svc/minidumpster/src/retention.ts | Retention jobs for old dumps and symbol bundle/reference cleanup. |
| svc/minidumpster/src/paths.ts | Centralized on-disk path helpers and directory creation utilities. |
| svc/minidumpster/src/multipart.ts | Streaming multipart-to-disk parser built on busboy. |
| svc/minidumpster/src/main.ts | Service entrypoint wiring app, worker, retention, and artifact crawler. |
| svc/minidumpster/src/log.ts | JSON logging helpers for events and errors. |
| svc/minidumpster/src/github.ts | GitHub org membership check + GitHub HTTP error helper for crawler. |
| svc/minidumpster/src/db.ts | SQLite schema + data access for reports, groups, and artifact ingests. |
| svc/minidumpster/src/crash.ts | Crashpad multipart parsing with gzip support and size limiting. |
| svc/minidumpster/src/config.ts | Environment-driven configuration loading and validation. |
| svc/minidumpster/src/build-artifacts.ts | Build artifact extraction (macOS tar.zst, Windows nested stored ZIP) and ingestion. |
| svc/minidumpster/src/artifact-crawler.ts | GitHub Actions artifact crawler that ingests symbols/build artifacts for releases. |
| svc/minidumpster/src/applecrash.ts | Apple crash report detection, metadata parsing, and normalization to classic format. |
| svc/minidumpster/src/app.ts | Hono app composition for ingest/auth/web route groups. |
| svc/minidumpster/README.md | Service overview, privacy policy, setup, and symbol upload usage. |
| svc/minidumpster/Dockerfile | Deno runtime image with symsorter installation and caching. |
| svc/minidumpster/deno.lock | Locked dependency graph for JSR/NPM deps. |
| svc/minidumpster/deno.json | Tasks, imports, formatting, and TS compiler options. |
| svc/minidumpster/compose.yml | Docker Compose setup for app + symbolicator with volumes and env. |
| svc/minidumpster/.env.example | Example env vars for deployment configuration. |
| svc/minidumpster/.dockerignore | Docker ignore rules for local data, tests, and repo metadata. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
|
@greptileai review again, focus on security |
|
Reviews (3): Last reviewed commit: "svc/minidumpster: allow up to one file o..." | Re-trigger Greptile |
No description provided.