Skip to content

svc/minidumpster: init - #73

Merged
dumbmoron merged 2 commits into
mainfrom
md
Jul 17, 2026
Merged

svc/minidumpster: init#73
dumbmoron merged 2 commits into
mainfrom
md

Conversation

@dumbmoron

Copy link
Copy Markdown
Member

No description provided.

@dumbmoron
dumbmoron requested a review from wukko July 11, 2026 12:05
@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown

Security Review

Two upload paths can exhaust disk: symbol request bodies are spooled without a maximum size, and ZIP extraction has no uncompressed-size limit. The unauthenticated crash endpoint can also lose rate-limit protection if X-Forwarded-For is client-controlled.

Reviews (1): Last reviewed commit: "minidumpster: init" | Re-trigger Greptile

Comment thread svc/minidumpster/src/symbols.ts
Comment thread svc/minidumpster/src/zip.ts
Comment thread svc/minidumpster/src/routes/ingest.ts
@dumbmoron

Copy link
Copy Markdown
Member Author

@greptileai

@greptile-apps

greptile-apps Bot commented Jul 11, 2026

Copy link
Copy Markdown

Reviews (2): Last reviewed commit: "minidumpster: init" | Re-trigger Greptile

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

Comment thread svc/minidumpster/src/zip.ts
Comment thread svc/minidumpster/src/multipart.ts
Comment thread svc/minidumpster/src/routes/web.ts
Comment thread svc/minidumpster/src/routes/web.ts
@dumbmoron dumbmoron changed the title minidumpster: init svc/minidumpster: init Jul 13, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
@wukko
wukko requested a review from Copilot July 14, 2026 11:30
@wukko

wukko commented Jul 14, 2026

Copy link
Copy Markdown
Member

@greptileai review again, focus on security

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 58 out of 59 changed files in this pull request and generated 5 comments.

Comment thread svc/minidumpster/src/routes/web.ts
Comment thread svc/minidumpster/src/artifact-crawler.ts
Comment thread svc/minidumpster/src/zip.ts
Comment thread svc/minidumpster/src/db.ts
Comment thread svc/minidumpster/src/symbols.ts
@greptile-apps

greptile-apps Bot commented Jul 14, 2026

Copy link
Copy Markdown

Reviews (3): Last reviewed commit: "svc/minidumpster: allow up to one file o..." | Re-trigger Greptile

@dumbmoron
dumbmoron merged commit dc4bc76 into main Jul 17, 2026
2 checks passed
@dumbmoron
dumbmoron deleted the md branch July 17, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants