idx-cli/scripts
hermes 60634d3aef fix: address final review (path traversal, sync races, MCP limits)
Findings from a Codex (gpt-6.1-sol, xhigh) review of v0.2.4..HEAD, each
verified in the code before fixing:

- high: ticker symbols reached cache file paths unchecked, so a symbol
  like `../../REPORT` read (and deleted, if unparseable) .json files
  outside the cache, reachable through MCP get_quotes. resolve_symbol now
  accepts only ticker characters, and cache keys are encoded as single
  safe path components.
- high: sync decided before downloading and replaced the database
  without rechecking; an import that landed meanwhile was erased. It now
  rechecks the local state before installing, and idx-mcp runs
  ownership_sync exclusively with ownership reads.
- replaces_sqlite_sha256 never downgrades history: the client requires
  the rebuild to keep at least the local release count, and the
  publisher lists a replaced build only then.
- cache writes are atomic (temp file + rename), so concurrent readers
  never see, and delete, a partial entry.
- idx-mcp caps symbols (20, deduplicated) and limits, and runs at most 4
  tool calls at once.
- each Yahoo client gets its own cookie jar, paired with its crumb.
- ZIP entries (XLSX, KSEI archives) are read with a 256 MiB bound;
  non-ASCII archive dates and huge percentages are parse errors instead
  of panics or overflow.
- agent-smoke --keep deletes every copied agent config, not only auth
  files.

CLI goldens unchanged; the MCP tool golden changes only to state the
new caps.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-14 21:58:37 +00:00
..
audit-msn-fundamentals.sh fix: handle non-finite msn key ratios 2026-04-13 23:34:36 +07:00
build-latest-ownership-snapshot.sh fix(ownership): bound snapshot download by manifest size; clean refused builds 2026-09-25 22:31:40 +00:00
build-ownership-snapshot.sh fix(ownership): verify snapshot assets before publishing manifests 2026-09-25 10:37:32 +00:00
check-ownership-snapshot-freshness.sh fix(ownership): make publisher RESULT contract hold on every path 2026-09-24 21:50:51 +00:00
idx.js chore: release 0.3.0 with idx-mcp 2026-10-14 19:01:29 +00:00
install-sh-test.sh ci(nix): unify cached verification and strengthen packaged smoke 2026-10-03 16:22:11 +00:00
install.js chore: release 0.3.0 with idx-mcp 2026-10-14 19:01:29 +00:00
live-smoke.sh test: add golden output parity gate and live A/B compare 2026-10-14 08:33:25 +00:00
npm-smoke.sh chore: release 0.3.0 with idx-mcp 2026-10-14 19:01:29 +00:00
publish-ownership-snapshot-test.sh fix(ownership): update syncs when a same-date snapshot is rebuilt 2026-10-14 18:52:13 +00:00
publish-ownership-snapshot.sh fix: address final review (path traversal, sync races, MCP limits) 2026-10-14 21:58:37 +00:00