Problem
A --type filter that matches nothing yields entities=[], error=None → the CLI prints 'No results found' (cli.py:3942-3946). The user cannot distinguish (a) the company truly has no such filings, (b) the form string is misformatted, (c) the form family isn't indexed by EFTS, (d) the hit exists but is outside the default size=25.
Real-world failure (2026-08-11): records search "Webull Corp" --source sec --type F-3 returned empty while the F-3 (filed 2026-06-26) exists on EDGAR. In a falsification workflow, a silent empty reads as 'record is clean' — the most dangerous possible failure.
Proposal
- Always print
{total_hits, shown, source, query_echo} — EFTS returns the total; show it even when 0
- On zero hits with a
--type filter, validate the form string against EDGAR's known form-type list and say 'form type not recognized' vs '0 filings of this type indexed'
- Exit code or --strict flag so scripts can distinguish empty-success from suspect-empty
Related: base.py:165-221 already separates transport failure from genuine zero — this extends that honesty one level up.
Problem
A
--typefilter that matches nothing yieldsentities=[], error=None→ the CLI prints 'No results found' (cli.py:3942-3946). The user cannot distinguish (a) the company truly has no such filings, (b) the form string is misformatted, (c) the form family isn't indexed by EFTS, (d) the hit exists but is outside the defaultsize=25.Real-world failure (2026-08-11):
records search "Webull Corp" --source sec --type F-3returned empty while the F-3 (filed 2026-06-26) exists on EDGAR. In a falsification workflow, a silent empty reads as 'record is clean' — the most dangerous possible failure.Proposal
{total_hits, shown, source, query_echo}— EFTS returns the total; show it even when 0--typefilter, validate the form string against EDGAR's known form-type list and say 'form type not recognized' vs '0 filings of this type indexed'Related: base.py:165-221 already separates transport failure from genuine zero — this extends that honesty one level up.