{
  "releases": [
    {
      "version": "v545",
      "date": "2026-09-16",
      "notes": "Packaging orders get their own page. Creating one used to mean meeting a form on your way down the list of work orders. The list keeps the space now, and New sits at the top, the same way invoices, deliveries and purchase orders already work.\n\nThe accountant export no longer fails on some months. Certain years typed into the month field returned an error page instead of a file.\n\nInvoices, deliveries and purchase orders open faster. Each was asking the database one extra question for every row on the page, which you notice most once a list gets long.\n\nA date pasted with spaces around it saves properly. On a sales lead it was being stored as no date at all.\n\nThe app now tells you when your phone cannot find it. That message already existed and never once appeared, so a companion that could not connect looked exactly like one nobody had opened.\n\nThe stocktake fills in who counted, the way the cleaning record already fills in who did it.",
      "sha256_mac": "8db06268f8c8af2d35f6fe961fde965c3a7499c49c41d55e2eeb184b89a31393",
      "size_mac": 69176339,
      "sha256_win": "1321eb1a7d49f04922a9bb4791d9c063b93b071fb42a64470faed6932e3033cb",
      "size_win": 33246872
    },
    {
      "version": "v544",
      "date": "2026-09-15",
      "notes": "Records now say what comes next. A supplier bill shows where it sits between the order, the goods receipt and the payment, and offers the one action its state calls for. A goods receipt offers to record the bill, already filled in with the supplier and what actually arrived rather than what was ordered. A delivery has a page of its own, so the printed note goes back to being just the document you hand over. A tank that is clean and empty is offered a new batch instead of a second cleaning.\n\nAlerts take you to the record. Twelve kinds of alert used to drop you at the top of a list and leave you to find the row yourself. They now open the item, batch, tank or bill they are about. Three links inside the record chains reached nothing at all, and one of them sat on every purchase order, goods receipt and supplier bill in the app.\n\nLonger lists stay usable. Customers, quotes, deliveries, orders, supplier bills and purchase orders now show fifty at a time instead of everything at once. Stock, bills and purchase orders gained search and filter bars.\n\nYour records have a stated lifetime. One place now says how long each kind is kept and why. The audit trail keeps everything. Automatic probe readings are trimmed after a year by default, because their size decides whether a backup can still be restored, and you can set that to keep everything.\n\nA pH probe that goes quiet now says so, as a note rather than a warning, since probe readings never enter the compliance record. Two settings panels moved off the working lists they had been sitting on, and search finds fourteen pages it could not reach before.",
      "sha256_mac": "5681953a75f962a4bf72182d0896746e00884374a4e662694daa4a8b0412c419",
      "size_mac": 69166250,
      "sha256_win": "d0f3bb576469650a14d91ac53b0b9d5b38f2a5238f79488ae4c1fcab19d6874c",
      "size_win": 33240057
    },
    {
      "version": "v534",
      "date": "2026-09-11",
      "notes": "Cleaning records now hold every stage of a full CIP, each with its own agent, strength, temperature and time, so a six stage clean is recorded as the six steps it actually was. Two acids were added to the agent list, because an acid wash could previously only be logged as \"Other\". A cleaning logged by mistake can now be deleted.\n\nOn a batch page, the total drawn off a tank is now counted from the withdrawals themselves instead of worked out from a difference, so the heading agrees with the rows underneath it.\n\nOn a Mac, BrauMo now keeps the computer awake for as long as the server is running. A sleeping Mac stops answering, which made the phone companion look as though it could not find your server.",
      "sha256_mac": "88a99f359c44d9868e08b8f1f598b656a7a507083394e3f4ea38c6963e4a426f",
      "size_mac": 68848721,
      "sha256_win": "b9ab3467cf3540926b391ec7925e056ebd7eb50258f9186298360358fdee27f3",
      "size_win": 33093902
    },
    {
      "version": "v531",
      "date": "2026-09-09",
      "notes": "A fix, and it is worth saying plainly what it was.\n\nThe \"Earlier printed copies of this record\" table on a HACCP record could print a line of raw program data instead of a value, on the page an auditor reads. It happened on any record whose paper copy was filed before the vessel-cleaning line existed, which is to say on records you may already have printed.\n\nThe cleaning facts are now filed as three plain values with names: which vessel, whether a cleaning was recorded before the fill, and the date of it. And the comparison itself was fixed underneath, so a field added in any future version reports line by line rather than as one unreadable blob.\n\nNothing about your records changed. This only affects how a difference between a printed copy and the current record is shown to you.",
      "sha256_mac": "54e3e9b944fc45ff13816b66fe6b6cff217c67a1a2cd249c86b88d64778b7e4d",
      "size_mac": 68824969,
      "sha256_win": "c5668eb5c3f71dd7d6d16283b2ca0c79e871df4f35c5270046ad6f85a992a0d7",
      "size_win": 33080136
    },
    {
      "version": "v530",
      "date": "2026-09-09",
      "notes": "Cleaning, reworked around the tank.\n\nA cleaning record now names the vessel it was for. That sounds small and was not: the record has had a real link to a tank since v470 and the form had no field for it, so every cleaning logged through the app was invisible to the boards built to show it. Logging one from a tank card, a tank page or a batch now carries the vessel with it.\n\nWhich tanks need cleaning, seen rather than read. Every vessel on the board and on the floor plan carries a mark: amber where it needs attention, green where it is clean, nothing where the app has no history to reason from. Tanks, Schedule and Layout all offer Cleaning now.\n\nYou can declare a cleaning interval per tank, and the tank schedule grows a \"Cleaning due\" table beside the timeline. There is no default interval and no vessel appears there unless you set one, because the published figures disagree by factors of ten. Nothing about this blocks: an overdue vessel is still offered for the next batch.\n\nThe batch page offers \"Log cleaning\", and the moment a tank is freed that becomes the suggested next step. The printed HACCP record and its PDF now state whether the vessel was cleaned before the fill, with the cycle, the agent and its strength, who did it and who checked it. It is evidence that a prerequisite programme ran and it can never fail the record.\n\nFive more vessels are drawn: the open-top tank, the barrel, the carboy, the plastic drum and the horizontal tank. The diagram picker names them in your language instead of showing raw keys.\n\nAlso: two advisory alerts for a vessel emptied with nothing logged since, and one filled with no cleaning behind it.",
      "sha256_mac": "3c948ded5f76d373fb9fd4a364065c10a87eac39c415e7de52b554f9087f09c2",
      "size_mac": 68825256,
      "sha256_win": "050a6a13e78b91be7c1a5f7bd0c2618f5a182c83a68bbf4c1a394720438cfe3d",
      "size_win": 33079220
    },
    {
      "version": "v522",
      "date": "2026-09-09",
      "notes": "Seventeen versions in one release. The short version: second fermentation takes fewer\nsteps, retention samples are yours to manage, and the working pages carry far less text.\n\nSECOND FERMENTATION. Sending a base to F2 is now one form on its own page, asking where,\nwhich recipe, how it carbonates, how much and what to call it, in that order. Keeping it\nin the same tank is one of the destinations rather than a separate form. On an F2 batch,\nthe workflow checklist and the carbonation readout moved into the flavour and condition\nstep, so the CO2 verdict sits under the field that sets it.\n\nRETENTION SAMPLES. You can now skip a sample for a batch, discard a stored one and keep\nthe record of it, or turn retention off for the brewery. The register has four views:\ncurrent, expired, discarded and skipped, so it no longer opens as a wall of amber.\n\nRECORDS AND ALERTS. Every version of a HACCP record you print is filed, so you can show\nwhat a document said on the day you handed it over. A correction to a monitoring record\nnow keeps what the record said before. And one broken alert can no longer take every\nother alert down with it.\n\nLESS TEXT, BETTER LISTS. Long lists scroll inside their card instead of running the\nlength of the page. Hints are short, the mechanics moved to the system map so there is\none description of the app instead of two, and the phone screens carry fewer boxes:\nthe stock editor folds its extra fields, and quick actions are one scrolling row instead\nof half the screen.\n\nTABLES AND FORMS. Sortable columns, pagination that says where it stopped, rows you can\nclick anywhere, and buttons that show they are working.\n\nSETTINGS. The Basic, Intermediate and Pro workspace levels are gone. One switch says\nwhether you sell from here, and it hides the offer, never your records.\n\nAlso: Windows installs its own updates, an invoice now reaches the raw-material lot it\npaid for, a reading records who took it, and German, Spanish and Portuguese cover exactly\nthe same text. Security and dependency updates throughout.\n\nThis release is a manual download. From this version on, the app can fetch its own\nupdates.",
      "sha256_mac": "9ed1cc1eeef115ba0a125e98f241bdb281521edfe8801373ceef5eb6702b5fc5",
      "size_mac": 68767268,
      "sha256_win": "d9ff666dc5db56dc68ba7c4f812811f97909cb6d8831faaf1b3b15087a4c42b2",
      "size_win": 33050236
    },
    {
      "version": "v505",
      "date": "2026-09-06",
      "notes": "QC readings that hit a limit are now marked as bounded on the record, the HACCP documents and the Certificate of Analysis, and a bounded gravity reading no longer clears the alcohol check on its own. Nutrition values outside their range are refused instead of clamped. A scanned batch QR code opens the batch in the mobile apps, and the code now carries an address a phone can open.",
      "sha256_mac": "a81128f391482c447d73caab1a7ebd6561f6eb329f7b06b93896d461ec08460c",
      "size_mac": 68598013,
      "sha256_win": "910a68b1fa22d9d7d8d85f603897c5a73f8e9ebfa760790b3fa1cefd3f871402",
      "size_win": 32964267
    },
    {
      "version": "v504",
      "date": "2026-09-05",
      "notes": "Raw materials now behave like finished goods behind the tank: when a batch consumes tea, sugar or packaging, the received lot is drawn down first-expired-first-out, a lot on hold is passed over, and the batch page shows which supplier lot each deduction came from, with the option to pin another. The trace sheet names the supplier lot per ingredient. A receipt you quarantine holds its lot until you release it. A delivery that took from a lot past its best-before is marked, never blocked. Stock counts take a reason per difference (breakage, spoilage, sample, miscount, lot correction) and the summary groups by it. Purchase orders can be typed in packs, and the stock forecast can draft orders for you, one per approved supplier. The e-invoice (XRechnung) now carries your street, postal code and city and the customer's, your contact point and electronic address, payment instructions on every file and the payment-terms sentence from the printed invoice; three new address fields sit beside the address block on each customer and in Invoice settings. Large quantities and stray characters no longer produce a file a portal rejects.\n Two things to know on the first day: raw-material lots received before this update keep the quantity they were booked in with until you reconcile them, so the Lots page may show drift on items nobody touched, and Reconcile settles it without rewriting anything. The expired-lot mark looks back 30 days, so it can appear right away for recent deliveries that drew from an expired lot.",
      "sha256_mac": "c62e84ace7870e5f4a6805715c965a4e92f54a885f045cbb585436d84c20390a",
      "size_mac": 68565602,
      "sha256_win": "73df93bbe9c52d6d28741e7bd12693ab3117f760b7f2e69d123c86e6c68add4e",
      "size_win": 32945254
    },
    {
      "version": "v503",
      "date": "2026-09-02",
      "notes": "A full UI/UX pass: readable text everywhere, one visual language for headings, chips and notices, and real icons instead of glyphs. On a phone the batch page's section bar no longer hides under the header, the stock list keeps its head while you filter, and wide tables scroll instead of squeezing. Ten menu entries now match the page they open, and tanks are called tanks everywhere. Keyboard and screen-reader support throughout: the floor plan and delivery run move with the arrow keys, every icon button says what it does, and status that was colour only now says it in words. Underneath: a recipe version captures the recipe as it stands when you cut it, clearing your data no longer leaves records pointing at deleted batches, and the one-click backup writes a consistent snapshot.",
      "sha256_mac": "f697d7a96c653939e76ae8dd4d3625c210f440dccab3c28fe626e3818231cb46",
      "size_mac": 68508595,
      "sha256_win": "4275380396815ede5b911d7cbf05e017950a415dee78eba891913ffca3604a1b",
      "size_win": 32920250
    },
    {
      "version": "v502",
      "date": "2026-09-01",
      "notes": "Undoing a packaging run no longer removes another run's history.\n\nIf you bottle one tank over two days and do not type a lot code, both runs take the batch code, so both lots end up named the same. Until this release, undoing one of those runs took its own bottles off your stock but removed the movement lines of both. Your stock figure stayed right and your history quietly lost a run, which is the kind of gap you only notice much later when the two stop adding up.\n\nMovement lines now record which lot they belong to, rather than only mentioning it in their text. That also means renaming a lot after you bottled it no longer breaks the link.\n\nLines recorded before this update carry no such reference, and their only connection to a lot is the text written at the time. Where BrauMo can match one confidently it does. Where it cannot, it leaves the line alone and tells you the stock and the ledger disagree, rather than guessing which run to erase. You can settle those from the stock lots page.",
      "sha256_mac": "14d006139e5f5dab6f8355cce20647335612911df6412752f63ab01bfd2bd25e",
      "size_mac": 68425855,
      "sha256_win": "cde9db1328abf4ce0f1a881bc4285f1b2cad239e44b33d5d2c7aa7630dffd405",
      "size_win": 32874192
    },
    {
      "version": "v501",
      "date": "2026-09-01",
      "notes": "BrauMo now shows you where a record sits in its chain. Open a goods receipt and you see the supplier it came from, the purchase order behind it, and whether the bill has arrived yet. Open a batch and you see the recipe it was made from, the base tank it came out of if it was flavoured, and the lots it became. Open it again and you see where those lots went: the delivery notes, and the customers who received them.\n\nEach station is a link, and an empty one tells you which kind of empty it is. A station with nothing after it is the next thing to do. A station that was skipped on purpose says so instead, because being reminded to do something you deliberately did not do is just noise.\n\nThis already worked on the sales side, from lead through quote and order to delivery and invoice. It now works the same way for buying, for production, and for tracing a lot forward to the people who got it.\n\nA supplier bill now knows which supplier it came from. Before this, a bill was linked to a supplier only by the name you typed, so a bill entered without a purchase order behind it had no connection to your approved-supplier register at all. New bills carry the link. Old ones are matched by name when the match is certain, and left alone when it is not: if two suppliers in your register share a name, BrauMo says nothing rather than guessing which one you meant. Your old bills are never rewritten.\n\nThe supplier picker on the bill form now lists your whole register. It used to list only suppliers who appeared on an open purchase order, so anyone else had to be typed by hand, and a typo meant the bill never linked to them.\n\nDeleting a finished-goods lot now records the stock movement. Until this release it took the bottles off your stock without writing a line in the movement history, so if you ever removed a lot, your on-hand figure and your history stopped agreeing. If BrauMo has been warning you that stock and the movement ledger disagree, this is very likely why. The warning panel now has a Settle button that writes the missing line for you. It never changes your stock figure, because the on-hand number is the one you counted.",
      "sha256_mac": "f59e94c062293acc48d92b99f30b31541928568e2d0a674359787d74ea6c89d5",
      "size_mac": 68422179,
      "sha256_win": "83e3d72c962dda0736f47918eef7377d0db9fb49d22db83835a1844209299469",
      "size_win": 32873097
    },
    {
      "version": "v500",
      "date": "2026-09-01",
      "notes": "The tank timeline now draws your batches where they actually sit.\n\nEvery bar on the ninety-day tank schedule was rendering at the start of its row instead of across its own dates, so a tank used twice showed both batches stacked on top of each other and the labels ran together. That is what the schedule looked like from the day it was added, and it is fixed. The planning page was never affected.\n\nNothing else changed in this release. There is no data change and no migration coming from v499.",
      "sha256_mac": "800e1ab43d6a392ad31f57ae8319946a3451cda7db3370d4549b00a65826eb73",
      "size_mac": 68396512,
      "sha256_win": "0a47dd016adf4aea002d5fa0d1799521a75da0ba85079a6ecf5361d67a824aa8",
      "size_win": 32862176
    },
    {
      "version": "v499",
      "date": "2026-09-01",
      "notes": "BrauMo can now do a stocktake, annual and monthly. Until this release the app had four ways to tell you what the books said and no way to record what was actually on the shelf, which is the one thing an Inventur exists to produce. You open a count, walk the store, type what you find, and review the differences before anything moves.\n\nCounting changes no stock. The differences are posted as a separate step, when you are ready, and a posted count cannot be edited or deleted afterwards. You also do not have to stop work while you count. BrauMo freezes the book figure when the count opens and accounts for everything that happens after that, so you can keep bottling and dispatching, and the sheet tells you which lines moved.\n\nA shelf nobody walked is not an empty shelf. Leave a line blank and it stays blank: it books nothing, it is left out of the value, and it is named on the printed sheet so the record cannot read as a complete count when it is not. Typing a zero is different, and means what it says.\n\nStock can be valued at FIFO or at a weighted average, worked out from your own movement ledger rather than from today's price. Where your ledger cannot support the formula, that line is marked unpriced and its value is left unstated rather than shown as zero, and the sheet says how many positions its total leaves out.\n\nYou can print the count sheet with quantities, unit values and a signature block, sign it by hand, and file the scan against the count. German installs also get the retention date for that record.\n\nFinally, the search box now finds pages, not just records. Type \"supplier\", or \"Inventur\", or \"Wareneingang\", and you get the page, whatever the menu happens to call it. Suppliers are searchable too, by name, by contact and by what they supply.",
      "sha256_mac": "455b7448ec9b62a4fe6a82b273c6fbc079a3210233e2a9494a642f479e72645d",
      "size_mac": 68402279,
      "sha256_win": "1e36112eab7f63a4448ce40890aa402c0c2007157d0dc75c1a4f126d85ee32ea",
      "size_win": 32861921
    },
    {
      "version": "v495",
      "date": "2026-08-28",
      "notes": "When two stock items answer to the same ingredient name, BrauMo no longer picks one for you. A recipe that asks for \"Green Tea\" against a shelf holding \"Green Tea Sencha\" and \"Green Tea Gunpowder\" used to draw down whichever one it found first. It now says both match and asks you to name one exactly in the recipe, so nothing is deducted by guess.\n\nBottling measurements are range-checked. Brix, pH, titratable acidity and pasteurization units now get the same limits as the readings you take from a tank, so a slipped decimal cannot reach a batch record or a certificate.\n\nImported stock is checked like typed stock. A spreadsheet import used to accept any number in any column, so a negative price could reach your costs and margins. Import now applies the same limits as the item form. Negative stock levels are still allowed, because they are a real thing to record.\n\nA batch cost now says whether it is final. Ingredients that carry no price from the time they were used are priced at today's cost, which means the total moves if you re-price them later. The cost card now tells you how many rows are in that state instead of showing one number for both cases.",
      "sha256_mac": "fe137eab4da508cf3ea42eef91915f80a42f7c428319e94a44864ba82c019bf0",
      "size_mac": 68176552,
      "sha256_win": "68f71aad515b76994b310dec0e85e45f4d002e16b1914df8a5795ee5a7a96f57",
      "size_win": 32753035
    },
    {
      "version": "v494",
      "date": "2026-08-28",
      "notes": "Temperatures now read in your own unit everywhere, and a Fahrenheit reading you type is stored and read back as the same number.\n\nCold-chain checks got stricter. A unit sitting outside its target range now raises an alert instead of staying quiet, and an out-of-range reading is no longer hidden by a later check on the same day.\n\nProducing finished stock is recorded as production, not as a purchase. The bookkeeping export no longer lists what you made yourself as goods you bought.\n\nStock lots gained a reconciliation panel: when an item's stock and its recorded movements disagree, the page says so instead of leaving you to find it.\n\nA keg run now finds the keg product you already named instead of creating a second one beside it. You can say which bottle product a keg belongs to on the product's edit page.\n\nDeleting a customer, batch or item now keeps the records that point at it, and refuses when the record has to be kept.",
      "sha256_mac": "c5b1c22aad8e2883f11dcecae806c28b097cfa56a61457a95283dee9e18edfd5",
      "size_mac": 68139652,
      "sha256_win": "a9e8edbcf879ea9df45907d91df7e5f84bfb11e98c8cd3fd663faa8d817ea7f5",
      "size_win": 32734444
    },
    {
      "version": "v492",
      "date": "2026-08-27",
      "notes": "Your delivery notes print what you typed. The recipient caption and the return line are set in the Lieferschein template editor, and neither was reaching the PDF, which is the copy you email and file. Both are there now.\n\nLabels can carry a full EU panel. Allergens from the Annex II list, and a nutrition declaration per 100 ml with energy in both kJ and kcal and salt rather than sodium.\n\nThe trace sheet names names. It now lists the customers who actually received each lot, read from your delivery records, instead of estimating from sales in a date window. It also shows a mass balance: what the batch made, what shipped, and what is still on hand.\n\nVinegar knows what the law asks. A vinegar recipe shows the minimum acidity for the market you sell in, records whether the figure you declared is that legal minimum or your own stricter one, and works out the water needed to cut a tank to the strength it declares.\n\nTwelve interface strings that never rendered in German, Spanish or Portuguese now do.",
      "sha256_mac": "c8d92d6490499f02196d5553ce1a3b4e83f551dcbd658d405b2660010cc4ae4a",
      "size_mac": 68116855,
      "sha256_win": "34dd969786f10bdcb9ce227d5668cacdbad46b05dfa4e77554066677a2958035",
      "size_win": 32721735
    },
    {
      "version": "v489",
      "date": "2026-08-25",
      "notes": "Your HACCP record now judges alcohol per packaging run. If you bottle a tank over several days, each run is measured against the limit on its own instead of the whole batch being judged by whichever reading happened to be last. A run recorded with no alcohol figure is marked n/a rather than borrowing another run's number, and a batch you bottled in one go reads exactly as it did before.\n\nThe record shows this: each run gets a pass mark in the runs table, and the alcohol section states the range across runs and names any lot above your ceiling.",
      "sha256_mac": "de5235a0161ce09a44500efaba3e9b2eeb849a143b539beecae23a25ad2bda67",
      "size_mac": 68056521,
      "sha256_win": "d7ece42327646d888ac42c7c7b9a0b8067b107ab42f74e03cd864346cbc783ec",
      "size_win": 32689079
    },
    {
      "version": "v488",
      "date": "2026-08-25",
      "notes": "Sell one product in several formats. A crate, a carton and a six-pack of the same bottle are now formats of one product instead of three separate items, so your stock stays in bottles and each format just says how many go in one container. Each carries its own deposit, its own barcode, and whether it comes back to you.\n\nYour delivery notes and invoices now agree. The quantity column shows bottles and the format sits beside it as a count, so 216 bottles reads as 9 x 24x330ml instead of looking like 216 crates. A returnable crate is named as one. Both documents remember the format as it was on the day, so renaming it later never changes a note you already sent.\n\nTwo smaller fixes: the batch sheet now names the flavour it was actually made with instead of leaving the field empty, and deleting a recipe now clears away the unused product it had created rather than leaving it on your label list.",
      "sha256_mac": "2f7fc75732258be06cceac71ebbd02508c2ded2b99aad4689602b91c2061edd3",
      "size_mac": 68053601,
      "sha256_win": "a35f053129dd78344682c2f87acc3a767a39604ced42ea15a7233735322fb943",
      "size_win": 32687245
    },
    {
      "version": "v487",
      "date": "2026-08-25",
      "notes": "Kegs now get the same record bottles do. A keg run recorded on the batch page books its own dated lot with its own best-before, so it shows up in your finished stock, on the certificate and on the public per-lot page. If you track individual kegs, nothing changes: whichever way you record a keg first is the one that books it, so the same liquid is never counted twice.\n\nAlso on the website: the Jun page is listed as Jun and other substrates, which is what it actually covers.",
      "sha256_mac": "50d551f8b9fccf01428c6882830bec96dbca92ceeede4017c1054681971c8280",
      "size_mac": 68031533,
      "sha256_win": "f1481f4b14b2bbd5d1fd1649561b6256be26fc0c8280e95d7f9153392f852345",
      "size_win": 32677681
    },
    {
      "version": "v486",
      "date": "2026-08-25",
      "notes": "Bottling a tank over several days now keeps each run straight. Every packaging run gets its own best-before, dated from the day it was actually packaged, and records the pH and alcohol it was released against. The batch record lists the runs, so anyone reading it can see the tank was filled on three days and what each one stood on. A tank left part-packaged now joins your reading reminders instead of going quiet.\n\nCarbonation reads in volumes, with g/L beside it. The F2 conditioning card is split in two: the workflow steps fold away and the carbonation figures get their own card. The workflow wording is edited once under HACCP instead of on every batch page.\n\nTanks can state the level where fixed probes stop reading liquid, and the level below which a fill counts as shallow. Both are optional, and left blank the app says nothing.",
      "sha256_mac": "9e48d1dc9e387ee398fb2aa89b93978883692984e8c1c4ccf9c51f6ce5b511c1",
      "size_mac": 68028679,
      "sha256_win": "84060606f65934dac9c4b756df78a90883ba4b79d4b939c1987cc93280ab4b12",
      "size_win": 32675957
    },
    {
      "version": "v484",
      "date": "2026-08-24",
      "notes": "Ten versions in one update. The last public build was v474, so this one carries everything since.\n\n• Continuous brewing. A vessel you never empty now keeps its own record: draw and refill cycles, the acidity of the mixed vessel after each top up, and a tank card that stops reading as empty because the arithmetic only knew how to subtract.\n• Ferment on anything. What a ferment runs on and what sweetens it are recipe fields now rather than fixed product lines, so grape must, honey and jun are ordinary recipes. If you declare an alcohol figure, the ceiling records where that number came from.\n• A base can be its own finished product. Kombucha bottled straight from the first vessel no longer needs an invented second fermentation before it can be packaged.\n• Recipes answer more: what allergens the formula carries, what it costs per saleable litre, and where an ingredient is used.\n• A batch you brewed before you had BrauMo no longer reads as brewed today.\n• If you already run an ERP or an accounting system, you can switch the selling side off and keep the batch and compliance half. Every feature stays in your licence, nothing is deleted, and one click brings it back.\n• The dashboard is faster with a lot of tanks. It had gone back to reading each vessel separately.\n• Smaller things: the acidifier you keep in an IBC is a store you can draw from, the batch page puts the work above the reference, and the carbonation card shows the whole calculation instead of a single number.\n\nNothing to redo and nothing to reconfigure. Your records open exactly as they were.",
      "sha256_mac": "d4abaa94c80ca979dedc0da4f65c65bd99c5e90550715aab9dfec60436d66dc5",
      "size_mac": 68005488,
      "sha256_win": "c8ed3badbe7facff1fb890303e602ac4482a8b2d5e9a45f43cec8249347536a7",
      "size_win": 32664020
    },
    {
      "version": "v474",
      "date": "2026-08-21",
      "notes": "Two fixes, one of them worth reading if you use flavour recipes.\n\n• The juice % on a flavour recipe now reduces the base share. If your recipe says 10 % juice, the recipe page and the printed brew sheet now show 90.9 % base and the juice as its own step, instead of claiming 100 % base. The litres were always going into the tank and were always deducted from stock. Only the page was leaving them out, so it disagreed with what your batches actually recorded.\n• Nothing you have already brewed changed. No batch, no stock figure and no cost moved. This corrected what the recipe page reports, not what it books.\n• The More menu on invoices and quotes is a proper button now. It was grey text on a white card and easy to miss entirely.\n• The footer credit reads A BrauMo product, and KBI is spelled KBI throughout.\n\nNothing to redo and nothing to reconfigure.",
      "sha256_mac": "76e37848319487edafa7ca3e72032cdc70bcb1c5c32d0fc1879f90b0844d7023",
      "size_mac": 67785096,
      "sha256_win": "9fa9ecca4f9a743a8763ded49da5330dd091ff6b5b0773567337b0b7fa22ea5b",
      "size_win": 32545527
    },
    {
      "version": "v473",
      "date": "2026-08-20",
      "notes": "The dashboard got a proper redesign. Same numbers, same links, easier to read at a glance.\n\n• The KPI tiles dropped the coloured icon squares. The number leads now, and a tile only turns amber or red when something actually needs you. A quiet row means nothing is waiting.\n• Every summary tile in the app is the same tile now. The dashboard row and the bands on Invoices, Orders, Quotes, Customers, Stock and the rest had drifted into two different looks. They match.\n• Quick actions became a toolbar with one clear primary action instead of six cards of equal weight. Three buttons added: Log temperature, Stock levels and Packaging.\n• Planning calendar and Packaging now only appear if your workspace level includes them. They used to show and then refuse to open.\n• On a phone the action row lays out in two even columns.\n• The Map in the footer had twelve links that led nowhere. All twelve now open the right page.\n\nNothing to redo and nothing to reconfigure. Your data is untouched.",
      "sha256_mac": "9f7a7cc00f158855aeba15a02ba287da99d1802072b80c6c80dd5e102e8afccc",
      "size_mac": 67784325,
      "sha256_win": "383cec04b6f62db0b7caa2c02552de2f848f839b732df06103286c93f72a5bc9",
      "size_win": 32543979
    },
    {
      "version": "v472",
      "date": "2026-08-20",
      "notes": "Housekeeping. Nothing in the app itself changed since v471, so there is nothing new to learn and nothing to redo.\n\n• Your app behaves exactly as v471 did. No screens moved, no numbers changed, no settings need attention. If you are on v471 and everything is working, you can install this whenever it suits you.\n\n• What changed is behind the scenes: the automated checks that run before any update reaches you, and the documentation that describes the app. One of those checks could occasionally report a problem that was not real, which made it slower to spot the ones that were. That is fixed.\n\n• Same download, same licence, same data. Your database is untouched by this update.",
      "sha256_mac": "417b602f809b51b7a689d1696071542ac993eb02f1d3434aac244543485aa524",
      "size_mac": 67780059,
      "sha256_win": "670916b633527121bcebd50553bcb220bffc613fd7023661e14c377d97a941c7",
      "size_win": 32540036
    },
    {
      "version": "v471",
      "date": "2026-08-20",
      "notes": "One panel for everything that went into a tank, and the culture you pitch now costs what it cost to grow.\n\n• Read this one first: your batch costs may change. The culture you pitch now costs what it cost to grow. A batch started from a starter or acidifier tank carries a share of that tank's tea and sugar, worked out from the litres you pitched, so a brew's cost stops being only the ingredients you weighed on the day. Batches with a pitch already recorded will show a higher cost than before this update, and that is the culture finally being counted, not a new charge. Cost per litre moves for the same reason. If you had recorded your culture by hand as a blend source to get it into the cost, it is now counted once and not twice.\n\n• One panel for what went into the tank. Liquid reaches a tank three ways: a culture pitched from a mother tank, a culture drawn from bulk stock, and a blend from another tank. Only the last one had a panel, and it was called \"Blended from\", so it read like the place to list all three. Now one panel shows all three with the euros each one carries. Pitches and bulk draws are shown as they happened; blend rows stay editable, and you can book the draw-off at the same time so the liquid actually leaves the source tank.\n\n• The culture planner stops guessing. It could turn a single stock correction into a daily usage rate and then tell you to start a culture you did not need. One draw is not a rate, so the planner now waits for a second one before it estimates, and says so on the card instead of showing a number it cannot support. It also stops sending you a notification about it.\n\n• The action menus are visible and they close. The three-dot buttons were too faint to see against white, and opening one never closed the others, so three could sit open at once. They are now proper buttons you can see and reach, they close when you click away or press Escape, and they read correctly in dark mode.",
      "sha256_mac": "e4371300e203561aeffe4a7cb79c3776afb8a0c08ce7ae0400adc991b08b1cc8",
      "size_mac": 67781309,
      "sha256_win": "a29194cce3b8616af3ef9d31fe94ad17b3b9d32be99456370941f3e1ded9fa12",
      "size_win": 32540036
    },
    {
      "version": "v470",
      "date": "2026-08-19",
      "notes": "Your recipes get their own pages, your tanks get a board, and every batch remembers the recipe it was actually brewed to.\n\n• A recipe is now something you can read, not just a form you edit. Open any recipe to see what it takes at any volume, its targets, its tea blend and every batch made from it. Print a brew sheet scaled to your volume, with the additions in order and a blank column to fill in at the tank.\n\n• Recipe versions. Every time you change a recipe, BrauMo saves what it looked like before. A batch stays tied to the version it was brewed to, so correcting a recipe today no longer changes what a batch from last year was measured against. Nothing to switch on: your recipes each get a version 1 that is exactly what they say now.\n\n• Cost per litre, and honest about it. BrauMo adds up what a recipe costs from your stock prices. If an ingredient has no price it says so and names it, instead of quietly counting it as free. Yield comes from your own history, not a number you type in.\n\n• Tea blends written as text become real. If your recipe says \"Sencha (75%), Black tea (25%)\" in the name field, BrauMo can turn that into proper components it can weigh, buy and cost.\n\n• Ingredients you make yourself. Link a flavour ingredient to the recipe that produces it, such as your own acidifier or starter, and planning reaches through to the tea and sugar that recipe needs.\n\n• A tank board. Every vessel as a card, what is in it, when it comes free, and how long since it was last cleaned. Plus a tank page of its own, a ninety day schedule, and a floor plan you can drag your tanks onto.\n\n• Cleaning records now belong to a tank properly. Renaming a tank no longer loses its cleaning history.\n\n• Blends from several tanks. Record a batch made from more than one source, and the cost and lineage follow it.\n\n• A public page for a lot. Put a QR code on the bottle and it opens a page with that lot's ingredients, allergens and nutrition. No cookies, no tracking, served by your own instance.\n\n• Lab samples and additive ceilings. Track how long a lab takes to come back, and measure an addition against a ceiling you set yourself.\n\n• Dashboard tidy up. The KPI tiles line up, every tile is a link, and a figure with no data behind it says so instead of showing a dash.\n\n• The batch page keeps its reference column on screen while you work down the page.",
      "sha256_mac": "63a0806942dbe73770ae26ce4e38aba2d619d3177c40a633b788e2259e9fa11a",
      "size_mac": 67750782,
      "sha256_win": "f1297e5ea25a5be6844cd1f7d0fdb071b9dcd96e82e652b7b9a5974e25fb484b",
      "size_win": 32527931
    },
    {
      "version": "v462",
      "date": "2026-08-19",
      "notes": "The sales and stock pages, rebuilt around the records instead of the forms.\n\n• Every sales list now fills its page. Creating a quote, order, invoice, customer or\n  lead has its own screen instead of a form parked beside the list, and invoice\n  settings, the accounting exports and the reminder schedule moved to their own page.\n\n• Invoices, quotes and orders show where a deal has been: lead → quote → order →\n  delivery note → invoice, as a strip at the top of the record, with each step a link.\n\n• Each record offers one clear next step for the state it is in, and folds the rest.\n  An overdue invoice offers the reminder first, because that is the only move the app\n  itself can make.\n\n• Stock levels is a table. Figures line up in columns, so you can compare items and see\n  at a glance what is below its reorder level, plus a summary of stock value, what is\n  low, and what is at zero. Search now has a category filter beside it.\n\n• New: filter any sales list by status, including states that were never a column —\n  overdue, partly paid, expired, accepted-but-not-converted.\n\nFixes: a cancelled invoice no longer shows its face value as still owed; a quote that\nbecame an order can no longer be sent back to draft.",
      "sha256_mac": "f1d8f8f30375fd9db1adff4b1361cd32616e5a77c13017f38bcaa6f4dd940c67",
      "size_mac": 67542652,
      "sha256_win": "31f6e13a957864e50f495e4e67055af403725a39541d37b9e34a976d411cee06",
      "size_win": 32416219
    },
    {
      "version": "v461",
      "date": "2026-08-18",
      "notes": "A polish release, mostly for US breweries and for what happens when you delete something.\n\nUS sales tax: you can now edit a rate instead of adding a second row for the same place. Retiring a jurisdiction tells you which customers it moves to your house rate. Your invoices no longer mix the words: a US document says Sales Tax everywhere, including the exemption line, and a German one keeps its exact statutory wording. The collected report and its CSV are grouped by currency instead of adding different currencies together.\n\nNutrition Facts: every typed value is now range-checked, so a mistyped number cannot reach a printed label.\n\nDeleting is safer: removing a batch keeps the plans and tasks that pointed at it, removing a product clears the recipe links instead of leaving them dangling, and a product a batch was actually bottled into cannot be deleted at all.",
      "sha256_mac": "00fcc53d05e116f24666ff29a8da122293a1e544cae4c2c8f0b842074a4f6306",
      "size_mac": 67481220,
      "sha256_win": "0f401cc72139b983ab4e69c1ce7be62190f18cb4b5565258dd55ded71dd396eb",
      "size_win": 32382996
    },
    {
      "version": "v460",
      "date": "2026-08-18",
      "notes": "Three versions in one update (v458 to v460).\n• US breweries: documents print on Letter, temperatures show in °F where you read °F, invoices say Sales Tax with the rate from your own jurisdiction list, QuickBooks (IIF) and Xero (CSV) exports for your accountant, a Nutrition Facts panel to 21 CFR 101.9, and food-safety records that speak FSMA.\n• Planning: flavouring runs can be planned ahead, so juice and botanicals are ordered before the base is ready.\n• Everyday flow, start to finish: bottling always lands on a product, recipes know the product they make, deliveries lead straight to their invoice, every batch page shows its next step, quotes convert to orders, kegs and web-shop sales are real deliveries, one form creates a sellable product with price and deposit, and a fresh install can start with a small sample brewery.\n• Plus the fixes from a full audit of everything since v450.",
      "sha256_mac": "6fe4e635c4bd0c38621abb9ed1d345aee36ed7e4a676344c9fa1547eaf758b37",
      "size_mac": 67471097,
      "sha256_win": "ea1b8ee8956473a2d8e651783f19257a9228c0b9e3d2a46b0929fe148a7f2adb",
      "size_win": 32375952
    },
    {
      "version": "v457",
      "date": "2026-08-16",
      "notes": "Windows: this release fixes downloads that could not start at all. The app would open its window and then stop, or the browser would show that it could not reach the page. If BrauMo has never started on your Windows PC, download this version and it will start. Mac installs were not affected.",
      "sha256_mac": "248441f1d5800ae6129d1273e72e742f536fbec9b84891f7abedb49ee1a127e9",
      "size_mac": 67174765,
      "sha256_win": "c83d349207850eade2c72f3595c2bcb30ed97fbe8f36e861eb85614f15940230",
      "size_win": 32241841
    },
    {
      "version": "v456",
      "date": "2026-08-16",
      "notes": "BrauMo now opens in your browser as soon as it is ready. On Windows the browser could open a moment too early and show \"this site can't be reached\" even though the app was starting normally. It now waits for the app and opens when it is ready. If another program on your computer is already using port 8000, BrauMo moves to the next free port instead of failing to start.",
      "sha256_mac": "e8032b496b4d92c4ed2268f8f1d67b4f74556a18ffd71e7fbc4efb775a6254ea",
      "size_mac": 67175748,
      "sha256_win": "2fa45574829c31943a9cf691b661ede29a3eca6403087c10c54af602d7fc4f5b",
      "size_win": 32241838
    },
    {
      "version": "v455",
      "date": "2026-08-13",
      "notes": "Delivery notes now download as a polished A4 PDF — the same document family as your invoices: sender over recipient, an item table with per-line batch and best-before lineage, an optional priced total, the deposit line and a signature block. The on-screen print view and the PDF always match. This release also carries reliability hardening across the document and compliance code.",
      "sha256_mac": "7b802b45d7b21bd99a3ca7e534cd609ed1b4a3bbb47b4cd6921f5dee679dd12d",
      "size_mac": 67172300,
      "sha256_win": "6aec51618fa31f5474957b05e7c739b6d5c53446bf50388c5598cc203100d71e",
      "size_win": 32240047
    },
    {
      "version": "v452",
      "date": "2026-08-13",
      "notes": "Redesigned dashboard tank cards: each fermenter now shows its vessel filled to the live level in its ferment-phase colour, with a single at-a-glance status — on track, reading due, or ready for F2 — so you can see which tank needs you across a wall of them.",
      "sha256_mac": "de393a36e67aa17cf3252f0b4d3d519bfaf7d465c97ee9e50693653e8c7a010d",
      "size_mac": 67158141,
      "sha256_win": "ac9ed0874b07656abf211f035f52264318ac2b4db0a64444ef23e7bceb250b3d",
      "size_win": 32235895
    },
    {
      "version": "v451",
      "date": "2026-08-12",
      "notes": "Maintenance release. No change to how BrauMo looks or behaves.\n\nThis one strengthens the automated checks that protect your printed documents. The test guarding the invoice, delivery note and HACCP batch record could pass even if parts of those documents had quietly lost their print colours, so it was rewritten to check every coloured band on every one of them.",
      "sha256_mac": "2d9e593bea6dcad9d6cf6a304b1cc0caafa0339860a4e7f0bef50c38a63661df",
      "size_mac": 67158127,
      "sha256_win": "864a7c7c2bbac7d62434e08f6d313ec83822c5b492694a7a8e91763e370fb430",
      "size_win": 32236003
    },
    {
      "version": "v450",
      "date": "2026-08-12",
      "notes": "Printed HACCP records keep their colours again. The PASS/FAIL banner and every control point pill now print with their background, so the record you hand an auditor reads on paper the way it reads on screen.\n\nOn the batch page, Release specification has moved into the Quality & release card. Target, latest reading, disposition and retention sample now read as one story instead of two separate cards.",
      "sha256_mac": "dc2b1f4bea3fdc6c4550494ff30ea056def27d5aac880da37f4a0628ca527a7a",
      "size_mac": 67158264,
      "sha256_win": "f414df2a2674a8df1dc52363d6ae83486cd8c9035dde30dcd9077995eacd6a14",
      "size_win": 32236002
    },
    {
      "version": "v449",
      "date": "2026-08-12",
      "notes": "Fixes a case where re-saving a batch's conditioning form could switch a bottle-conditioning batch to forced carbonation, hiding its bottle-pressure advisory. Internal: the calculation engine was reorganised with no change to behaviour.",
      "sha256_mac": "53ea057468c849a4fc43806a5843b8b3f2145108b0b8346eeb837112515179f5",
      "size_mac": 67156963,
      "sha256_win": "0c148027a72579af5236bc69d24d97f07854e7fbb8a2bd28aebfbf075b29bc36",
      "size_win": 32235085
    },
    {
      "version": "v448",
      "date": "2026-08-11",
      "notes": "What's new in v448:\n• Cans on packaging work orders: plan a canning run alongside bottles and kegs (with the right materials).\n• Chilled / ambient storage on finished products, shown on the expiry list.\n• Buy your acidifier as a concentrate: set its strength, or derive it from a titration against your single-strength reference. BrauMo doses it, tops up with water, and plans purchases in the right quantity.\n• Release specification: see pH, Brix, acidity, ABV and CO₂ as target-vs-latest-reading on the batch page (a colour guide; your HACCP record stays the compliance verdict).\n• Culture handling fixes, and lighter in-app help text throughout.",
      "sha256_mac": "aa49b2600b0fe8eb3b49b5adfbc2f7995c352f584add4f3a9ae6ca88467228a5",
      "size_mac": 66997832,
      "sha256_win": "7871681fc3f58555524c6af1bed6e0b292cdd459a68e5ac7804ef21e69e5bba5",
      "size_win": 32174069
    },
    {
      "version": "v436",
      "date": "2026-08-10",
      "notes": "A cleaner BrauMo: navigation moved into a collapsible left sidebar — grouped, faster to scan, and it keeps your place. Related pages now sit together as tabs (instrument registers, the FSMS documentation set, facility logs, procurement, the sales funnel); every old link still works. History & reports and the stock forecast open with honest summary bands, the dashboard tells you when AI proposals are waiting for your approval, and dozens of correctness, wording and translation fixes landed across EN/DE/ES/PT.",
      "sha256_mac": "60d097e5b6e89fe641780be3c7fd74c7866c4fc0b87e5d4da3c58f38502d4c9e",
      "size_mac": 66944887,
      "sha256_win": "3dbe08fa79651ed6c5a94feacd5b400b72051739174f6e726ec3c0a125214fdf",
      "size_win": 32151457
    },
    {
      "version": "v420",
      "date": "2026-08-03",
      "notes": "Cleaner and faster everywhere: pages load lighter, the barcode scanner and quick search now cache properly, and dark mode covers sign-in and setup. The printable brew sheet speaks your language, quotes print correct per-line VAT rates, and delivery notes match their invoice to the cent in every currency. The footer's new Map link opens the system map from wherever you are.",
      "sha256_mac": "fd48e4248eeda786c3079b66c21565e878bf238e7002eaf3e8e08e71d3910a1d",
      "size_mac": 66734070,
      "sha256_win": "20c8bb3fd807a7bfe485b6a9299a43f7e6aaa3bfe1f55345440966404a7a7b2b",
      "size_win": 32031023
    },
    {
      "version": "v418",
      "date": "2026-08-03",
      "notes": "A stability and security release.\n\nWhat this fixes for you:\n• An out-of-range automatic gravity or temperature reading — from a wireless hydrometer (iSpindel) or a mistyped entry — can no longer crash a batch's page. Extreme values are now bounded on every path that records a reading, and the batch page always stays reachable so you can correct the reading.\n\nMost of this release is behind-the-scenes quality work: a new standing audit that checks the app's own safety rules on every build, so a whole class of number-and-record bugs is caught automatically rather than found by hand. It was this audit that surfaced the reading fix above.",
      "sha256_mac": "41d318650d09c2eb4a78fc14134722dc042568c22cf66af773657027dba807c3",
      "size_mac": 66703543,
      "sha256_win": "bb457c5db785d1884b39f357006f8776335fb82b95a1aefb23d09f7b16408464",
      "size_win": 32019356
    },
    {
      "version": "v417",
      "date": "2026-08-03",
      "notes": "Six versions of brewing and money engine work, then a deep bug hunt over all of it — 31 confirmed defects found and fixed.\n\nWhat this fixes for you:\n• Batch pages can no longer be broken by a mistyped temperature reading.\n• The alcohol ceiling no longer clears a batch when the acid was measured over a shorter window than the gravity drop — it now needs the full picture before it says anything.\n• Cost of goods tells one truth: an ingredient with no price is reported as 'no data', never as a settled cost of zero, and re-pricing an item can no longer restate a batch you already brewed.\n• Late-payment interest on a Mahnung derives from the base rate you set, and that field is now editable wherever you are.\n• Scrapping, reducing or removing a flavour ingredient keeps stock and cost in step — the ledger stays reconstructible.\n• A tank can be told its total shell volume as well as its working volume, so a flavoured batch is no longer refused by a vessel that physically fits it.\n• Reorder points now appear on the forecast, and suppliers can carry a typed lead time.\n• The System Map opens details without shrinking the map, and folds by area so the page stays short.\n\nAlso: several security hardening fixes around backups, uploads and the AI approval queue.",
      "sha256_mac": "770181669f5be6cbdb5de9743343edd2d34b08a4c0c53e87bb250c25ec108629",
      "size_mac": 66704497,
      "sha256_win": "1c0c7884ad0d8a917b2cc8a797e9b24fc636572016f6eed71ca3c66e5dad748a",
      "size_win": 32018616
    },
    {
      "version": "v405",
      "date": "2026-07-29",
      "notes": "A visual refresh across the app. Mo's achievements get a new tier colour language, a distinct icon for every achievement, richer unlock celebrations in your language, and full dark-mode support. The tank diagrams are redrawn to match the app's design language: crisper at every size, dark-mode aware, and the Tanks page now shows fill level and ferment phase right in the vessel, with cooling equipment carrying its own subtle tint. The acetator diagram was polished too, with clearer part callouts and a fixed highlight interaction.",
      "sha256_mac": "02cbe3f5f9f158dd603055f0ea4b425a8db299fdd8d4abbd295bd85a86218c04",
      "size_mac": 66284889,
      "sha256_win": "aac23108a94afdfb2d1138042b900e79e0f466afd4e11f4949f4474b4684fe90",
      "size_win": 31820402
    },
    {
      "version": "v402",
      "date": "2026-07-28",
      "notes": "Invoices now freeze the recipient block the moment they are issued. Correcting a customer's name or address no longer changes the addressee on an invoice you already sent, and a cancellation invoice is addressed to whoever the original was. The DATEV export and the XRechnung e-invoice name that same party, so the document, the books and the e-invoice always agree.",
      "sha256_mac": "37f87c6bfed038fdc15b217486e1bedb5aa52f9dc10dcf2981cd9ff2c0a6a244",
      "size_mac": 66277544,
      "sha256_win": "eedf529ee1e39cce3887e09a90204056abb6d038aefae75129221be4bd0d275c",
      "size_win": 31813557
    },
    {
      "version": "v401",
      "date": "2026-07-27",
      "notes": "Agent access: ask your own AI client about your brewery.\n\nPoint Claude Desktop (or any MCP client) at BrauMo and ask about your batches, stock, quality records and invoices in plain language. It reads your own records on your own computer — BrauMo sends nothing out, and there is no extra cost from us because the client and its subscription are yours. Switch it on under Ask Mo, copy the token, and drag the connector into your client.\n\nIf you allow it, an agent can also suggest a small change — logging a reading, starting a batch, adding a note. Nothing is saved until you approve it in BrauMo, on a card showing what BrauMo itself worked out the change would do. Issued invoices, your settings, your users and anything that deletes, pays or sends stay permanently out of reach.\n\nMo also got cheaper and more capable: he now looks things up when a question needs them instead of carrying your whole brewery in every prompt, which also means far less of your data leaves the machine. Token usage is shown on the Mo page, with a daily limit you set.\n\nWindows now keeps a server log like macOS, and there is a Diagnostics page with a redacted tail you can copy or download. Nothing is ever transmitted.\n\nPlus 44 fixes from an adversarial review of the whole wave.",
      "sha256_mac": "adb60dbcd14201fd295f8db1d7c8e32384c0707bd3300008968aaad7b924625e",
      "size_mac": 66273333,
      "sha256_win": "0d79d2c7184458cf762b04245a4925f81c802177ec04c8d039f83765e5bfd78e",
      "size_win": 31810776
    },
    {
      "version": "v396",
      "date": "2026-07-27",
      "notes": "Regional editions: BrauMo now adapts to where you sell. New markets Chile, Argentina, Colombia and Peru, with Chilean pesos handled correctly (no decimals). Payment reminders and dunning letters go out in your app language (English, German, Spanish, Portuguese) with correct currency formatting, and breweries without an IBAN can set free-form payment details. The delivery note is fully translated. Your billing country decides which accounting exports you see; DATEV stays for DACH breweries. Date format follows your region, document number prefixes and the dunning escalation cap are configurable, and container deposits can be switched off outside deposit markets. Includes 26 hardening fixes from a full adversarial audit.",
      "sha256_mac": "d4b013d058e6b79787d4f567bd4f96390b5829e16e3ba839685373e45e162712",
      "size_mac": 66133230,
      "sha256_win": "f20055f0c7c0e3d51ca01d3fda9d8ab1b42c013ed3545fb4018023f3536c502b",
      "size_win": 31741430
    },
    {
      "version": "v391",
      "date": "2026-07-27",
      "notes": "Stock you can trust. If more of an ingredient was used than was ever booked in, BrauMo now tells you plainly and points you at the item, instead of quietly carrying a wrong figure into your stock value, purchasing and reorder list. Nothing is blocked and nothing is rewritten: you count the shelf and correct it, and the record of what really happened stays intact.",
      "sha256_mac": "2b8c611111ab7cc44c5f2e82321a7dddbae63ebd6fd43204d66a623d8b19469a",
      "size_mac": 66080187,
      "sha256_win": "8cd4bb5c506a70593fc733a7765ff88f74116c137d94c0a9284bc18099586560",
      "size_win": 31715955
    },
    {
      "version": "v390",
      "date": "2026-07-27",
      "notes": "Invoicing and stock correctness. A cancellation invoice now truly reverses the original, including on mixed-rate documents. Refunds from a connected shop reverse exactly what was booked, so revenue, VAT, stock and lot traceability all stay right. Deposits are billed once and returned as a credit. Flavoured batches now measure the real volume in the tank, so nothing is stranded and yield reports honestly. Plus a new working state across the app: buttons, downloads and Mo tell you when they are busy.",
      "sha256_mac": "75fb766a7596a328597bd878b656c67e194e8db32d043dde849f5bb83bf672a6",
      "size_mac": 66079608,
      "sha256_win": "c9e7da9d41559e9ff1b98d59a27eafa4bc98111bb4a3fcd055baa22ceba77c15",
      "size_win": 31715071
    },
    {
      "version": "v371",
      "date": "2026-07-26",
      "notes": "Mac: BrauMo now runs from wherever you keep it, including your Downloads folder — the app carries everything it needs inside it, so macOS can no longer stop a freshly downloaded copy from starting. Dragging it into Applications is still the tidy place for it. Your database, backups, uploads and logo live outside the app and are never touched by an update; older installs are migrated automatically the first time you start this version. Windows is unchanged."
    },
    {
      "version": "v370",
      "date": "2026-07-25",
      "notes": "Mac: BrauMo is now a single self-contained app. The download is just BrauMo — drag it into your Applications folder and double-click it. There are no loose files to keep beside it any more, and macOS can no longer stop a freshly downloaded BrauMo from starting. Your database, backups, uploads and logo live outside the app and are never touched by an update (older installs are migrated automatically the first time you start this version). Windows is unchanged."
    },
    {
      "version": "v367",
      "date": "2026-07-25",
      "notes": "Mac: the app can no longer fail silently. If its server cannot start, BrauMo now opens a short file telling you exactly what went wrong and keeps a full log you can send us, instead of closing without a word. It also copes with a busy port: if another program is using port 8000, BrauMo moves to the next free one and tells you which it used."
    },
    {
      "version": "v366",
      "date": "2026-07-24",
      "notes": "Setting up BrauMo now asks what your brewery does rather than how much of the app you want to see, so a new install starts with the right things visible — and a 'More of BrauMo' link in the footer shows what else you can switch on at any time. The getting-started guide now describes your own journey, ends with a proper 'you're all set up' instead of just disappearing, and its first step reads correctly on an empty install."
    },
    {
      "version": "v364",
      "date": "2026-07-24",
      "notes": "Batch page improvements for two-in-one-tank F2: your F1 pH/Brix readings now show on the F2 batch (read-only, carried from the base) so the history stays continuous; a note now points you to Step 2 · Package for the retention sample during conditioning; and Mo's packaging explainer matches the two-step Flavour & condition / Package layout."
    },
    {
      "version": "v363",
      "date": "2026-07-24",
      "notes": "Titratable acidity (TTA) now reads in one consistent unit — % (g/100mL) — everywhere: your batch readings, the acidifier endpoint target, and the blending calculator. Before, the acidifier target and blend calculator used mol/L while readings were in %, which could make the acidifier's 'acidity reached' check trip early. Any custom acidifier acidity target you had saved is converted automatically when you update."
    },
    {
      "version": "v361",
      "date": "2026-07-23",
      "notes": "Crate and keg deposits can now be billed with one click on draft invoices. Quotes and Orders are clearer: two separate menu entries. Sharper dashboard with KPI tiles and a 90-day average-loss window. Fixes: the login page now shows your logo on every install, 'Security check failed' on quick toggles resolved, Spanish/Portuguese brewery terminology corrected. Plus: your server now announces itself on your local network to the new BrauMo mobile companion, which brings a live barcode scanner to your phone."
    },
    {
      "version": "v356",
      "date": "2026-07-22",
      "notes": "New in v356\n\n• Fixed: 'Security check failed' on quick toggles. Switching Mo's seasonal outfit or colour mood, changing a sales-pipeline stage, toggling a lot's hold/release, or changing a user's role could fail with a security message. All of these now save instantly, as they always should have. Thanks to the brewer who reported it within hours — that's exactly the kind of note we love getting."
    }
  ]
}
