v1.26.0
Interactive HTML blocks on the page, workspace Skills in the open SKILL.md format, and read-aloud for whole pages. (Release in progress.)New
- HTML blocks — type
/htmlto add a block that runs a self-contained HTML widget in a sandbox on the page. Upload an.htmlfile, paste code, or describe what you want and have AI build it. Widgets take HERO’s own colours, fonts and components, follow light and dark mode, and fit any width. - Build from your content — the HTML prompt takes the page it sits on plus any documents, folders, tables or files you add, and autocompletes references as you type, as in automation descriptions.
- API:
POST /ai-agent/generate-html— generate or revise a widget and stream it as Server-Sent Events. - MCP: html-block fences — AI clients can write HTML blocks with a
```html-blockfence in extended markdown; text reads summarise them in one line. - API: HTML block files — each version of a block’s HTML is stored as a file, and the
htmlBlocknode points at it byresourceId, keeping collaborative documents small:POST /media/htmlstores a version,GET /media/html/{htmlId}reads it back as JSON, andPOST /media/html/{htmlId}/duplicatecopies it to another document. The HTML never travels inside the document or the clipboard;html-blockfences are stored the same way, andread_document_contentreturns each block’s HTML in itshtmlattribute. - Sandboxed widgets — a widget renders as a page of its own from a signed, one-hour URL (
GET /media/html/{htmlId}/render-url). The response’sContent-Security-Policysandboxes it into an opaque origin even when opened directly, with no network access beyond jsDelivr, cdnjs and unpkg, no windows that escape the sandbox, and noalert/confirm/promptdialogs. - Widgets stay on their page — a widget that navigates its frame elsewhere is stopped (links open in a new tab instead), and render URLs are checked against the viewer’s access on every load, so removing someone’s access or unpublishing a page takes effect at once.
- Embeds are sandboxed — embedded sites can no longer navigate the HERO tab, don’t see which document they’re on, and a page from HERO’s own origin can’t lift its sandbox.
- Workspace Skills — import or write a skill in the open Agent Skills
SKILL.mdformat, the same one Claude and a growing set of other agents read. A skill is an ordinary HERO document, made from the New menu with its own icon, and the editor offers only the blocks the format can carry, so it exports and re-imports without losing anything. Importing brings in the whole skill folder, not just itsSKILL.md. - Read aloud, rebuilt — read a whole page, not just a selection of up to 900 characters. Audio streams so playback starts sooner, replays are cached instead of billed again, and placeholders, dates and references are read out instead of skipped. One consistent formal voice at 1.35× by default.
- AI reads page through long content — documents, PDFs, web pages, tables and listings are read a page at a time (
offset/limitin,page.nextOffsetout) instead of being cut off, so the AI sees the whole thing. - A document design system for AI — AI writing follows a shared color ladder, block usage notes, fifteen ready-made layout patterns and six page archetypes. MCP clients get them from a new
get_hero_design_guidetool before writing a page, report, brief, proposal or playbook. - Markdown that keeps its look — callouts written in markdown keep their icon and color, color is a palette word everywhere markdown takes one, and a numbered heading (“2. Fees”, “2.1 Late payment”) becomes a clause at the right depth.
- Tidier documents from AI — the AI names documents in plain Title Case for readers, files them in a folder per party, and puts “Schedule A”-style numbering in the reference beside the name.
- Sort the document tree — sort the sidebar by Manual, Name, Date created or Last edited; a manual move now saves only the rows that moved, and reordering inside a folder sticks.
- A failed AI edit can no longer empty the live document; patching or appending a clause no longer adds empty parent clauses, and inserting missing parent levels no longer crashes or splits text.
- Placeholders copied from another document point at the right rows, and money keeps its currency.
- AI table tools follow the same rules as the app for columns, references, undo, relations and row writes, and say what they didn’t write.
- MCP clients see real parameter types instead of
any, can find the row tools, and can tell a failed call from a successful one. - Saving one user setting no longer wipes the others; switching light/dark lands in one frame.
- Exported clause titles print in black; a pie chart in a narrow column draws its slices; the editor’s block menu opens again instead of sticking.
v1.25.0
An engine rebuild you feel more than see — and it makes the whole app faster, not just tables. HERO no longer loads your entire workspace into your browser, so everything opens quicker; on top of that, tables scale to serious data and become dashboards you build yourself.New
- Tables that scale — a rebuilt storage engine means big tables just open now. Filtering, sorting and search run on the server, and a table loads a page at a time (choose 10/25/50/100, remembered per table) instead of hauling everything into your browser.
- No more local copy — of anything — HERO used to download your entire workspace (documents, projects, tables, every cell) and mirror all of it into your browser’s local database before the app felt ready. That whole mirror is gone: data comes straight from the server, fresh, in the size you need — so the app is lighter everywhere, not just in tables.
- Build your own dashboards — drop a parameter bar into a document and add live charts and tables built from your data. A page-level parameter filters every block at once, clicking a chart category cross-filters the whole page, and readers can re-scope a published dashboard without changing it for anyone else.
- New column types — Timer (play/pause to clock sessions with a live running total, and feed it into a formula so time × rate = money), Approval (capture a sign-off in the row), and Reference (point a cell at documents or clauses, picked with
@, previewed inline). - New views — a Checklist view with a deadline window counted from today, and a Figure view with inline figure references.
- Smarter filters & formulas — nested AND/OR filter groups, and formulas that roll up conditionally across a relation.
- Every view loads what it shows — lists load as you scroll, calendars a month at a time, boards in one request with true counts; a hidden table loads nothing until it’s opened.
- Smarter imports — a spreadsheet column can come in as Progress (“42%”, “3 / 10”, “20 of 53 steps”) or as a User.
- A full review of who can see what: people limited to some rows of a table see only those rows — in tables, search, AI tools, live updates and copies — and losing access takes effect immediately.
- Guests on a document see only that document and their own automation runs, never the rest of the project.
- Workspace-scoped API keys stay inside their workspace; invites and licenses go only to the verified owner of the address.
- Error reports and access logs no longer carry request bodies, tokens or query strings, and documents cached in your browser are cleared when you sign out.
- Web fetches and embed checks can’t be pointed at private network addresses, and progress colors can’t carry markup.
- Copied documents keep their tables’ values, relations, inline figures, cards and version columns; pasting into same-named tables joins them — rows, views and cards included — while deleted rows and personal row grants stay behind.
- One edit starts one automation run, and an automation’s own writes can no longer loop it; button cells show their run’s status.
- Live updates reach every reader once, in order, even on busy tables; two people editing a linked row at the same moment no longer overwrite each other.
- Large CSV exports stream a page at a time, never come out empty, keep values under their own headings, and can’t be run as formulas when opened in Excel.
- Date filters use the day a cell shows; figures take their currency from the rows they measure; search’s “All” finds results inside a project again.
- Undoing a formula or column-type change via AI says it can’t, instead of claiming it did.
- Opening a big dashboard’s tables: 573 MB → 1.9 MB (295× lighter).
- Startup payload: ~122 MB → ~54 MB.
- A table page that used to freeze for 70 seconds → instant.
- Turning a page: 312 ms → 90 ms. Loading a dashboard: 17 requests → 2, 2.5 s → 0.6 s; all its charts drawn 363 ms → 114 ms.
- On a 30,000-row table: changing a column’s type 1.5 s → under 0.1 s, adding a column 3.8 s → ~0.1 s (and the server no longer spends 30 s catching up afterwards).
- App download ~20% smaller (22.6 MB → 18.1 MB) — PDF/Word engines now load only when used — and first paint on a big table page 3.0 s → 2.3 s.
- The per-cell → per-row storage migration was verified 1:1 — 54,306 rows rebuilt from 1.55 million cells across 1,468 tables, every one identical.
v1.24.0
HERO reaches out to the tools you use, works on your phone, and its tables get genuinely relational.New
- HERO on your phone — the whole app now works on mobile, rebuilt around a native-feeling sidebar, drawer and command menu. Pull down past the top of a document to reach AI, search and quick actions; tap a term or reference to read its full definition or clause; and it sits correctly under the Safari toolbar.
- Zapier integration — 63 HERO operations exposed as single, composable steps: trigger a workflow when something changes in HERO, or let another app create documents, add rows, request signatures, and more. Zapier connects over OAuth and gets REST-hook subscriptions that can watch several projects or tables at once — and it’s all built on a shared integration layer, so more platforms are coming soon.
- Signed webhook deliveries — every outbound delivery to a subscription is signed (
X-Hero-Signature: HMAC-SHA256 over a timestamped body), so your endpoint can confirm it genuinely came from HERO and reject replays. - Relations that make sense — narrow a link column so it offers only the valid rows (no more one-table-per-permitted-set), flag links that no longer fit their filter, and let a formula reach across a relation to read a column on the row it points at (with
@offering those columns). - Filters you can describe — type what you want in plain English (“signed contracts this quarter with no effective date”) and HERO builds the filter; combine conditions with OR, and each field offers only the operators that fit it.
- Smarter CSV import — choose which columns to import, and preview exactly what HERO will build (columns and inferred types) before it builds it.
- Versioned reference sets — mark a table as a versioned terminology set, and a document records which release it was written against, so you can see which documents are affected when terms drift.
- Refreshed interface — a lighter, more consistent look on desktop; on mobile, a ground-up redesign built for touch.
- Faster start — returning users skip the splash wait, and the app no longer holds longer than it needs to.
- Export or send any node straight from its breadcrumb (right-click or menu).
- Every toast now has an X and swipes away; a type change says what it will cost before you make it.
- Loading a document no longer risks dropping the live-collaboration connection mid-handshake.
- The slash menu can’t scroll the document out from under you; single-select chips follow renames instead of showing stale text.
- Counting linked rows counts links, not commas; a cell edit no longer leaves the linked table stale.
v1.22.1
The follow-through to 1.21 — sharper automations, keyboard-first navigation, and conditions you can actually see.New
- Command palette everywhere — quick actions now reach Tables, Automations, the AI page and chat, Settings, Plans, Home, and a Switch-workspace list, all from the keyboard.
- AI writes real cross-references — when the assistant writes “see Section 2,” it becomes a live clause reference that stays correct as the document changes, not dead text.
- Automations that ask before they run — turn on “Run with data” for a manual automation and starting it prompts for input that reaches the steps as the run payload. Any step can quote it back with the “What you typed” reference, from every way of starting the run.
- New workflow steps — find a document or a row rather than pinning one, create a table, add a column, delete matching rows, set a document’s reference, and delete a document. Each is a step now, so a workflow no longer spends an AI step on a lookup.
- Automations understand the triggering document — a workflow started by a document event (e.g. a signature) can act on the row that document is about, so “when this NDA is signed, set its Effective Date” works.
- Conditions you can see — per-step “only if…” conditions and the automation’s own top-level condition are now visible in the builder and honored at run time; references throughout show real names and colours.
- Faster keyboard entry in tables — every add-row field is reachable by Tab, the form is fully keyboard-usable, and a defaulted row is named after the table instead of coming up blank.
- Inviting a member to a workspace no longer crashes the app.
- A workflow started from a button in a document now receives what you typed, the same as “Run now” does.
- A workflow that stops early — no matching template, not the counterparty — shows amber rather than green, so a run that did not finish no longer reads as one that did.
- Undo and redo work in the workflow description box.
- An empty select in a form no longer shows a small box where its value goes.
- A finished workflow announces itself once. Notifications, invites and access requests could all arrive twice.
- Signed documents no longer falsely report they’ve changed, with a repair pass for affected ones.
- Desktop location cells that were dead in released builds work again; three stray debug switches were turned off.
- The table type picker no longer opens behind its own dialog or freezes the page; a new folder no longer borrows a displaced row’s icon.
- Buttons show a table’s own icon and colour; a failed Word import now says why.
v1.21.0
A relaunch, not a patch — automations, published sites, a new color system, and legally defensible signatures.New
- Automations — build workflows that run themselves: when something happens, do something. Author from a plain-English prompt (it lands paused for review) or on a drag-and-drop canvas with nested If … otherwise … paths that compare any two values, plus a Stop step. Triggers: schedule, incoming email, webhook/API (carrying its payload), table/column/project changes, people joining or gaining access, clause/term/signature events, and saved/restored versions. Actions: run an AI step, send email from your own mailbox, call any API and use what comes back (auth, POST/GET/DELETE, Slack), request a signature, create documents/folders, write formatted content into a document, edit cells/columns, wait, and more — with live run streaming, mid-run stop, and its own page/link/icon per automation.
- Connectors — connecting Gmail, Outlook, or another service lets you choose exactly what access to grant at connect time: read-only by default, sending or file changes as a deliberate opt-in, and only the minimum scope each needs.
- Automation ownership — each automation shows who owns it (runs use the owner’s connected accounts and AI credit), the Connectors and Trigger-reference tabs are owner-only, managing an automation is separate from authoring its steps, and a departing member’s automations move with them.
- Smarter buttons — a button’s destination is now one field: a URL, a link to another HERO document (clicking navigates in-app, no new tab), an automation to run, or a table (clicking opens its add-row form). The chosen target shows as a chip; buttons pointing at an unreachable document show as disabled.
- New color system — nine coherent hues replace dozens of near-duplicates across icons, highlights, select tags, sections, and collaborator cursors; a six-color theme-aware text highlighter; colored inline code; every token derived from one source so light/dark always agree.
- Legally defensible signatures — server-side signing captures time, IP, device, and a document hash into a tamper-evident audit trail; signed documents lock automatically, and voiding records who unlocked it.
- AI file attachments — the assistant can upload an image, video, or audio file and create a document containing it.
- Bring your own AI key — add an OpenAI or Anthropic key in Settings → AI and every AI request, automations included, runs on your account instead of your monthly credits. Choose per provider, so you can keep one on your plan and one on your key. Your own key draws down no allowance and unlocks every model that provider offers; spend on it is reported separately. Keys are stored encrypted and never shown again.
- Tables: see and change each field’s type inline; add rows through a form so they’re never blank.
- One-click Export to Word or PDF from quick actions.
- AI web search runs exclusively through a data-protection-covered provider; AI undo checkpoints no longer clutter version history.
@-mentions can match a clause by its number.
- Find-and-replace no longer corrupts text after a defined term.
- Version compare no longer crashes.
- Unchecked table checkboxes stay visible without hovering; export pill labels survive PDF conversion; inline code renders cleanly across wrapped lines.
v1.20.0
New
- Computed columns — describe a formula column in plain English and HERO compiles it into a real, validated formula, filling every row and recomputing as dependencies change.
@-reference other columns (relation/select/one-to-many included), live preview, per-row error tooltips, a full text/number/money/date/logic function library, and AI-authored columns viaset_computed. - Per-row permissions — grant one specific person viewer or editor access to one specific row without changing their role elsewhere. A Permissions dialog on the row/table menu shows who can reach a row and how; select multiple rows to manage them together (audience grouped per row, add/remove across the selection). Managing row access is reserved for workspace admins and owners.
- Media columns — the image column type now holds images, video, and audio together (relabelled “Media”); the audio player gained a playback-speed picker.
- Rebuilt tooltips — floating-ui powered: open when the pointer settles, stay pinned through scroll, nested tooltips stay open, and mobile tap-through is fixed.
- Title autocomplete — autocomplete now works in the title block.
- Published embedded rows — published documents show the rows an embedded table view lists, matching what an invited collaborator sees.
- Resilient AI chat — the agent stream heartbeats through long thinking/tool calls, and a dropped connection shows a clear message with a Retry that resumes where it left off.
- Word/PDF export: section titles stay with their content across page breaks, table column widths carry into the
.docx, code blocks export monospace, embedded references and form blocks no longer vanish, and large conversions get a longer timeout. - Word import preserves unknown wrapper structures and keeps numbers in “Section 4.1” cross-references.
- AI-inserted ISO dates render like picker-chosen dates.
- Top search ranks exact title matches first.
- Save as PDF is now a secondary icon-only button.
- The term-finder no longer breaks pasted code blocks.
- Restored the attachments toggle when sending; media blocks no longer interrupt the send scan.
- Tables show an honest “No access” message instead of asking you to refresh.
- Scrolling a wide column no longer drags the whole page sideways.
- The legacy per-cell “Cell Math” formula column type has been removed in favor of computed columns. Columns already using it keep working and stay editable, but it’s no longer offered for new columns.
v1.19.1
New
- AI-generated Word documents — the assistant produces real, downloadable
.docxfiles (up to 10 at once), saved into your project; available from every model and over MCP. - Edit
.docxover MCP — the Word-editing tools are now exposed to connected apps like Claude. - Model picker for everyone — every user can choose their AI model (previously developer-only); the choice persists per chat thread. Premium models draw down your plan’s AI allowance proportionally to cost.
- “Undo that” over MCP — reverse AI changes made through connected apps, repeatably, across documents, tables, and placeholders.
- Per-placeholder highlight toggle — flip an individual placeholder or reference from the highlighted pill to plain, style-inheriting text.
- Searchable row selectors — filter and sort rows when linking to a record.
- Robust PDF form filling — complex real-world forms (damaged structure, page-only fields) fill correctly and stay interactive.
- Save as PDF uses the document’s name for the download filename.
- Table picker: Enter selects the highlighted table, not the first in the list.
- Checkbox cells are centered and toggle from anywhere in the cell.
- All table cell types align to a shared baseline.
v1.19.0
New
- Better text cells — click to place the caret exactly where you tapped, fill-height scrollable cells, and an expandable text input.
- Multi-select editing — open the item editor straight from a multi-select chip.
- Upload progress — an animated indeterminate bar while media uploads.
- Fading document names — long names in the tree fade like overflowing table cells.
- Enlarged the string-cell edit card and dropped the hover tooltip; checkbox centered, location muted.
- Upgraded TipTap to 3.28.0 and shared one ResizeObserver across text cells for fewer re-renders.
- Backspace reliably deletes empty blocks inside columns.
v1.18.0
New
- MCP OAuth 2.1 — the HERO MCP server now supports OAuth 2.1 with dynamic client registration and discovery, ready for the Claude directory.
- View-drag block selection — drag across blocks to select them, with an eager gap cursor (consolidated into SelectionKit).
- Smarter string cells — fade overflow, reveal the full text on hover, and edit in a popover card.
- Gallery multi-image covers — browse multiple cover images in a carousel.
- Auto-saving badges — badge edits save as you go.
- Visible keyboard focus app-wide; Enter honors the focused button; alert dialogs trap Tab.
- Media uploads as raw binary with a 50MB limit and real error messages.
- Map pins and markers no longer vanish when flipping between light and dark theme.
- Dropped the TipTap Pro dependency.
v1.17.0
New
- A new block-selection experience — unified block selection, drag-head, and trailing-pad handling.
- Redesigned badges — click-to-open menu with live preview, keyboard-first, no save step.
- Mention a record, then a column — reverse
@lookup that starts from a record. - Cross-workspace search — Quick Navigation finds projects across every workspace.
- Number column decimals — set fixed decimal places (or keep default).
- Self-setting-up blocks — icon, button, media, and database blocks auto-open on insert.
- Smarter containers — columns and tabs behave as proper containers, with live 10% resize snapping.
- Cleaner embeds and more icons — borderless auto-sized embeds; new icons including arrows.
- PDF form filling handles forms that defeat pdf-lib via a pdf.js fallback.
v1.16.1
New
- Sync cards — one shared card template across Board, Gallery, and Timeline views, with per-card sync and dynamic button links.
- Published card content — published sites now render card-editor content.
- Resizable columns — free-count resizable columns from the command menu.
- Dynamic button links — restricted to URL/email/phone columns with an auto scheme.
- Editor menus default to non-modal to stop node-view flicker.
- Copy and send carry an embedded table’s views and card content across projects.
- Google Maps moved to the async loader with dark-mode support.
- Card spacing now matches the editor exactly, with no height jump.
- Clipboard copy/paste round-trips nodes via
data-*attributes. - Signature values show again in published and exported HTML.
v1.16.0
New
- Rich, collaborative cards — database cards across Board, Gallery, List, and Timeline views gain an editable body with live field chips, a slash menu, a bubble menu, tabs, titles, and rich notes — edited collaboratively through a shared per-table document.
- Card content travels — sending a document carries embedded views and their card content to the recipient.
- Field rows read inline as “Column: value”, empty rows are skipped, and autocomplete offers every column and value.
- View settings moved onto the tabs row; table top-bar controls reveal on hover instead of filling the whole view.
v1.15.0
New
- Database views — turn any table into a Board (kanban), Gallery, List, Calendar, Timeline, Map, or Chart, each with its own config; switch, add, rename, duplicate, and delete views per table.
- Filters — a visual filter builder with per-view persistence, powered by a new filter engine (formula columns filterable by value and unit).
- Image columns — upload, paste, and reorder images directly in cells, and use an image column as a Gallery card cover.
- Rich drag-and-drop across Board and Calendar (overlays, drop targets, reschedule); click a card to open its row sheet.
- List view renders as a numbered list and is text-selectable.
v1.14.0
New
- Icon blocks — insert and style icons anywhere, with a picker, editable size (slider + px field that scales with the editor font), and DOCX export.
- Button blocks — primary, secondary, and ghost buttons with an anchored settings popover (type/icon/position/alignment) and a slash command.
- Reworked dashboard — sortable, resizable document covers with hover previews, a right-click context menu (rename/copy/open/delete), a New split-button with Import, and keyboard shortcuts throughout.
- Space previews a folder or project as a cover dialog; per-row metadata appears on hover.
- AI
readDocumentTextnow includes buttons.
launch
Initial public release of the HERO API and developer portal. Coverage:
- Documents, projects, blocks, tables, workspaces, organizations
- Media, upload, export, TTS, snapshots, published artifacts
- AI agents (chat + streaming) and MCP tool catalog
- Realtime collaboration via Hocuspocus + Y.js