Changelog
What shipped, newest first. The running record of user-facing changes. Update this in the same PR that ships a feature — it’s how the handbook (and any future in-app / public changelog) stays current. Keep entries short and user-facing; deep detail lives in
product/features.md.
2026-06-25
Product (app.obsrv.in)
- Recent Uploads vs Statements split. Recent Uploads (
/uploads) is the operational feed of every upload, any status, showing who uploaded it and the outcome (complete / partial / failed + reason); download the original or retry a failed one there. Statements is now the done-only library with a per-row report-PDF download. - Search + filters on every list (statements, uploads, cases, approvals queue, team) via a shared filter bar, plus CSV export of statements (honoring the active filters).
- Uploaded-by attribution — each upload now records the person who submitted it.
- Retry a failed upload from its stored original, with no re-charge.
- Confirm-before-partial — if your credits don’t cover the whole statement, we ask before processing a partial analysis instead of silently truncating.
- needs_review held reports now show each flag’s severity and a View original button to check flags against the source before accepting and releasing.
- Low-credit nudges: the credit count warns (amber under 20, red at 0) with a top-up link, and out-of-credits failures now offer a Buy credits button.
- No more home-screen flash on load: a stored-but-expired session shows a loading state until it’s validated, then resolves to the app or the sign-in screen (previously it briefly showed the app home before bouncing to sign-in).
- Partial-statement decisions are flagged: running a decision on a partially-processed report now shows a clear warning that income and FOIR may be understated.
Marketing site (obsrv.in)
- Blog launched at
/blog(10 guides on bank-statement analysis, FOIR, fraud signals, etc.). - Social/OG share cards generated for every page; dynamic sitemap + blog structured data.
- SEO: Google now shows “Obsrv” as the site name (added
WebSitestructured data).
Internal
- Parse-sandbox memory cap made relative to inherited memory (fixes a CI flake; also prevents a warm Lambda from falsely killing a legitimate parse).
- Private handbook site (
handbook.obsrv.in) for product/GTM/strategy docs.