Changelog
Every release of TableDI 2, including what isn't there yet. The
download page always serves the current version. The history of the
previous app, TableDI 0.0.x, is further down.
On Windows? TableDI 2 for Windows is in progress. There's no Windows download yet; it
shows up on this page the day it ships.
2.0.2
1 October 2026
Current
Rows from merge and dedupe jobs now lead back to the files they came from.
Result
- “Where from” works for every kind of job. In reconciliation jobs it already opened
the source rows. In jobs that merge several sheets or remove duplicates it said “0 entries”
and couldn't be opened, although the rows could be traced. It now reads Source rows and opens
the same panel: which file, which row — in the free version too.
2.0.1
1 October 2026
A small release that takes out an option that didn't do what it said.
Delivery
- “Hand it to another job as a source” is gone. In 2.0.0 it only recorded the
handover — the other job never read the result — so it shouldn't have been on the delivery screen,
let alone listed as part of the lifetime edition. If a job had it selected, its deliveries now go
to the job's folder instead. It comes back when one job can really feed another.
- The card that shows where the free version stops and the lifetime edition starts no longer lists
“one job feeding another”.
2.0.0
30 September 2026
The first release of TableDI 2 — a new desktop app, built from scratch, for file work you
redo every period. You set a job up once; each period you drop in the new files and run it
again, and every figure points back to the row, the period and the rule version it came from.
Jobs and periods
- A job keeps a period's sources, rules and delivery. Start one from one to five
files — Excel (.xlsx), CSV, or a bank statement as a PDF that contains text — and fill in
five short steps, or let AI draft them.
- Six ready-made jobs with sample files — bank reconciliation, invoices vs payments,
sales by store, inventory & reorder, payroll check, and customer list merge & dedupe
(with a Chinese set in the Chinese interface) — so you can walk through a whole period
before using your own files.
- Preflight is a dry run of the new period: which columns match last period's, what
was renamed or went missing, how the rows compare with last period, and what would be held
back. You also choose how the period goes in: add to history, this period only, or update
on a key.
- The job overview shows every step with the rows it took in and kept, and every
number opens the rows behind it. This period lists what's due across all jobs;
Deliveries lists everything every job has handed over.
Exceptions
- Rows that don't match wait on the exception bench, grouped by cause: unmatched, not
received, amount differs, duplicate key, blank key, type changed, and unclear digits read
from a PDF.
- Ways out: change the source file, waive for this period (with a reason that goes into the
delivery), mark as to do — and in the lifetime edition, add a rule with a preview, or carry
the row to next period, where it closes itself once the other side arrives.
- Generating a delivery while items are still to confirm asks you first; nothing is changed
behind your back.
Rules
- Rules are ordinary steps — read the file, clean up, match on the key, compare amounts, sum
up, computed columns, deliver. Every change makes a new rules version; earlier versions are
kept.
Delivery
- An Excel report with three sheets — summary, detail and exceptions — or a CSV, saved to a
folder; or a new email in your own mail app with the file shown in its folder, ready to drag in
as the attachment.
- In the lifetime edition: a report template (heading, column order, number format) and a
one-page PDF summary.
- The delivery log lists every delivery with its period, format, destination and file.
History (lifetime)
- Every period in one table, filtered and exported a stretch at a time; any number's last
six periods; and back to the previous period's result. Past Excel's single-sheet row limit,
filtering and export still work.
Do it once
- Compare two files, match two sheets on a key, merge several sheets, remove duplicates, or
turn a CSV into a clean table — free, unlimited, and no job needed. It's the same engine as
the free tools on tabledi.com.
AI — optional, with your own key
- Works with any OpenAI-compatible provider, called straight from your Mac. It drafts a job
from the column names and first 50 rows, explains an exception, suggests a rule — with the
before and after figures worked out by the engine, not the model — and writes a one-line
preflight summary. No period ever runs through AI.
Your data
- The engine runs inside the app and listens only on your Mac. Settings → Where this app
connects lists every destination — the license service, the update check, anonymous
counts you can switch off, and your AI provider — and a log records each request.
- A weekly backup (.tdbk2) to Documents › TableDI 2 › Backups, on by default. Deleted jobs,
periods and sources stay in the recycle bin for 30 days.
- Export a diagnostics bundle writes a zip to your desktop; nothing is sent
automatically. If the engine won't start, the error screen can restart it, open the log
folder, or export the bundle.
License and updates
- The free version needs no account. A key is activated in Settings → License and
moved with Move to another machine; TableDI 2 licenses go on sale soon.
- New versions are announced on this page and on the download page. The app checks GitHub
once a day for a newer version (switchable in Settings) and never downloads or installs
anything on its own.
Languages
- The interface is in English and Simplified Chinese.
macOS: Apple silicon and Intel. Not yet: Windows, which is in progress.
TableDI 2 installs next to TableDI 0.0.9 and leaves it alone — you can keep both. To bring
your tables over, export a backup (.tdbk) from 0.0.9 and import it in TableDI 2. Licenses
bought for TableDI 0.0.9 keep working there; they don't unlock TableDI 2. Step by step:
Bring your data from TableDI 0.0.9.
TableDI 0.0.x
The previous app, kept here as it was published. Its downloads, manual and license notes are on
the TableDI 0.0.9 page.
0.0.9
31 August 2026
The first build that is genuinely an English product rather than a translated one —
and the release where AI started working again, after being broken by our own
usage-limit check.
A fully English app
- Install it on an English system and everything is in English — the interface,
the native macOS and Windows dialogs, the menu bar, the splash screen, the prices, and
what the AI says back to you. TableDI picks its language from your system (Chinese →
Chinese, everything else → English) and remembers it if you switch by hand. Nothing
changes for Chinese users.
- Four panels that had never been translated now are: Desktop settings (License,
Privacy & diagnostics, Backup, About), the first-run welcome, the upgrade prompt,
and the cloud migration wizard. Those are exactly the screens a new user outside China
hits first, and until now they were Chinese-only.
- Prices and links follow your language. The English interface shows USD
($7.99/mo · $49/yr · $99 lifetime) and its "Upgrade", "Pricing", "Help" and
"Download update" links go to tabledi.com. They used to point at the Chinese site
regardless of language — which is how the in-app upgrade button ended up on a page
that didn't exist in English.
- China-specific sections (VAT invoices, WeChat groups) are hidden entirely in English
rather than leaving an empty divider behind. Assorted hardcoded Chinese in the recorder,
the formula panel, template publishing and dashboard stats is now in the language files.
AI
- AI works again. It had been failing on every call. The desktop build ships
its own license check, and the way it expressed "unlimited AI usage" was a sentinel
value of
-1. The usage model has no concept of "unlimited", so
-1 was stored as a real credit balance — a negative one — and every AI
request was rejected as out of quota, with Credit: -1 in the corner of
the window. Desktop AI runs on your own API key at your own cost, so there should
never have been a quota here at all. Fixed.
- The AI no longer answers English users in Chinese. Two classes of prompt we
send to the model were still Chinese even in the English build: the natural-language
query helper, and the "AI suggestion" step inside the guided formula panels (VLOOKUP,
Summarize, Split table, image-to-table OCR) — those were labeled English but Chinese
all the way through. All rewritten in English, with language-neutral prompts now
explicitly told to answer in the user's language.
Free version
- The free version can build one dashboard. The site has always said so; the
app refused every dashboard. Now the first one is free and the second one is what asks
you to upgrade.
- Closed a way around that limit: building a dashboard straight from a table used to
skip the check entirely.
Windows
- "Open TableDI and activate" from the purchase page now works on Windows. It
used to start a second TableDI process against the same data folder, and the
activation simply never happened. There's now a single-instance lock, and the
activation link is handed to the window you already have open.
macOS only. The Windows installer is built on a separate machine and hasn't shipped in
English yet, so there is no Windows download here — see the note at the top of this page.
0.0.8
28 July 2026
Made it possible for free users to get their own data out through the interface, and
removed two things that interrupted you mid-work.
Getting your data out
- Free users could not export their own data from the interface. Encrypted
.tdbk backup has always been a free feature, but the only ways to reach
it were a keyboard shortcut nobody knew about, an avatar menu the layout didn't
render, and a Pro badge that opened an upgrade prompt instead of the panel. So the
promise — your data is yours, export it any time — was true in the code and false on
screen. There is now a Desktop settings item in the left sidebar that opens
straight onto the Backup page.
- The existing "Settings" in the sidebar is workspace settings (name and
members), which is where everyone looked for backup first and didn't find it. The two
are now named distinctly.
Interruptions
- Being thrown back to a login page mid-session. 0.0.7 fixed the token failing
at startup; tokens also expire while you work — activating or releasing a
license restarts the engine, and the in-memory token table goes with it. The next API
call then failed and the interface navigated to a login page that a desktop build has
no credentials for. It now re-fetches the token and replays the request silently, and
the router blocks any path to that login page.
- The "new version available, reloading in N seconds" popup is gone. That is a
server-deployment mechanism from the cloud edition; the desktop interface is inside
the application, so it can't happen. It fired after every upgrade and force-reloaded
you out of whatever you were doing.
macOS only.
0.0.7
22 July 2026
Fixes the real reason Windows builds appeared to do nothing when you double-clicked
them, plus scheduled automations that had never actually run.
Windows startup
- The bundled Java runtime had never been used on Windows. The launcher looked
for a file called
java, but on Windows it's java.exe — so it
decided the bundled runtime was missing and quietly fell back to whatever Java was on
your system PATH. On a machine without Java 21 the engine simply never started, which
looked like "double-click does nothing". Machines that happened to have Java installed
worked fine, which is why this survived so long — our own build machine had it. The
packaged app now always uses the runtime inside it, and says so loudly if that
runtime is missing instead of silently degrading.
- You can see it starting now. The window used to be created only after the
engine was fully up — up to 60 seconds of nothing on screen (measured at ~13.5s on a
normal Windows machine, longer on older ones). There's now a splash screen from the
moment you double-click, showing which stage it's on.
- Failures are visible. A failed start used to quit the process with no message
at all. You now get a dialog with the error, the log file path, and a button that
opens the log folder. The startup timeout also went from 60s to 90s for slow machines.
Scheduled automations
- Nothing on a schedule had ever run. A development-only setting that mutes the
scheduler had made it into the release build — and it was malformed on top of that, so
the scheduler didn't start late, it failed to start at all. Scheduled table refreshes,
auto-grow, and every time-triggered workflow were affected. Fixed.
Backups and migration
- Importing a
.tdbk backup always failed on Windows. The import
didn't stop the engine first, and the engine was holding file handles open — which
Unix tolerates and Windows doesn't. Import now stops the engine and restarts it
afterwards, whether the import succeeded or not.
- Imports broke when the temp folder was on another drive. Extraction used the
system temp directory and then renamed the result into place; if the two were on
different volumes, that rename fails. Temporary files now live on the same volume as
your data.
- A detected backup that failed to import used to say nothing at all — it
looked exactly like "no backup found". You now get an explicit message with the
reason, the log path, and confirmation that your existing data wasn't touched.
- Backup size estimation no longer depends on a Unix-only command, so it works on
Windows.
0.0.6
23 June 2026
Export fixes, number formats that survive aggregation, and update notifications.
- Free-plan exports were being blocked entirely. The paywall filter treated
export as a paid-only feature, so whenever the front and back ends disagreed about
license state you got a hard failure — "export failed / file not found" — rather than
a capped export. Export never hard-fails now: the free version exports the first
1,000 rows per sheet, the paid version exports everything, and the full encrypted
backup was always free either way.
- Imports keep their file name. Importing an Excel or CSV file names the new
sheet after the file instead of "Untitled".
- Export messages tell the truth. No more "download succeeded" appearing
alongside an error. CSV export now asks where to save, and only reports success once
the file is actually on disk.
- Aggregations inherit number formats. Summing or aggregating a column that
has a currency, decimal or thousands format produces a result column with the same
format (counts and distinct counts excepted).
- Update notifications. Settings gained an About page with the current version
and a check for updates; the main window tells you when a newer release is out.
0.0.4
20 June 2026
Automatic backup detection on startup, and the fix for the blank screen after activating.
- Activating a license left you on a blank screen. Activation restarts the
local engine so the new features take effect, but the restart picked a fresh port
while the interface reloaded the old one — so it reloaded a port with nothing behind
it. Every paid activation on 0.0.2 hit this. Fixed by keeping the port across
restarts.
- Backups are detected on startup. If there's an encrypted backup waiting in
your downloads folder, TableDI offers to import it once the main window is ready.
0.0.2
10 June 2026
A full audit of the calculation and storage layers, and the fixes that came out of it.
- Writes are really on disk now. The storage layer's flush only reached the OS
page cache, and IO errors were being swallowed — a full disk or a power cut could lose
data silently. Every write-ahead log entry, snapshot column and completion marker is
now genuinely synced, and failures propagate instead of disappearing.
- Corrupted snapshots don't take the app down. A damaged length field used to
crash startup; a missing column used to be skipped silently, which meant that column's
data was gone for good. Both now fail safely and fall back to the previous snapshot.
- Aggregation matches Excel. Average no longer counts blank cells in the
denominator; sums and averages skip text and empty strings instead of throwing.
- Date and number functions. A batch of fixes to the Excel serial-date baseline
(off-by-one-day),
DAYS360 month-end handling, DATEDIF,
FIXED on large and negative amounts, and POWER overflow.
- Formula conditions are no longer rewritten. Leading-zero identifiers like
00123 and empty values are passed through as you typed them, so
conditions stop silently never matching.
- A batch of display and chart fixes: tiny decimals no longer render as 0, text
columns keep
007 and 1.10 intact, and charts stop breaking
on empty cells.
0.0.1
8 June 2026
First public release.
- Local spreadsheet workspace: no account, no configuration, everything stored on your
own machine. Unlimited rows, linked tables, formulas and charts.