What’s new in FileDeck — the features, improvements and fixes we ship, newest first.
Releases go out as soon as they’re ready — sometimes several in a day, sometimes a quiet week. Every entry below shipped to production.
A tidier admin menu — Search Index and AI Index move into Settings
The Documents menu just got shorter. The Search Index and AI Index screens are now tabs inside FileDeck → Settings, so everything you configure lives in one place instead of scattered across the menu.
Search Index and AI Index are now Settings tabs
Open Documents → Settings and you'll find Search Index and AI Index alongside the other tabs. Every control is exactly where it was — rebuild the content index, watch background progress, send scanned PDFs for OCR, or rebuild your AI embeddings — just reached from a tab now rather than its own menu item.
Fixes & improvements
- Trimmed the Documents menu by folding the two index screens into Settings, so the sidebar is shorter and the index tools sit next to the settings they use.
Multi-file submissions, built-in anti-spam, and submission blocks
The front-end submission form got more capable and easier to protect, and all three front-end tools are now blocks you can drop in without touching a shortcode.
Submit several files at once
The [filedeck_submit] form now accepts more than one file in a single go — each file becomes its own document, sharing the title, category and fields you enter. Handy for a supplier sending a batch, or a team member uploading a set of related documents.
Keep bots out, without a plugin
If you open submissions to logged-out visitors, you can now turn on Cloudflare Turnstile — a free, cookieless CAPTCHA — right in Settings → Submissions. Paste your Turnstile keys and the form shows the challenge and verifies it on submit. A hidden honeypot and a per-visitor rate limit are always on, and there's a hook for virus-scanning uploads if your host offers it.
Blocks for submit, my submissions, and edit
The three front-end tools — Submit Document, My Submissions, and Edit Document — are now Gutenberg blocks, so you can add them from the block inserter with a live preview and simple settings instead of typing shortcodes.
Fixes & improvements
- Multi-select custom-field filters now show live per-value counts on large libraries, matching how they already worked on smaller ones.
People can submit and edit documents without touching wp-admin
Contributors can now add and fix documents entirely from the front of your site. Add a submission form, show people their own submissions, and let them edit them — all with the moderation, versioning and access rules you already rely on.
A submission form, with moderation
Drop [filedeck_submit] on a page and visitors can add a document: title, description, category, file, and any custom fields you've defined. Everything arrives as Awaiting review in your Documents list — nothing goes live until you approve it. You can require a consent checkbox, fix submissions to one category, and reviewers get an email when something comes in. There's a hidden honeypot and a per-visitor rate limit built in, plus a hook for a CAPTCHA plugin if you open submissions to logged-out visitors.
"My submissions" and front-end editing
[filedeck_my_submissions] gives each person a list of their own documents with their status, and — pointed at an edit page — a link to fix them. [filedeck_edit] is that edit page: a pre-filled form for the title, description, category, custom fields, and the file. Replacing the file keeps the previous version (restore it any time from Version History) and re-applies file protection automatically. People can edit their own documents while they're still in review, but published documents stay locked to your team — so approved files don't change under you.
Fixes & improvements
- Submitted documents now carry any custom fields filled in on the form.
- Replacing a file from the front end archives the old version, exactly like replacing it in wp-admin does.
Add your own document fields — and let people filter by them
Your library can now hold whatever information your documents actually have — department, policy number, publication date, owner, jurisdiction, status — and your visitors can filter by any of it. Define the fields once; every document gets them, and any library can show and filter on them.
Build your own fields
Under Documents → Fields, add the fields your library needs. Each one can be text, a number, a date, a dropdown, a multi-select, a URL, a user, or a simple yes/no — and you can limit a field to certain categories, so a "Policy number" only appears on policies. Fill them in right on the document editor, or in bulk from a spreadsheet: every field is a cf:<key> column in CSV import and export. Already using Advanced Custom Fields? FileDeck reads your ACF values directly, and can import your ACF field groups in one click.
Show them as columns, filter by them with counts
Add any field to a library as a column — dates and numbers sort by value, not alphabetically. Mark a field filterable and it becomes a filter in the library: dropdowns show a live count next to each value ("Finance (12)"), and date and number fields get a min/max range. Filters combine, the counts update as you narrow, and the current view is saved in the URL so it can be bookmarked or shared. On large libraries the filtering and counts run on the server, so they stay fast however many documents you have.
Fixes & improvements
- Custom-field columns now sort by their real value in large (server-mode) libraries, not just small ones.
- A document’s custom-field values are matched by the library search box when the field is marked searchable.
Search in large libraries stops quietly hiding matches
If your library is big enough to run in server mode — around 500 documents and up — a search could leave matches out and tell you a result count that was too low. Both are fixed. Nothing to change; it applies to every large library automatically.
Every match counts, and the count is honest
Two different limits used to apply to a single search. Matches on a document's contents stopped at 500, while matches on titles, categories and tags ran to 2,000. Because the tighter limit hit first, the results most likely to disappear were the ones from inside your documents — exactly what full-text search is for. Worse, when a limit was reached the total simply reported the capped number, so there was no sign anything was missing.
Now both kinds of match share one limit, so content is never dropped ahead of titles. When a search does reach the ceiling, the library says so rather than presenting a truncated list as the whole answer.
If you run a very large library and want a higher ceiling, the filedeck_server_search_limit filter raises it.
Fixes & improvements
- Searching a 500+ document library no longer omitted matches found inside document text while keeping title matches for the same term.
- A search that hit the internal result ceiling no longer reported the ceiling as the true number of matches.
OCR fair-use limits and locked-down configuration
Housekeeping for scanned-document OCR: a clear fair-use limit on the shared service, and the ability to configure it from the server so the endpoint and key can't be changed from the admin screen.
A fair-use limit you can count on
The managed OCR service is shared across sites, so it now processes up to 100 scanned documents per day for your site (each up to 40 pages). If you switch OCR on for a large backlog of scanned files, they're handled a batch at a time and the rest continue automatically over the following days — nothing is skipped or lost. Running your own OCR service removes the limit entirely.
Fixes & improvements
- The OCR Service URL and Site key can now be set on the server (via constants or environment variables); when they are, the settings fields show as read-only.
- The OCR Service URL is validated so a document can't be sent to an internal/reserved network address (security hardening).
Read & confirm — acknowledgment tracking
The compliance feature we've been asked about since day one, on the AI plan: prove who has read your policies.
Assign, confirm, chase
Edit any document and tick the roles that need to read it under Read & confirm — optionally with a "confirm by" date. Anyone in those roles sees a one-click confirmation on the document page (a plain form — it works with JavaScript off), and a new [filedeck_acks] shortcode gives each person their own "still to confirm" list for your intranet homepage.
Documents → Acknowledgments is the chase list: every assigned document with who's confirmed and who hasn't, a "send reminders" button for the stragglers, and weekly reminder emails that go out automatically until everyone's done.
Evidence your auditor will accept
Every confirmation records who, when, and which version of the document they read. When a policy changes, hit "Require re-acknowledgment" — everyone shows as outstanding again, and the previous confirmations are kept, marked as superseded. The whole history exports to CSV, and each person's confirmations appear in WordPress's built-in personal-data export.
Safeguarding policies, health & safety procedures, HR handbooks — if you've ever chased signatures on a paper circulation slip, this replaces it.
Admin buttons fixed, cloud connect restored, more hardening
A cleanup release: a batch of admin buttons that quietly stopped working after the 2.0 rename now work again, cloud-storage connection is restored, and a few more security corners are tightened.
Buttons that work again
After the 2.0 internal rename, several admin actions were pointing at the old address and silently did nothing. These are all working again: CSV export and the sample CSV, activity-log and content-gap exports, lead export, Run scan now on Library Health, Generate missing thumbnails, and Mark reviewed.
Cloud storage connection restored
The OAuth connect flow for Dropbox, Google Drive and OneDrive couldn't complete — its callback pointed at a stale address. Connecting your cloud storage now works end to end.
Fixes & improvements
- Zip downloads now honour lead capture — a multi-select zip no longer skips the "leave your details first" form that a single download requires.
- The ⌘K command palette no longer lists documents protected by a WordPress post password.
- CSV export returns only published documents for authors who can't edit other people's posts (no draft or private documents leak into the export).
- Category-password unlock gained a per-category daily failure cap on top of the existing per-IP throttle, to blunt distributed guessing.
- The optional OCR service was updated to a newer image library.
Security and reliability hardening
A maintenance release with security and reliability improvements across access control, credential storage, and the library health check. There's nothing you need to do — updating is enough, and your existing settings and provider keys carry over unchanged.
Security and reliability improvements
- Tightened the permissions required to publish documents through Bulk add and CSV import, so only roles that are meant to publish can.
- Provider API keys (AI and OCR) are now encrypted at rest, matching how your cloud-storage credentials are already stored. Existing keys keep working.
- Hardened the weekly broken-link health check against being pointed at internal addresses.
We recommend updating at your convenience.
Ask gets a lot better — sharper answers, a real chat, and a content-gap view
A big round of improvements to FileDeck's AI (available on the AI plan). Answers are markedly more accurate, the Ask box is now a proper chat, and you can finally see what your visitors are asking — including the questions FileDeck couldn't answer.
Much sharper answers
We fixed an indexing bug that was quietly splitting every document into ~150 tiny fragments, which badly hurt relevance and often stopped Ask from finding content that was right there. With that fixed, semantic search and Ask return far better matches. After updating, rebuild your index once — Documents → Settings → AI → Rebuild (or wp filedeck embed --rebuild).
Ask is also more honest now: when a question is only loosely related to your library, it says so plainly instead of straining to answer from weak matches.
A familiar chat interface
"Ask this library" is now a real chat — message bubbles, a typing indicator, clickable example questions, and inline links to the source documents behind each answer. It's still zero-dependency vanilla JavaScript, so it stays fast and adds nothing to your page weight. You can seed the starter questions with a new attribute: prompts="How do I get a refund?|What's your warranty?".
See what your library gets asked
A new AI Questions tab in the Activity Log shows what visitors are actually asking — and, most usefully, the questions Ask couldn't answer. Each unanswered question comes with a one-click Create a document button, so the gap in your library becomes the next thing you write. Questions stay on your own server, carry no IP address, and are automatically pruned after 90 days. (Requires activity logging to be switched on.)
Fixes & improvements
- The Ask box could load without its settings on some themes (block themes especially), leaving it unresponsive — its configuration now travels with the widget, so it works wherever you place it.
- Ask answers now render bold text and bullet lists properly, instead of showing the raw
**and-markers. - On desktop, the Ask box focuses its input when it scrolls into view (without jumping the page), and the example questions flow in a neat wrapping row.
- The Download button on single document pages could appear invisible on themes that didn't supply an accent colour — it now always has a visible style.
- The layout-picker cards in the setup wizard no longer render with a broken border.
- After choosing a file in the document editor, the "no file yet" notice and button label update immediately instead of waiting for a save.
- For developers: the Ask widget now dispatches a neutral
filedeck:askDOM event after each answer (question, outcome, sources) so you can wire your own analytics. The event fires in the visitor's browser and FileDeck transmits it nowhere — it's purely an extensibility hook for your own code.
Search index rebuilds in the background
A quality-of-life fix for Pro's full-text search on big libraries.
No more timeouts
"Rebuild search index" used to re-extract every document's text in one long request — fine at a few hundred documents, a timeout at a few thousand. It now runs in the background in small batches: click the button, get a "queued" confirmation, and leave the page. The Search Index screen shows live progress (refresh to update), and your visitors' search keeps working from the existing index the whole time.
If a batch is ever interrupted — a server restart, say — the rebuild picks up where it left off rather than starting over.
Large libraries stay fast
Libraries with thousands of documents now load as fast as small ones.
One page at a time, automatically
Until now, a library rendered every document into the page and paginated in your visitor's browser — fine at 200 documents, slow at 5,000. Past roughly 500 documents, FileDeck now renders the first page only and fetches search, filter, sort and pagination results from your server as your visitor needs them.
There's nothing to configure and nothing changes visually: it engages by itself on large libraries, and smaller libraries keep the instant, everything-in-page behavior they've always had.
Search works exactly the same
Searching a large library matches the same things it always has — titles, summaries, categories, tags, filenames and file types, accents ignored — and on Pro, matches inside your files' contents are included too.
Small print
- The folders layout is unchanged (it shows every category by design).
- On large libraries, sorting by Filename or Author isn't available; every other column sorts as before.
- Semantic (AI) matches aren't part of large-library search yet — that's coming.
Cloud storage connections, tidied up
A round of improvements to FileDeck's cloud storage connections — Amazon S3, Dropbox, Google Drive, and OneDrive.
See file sizes for cloud files
Files you browse and attach from a connected cloud account now show their size in your library and on the document page, exactly like files uploaded to WordPress. Previously a cloud-backed document listed no size; now the grid, table, and single-document view all show it.
Fixes & improvements
- Scheduled cloud pulls no longer occasionally add the same file to your library twice when a manual sync and the automatic hourly sync overlap.
- Security and reliability improvements across the cloud storage connections.
Shorter, snappier tables on phones
A fix for anyone browsing a document library on a phone.
One page at a time on mobile again
On phones, a table library set to paginate was showing every document in one long scroll instead of the current page — the responsive card layout was quietly overriding the paging. It now shows one page at a time on mobile, exactly as it already did on desktop, so long libraries are quick to scan and scroll again.
Fixes & improvements
- No change to your settings — your existing "documents per page" is simply respected on mobile now, the same as everywhere else.
A tidier Documents menu
A small housekeeping release for the WordPress admin: the Documents menu is shorter and better organised, so the screens you use daily are easier to reach.
Library Health now lives in Settings
The Library Health screen (Pro) has moved from its own menu item into a Health tab on Documents → Settings, alongside the rest of your configuration. Everything works exactly as before — run a scan, review missing files, broken links and never-downloaded documents — it just no longer takes up a slot in the sidebar. The weekly automatic scan and email digest are unchanged.
Fixes & improvements
- Activity Log moved to sit directly above Settings in the Documents menu, so content screens stay together at the top and tools live at the bottom.
- FileDeck admin screens now sign off with "FileDeck is made with ❤️ in London" in the footer.