codeburn/tests/providers
iamtoruk 09965f93ae fix(dsh): cap zstd decode, coerce usage fields, scope the snap read
Security audit follow-ups on the DeepSeek Harness provider.

- **Decompression bomb.** Every zstd frame was decoded with no output bound, so
  a 16 KB crafted log expanded to ~916 MB of RSS (a 65 KB one declares 2 GB).
  Each frame now decodes under a 64 MB per-call cap, and the caps chain into a
  running per-file budget of MAX_SESSION_FILE_BYTES: a frame is given only the
  bytes the file has left, so node throws ERR_BUFFER_TOO_LARGE without
  allocating past the cap. The throw propagates out of the existing skip path,
  which discards the whole file rather than counting the frames read before the
  bomb, so a crafted tail cannot poison a partial total. The discovery header
  read takes the same per-frame cap. Measured on a 65 KB / 2 GB bomb: 916 MB
  -> 67 MB peak, zero calls emitted, one notice.
  Lines are still materialized eagerly; the byte budget bounds that, and making
  the read lazy would change readEventLines' contract for no further bound.
- **Usage type confusion.** Token fields were read with `?? 0` and never
  type-checked, so a string or array inputTokens flowed into the global totals
  and the persisted cache, where `0 + [1, 2]` becomes "01,2". They now go
  through numberOrZero (copilot.ts semantics: finite, positive, else 0).
  All-zero calls are still skipped.
- **Snap over-scope.** The personal-files read entry is `$HOME/.dsh/sessions`
  rather than all of `$HOME/.dsh`; the provider reads nothing else.
- **Third-party notice.** scanZstdFrames is transcribed from
  @deepseek-ai/dsh-session-persistence-jsonl. The published npm package is
  BSD-3-Clause (Copyright (c) 2026, DeepSeek) while the monorepo source
  declares MIT for the same package; THIRD_PARTY_NOTICES.md reproduces the
  stricter of the two and ships via package.json `files`.
2026-08-17 17:28:41 -07:00
..
antigravity.test.ts fix(usage): per-provider snapshot capture, placeholder guard, path-id display fallback 2026-07-18 03:37:42 -07:00
claude-config-dirs.test.ts fix(desktop): close cache and lifecycle review gaps 2026-08-12 20:31:17 +03:00
cline-cli.test.ts fix(cline-cli): decline the rollup when per-message calls were all deduped 2026-08-04 01:57:27 +02:00
cline.test.ts fix(cline): scan all VS Code variants for task storage 2026-08-04 00:01:57 +03:00
codebuff.test.ts Merge origin/main into feat/codebuff-provider and scope sessionId by channel 2026-05-01 00:14:18 +05:30
codewhale.test.ts perf(cache): shard the session cache per provider 2026-08-16 19:03:12 -07:00
codex-resume.test.ts test(codex): give the every-boundary differential an explicit timeout 2026-08-17 01:48:04 -07:00
codex.test.ts fix(codex): guard non-string timestamp and model on the parse path 2026-08-04 00:14:28 +02:00
copilot-skills.test.ts copilot: extract skill invocations so Skills & Agents populates (#654) (#697) 2026-07-16 12:02:34 -07:00
copilot.test.ts fix(copilot): classify CLI sessions by source provenance, not producer (#945) 2026-08-09 04:51:44 +03:00
crush.test.ts fix: fix and improve test isolation and collision with environment (#530) 2026-06-20 13:42:10 +02:00
cursor-agent.test.ts Extract shared token estimation helper, migrate all CHARS_PER_TOKEN sites (#644) (#677) 2026-07-16 11:58:22 -07:00
cursor-bubble-dedup.test.ts Menubar and CLI hardening from multi-agent audit (#257) 2026-05-06 22:15:11 -07:00
cursor-large-db-cap.test.ts fix: fix and improve test isolation and collision with environment (#530) 2026-06-20 13:42:10 +02:00
cursor-real-tokens.test.ts fix(cursor): use Cursor's real context tokens for input (#574) (#575) 2026-07-02 04:53:07 +02:00
cursor-workspace-breakdown.test.ts Cursor: per-project breakdown by workspace (closes per-project half of #196) (#296) 2026-05-10 15:35:57 -07:00
cursor.test.ts perf(desktop): share cache state and eliminate duplicate cold hydration 2026-08-12 17:16:41 +03:00
devin.test.ts fix(devin): report friendly GPT model names with effort tier (#585) 2026-07-01 16:01:49 +02:00
droid.test.ts Add Droid CLI provider 2026-04-28 20:16:45 +02:00
dsh.test.ts fix(dsh): cap zstd decode, coerce usage fields, scope the snap read 2026-08-17 17:28:41 -07:00
forge.test.ts feat(providers): add forge provider support (#401) 2026-05-26 03:36:57 -07:00
gemini.test.ts Track agent calls across providers (#340) 2026-05-18 05:51:01 -07:00
grok.test.ts feat(providers): add Grok Build provider (#521) 2026-06-19 17:21:41 +02:00
hermes.test.ts fix(parser): fold SQLite -wal siblings into source fingerprints 2026-08-04 14:38:43 +03:00
ibm-bob.test.ts Add IBM Bob provider with workspace extraction (#316) 2026-05-11 20:54:13 -07:00
kilo-code.test.ts fix(test): kilo-code tests fail on machines with KiloCode installed 2026-06-03 01:03:39 +02:00
kimi.test.ts Add Kimi provider 2026-05-11 19:02:28 +03:00
kimicode.test.ts kimicode: discover desktop-runtime sessions and fix menubar visibility 2026-07-23 21:31:25 +02:00
kiro.test.ts fix(kiro): estimate input tokens from the full prompt, not a 500-char slice 2026-08-04 05:58:17 +03:00
lingtai-tui.test.ts fix(lingtai): harden manifest parsing against wrong-typed fields 2026-07-09 23:48:46 +02:00
mistral-vibe.test.ts fix: fix and improve test isolation and collision with environment (#530) 2026-06-20 13:42:10 +02:00
mux.test.ts feat(providers): add coder/mux as a datasource (#438) 2026-06-06 03:04:24 +02:00
omp.test.ts fix(omp): discover title-first session transcripts 2026-07-27 19:58:50 +02:00
open-design.test.ts feat(providers): add open-design provider for per-model usage tracking (#559) 2026-06-28 19:17:23 +02:00
openclaude.test.ts feat(openclaude): OpenClaude CLI provider (#213) 2026-08-04 04:05:25 +03:00
openclaw.test.ts Add OpenClaw, Roo Code, and KiloCode providers (#175) 2026-04-28 09:24:14 -07:00
opencode-file.test.ts fix(opencode): support custom data dir and db prefix (#620) 2026-07-16 02:18:19 -07:00
opencode.test.ts fix(opencode): read session fallback model from real schema 2026-07-24 13:03:22 +08:00
pi.test.ts Merge branch 'main' into fix/omp-title-slot-discovery 2026-08-03 21:59:19 +02:00
quickdesk.test.ts feat(quickdesk): Amazon Quick Desktop provider, parse ~/.quickwork sessions and metrics (#707) 2026-07-18 00:02:01 +03:00
roo-code.test.ts Add OpenClaw, Roo Code, and KiloCode providers (#175) 2026-04-28 09:24:14 -07:00
vercel-gateway.test.ts prerelease: quota NaN guard, 10-year daily retention, test date bomb (#764) 2026-07-20 07:37:56 -07:00
vscode-cline-parser.test.ts fix(providers): guard two malformed-input crashes in the parse path 2026-08-04 06:28:41 +03:00
warp.test.ts feat: add Warp provider adapter (#350) 2026-05-21 00:19:53 -07:00
zcode.test.ts feat(providers): add ZCode (z.ai GLM-5.2) usage provider (#537) 2026-06-20 21:37:32 +02:00
zed.test.ts fix(zed): top threads up to the cumulative counter 2026-07-02 05:53:40 +02:00
zerostack.test.ts Add zerostack provider (#519) 2026-06-19 14:44:45 +02:00