Changelog
Small, frequent updates from a quiet team. Document types, search improvements, fixes, and the occasional major release. Every push goes here.
MAY 26
2026
today
When Granite doesn't recognize a document type — eyeglass prescriptions, marriage certificates, HOA letters — it lands in Uncategorized. Open one of those documents and you'll see a "Help Granite learn this" card in the right rail. Send the file to our team and we'll add support for documents like it. Take it back any time from the same card.
Read more →MAY 25
2026
yesterday
Settings → Profile now has a Delete account section. Type your email, re-enter your password, check the box, and we schedule a permanent wipe three days out. During the wait you're locked out of everything except export and logout, so you can take a copy of your archive before the clock runs out. Cancel any time before then — in the app or from the confirmation email — and we stop. After three days every document, OCR text, AI summary, and encrypted R2 blob is purged, your Stripe subscription is cancelled, your user row is gone. We keep one PII-free tombstone (a peppered hash of your email plus timestamps) so we can answer compliance questions like "did this account ever exist" without retaining anything else about you.
Read more →MAY 24
2026
2 days ago
Right-click a row in the Library, a collection or entity card, or a search result and you get the same actions the kebab menu offers — open, download, reprocess, rename, delete. Select a few rows first and the menu switches to bulk.
Read more →Drop a vet record, vaccination card, or microchip registration in your vault and Granite reads it as a pet record — patient name, species, breed, owner, provider, and date — instead of forcing it into a human-medical type. The pet itself becomes its own entity (with a paw icon, not a person icon), and an auto-collection like “Pet: Baxter” gathers everything about that pet in one place.
Read more →Type a question on /ask — “What’s my LLC’s EIN?”, “When does my passport expire?” — and Granite reads across your documents to answer it, with numbered citations that jump to the exact page each fact came from. Simple field lookups answer instantly off your extracted data; anything that needs reading actual document text goes through your docs and comes back with sources. Granite refuses to guess: if your documents don’t say, it tells you so instead of making something up.
Read more →MAY 23
2026
3 days ago
Cleaning up duplicates on /entities is now a drag. Grab a card and drop it onto another of the same kind — vendor onto vendor, person onto person — and Granite folds the first into the second. Same merge as the kebab menu, just faster when you can see both at once.
Read more →MAY 22
2026
4 days ago
Image uploads now work the same as PDFs. Drag in a JPEG, PNG, WebP, or an iPhone HEIC photo and Granite reads it, classifies it, pulls out the fields, and files it.
Read more →MAY 21
2026
5 days ago
If Granite created two entries for the same vendor or person — like “Comcast” and “Comcast Cable Communications” — you can now fold one into the other. Open the duplicate, hit the kebab menu, choose “Merge into…,” pick the survivor. All linked documents and collections move over.
Read more →Open any person on /entities and set a household role. Tagged people get pinned to a Household section at the top of Entities, and new documents that name them — even with extra middle names — snap to your tagged entity instead of creating a new one.
Read more →New documents now collapse name variants automatically. A first + last name match with or without middle names lands as a single person — the longest variant becomes the display name. Jr. and Sr. stay separate.
Read more →When a will, affidavit, or notarized form mentions a witness or notary public, Granite used to add that person to /entities. Now those incidental signers are skipped — only the document’s actual parties make it into your graph.
Read more →The document viewer now renders the real PDF instead of a flat image. Drag-select a paragraph, hit ⌘C, and the actual text comes with you. Scanned PDFs still display as images; selection works for any PDF with an embedded text layer.
Read more →A contract with a signing bonus and a monthly payment used to collapse to a single “total value” and pick the wrong one. Granite now extracts the one-time amount, the recurring amount, and the cadence as separate fields.
Read more →Granite already knew which contracts, policies, and IDs were about to expire — now you get a Monday-morning email of anything in the next 30 days. The digest carries titles and dates only, never extracted field values. Turn it off any time in Settings → Profile.
Read more →Drop the same PDF in twice and Granite says “already in vault” instead of silently re-processing it. The smarter half catches re-scans of the same logical document — your driver’s license photographed last year and again this month, the same W-2 saved from two different emails — and surfaces a quiet banner on the newer one with Keep both / Delete this one.
Read more →Pick one trusted person who can request a full copy of your archive if you’re ever unreachable. When they ask, you get a single email — Approve, Deny, or Wait — and you control how long the wait runs. An optional inactivity switch fires the grant automatically if you don’t sign in for a stretch of time.
Read more →Document titles and entity names from all-caps OCR sources — state forms, W-2 boxes, thermal receipts, ID cards — now render in normal title case (“Wal-Mart” instead of “WAL-MART”). Acronyms like LLC, IRS, and EIN stay capitalized.
Read more →Drop in prescriptions, lab results, visit summaries, EOBs, immunization records, and imaging reports — they classify into their own categories and get the right fields extracted. Refill counts and next-due dates surface as reminders.
Read more →Documents with low-quality embedded text (phone scanners, junk-character PDFs) now route through real OCR instead of trusting the broken text layer. When nothing is a confident match, docs land in “uncategorized” rather than being forced into a wrong fit.
Read more →Searching for 6789 now finds docs containing that digit run anywhere — last four of an SSN, the tail of an account number, a partial invoice ID. Full-text and tag-style queries are unchanged.
Read more →MAY 20
2026
6 days ago
Docs that hang during ingest (worker restarts, OOMs, deploys) now self-heal within minutes. If a doc still looks stuck after 2 minutes, a Retry banner appears on the document page so you can kick it manually.
Read more →When a filename carries useful context that the extraction step missed — year/make/model, party names, document kind — those specifics now carry through to the final title instead of getting flattened to a generic label.
Read more →If you haven’t told us your name, the dashboard and toasts no longer pretend to know it. Add or update your name in Settings → Profile to personalize the greetings.
Read more →