Zendavox Sign in

What’s new in Zendavox

Every change a customer can see, in plain English, newest first. The version number here matches the one the site reports, so you can tell what is live.

Grant deadline reminders, and a Cancel button on every nonprofit page

Version 0.7.33 · 28 September 2026

**Zendavox now emails you before a grant deadline.** For every open deadline on a grant, a reminder goes out 14 days before, 3 days before, and once the day after if it is still open. It goes to the person named in "Who is responsible" when you type their email address there, and otherwise to the account holder. Press **Mark done** on the deadline's row once it is sent and the reminders stop. Each grant's page shows which reminders have gone out, when, and to whom.

**You can cancel from the page you are using.** The Nonprofit, Board Records, Grants and Funders pages now show, right under their heading, what you pay for that module and a **Cancel this subscription** button. Cancelling stops it at the end of the month you have already paid for, nothing you have recorded is deleted, and until then one click keeps it.

**A starter version of Grants is ready.** It holds up to 3 grants at a time (a grant stops counting once it is declined, withdrawn, unanswered or closed), and the page tells you how many you are using. Reaching the limit never deletes anything.

Parked items and service notices get recorded when they come up

Version 0.7.32 · 26 September 2026

**When you put something off in a Claude Code chat, it is now kept.** Say "let's leave this for now", "put it on the to-do list" or "we can do this tomorrow", and the Zendavox plugin reminds your assistant, on that message, to record what is still to do, what was already found, and why it was put off. Before, it was gone when the chat ended unless someone remembered.

**Paste a notice from a service you use, and it is recorded.** When a message looks like a change notice - from Supabase, Render, GitHub, Stripe, Google and others, with a date it takes effect - your assistant is reminded to record who sent it, what changes, when, and whether it affects you.

The reminders go to your assistant, not onto your screen, and it ignores one that does not apply. To turn them off, set `ZENDAVOX_REMINDERS=off`, or put `"reminders": "off"` in `~/.zendavox/dev.json`.

Install Zendavox in Claude Code from the Connect page

Version 0.7.31 · 26 September 2026

**Claude Code users can now install Zendavox in two lines.** The Connect page used to send you to a folder you had no way to open. It now shows the key file to save and the two lines to paste into Claude Code, each in its own box. The plugin is published at [github.com/tellstevenj/zendavox-plugin](https://github.com/tellstevenj/zendavox-plugin), and it brings the topic check described below.

**The plugin now works when your Windows user name has a space in it.** Before, every part of it failed quietly on a computer like that.

A warning when a chat wanders off its subject

Version 0.7.30 · 26 September 2026

**If you use Zendavox with Claude Code, it now tells you when a chat has drifted away from what it started on.** Before each message is sent, the zendavox-dev plugin compares it with the chat so far. One stray question says nothing - most chats dip away and come back, and that is fine. After three messages in a row about something else, a short "Topic check" line appears. After four, an "Off topic" warning shows how many more messages before the chat stops, and your assistant offers to take the new subject to a new chat.

**At seven in a row, the chat can stop.** Before it does, a small Claude model reads how the chat opened and the latest messages and confirms the subject really has changed. If it has, your message is held back and you are told why. Start a new chat for the new subject, or send the message again starting with "continue:" and it becomes this chat's subject from then on. If no model can be reached, you get the warning and the chat is never stopped.

**Every alert says how to turn alerts off.** Set `ZENDAVOX_DRIFT=off`, or put `"drift": "off"` in `~/.zendavox/dev.json`. Use `warn` instead of `off` to keep the alerts but never stop a message. Nothing about your chat leaves your machine to make these checks, except the one confirming question before a stop.

Forgetting a rule no longer deletes it

Version 0.7.29 · 23 September 2026

**When you forget a preference or a piece of recording guidance, it is now set aside rather than deleted.** It stops being used straight away, exactly as before: your assistants are no longer told to follow it from their next session. But the wording is kept, and it can be put back.

The button on an entry's own page now says **Archive this guidance** instead of "Delete this guidance", because that is what it does. If you ask for something back, we can restore it exactly as it was, and saving a new entry under the same name brings it back too.

Deleting a project works as before, except that the project's own guidance and preferences are kept, set aside, rather than deleted along with it.

Change your password from your Profile

Version 0.7.28 · 21 September 2026

**You can now change your password without signing out.** Open your Profile, find "Change your password", type the password you use now and the new one twice, and press Change password. A message at the top of the page tells you whether it worked. Before today the only way to set a new password was to sign out and use "Forgot password?", as if you had been locked out.

We ask for your current password first on purpose. If you leave Zendavox signed in on a shared computer, that alone is not enough for someone else to take over your account. If you have forgotten your current password, sign out and use "Forgot password?" on the sign-in page, which emails you a link.

Everything you pay for, on one page, with the way out on it

Version 0.7.27 · 19 September 2026

**There is now a Subscriptions page.** What you are paying for, what it costs, when it renews, how to move to a different level and how to stop - all of it in one place, linked from the top of every page. Before today all of that existed, but it sat at the bottom of your Profile underneath the account details, the module table and the preferences. One customer bought a plan and still asked us where the cancel button was, which told us what we needed to know.

**Cancelling is as easy to find as subscribing.** Every subscription you hold carries its own Cancel, next to the thing it cancels. Going back to the Free plan is the same button, on the Free card, where you would look for it. We are not going to make you hunt for it.

**Changing plan level no longer charges you twice.** This one was our mistake and it was live. Pressing "Switch to <level>" opened a new subscription and left the old one running beside it, so a customer who moved from Basic to Unlimited would have been billed for both, every month, with nothing on the site to show it - the plan name read correctly. Switching now changes the price on the subscription you already hold, and Stripe credits the unused part of the old level against the new one on the same invoice. If you switched level before today, please check your card statement, and contact support if you see two charges for the same month.

"we don't know when" is now something the record can say

Version 0.7.26 · 18 September 2026

**An entry can now carry no date at all.** Until today, writing down something that happened without knowing when it happened had exactly one outcome: the entry quietly took the date it was typed on, and from then on your record said the thing happened that day. On the project we tested against, 115 of 143 entries had taken a date that way. There was no way to say "this happened, nobody wrote down when" - so the record said something false instead of saying nothing.

Now there is. An entry recorded without a date **stays without one**, for good. It is never filled in later with a guess and never quietly stamped with today. Your assistant is told to reach for this whenever it is writing down older history it cannot date, rather than putting today's date on something that did not happen today.

**An undated entry still counts.** It carries a marker that reports read, so it appears in your totals and gets reported as undated, instead of disappearing out of anything organised by date. Nothing goes missing for want of a date.

**Every entry also records when Zendavox received it**, separately from when the thing happened. Those were the same field before, which is exactly why an undatable entry had to borrow the day it was written. They are two different facts about an entry and are now kept as two.

your assistant can finally see all of it

Version 0.7.25 · 18 September 2026

**Everything you have recorded now reaches the assistant reading it.** It did not before. The brief each session starts from showed twelve of your facts, and it picked those twelve alphabetically - so if you had more than twelve, the ones whose names happened to start late in the alphabet were invisible, every single session, forever. On the project we tested this against, 26 of 38 facts had never once been read by anybody. Facts now arrive newest-first, forty of them fit, and if you have more than that the rest are **listed by name** so a session can see they exist and ask for any one of them. Nothing you record is hidden from your own assistant any more.

**A shortened list now says how long it really is.** Your decisions and your recent activity were cut to the newest few with nothing saying so, which meant a brief holding ten of your forty-five settled decisions read as though ten was all you had ever decided. It now says how many there are, and it carries twenty-five decisions instead of ten. Open notices already worked this way; the other two lists have caught up.

**Facts remember when you first recorded them.** Re-checking a fact used to overwrite its date, so a fact you settled in August and one you wrote this morning looked identical. Each one now keeps the day it was first recorded, and your brief shows it whenever that differs from the last time the fact was touched - which is what tells you whether something is worth checking again.

**Saying where something came from is no longer optional.** When you record a fact, a decision or a piece of work, the assistant is now asked for the source as a matter of course. Entries already recorded without one are untouched and still readable; nothing is lost either way, but new ones can be traced.

who funds you, and what you actually win

Version 0.7.24 · 17 September 2026

**Funders are a list now, not a name typed on every grant.** Press **Funders** from the Grants page and keep one row for each foundation, agency or company: what kind of body they are, where and what they fund, what they typically give, who you deal with there, and where you apply.

Each funder holds the **programmes** they run - one row per programme per round, with when it opens, when it is due and the most it pays - so this year's round does not overwrite your record of last year's.

A grant then **picks its funder from the list** instead of having the name typed in again. That one change is what makes the rest possible: three spellings of one foundation were three funders to Zendavox and one funder to you, and nothing could be counted. Grants recorded before today keep the name that was typed and are not disturbed.

**A grant now records how it ended** - the day they decided, the amount awarded, the reviewer's score and what the funder said, in their words. A declined application with the reason written down is worth more next time than one with nothing. Two more answers were added for where a grant stands, **Withdrawn** and **No answer**, because a bid you pulled and one they never replied to are not the same thing as a refusal and should not be counted as one.

The funders page and each funder's own page then show what you win and with whom: how many grants, how many won, what share of the ones that have been decided, and how much.

grants, and Grants is a module of its own

Version 0.7.23 · 17 September 2026

**Every grant you have applied for or hold, and every date it brings with it.** A grant records who funds it, what it is called, the amount, the period it covers and where it stands - from considering, through applying, to awarded, declined or closed. Each grant then carries its own dates: the application, every interim report, the renewal, each with what is due and who is responsible for it.

The page opens with **Coming up** - every open deadline across all your grants, soonest first, with anything already late marked **Overdue** - because what goes wrong with a grant is rarely the application. It is the interim report nobody remembered was due.

**Grants is its own module.** It arrived inside the Nonprofit module, which was the wrong shape for the people who need it most: a grant writer working across several organisations wants this and has no board of their own to minute. So Grants is now added, and paid for, on its own, and it needs no other module. A project that already had Board Records keeps its grants - nothing was taken away.

a tester account sees the whole product

Version 0.7.22 · 08 September 2026

**A way to let someone try everything, without giving them anything of Zendavox itself.** An account can now be marked a **tester** on the operator Accounts page. From their next page load, every module is switched on for every project on that account, there is no project limit, and nothing is ever charged to it - they see exactly what a paying customer sees. Their Profile says so plainly, in place of a plan, and offers them nothing to subscribe to.

They sign up the ordinary way first, so they go through the same sign-up, the same permissions and the same limits any customer does - a tester who is not on the customer path is not testing the customer path.

It gives them nothing beyond a customer. The operator tools - the reports, the connector keys, the account list, the wipe tool - are gated by a separate list of staff email addresses that no account type can reach.

Changing the account back to **customer** takes it all away again in the same press. Nothing was granted behind the scenes, so nothing is left to find and undo.

look something up across all your projects

Version 0.7.21 · 07 September 2026

**One search across every project you belong to.** The project page's "Look something up" box has a new choice: search all my projects, not just this one. Each result then says which project it came from, and the sentence under the box names every project that was searched, so nothing found means not recorded in any of them. Your own preferences and recording guidance - which belong to you, not to a project - appear once. A nonprofit running two boards no longer has to remember which one settled something.

what a new session reads first is what was found

Version 0.7.20 · 07 September 2026

**The brief leads with substance.** Every connected assistant opens a session by reading the project's recent activity. Until now that list was the ten newest entries of any kind, and on a busy day most of them were "pushed" and "live" - the trail of shipping, not the findings that mattered. Entries recorded as deploys now stay out of that list (they are still counted and still in the full history), and the operating rules tell assistants to record what they found, as a finding, before anything about committing or pushing it.

a correction says who asked for it, however it arrived

Version 0.7.19 · 07 September 2026

**Corrections filed by an assistant now carry a name.** When a connected assistant requests a correction or records the board's answer, the person whose key it used is recorded as the one who asked or decided - the same way it already was when you did it on the page.

correct an approved meeting the way a board does

Version 0.7.18 · 07 September 2026

**An approved record is never rewritten - but it can be corrected.** On an approved meeting's page, **Request this correction** files what is wrong or missing and, if you have it, what it should say. It waits for the board. Open the page of the meeting that considers it and press **Accept** or **Reject** under it, with the board's words if it had any; the outcome is stamped with that meeting and the date. The earlier meeting's record stays exactly as approved and gains a note pointing forward - on its page and on the printed record. The board page lists every correction still waiting.

A connected assistant can request a correction and record the board's answer through two new tools, `board_correction` and `board_correction_outcome`.

paste the whole agenda, headings and all

Version 0.7.17 · 07 September 2026

**The agenda box now knows a heading from a subject.** Paste an agenda straight from your document and the lines that are the meeting's name, your organisation's name, the date, or a title that just says "Agenda" are left out - and the notice at the top of the page tells you exactly which ones, so nothing disappears quietly. The numbered subjects come through numbered once, as before. You no longer have to tidy the paste first.

print a meeting, or save it as a PDF

Version 0.7.16 · 07 September 2026

**A board meeting is now a document you can hand over.** On any meeting's page, press **Print or save as PDF**. It opens the meeting as one clean page - the organisation, who met and whether there was a quorum, the agenda, every decision with its reasoning and vote, the action items with their owners and due dates, the minutes as filed, and who approved them and when - with nothing of the website around it. Press the button there and choose your printer or "Save as PDF".

Until the minutes are approved, every copy carries a Draft banner, so a working copy can never be mistaken for the board's record. A section with nothing in it says so, rather than going quietly blank.

assistants look before they change something

Version 0.7.15 · 07 September 2026

**A new operating rule for every connected assistant, "Before you act".** Before an assistant renames or deletes anything, changes a table, alters a claim on a page your customers read, or records a decision that reverses an earlier one, it now has to look the thing up across everything your project holds and read what comes back. If what it finds contradicts what it was about to do, it shows you both and asks - it never settles that by itself, and it never proceeds as if it had not looked. Zendavox still decides nothing; it makes sure the assistant checks the record before it acts.

an approved meeting is closed

Version 0.7.14 · 07 September 2026

**Once the minutes are approved, the meeting is the board's record.** Its agenda, decisions and action items can no longer be added to, changed or removed - not from the page, and not by a connected assistant. Where each form used to be, one sentence says so and says what to do instead: to settle a question again, record the decision at a later meeting and mark this one as replaced. What the board approved stays what the board approved.

The one thing that stays live is the status of the action items the meeting handed out: press **Done** on a row when it is finished, on the meeting page or under "Still to do" on the board page. An action list is a working document between meetings; the assignment itself is history.

an agenda line can be corrected and moved

Version 0.7.13 · 07 September 2026

**Fix a typo without starting over.** Every agenda line now has **Edit**, which opens the line on its own so you can correct the words and press Save - it keeps its place. **Up** and **Down** swap a line with its neighbour, so a line you add late can be put where it belongs. Before this, the only way to fix "Oldv Business" was to delete it and type it again, and the retyped line landed at the bottom.

paste the agenda as it is

Version 0.7.12 · 07 September 2026

**Numbered lines are welcome in the agenda box.** The page numbers the agenda for you, and it used to ask you not to paste lines that already carried numbers - then showed "4. 1. Call to order" when you did. Now a leading "1.", "2)", "(3)" or a dash on a line is dropped and the subject is kept, so an agenda pasted straight from a document comes out numbered once.

look anything up, in every store at once

Version 0.7.11 · 07 September 2026

**One search across everything the project holds.** The record keeps five kinds of thing - facts, decisions, activity, preferences and recording guidance - and until now only a fact could be looked up by itself. An assistant checking whether a rule had been recorded looked in facts, found nothing, and nearly reported it missing; it had been recorded as a preference. Now one lookup searches all five at once, and every result says which store it came from. When nothing matches, the answer names every store that was searched, so "not found" means not recorded anywhere - not just not in the one place someone happened to look.

It is on the project page as **Look something up**, and connected assistants have it as the `look_up` tool. Their operating rules now tell them to use it before ever saying something is not recorded.

the collision stop notices more

Version 0.7.10 · 07 September 2026

**Two questions that mean the same thing are caught more often.** When a new decision answers a question your project already settled, Zendavox holds it back and shows you the earlier answer. Its test for "the same question" was too strict: on this project's own hundred decisions it stopped two pairs, and let "what gets built next?" walk straight past "which module gets built next?". It now also counts a fair share of shared words, and a three-word phrase the two questions share that nothing else in your project uses. On the same hundred decisions it stops twelve pairs, each one worth a look. When it is wrong you press "different questions" and the decision is recorded; when it is right, it has just stopped you quietly overturning yourself.

the homepage answers the questions you ask first

Version 0.7.9 · 07 September 2026

**Six questions, answered before you connect.** A prospective customer asked, before ever logging in: does Zendavox need my assistant's login, does it see my chats or files, where is my data and in what form, can it run on my own machine, and what does it add over the memory my assistant already has. The homepage now answers each one in plain words, with what the software does today - including the one plain "not today", on running it yourself.

the name is one word

Version 0.7.8 · 07 September 2026

**"Zendavox", not "Zenda vox".** Since 0.6.1 the wordmark at the top of every page had an 8-pixel gap between "Zenda" and the blue "vox", so the product's own name read as two words wherever you were. The gap came from the header's layout rule, not from the text. It is gone.

a board decision cannot quietly overturn a settled one

Version 0.7.7 · 07 September 2026

**The stop now works in the browser too.** When an assistant records a decision that looks like an answer to a question your project has already settled, Zendavox holds it back and shows every earlier answer, so you choose which one stands. The board meeting page did not do this: a decision typed into its "Record a decision" box went straight in, and a November meeting could overturn March's answer with nothing on screen to say so.

Now the same stop runs there. What you typed is laid out beside every earlier answer it collides with - what was asked, what was settled, why, and when and through what it was recorded - with three choices underneath: the new answer replaces the earlier one (it is kept in history, marked as replaced, and leaves the log); these are different questions, record both; or keep the earlier answer and record nothing. Nothing is written until you press one.

nothing can quietly delete what you recorded

Version 0.7.6 · 06 September 2026

**A preference is now part of the record.** Decisions, facts, activity and sessions have always been journalled - every version kept, every change visible. Preferences were not, so one could be written, changed or removed and nothing anywhere could say it had existed. Now every preference set or removed is written to the project's changelog, and a deletion records the value it deleted, so it can be read back and put right.

**And the tests can no longer touch your account.** They used to borrow the first real login in the database - a real customer's - to satisfy their foreign keys, then delete its preferences and its open project on the way out. That is why signing in could show no modules, no open project and a different plan. The suite now creates a login of its own and removes it afterwards; no test reads a real account at all.

the homepage says what Zendavox actually has

Version 0.7.5 · 06 September 2026

**The front page was advertising the wrong product.** It listed four modules - work orders, invoicing and accounting, service and repair, business ethics - and said underneath that modules were "planned, not yet available". Two of those four were never built. Seven others were, and can be added to a subscription today. Board Records, the newest, with a nonprofit already using it, was not mentioned at all. Anyone who came looking for it read that it did not exist and left.

The modules on the homepage are now generated from the product itself, so the page cannot say something the software does not do. All seven are listed, each linking to its own page.

**And the agenda on a board meeting can be corrected.** Every line now has a Delete button, and the instructions say what the box actually wants: one subject per line, typed rather than pasted, since the meeting's name and date are already recorded above it.

dates say today, and a rule so the last bug cannot repeat

Version 0.7.4 · 06 September 2026

Two releases were stamped with tomorrow's date. Zendavox builds in the evening Pacific time, when the world's clock has already rolled over, and this page was showing Monday to somebody reading it on Sunday. Corrected, and the page now uses the date where the work happens.

Nothing else here is customer-facing: the design rules the site is built to gained a check that would have caught last release's bug before you saw it - build a feature empty, open its page, and confirm it shows nothing.

board records holds what the board decided, and links look like links

Version 0.7.3 · 06 September 2026

**The board's decision log was showing decisions the board never took.** Open Board Records on a nonprofit you have just created and you could find a list of entries already there - every decision anyone had recorded anywhere in that project, including ones from completely unrelated work, presented as though your board had settled them. The log now holds decisions taken at a meeting, and nothing else. Nothing was lost: a decision recorded outside a meeting is still on your dashboard, still in the project's memory, and still in front of every assistant you connect. It simply is not the board's.

This also fixes what the module is for. "What did the board decide about the lease" is only a useful question if the answer comes from board decisions.

**Every link is the same colour now.** The menu down the left was grey, which is the colour of ordinary text, so a menu of links did not look like one. Anything you can click is now the same blue, on every page. "Your modules" is slightly larger too.

"Member since" shows a date again

Version 0.7.2 · 06 September 2026

The Profile page printed the raw markup of its own date instead of the date: `<time datetime="2026-08-19...">19 Aug 2026</time>`, as words, in the box. It now shows the date, in your own time zone as it always meant to. The same mistake was sitting in the payment-problem notice, waiting for a lapsed plan to show it, and is fixed too.

the same look on every page

Version 0.7.1 · 06 September 2026

The design pass reached the rest of the site: every page now uses the same buttons, the same small button inside a table row, and the same shape for a link that acts like a button. Nine pages had their own hand-written button styling, each slightly different from the others, and now none of them do.

the Nonprofit module, its own front door, and a site that looks built

Version 0.7.0 · 06 September 2026

**Your organization, not just your board.** Board Records was the whole nonprofit module, which meant Zendavox knew what your board decided in March and not what your charity is called. There is now a Nonprofit module with a home page of its own, and an organization profile behind it: legal name and what people call it, how it was formed and where, financial year end, accounting method, membership and voting, mission and exempt purpose, NTEE and NAICS codes, website, donation page, public disclosure page. The module home page counts what is filled in, how many meetings have minutes still waiting to be approved, and how many action items are still open.

**Board records tells you where things stand.** The page now opens with what to do on it, in plain words, and every meeting shows whether its minutes are approved or still a draft waiting for you.

**Modules are your buttons, not everyone's.** The menu used to carry Board Records for every customer whether they had it or not. Modules now appear under "Your modules" only for the projects that hold them, and each points at that module's home page rather than at one workflow inside it.

**The site itself.** A proper design pass: buttons that are the size of buttons rather than page-wide blue bars, cards with real surfaces instead of a coloured stripe, tables that are one bordered card rather than a stack of rules, status shown as coloured pills, figures at the top of a page you can read at a glance, forms in two columns with help text under each label, and empty states that say what the space is for instead of sitting blank.

the minutes are on the page that asks you to approve them

Version 0.6.3 · 06 September 2026

A board meeting had an "Approve these minutes" button and no minutes anywhere on the page. You were being asked to sign off on something you could not read. The meeting page now shows the minutes in full, and you can write or rewrite them right there - which nobody could do in a browser before, only through a connected assistant. Once approved they are shown and locked: not you, not an assistant, nobody rewrites what the board signed off.

Your own guidance on the Profile page now works the same way as a project's: a table with an Edit button on every row that opens that one entry on its own page.

your recording guidance, as a sheet you can edit

Version 0.6.2 · 06 September 2026

Keep one piece of guidance or thirty. Both the project and each session now show everything in force as a table you can read down at a glance - what it is about, what to record, why it matters, and whether it was set for you, for this project, or for this one session.

Every row has an **Edit** button. It opens that single entry on its own page, with room for the whole thing, where you can rewrite any part of it or delete it outright. Rename an entry onto a name already in use and it says so plainly rather than failing.

every page can get you anywhere, and says which project you are in

Version 0.6.1 · 06 September 2026

Buttons down the left of every page, the same ones everywhere: Dashboard, Projects, Connect an assistant, Board records, Jobs, Vendors, Inventory, Profile, Support, What's new. Before this, each page decided its own links and some of them decided wrong - Connect was reachable only from the projects list and the welcome page, Board records only by typing the address, and What's new was a one-way trip out of the app. On a phone the buttons lie flat above the page instead.

The dashboard now says which project is open, by name, at the top. It used to say "Your project", which tells you nothing when you hold eight of them.

And the box for starting work now explains what it is actually asking for: what a session is, what to type, what happens when you press Open, and what the next page is for.

tell your assistant about the meeting; the record fills itself in

Version 0.6.0 · 06 September 2026

Board Records was something you filled in yourself, in a browser. Now the assistant you already use can do it: read it your notes and it opens the meeting, sets out the agenda, records each decision with how the vote went, lists what the meeting left people to do, and drafts the minutes.

Three things it deliberately cannot do. It cannot approve minutes - that is the moment a person says the record is right, and an assistant approving its own draft would take the only review out of the loop. It cannot rewrite minutes you have already approved. And if the board settles a question it settled before, the assistant is stopped and shown the earlier answer, so somebody decides which one stands instead of November quietly overwriting March.

A decision taken at a meeting is an ordinary decision in your project's memory, so it turns up wherever you look next - the decision log, the project brief, any other assistant you have connected - without anyone copying it across. And meetings now carry an agenda: what the meeting set out to cover, separate from what it left people to do.

The board tools only appear for projects that have Board Records. Nobody else's assistant is shown five tools for minuting meetings they do not hold.

work gets filed under the name you gave it

Version 0.5.1 · 06 September 2026

If an assistant left a session open and you came back the next day, the next day's work was filed under yesterday's session - while the assistant was told, and told you, that it was recording under the new name you gave it. Recorded, but under a heading that described something else, which is the kind of quiet wrong the record exists to prevent. Now naming a new piece of work opens a session under that name, and reopening a name you have used says plainly that it is continuing the one already open.

tell Zendavox what to record, and why

Version 0.5.0 · 06 September 2026

Every business keeps track of different things, and no assistant can guess which ones yours are. Now you say it once and it sticks.

Three new boxes, in three places, all the same idea. On your profile: what you want recorded in every project you work in. On a project: what that line of work needs written down - which can be completely different from your other projects. On a session: what this one piece of work is for, which ends when it does. The narrower one wins where they overlap, and everything else stacks.

Each one asks two questions: what should be recorded, and why it matters. The "why" is the part that does the work - it is what lets an assistant apply your instruction to a situation you never described.

Every assistant you connect gets this. It arrives with the project's memory at the start of a session, and again by name the moment a session opens, so what you asked for is in front of it before it starts working - and you can also just tell your assistant in plain words and it records it for you.

every connected assistant actually sees the rules now, and checks itself before closing

Version 0.4.7 · 05 September 2026

Two fixes to how ChatGPT, Claude, Perplexity, and Claude Code work with a project's memory.

The bigger one: the project's operating rules were being sent by the server on every request, but the piece that turns them into what an assistant actually reads was quietly dropping them and showing its own shorter, separately-written summary instead. Every assistant on every platform was missing real instructions without anyone being able to tell. Fixed - the full, current rules now reach every connected assistant, every time, from one place instead of several that could drift apart.

The other: a session can no longer close without first checking whether anything discussed was left unrecorded. It has to record a sweep - what it found, or that there was nothing new - before Zendavox will let it close. A project's dashboard now shows, per session, whether that happened.

signed out after a while of no activity

Version 0.4.6 · 05 September 2026

Being signed in to Zendavox now works the way a bank's website does: after 20 minutes with no clicks, you are signed out automatically, even if the fourteen-day "stay signed in" window has plenty of time left. Coming back after that shows a plain page saying you were signed out due to no activity, rather than a bare sign-in form with no explanation. Staying active - opening pages, working in a project - keeps a session going the whole time; only real inactivity ends it early.

billing that checks itself against Stripe

Version 0.4.5 · 03 September 2026

Nothing Stripe sends can go quietly unprocessed any more. Every event is written down the moment it arrives, with what became of it; a resent one that already succeeded is skipped, a failed one is retried and its error kept. And Zendavox now asks Stripe directly: opening your Profile checks your subscriptions against Stripe once a day and corrects anything that differs - a cancellation, a renewal, a plan - and staff can run the same check for every account with one button. Billing shows what Stripe knows, not what Zendavox happened to hear.

say once how you like to be worked with

Version 0.4.4 · 03 September 2026

Your Profile has a new panel, "How you like to be worked with": the tone you want, the units you think in, words you never want used - anything you would otherwise repeat at the start of every session. Add one there, or just tell your assistant and it records it for you; either way it follows you into every project and reaches every assistant you connect, through the project brief. Each one says how it was learned - stated by you, or noticed by an assistant - and has a Forget button. There is also a public What's new page, this list, linked from every footer.

an assistant that reads and never records is named

Version 0.4.3 · 03 September 2026

Every connector key now counts how many times it has read the project since it last recorded anything. Past five reads with no write, the project's dashboard shows an amber notice naming the key - "'Claude on my laptop' has checked in 12 times without recording anything; it last recorded 3 hours ago" - and the brief that key fetches tells the assistant the same to its face, with a rule to record now or say plainly why not. Reading is not recording, and now neither side can mistake one for the other. Times on every page also show in your own time zone.

a Cancel button, a thank-you page, and a door for ChatGPT and Perplexity

Version 0.4.2 · 03 September 2026

Every subscription on your Profile now has a Cancel button. Cancelling ends the subscription when the period you have paid for runs out - you keep what you paid for and are not charged again - and the row says the date it ends, with a Keep it button in case you change your mind. Stripe's own billing page is still there for your card and invoices.

Paying now lands on a thank-you page instead of an unchanged Profile. It says your payment went through, that the plan or module switches on the moment Stripe confirms it, and checks every few seconds until it can say "it is on". Leaving Stripe without paying says plainly that nothing was charged.

ChatGPT, Perplexity and Claude can now connect to a project. Zendavox serves its own connector address, and the Connect page has a short recipe for each assistant with every value to copy in its own box.

every module has its own page, and that is where it is sold

Version 0.4.1 · 02 September 2026

The Profile no longer carries a "Subscribe to Work Orders" button. Its module table shows each module's status with a More info button beside it, and that opens the module's own page: what it does, what it needs to run, and the button to add it. A module that cannot run without others says so in one plain sentence - Work Orders cannot run without Customers, Vendors, Parts, Inventory and Invoicing, and subscribing to it includes every one of them - with a short description of each and its own More info button. A module that is not sold on its own says which module brings it along. A page that is locked because the project lacks a module now points at that module's page as well as the Profile.

a Free plan, a Profile page, and paying for a plan or module

Version 0.4.0 · 02 September 2026

Creating an account now gets you exactly that: an account, on a plan called Free, with your login and nothing more. The Projects page says so in one line and points to your Profile; it no longer reads as if a new account were already on Basic.

The new Profile page holds everything about you in one place: your name, email and account; your plan, with the buttons to subscribe to Basic ($14.99 a month, 3 projects) or Unlimited ($35 a month) or switch between them; the modules the project you have open can use, with a button to subscribe to Work Orders ($99 a month, bringing Customers, Vendors, Inventory, Invoicing and Parts with it); and your billing - every subscription, its status, and a Manage billing button that opens Stripe's own page to update a card or cancel.

The Free plan includes the one project sign-up creates and is locked from creating more. Around the continuity feature - which is never limited - Free holds one connector key per project, 25 MB of uploaded files, no modules, and support by email rather than the in-app form. Every locked spot stays visible, with the same short panel and an Upgrade link, so a Free member can see what they would get. A Free account sees a one-time welcome page on its first sign-in and a "Free plan - Upgrade" badge in the header until it subscribes.

Payment is handled by Stripe. Subscribing takes you to Stripe's checkout (now with your email already filled in) and brings you back to your Profile; the plan or module switches on when Stripe confirms the payment, usually within seconds. A failed payment starts a five-day grace period before a module is switched off.

jobs and work orders (Phase 1 of the work-orders module)

Version 0.3.0 · 22 August 2026

The first module beyond the context layer itself. A project can now hold customers, jobs, and work orders: name a customer to start a job (naming an existing customer reopens them), dispatch a work order under that job, and work it - log labor (against whoever's signed in, since they're almost always the one doing the work), add tasks, add parts (naming an existing part reuses it, a new name adds it to the project's catalog), add notes, and move the work order through its lifecycle with one click per stage: opened (automatic, at dispatch) → serviced → reviewed → followed up → closed, each stamped with who and when. A part line's total is computed by the database itself, not typed in - it cannot drift out of sync with its own quantity and price.

Drawn from Work Order Pro 3.0's real, current schema, read directly rather than from planning notes - see 0.3.0's schema commit for the fuller account of what carried forward and what didn't. Customers reuse Zendavox's existing entity/party/customer tables rather than adding new ones; there is still no user/group system for this module because Zendavox's existing tenant/actor/role system already covers it.

Not yet built: payments, invoices, inspections, vendors, purchase orders, sales orders, and the Development/Lot layer for subdivision-style contractors. Real Work Order Pro features, staged for later rather than built speculatively now.

file uploads inside a session

Version 0.2.0 · 22 August 2026

The message box on a session page now takes a file as well as a note - the same single box, one "+" for a file, one send. A file is stored (Supabase Storage, not the database itself), classified by the same deterministic engine every document already goes through, and shows up in that session's own "Files" list with a working download link.

An exact repeat of a file already on the project is recognised and not filed twice. A file type outside a fixed allowlist (`.pdf .png .jpg .jpeg .txt .docx`) is refused outright, not guessed at. A file over 20 MB is refused before it is ever fully read. There is still no way to pull actual text out of a scanned PDF or a photo of a document - a PDF is filed under whatever its filename suggests, same as it already was for a customer adopting an existing folder of files; real text extraction is a separate, future piece of work.

Needs one thing this checkout may not have yet to actually store a file: `VELACORTIS_PRODUCT_SUPABASE_SERVICE_KEY` in `.env` (see README). Everything else in the app works without it; only the upload step fails, with a clear message rather than a crash, until it's set.

project and session pages

Version 0.1.0 · 22 August 2026

A signed-in customer can now open `/project` and see the whole story of their project - facts, decisions, recent activity, open notices - the same thing an AI coding assistant already got through the connector, now visible to a person with no assistant involved.

A project can hold several sessions - a named, long-running thread each, not a single sitting. Naming one (e.g. a public records request number like `26-1196`) opens it if it exists or creates it if it doesn't. Typing a note into a session and hitting Enter adds it to that session only; every session's notes still roll up into the project's whole-project brief.

Not yet built: uploading a file into a session. Nothing in the database holds an uploaded file's actual bytes today - only classification metadata about a document - so that is deliberately its own piece of work, coming next.

everything before version numbers existed

Version 0.0.0 · 22 August 2026

Sign-up, login, the connector an AI coding assistant uses to read a project's brief and record decisions/facts/activity into it, document classification and filing, plan/tier logic, and the front page. Never version-numbered at the time, so there is no finer-grained history than "everything that existed before 0.1.0."