Changelog

Ship velocity, on display.

Every user-impacting change to CannAgent, in reverse chronological order. 943 shipped versions across 83 ship days. Internal refactors + build-gate fixes don’t make this list — they’re in the codebase if you want them.

27 shipson September 15, 2026 · most recent ship day

Why a public changelog

Most cannabis-POS competitors hide the cadence — quarterly press releases, marketing-copy patch notes, fluffy “new and improved” framing. We surface what shipped + when so operator evaluators can see the actual pace. We run this list by hand; if a version is on it, an operator can verify it landed in production.

September 15, 2026

27 ships

v9.2670.0

📄 Thirteen places still told people our contracts are month-to-month from day one.

v9.2669.0

📄 Sixteen days before Connecticut's per-milligram cannabis excise is repealed, the page describing our Connecticut coverage still listed that per-milligram math among the things our coverage is built on, in the present tense and with no end date.

v9.2668.0

📄 The marketing copy attached a Washington cannabis screening layer to the FCRA hiring background check.

v9.2667.0

📄 The pricing page told buyers the commitment goes one way — ours to them — and that they stay month-to-month.

v9.2666.0

🗺️ Two state pages named the mandated track-and-trace system without saying what we actually do with it.

v9.2665.0

One pricing bullet offered five Washington regulation numbers as the authority for traceability.

v9.2663.0

🗓️ Connecticut's summary line was written to stop being true on 1 October.

v9.2661.0

🖼️ The brand-asset library stopped at 100 files and said nothing.

v9.2660.0

🚨 The guard that refuses a post citing a rule about to change was blind to the form our own posts use.

v9.2658.0

A post that quotes a rule now gets checked against the list of rules we already know are changing.

v9.2657.0

🩸 The one place Kate can check copy as she types was applying advert limits to ordinary posts.

v9.2656.0

The content calendar listed every post in one flat run, oldest first — so the thing Kate is about to write sat underneath posts that already went out and posts she dropped.

v9.2655.0

🩸 The suite disagreed with itself about the most important sentence it says.

v9.2654.0

🩸 Fourteen state pages told anyone who shared a link that we were ready for a track-and-trace system we have not built.

v9.2653.0

🩸 A compliance verdict could outlive the words it was given.

v9.2652.0

🩸 One of the twelve drafted first-month posts carried a regulatory claim with nothing behind it.

v9.2651.0

The AI visibility page ranks which directory to get listed on next, in order, by how many questions it would win back — and then ended in advice.

v9.2650.0

🩸 The loudest thing the event kits page says is 'mint a referral code and get it onto the artwork before it goes to print — nothing else about this kit matters as much', and there was no way to do it.

v9.2649.0

🩸 The rule that stops a post promising we can serve a state only applied to posts tagged as being about a state — one of five kinds.

v9.2648.0

The ad board said '3 need a look' at the top and then listed the rows in whatever order the database returned, so the three were scattered through up to three hundred.

v9.2647.0

🩸 Every post gets its own tracking code, the site captures that code when someone arrives, and the inquiry is tagged with it — a complete rail, built end to end, whose last step reached no screen.

v9.2646.0

🩸 Fixing a typo in a post's title silently deleted its image.

v9.2645.0

🩸 The call sheet could not shrink.

v9.2644.0

🩸 The page the sidebar calls 'start here' could not see any of the work.

v9.2643.0

🩸 The marketing hold guarded the calendar and nothing else.

v9.2642.0

The message that refuses a post for promising availability named the launch states by hand — in the one sentence whose whole job is stopping that class of claim, in two places on the calendar page.

v9.2641.0

🩸 Kate could not save six of the eight sections of her own marketing plan, or five of the nine notes on her board.

September 14, 2026

8 ships

v9.2639.0

🩸 The two files written specifically to be read by ChatGPT, Claude and Perplexity told them tenant provisioning was open in one state — 25 days after Arizona opened, in four places.

v9.2638.0

🩸 A code review of yesterday's Radveo fix found the fix itself had a hole.

v9.2637.0

🩸 Two public surfaces still named a single launch state, 25 days after Arizona opened: the waitlist banner on the demo form — the one banner a prospect from every other state sees — and the disclosure pill on the later-tier state pages.

v9.2636.0

The What's new walkthrough no longer states how many questions the AI visibility check asks.

v9.2635.0

🩸 The Radveo page stops promising that a paid run refreshes the AI-visibility figures.

v9.2634.0

🧹 The walkthrough's brand-assets chapter stopped warning that uploaded files cannot be opened.

v9.2632.0

🖼️ Brand assets open for the people who can see the library.

v9.2531.0

🗺️ Fourteen state pages told operators we “can only provision Washington stores today”.

September 8, 2026

53 ships

v9.1883.0

The waitlist copy on six public state pages said we were live in Washington only.

v9.1870.0

Connecticut said medical patients are exempt from the 3% municipal tax, which says by implication that they still pay the 6.35% state sales tax.

v9.1857.0

Twenty-five form labels had a visible name with nothing tying them to their control, so a screen reader announced the control as unlabelled.

v9.1792.0

New Mexico's medical relief is wider than we said and shaped differently.

v9.1779.0

Delaware said “Medical patients exempt”.

v9.1766.0

Massachusetts cited the wrong chapter for its medical excise exemption and no chapter at all for the sales-tax one.

v9.1753.0

Nevada's 10% retail excise exemption for medical sales is not unconditional.

v9.1740.0

California's local-tax line said “SF 5%”.

v9.1649.0

California's medicinal sales-tax exemption already read as a TWO-DOCUMENT test, sourced to CDTFA Publication 557.

v9.1623.0

Arizona's possession/dispensing topic opened “Two DIFFERENT medical rules, and THE PAGE USED TO FUSE THEM.” complianceTopics is customer-facing: a prospect reads it to learn what the rule IS, and “the page used to” is meaningless to someone who never saw the old page.

v9.1415.0

Alaska's dogfood paragraph still described “the no-separate-medical-lane license framework” — the third and last of the three fields #812 named.

v9.1402.0

New York's local line said the 4% is “split 1% to the county and 3% to the city/town/village (Tax Law §493(c))”. §493(c) imposes the 4% and names the recipients; it contains no split.

v9.1389.0

The engine line sold “Adult-use vs medical vs CAURD lanes with separate excise + tax stacks”.

v9.1376.0

Maine's medical lane has TWO sales-tax rates.

v9.1363.0

New York's lane line said “18+ medical”.

v9.1350.0

Alaska's excise line said the tax is “calculated at producer→retailer transfer”.

v9.1337.0

Missouri's page said a county may impose 3% and a municipality may impose 3%, additive — up to 6% local.

v9.1324.0

Ohio's page said a minor patient's registered caregiver transacts “and the register floor holds at 18 regardless of patient age”.

v9.1311.0

Maryland's page said medical cannabis is “exempt from the 6% Maryland sales-and-use tax”, and the lead sold “6% medical sales-tax exemption math”.

v9.1298.0

Arizona's page said “Medical patient sales exempt from MET”, and the engine note said medical cards “trigger an automatic MET-exempt path”.

v9.1285.0

New Jersey's page said the local USER tax was “authorised” alongside the transfer tax and told operators to “confirm whether their municipality imposes it”.

v9.1272.0

Michigan's page promised a “daily inventory reconciliation export shaped for CRA record-keeping”, and listed “the daily reconciliation cadence” among the CRA rules our coverage is written against.

v9.1246.0

Montana's page said both cannabis taxes “apply to gross retail receipts”.

v9.1233.0

Maine's excise field held a SALES tax, and Maine has a real, separately codified excise tax that is not it. 36 MRSA §1811(1)(5) — the 14% — is collected at the register.

v9.1220.0

New York's 9% distributor tax has TWO BASES and the page described one.

v9.1207.0

New York's “18+ medical” now records where an 18+ actually lives in that programme — and it is not the counter.

v9.1181.0

A manager-PIN override log is anchored to the rule that actually names it.

v9.1167.0

A #821 citation candidate turned out to be a CROSS-FILE CONTRADICTION.

v9.1154.0

The Washington recall claims are CORRECT, verified at primary source, and now cited at the depth they were read.

v9.1107.0

A guide asserted an ABSENCE and the absence was not there: “Washington’s disposal rule is WAC 314-55-097; the retailer-licence section does not carry a waste provision.” WAC 314-55-079(13), verbatim: “A cannabis retailer MAY DISPOSE OF C…

v9.1106.0

Two of the nineteen #821 citation candidates verified at primary source and corrected — both the same class: a LIVE, CORRECT citation beside a sentence that put our product vocabulary in the regulator’s mouth.

v9.1104.0

Arizona published “No state-mandated track-and-trace” and a tracking system IS mandatory.

v9.1091.0

The age-lane census is CLOSED at 24 of 24 grounded, from 10 this morning.

v9.1078.0

Alaska is grounded, taking the age-lane census to 23 of 24 — only Arizona remains, and it is blocked at source.

v9.1053.0

Delaware’s §1390 consequence set is READ and PRICED.

v9.1017.0

Colorado’s two medical concentrate caps are pinned to the STATUTE and are no longer flagged.

v9.983.0

New Mexico published a gross-receipts rate no store in the state pays.

v9.943.0

Delaware classified itself, from the ABSENCE of a card type.

v9.0941.0

Maine and Montana read at primary source, and between them they settle whether the age-lane census was measuring anything.

v9.915.0

Four states’ age lanes read at primary source and published with the condition each one carries.

v9.914.0

🔓 A finding we had shelved as “cannot read the source” turned out to be readable, and correct.

v9.0913.0

Washington now publishes all THREE of its counter lanes instead of one age.

v9.084.0

🗄️ Maryland requires a record kept INDEPENDENT of the state tracking system, and our page never said so.

v9.052.0

📅 Each state page promises how often we re-check that regulator, shows the date we last did, and then left you to subtract.

v9.036.0

📜 ALL FOURTEEN release notes that described somebody else’s release now describe their own — each rewritten from the pull request that actually shipped it.

v9.020.0

🔍 We measure “does an AI assistant name us” twice, in two places, and nothing read both.

v9.004.0

🔁 Three rules published stricter than they are written — the direction nothing here checks for.

v8.988.0

🛑 A seventh copy of the invented text-message rule, this time phrased as a legal warning.

v8.972.0

👤 A new hire’s lane is decided once, at their first sign-in, and until now nothing could tell you in advance whether it would be the right one.

v8.956.0

🛑 The fabricated text-message rule was still live on one page, and our own test said it was fixed.

v8.940.0

🗑️ Our waste-disposal slide was headlined with a rule that contains no waste text at all.

v8.924.0

💸 We sold a background-check layer that does not exist.

v8.908.0

🛑 We were showing brands a cap four times lower than the one that governs them.

September 7, 2026

62 ships

v8.900.0

📬 We were shipping an apology to customers where the answer was one lookup away.

v8.892.0

🛑 We listed four New York advertising rules.

v8.884.0

🔗 A Maryland inventory discrepancy starts a chain of six duties and we published the first one.

v8.876.0

💰 Michigan’s new 24% wholesale tax is levied in three situations and we published one of them.

v8.868.0

🏛️ Montana: we gave cities a taxing power they do not have.

v8.860.0

📏 The trade-sample rule sets five different quarterly caps, and we cited the whole rule for one of them.

v8.796.0

💳 California’s medical sales-tax exemption takes TWO documents, and we published one.

v8.732.0

🔎 The check we shipped this morning to find duplicated release notes was reading 46% of the file.

v8.668.0

🔞 Michigan and Maryland now say WHY the medical age floor is eighteen, because in both states a patient under eighteen exists.

v8.636.0

🛑 We sold a rule that does not exist, as a feature, in five places. “WAC 314-55-155-aware bulk SMS that blocks product-specific copy” — on the modules page, the pitch deck, the feature pages and the FAQ, one of them promising the system…

v8.588.0

💵 Arizona: we described the sales tax as sitting on top of the 16% cannabis excise.

v8.492.0

🔑 Vermont and Maine published the SAME sentence about medical tax, and the correct fix is opposite in the two states.

v8.452.0

🛑 We told Maine medical and caregiver storefronts they were sales-tax exempt.

v8.418.0

💰 New York charges three cannabis taxes, and two places on the New York page were still describing two.

v8.405.0

🛑 A store without a medical endorsement could read our own copy and go over the legal purchase limit on every medical sale.

v8.372.0

🛑 Thirteen entries in this changelog were publishing a different release’s notes.

v8.351.0

🛑 We advertised a patient-registry lookup for a state that keeps no patient registry.

v8.340.0

🛑 A compliance expert reviewed today’s sixteen Washington corrections and found three of them wrong.

v8.321.0

📏 We told operators an inspector’s tape measure enforces letter heights that no rule we can find imposes.

v8.290.0

📬 Every state page promises we re-check that regulator on a schedule — and until today nothing told a human when we were about to break that promise.

v8.261.0

🗺️ One sentence about daily reconciliation was published for TWENTY states with only the regulator’s acronym swapped.

v8.221.0

🔁 Vermont’s citation table had already been corrected, and five other surfaces kept publishing the old answer — the page summary, a compliance topic, a capability bullet, the dogfood paragraph and a module docstring.

v8.163.0

🇳🇲 New Mexico’s two published city tax rates were each a quarter-point high — and one of them is the correct rate for the town next door.

v8.162.0

💰 We published 0% tax for the two Alaska markets that charge 5%, and 5% for two that charge 8%.

v8.154.0

💸 Vermont’s sales tax was published as stacking on the cannabis excise, so a register built from it over-collects on every adult-use sale.

v8.144.0

🛑 RETRACTION of a correction made the same morning.

v8.140.0

🏥 Rhode Island medical pays 7% sales tax plus a monthly surcharge — we published it as exempt, and we published an eighteen-plus tier the state does not have.

v8.134.0

🔍 A two-citation claim needs two reads, and my own fix had only done one.

v8.129.0

📐 Three different systems track which states we cover, and nobody had ever compared them.

v8.128.0

🇳🇻🇩🇪 Nevada and Delaware were each citing a rule that no longer exists — in a line three fields below the one we fixed this morning.

v8.127.0

🇮🇱 Illinois has no general medical age limit — it depends on the PRODUCT.

v8.125.0

🏁 Every state page has now had its legal citations read at the original source.

v8.117.0

🔁 The advertising-rule correction shipped earlier today was incomplete, and this finishes it.

v8.115.0

📊 The investor deck claimed the same rule under two different regulations, and only one was right.

v8.113.0

🇳🇻 Nevada: one citation was wrong twice over.

v8.109.0

📘 Our published guides pointed operators at the wrong paragraph of the advertising rule.

v8.103.0

🇻🇹 Vermont: we pointed at a chapter that was repealed in full four years ago.

v8.097.0

🇲🇩 Maryland cited a law that no longer exists.

v8.093.0

🇨🇹 Connecticut cited two DEFINITIONS sections and described each as the law it defines.

v8.091.0

🇲🇮 A Michigan rule was described as the thing next to what it actually says.

v8.087.0

📥 Four hundred and fifty-five alerts said a reply needed a human.

v8.081.0

🇺🇸 Two more states described our reporting cadence as if the state demanded it.

v8.069.0

🇳🇯 New Jersey: the regulation says thirty dollars an ounce and the real answer is two dollars fifty.

v8.065.0

🇨🇦 California: we told operators a rule required daily inventory reconciliation.

v8.057.0

📅 Nine compliance deadlines were tracked in a place only a developer could see.

v8.033.0

🩹 A comparison table told operators that Washington requires a second person to witness waste disposal, and named a rule number for it.

v8.026.0

📊 “New leads today” on the dashboard would count a bulk import as demand.

v8.022.0

📮 The daily operations email has run every morning since May and has never been sent to anybody.

v8.020.0

🩹 Three of the four Colorado rules we cite were pointing at the wrong rule.

v8.018.0

🕑 A recall answer told operators when their clock starts, and no rule says that.

v8.015.0

🩹 When the system blocked an operator from claiming their product cures something, it told them why by quoting the definition of a billboard.

v8.012.0

🩹 Two customer-facing pages cited a pricing rule as if it governed how returned cannabis is quarantined.

v8.006.0

🇳🇯 New Jersey — the other highest-traffic page that had never been checked — was read too, and its tax figures are also correct.

v7.996.0

📖 Delaware gains a consumer-protection subchapter on 21 October, and we have now read it rather than noting that it was coming.

v7.993.0

🩹 The About page listed three things we enforce and said all three came from two rules.

v7.969.0

🗺️ The same sentence about who may legally buy was published on fourteen different states’ pages, written once and never checked against any of them.

v7.960.0

🛑 Connecticut’s cannabis tax changes on 1 October and our filing engine did not know.

v7.952.0

🚪 The chain surface went live nine hours ago and nobody could sign in — for three separate reasons at once — while the system reported itself healthy.

v7.939.0

💰 The savings calculator used a competitor’s promotional rate as their normal price, which made our own savings figure too low.

v7.933.0

⚖️ A published guide taught a Washington rule that does not exist, and since the last cleanup it had grown a number.

v7.931.0

🗄️ The document-vault feature gave six different kinds of record one retention number, and it was the shortest one.

v7.930.0

🩸 A page still told operators that Washington requires three years of records.

Showing the 150 most recent versions of 943.

Want to see what is inside? Tour the modules or request a demo.