Linekeeper

Changelog

What shipped, when, and what's still missing. Dated newest first.

7 Sep 2026
0.6.0

Sign in with Google, and your documents back

  • Sign in with Google or Microsoft. No password to choose, and nothing changes for anyone who prefers one.
  • Download the original PDF of any document from the review screen: the extraction is an interpretation, the file is the evidence.
  • Bulk export every confirmed document as CSV (one row per line item) or JSON, respecting whatever filters are on screen.
  • Billing no longer needs a webhook. Subscription state is checked against Stripe directly when it goes stale.
  • The name settled: Linekeeper, one capital.
7 Sep 2026
0.5.0

Subscriptions

  • Plans priced by document volume. Cards are entered on Stripe and never touch Linekeeper.
  • Manage payment method, invoices, and cancellation from the billing portal in Settings.
  • Cancelling stops new documents being accepted. Everything already in the workspace stays readable and exportable.
7 Sep 2026
0.4.0

Accounts and history

  • Sign-up, sign-in, sign-out, and password reset. Sessions are cookie-based and last 30 days.
  • Every order, document, supplier, and correction is now scoped to an account. Nothing is shared between accounts.
  • Document history with search across filename, PO number, and supplier, plus filters on status, flag, supplier, and date range.
  • Settings: your own Anthropic API key, a webhook URL, and per-account price tolerances.
  • Audit log covering sign-in, order creation, uploads, confirmations, rejections, and settings changes.
  • Account-wide JSON export.
  • Rate limits on sign-in attempts and uploads.
6 Sep 2026
0.3.0

A name, and a front door

  • The product is called Linekeeper.
  • New marketing site: how it works, pricing, docs, changelog, and the legal pages.
  • The app moved to /app so the front page can explain itself first.
  • Interface rebuilt on the ledger palette: status colour is the only accent, and every number is monospaced.
6 Sep 2026
0.2.0

Email intake and per-supplier accuracy

  • Cloudflare Email Worker: suppliers reply to an intake address and the PDF is ingested with the sender as a hint. Nothing changes on their end.
  • Supplier profiles: aliases and free-text layout hints that go into the extraction prompt.
  • Corrections made during review are kept as worked examples and reused for that supplier's next document. Five most recent.
  • Thumbs up and down per document, with an optional note.
6 Sep 2026
0.1.0

First working pipeline

  • PDF in, structured record out: extraction with per-field confidence, order lookup by PO number, line matching by SKU then description, exception flags, human confirm.
  • The normalised export payload and GET /api/export/:id.
  • Optional webhook on confirm.
  • Runs against a built-in demo document when no API key is set, so the whole flow can be walked without signing up for anything.

Known limits

The full list.

  • One order per documentNo partial shipments, multi-PO documents, or back-order splits.
  • Single workspaceNo multi-tenant accounts or per-user roles.
  • Model-based readingNot per-supplier templates, so unusual layouts and heavy handwriting still lean on the review gate. It improves per supplier as corrections accumulate.
  • You bring the order bookOrders arrive by JSON or API. There's no ERP or accounting-package connector.
  • Webhooks aren't retriedOne attempt on confirm. The result is recorded; refetch from the export endpoint if you miss one.
  • No scheduled reportingNo digests, no alerts. You look at the queue, or your webhook tells your own system.

Next

In roughly this order.

  • Partial shipmentsLet one order accept several documents over time and track what's still outstanding. The most-asked-for gap.
  • Webhook retriesA queue with backoff, and a delivery log you can inspect and replay.
  • Per-supplier tolerancesSome suppliers round differently. One global tolerance is too blunt.
  • CSV order importBecause the order book usually starts life as a spreadsheet.
  • RolesAt least a read-only seat, so a warehouse can see promised ship dates without being able to confirm anything.

Priorities move based on what people actually hit. If something here is blocking you, say so and it moves up.