Company-search train: composed-range fix wave

↗ view on GitHub · sloth-ninja · 2026-07-28 · cd346c7e

Four cross-module findings from the composed-range review of the
company-search train (none catchable per-PR):

1. Right-to-erasure gap: deleteUserAccountData now deletes the user's
   company_search_saves rows (42P01/42703-tolerant so a self-hosted DB that
   has not run migration 20260728_01 does not fail account deletion). Saves
   are user-level, so project cleanup paths are untouched.
2. SAR completeness: buildUserAccountExport now includes company_search_saves
   (all columns; missing table -> empty section via a tolerateMissing option
   on selectAll).
3. Star-error visibility: surface the fixed star-failed message under the
   detail-header StarToggle on company-search (not only in the empty rail).
4. Copy honesty: land-registry Price Paid footnote reports the real count
   ("Showing all N transaction(s)." / capped-at-25 wording) instead of a
   hardcoded "25 most recent".

The 42P01/42703 idiom is shared, not duplicated: isMissingTableOrColumn is
exported from companySearchSaves.ts. New backend tests cover deletion +
export inclusion and the missing-table tolerance (+7). Backend tsc clean,
vitest 442 passed; frontend tsc + eslint clean.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Repository Sloth-ninja/JessicaOSS
Author sloth-ninja <ezanahaddis@gmail.com>
Authored
Parents a7dcef61
Stats 8 files changed , +420 , -2
Part of WS7: Company Search panel + saves/status trains

Capture this commit into my fork

Download a Markdown prompt that tells Claude how to port this exact commit into your working tree. Run it via claude -p < capture-commit-cd346c7e.md from inside the repo you want the change in.

⬇ Download capture-commit-cd346c7e.md