Skip to content

v0.3.3

Choose a tag to compare

@github-actions github-actions released this 18 Oct 10:59
· 36 commits to main since this release
d6ff056

Upgrade from 0.3.2: ownership changes could report the wrong direction for investors with several accounts, and invalid dates were answered instead of rejected.

Bug Fixes

  • ownership changes and the get_ownership_changes tool compare an investor's total stake per ticker: KREN's KRESNA PRIMA INVEST, which added a second account, was reported as a decrease (944 → 401 bps) instead of an increase (944 → 1345). A corrected KSEI file for a month now replaces the original instead of mixing with it, and a file carrying several report dates compares each date on its own rows. (#53)
  • get_ownership_changes rejects dates that are not imported releases, are reversed, or are malformed; an empty from used to report every holder as new. (#53)
  • Investor search finds aliases, the raw names KSEI prints: PT ASTRA INTERNATIONAL TBK now finds ASTRA INTERNATIONAL. An empty investor name is an error instead of an arbitrary match. (#53)
  • ownership graph reaches every connected holder (holders whose id was a prefix of another's were dropped) and no longer slows down exponentially with depth. (#53)
  • ownership sync replaces the database in a single step, so an interrupted sync can no longer leave it missing; a snapshot whose holdings are missing is rejected before it replaces good data. A backup left by an interrupted older sync is restored, not overwritten. (#54)
  • Requests to MSN and Yahoo give up after 30 seconds instead of hanging, and ownership commands wait at most 30 seconds for another process's lock, so a stalled call cannot block every MCP tool. Downloads stop at 256 MiB as they arrive, including compressed ones. (#55)
  • Escape sequences in provider text (news titles, insights, errors, names) are neutralized before reaching the terminal. Descriptions and URLs with non-ASCII characters no longer crash table output. (#56)
  • In JSON mode, argument errors and warnings are JSON, so stderr stays parseable. idx config honors -o json; piped output stays plain text. (#56)
  • A "healthy" fundamental rating needs valuation and risk data; negative equity counts as high risk. (#57)
  • install.sh installs the newest release even when the releases API answers on one line. (#58)
  • cache clear removes symlinks without following them out of the cache. (#56)

Improvements

  • zip moves off a yanked release, to 9.0.4. (#52, #51)
  • Price data outside any plausible range is treated as missing instead of overflowing. (#55)
  • The snapshot publisher handles report titles with line breaks, checks its manifest before upload, and copies its database safely. (#58)
  • Release workflow actions are pinned to commit SHAs, and only the publishing job can write to releases. (#58)
  • Help text covers config keys and output, ownership changes date rules, and alias search. (#56)

Testing

  • Every fix has a regression test that fails on 0.3.2. The agent smoke test passes in Claude Code, Codex, pi, Hermes Agent, and opencode 1 and 2 through npx -y idx-mcp, ten cases each. Found by a full-repo audit with Codex (gpt-6.1-sol, xhigh) and re-reviewed until clean; Pullfrog's PR review found four more, fixed here.

Full Changelog: v0.3.2...v0.3.3