Skip to content
GardenTrack GardenTrack
Start free

What shipped

Newest first. Short entries — what you can now do, and whether it fully works yet. The longer stories about how any of it went live on the blog, and the how-does-this-work pages are in help.

  1. Notifications were never reaching your phone

    If you turned on notifications and never got one, it was not your phone and it was not the setting. The part of the app that asks your phone for permission to send them was missing from the version we published — not broken, missing. It has been absent for months, and everything we look at to check a release looked correct the whole time. The cause: publishing moved into a separate clean copy of the project back in August, for a good reason, and one settings file did not come with it. That file holds the key notifications need. Without it the code that sends them can never run, so the tool that packages the app correctly removed it as unreachable — producing a perfectly valid app with the feature deleted. It is fixed, and verified in the published file rather than in our own copy. Two other things changed so it cannot happen quietly again: publishing now carries those settings files with it, and packaging the app now REFUSES to finish if that key is missing rather than quietly leaving the feature out.

  2. One door that refuses by default

    Nothing looks different and nothing was broken. This is groundwork for letting the assistant look things up in your garden, and it is worth writing down because of what it prevents. When the server is asked for one of your plants or beds, it has to check that the thing belongs to the account asking — not merely that the identifier in the request looks valid. Those are different checks, and in August one of ours did only the second — found in our own review before the beta opened, while the only accounts that existed were ours, and fixed the same day. Nobody's garden was read by anybody. The fix was to write the check out by hand everywhere it was needed, which is correct and stays correct only while everyone remembers. There is now one shared door instead, and it refuses by default: no proof of ownership means no, including when the database cannot be reached to ask. Each new way the assistant can look something up goes through that door rather than carrying its own copy of the rule, and the check that guards it fails the build if the answer is handled after the data has already been read rather than before.

  3. One real call found the bug the tests could not

    The second-pass check being built for answers — the one that verifies each claim about your garden against your actual records — passed every test we wrote for it. Then we ran it once against the real model, for a tenth of a penny, and it failed in a way no test could have caught. It correctly spotted an invented claim. But when it reported that sentence back, it paraphrased it: the answer said "you also watered them on the 14th" and the check quoted "you watered them on the 14th". One word. Enough that the code looking for that sentence did not find it, so the sentence stayed in the answer and a note appeared saying a line had been removed. That is worse than no check at all — the note makes the wrong sentence look examined and approved. Our tests could not find this because we wrote the quoted sentences ourselves; a made-up test cannot reproduce a model rephrasing its own input. Fixed, and that exact exchange is now a permanent test. Still not switched on.

  4. Plants get their names back

    A hot weather alert arrived on a phone reading “Move Orange · Cara Cara Navel and Wax Bean into the shade before midday.” That dot is how the app separates a crop from its variety in a list, where it reads perfectly well. In a sentence it does not, and a phone prints it exactly as written. So anywhere a plant name goes into a sentence — a phone alert, or the assistant talking about your garden — it now reads as a name. Chasing it turned up something bigger than the dot. Most variety names already contain their crop: Red Russian Kale, Burgundy Amaranth, Blue Lake 274 Bush Bean. We checked all 3,174 varieties we hold and about nine in ten are like that, which means the old format was mostly saying the crop twice — “Kale · Red Russian Kale” — and the dot was making the repetition look deliberate. Now it says Red Russian Kale. The crop is still added when the variety genuinely does not carry it, which is exactly the case that got reported: Cara Cara Navel does not contain the word orange, so it becomes a Cara Cara Navel Orange. Lists inside the app keep the dot for now. It does a real job there, and nothing about it is confusing on a screen you are looking at — the problem was only ever the sentence.

  5. Setup stops inventing a planting date

    When you add plants during setup you are not asked when they went in. **The app filled the answer in anyway: today.**

    So a tomato added in August that had been in the ground since May was recorded as planted that morning — and every date the app gave afterwards was counted from a day nobody chose. Harvest windows, hardening dates, growth stages, all of it.

    **It hid itself twice.** The task that asks *"when did this actually go in?"* only appears for plants with no date, so it could never appear. The setup checklist item *"Say when you planted them"* counted any date as an answer, so it ticked itself the moment the plant was created. **Two safety nets, both blind to the same thing.**

    Setup now leaves the date blank, which is the truth, and both start working. You will be asked when each plant went in, and a rough answer is fine.

    **Nothing already entered was changed.** A date we invented and a date you gave look identical in the records, so we cannot tell them apart — if a plant added during setup shows a date that looks wrong, it is worth correcting on that plant’s page.

  6. Tap a day and you get the sky

    The day you tap in the weather strip now fills the screen with its own sky. The sun sits where it really sits at that hour — climbing through the morning, high at midday, low again by evening — and after dark it is a moon instead. The colors go with it: a rainy day is gray and low, a storm is dark and bruised, a clear night is deep violet. Under it, the temperature is large enough to read at arm's length, with anything of yours at risk that day, the wind, the forecaster's own words, and the hour-by-hour when we have it. There is a line at the bottom to ask about that day, already knowing which day you mean. The sun follows the real one: we know where your garden is, so a June day genuinely runs longer than a December one, and at six in the evening in summer it is still well up while in winter it has been down an hour. And the moon is the moon that is actually up tonight — a thin crescent when it is a thin crescent, half when it is half, lit on the correct side as it waxes and wanes. If you have not told us where your garden is, the sun simply follows the clock instead. The ground changes with the season too: fresh green in spring, deeper in summer, and brown through fall with leaves gathering on it as the season goes on — thin in September, thick by late November, and still there in January, because that is where they actually are. Snow and fog bring their own ground and cover it. The weather itself is drawn now, not just colored: clouds gather and darken from a clear day through to a storm, rain falls lightly or hard, snow drifts, and a thunderstorm gets its lightning. Fog is the one that is a wash rather than a drawing, because fog is not a thing overhead — it is the air you are standing in. And if your garden is in the southern hemisphere the seasons are the right way round for you. None of it is downloaded — the whole sky is drawn on your phone, so it works with no signal, which is where you usually are when you want it. One thing came off the screen: the paragraph listing plants we hold no heat figure for. That fact still lives on each plant's own page, where you are deciding about that plant — it was not earning its place on a weather sheet.

  7. The answer now knows which plant you tapped

    Open the chat standing on one of your plants and the app sends the assistant that plant's own diary. It has been doing that for a while. What it never did was say which plant the diary belonged to. Every other line in the same message named its plant, so the assistant was left to work it out — and the easiest way to work it out was to match a diary line against a named one. If you water two plants on the same day and write the same words about both, that match lands on the wrong plant. Worse, it lands there confidently, because it looks like it was checked. So the answer could be about your bean while you were standing at your lavender, and nothing about it would look wrong. The plant is now named, and its row in the list of your plants is marked, which is the part that matters if you have two of the same thing in the same bed — two rows of radishes are two rows of radishes, and a name alone cannot tell them apart. This also fixes a quieter one: if you had never written anything down about that plant, the app used to send nothing at all to say which plant you meant, so the assistant had least to go on exactly when it needed the help most. Nothing you had written down was ever wrong or lost. What was wrong was which plant the answer thought it was about.

  8. The chat stopped dropping your oldest plants first

    Every question you ask sends the chat a list of what is in your garden, capped at forty so the answer stays quick. **Under forty plants this never affected you.**

    Over forty, it used to send the forty most recently planted — **so the first thing dropped was whatever had been in the ground longest.** An apple tree planted five years ago fell out of the list before this spring’s lettuce did, and the answer came back as though the tree was not there. That reads as the app forgetting your tree, which is the opposite of the whole point.

    Now it takes **twenty from each end** — the twenty longest-established and the twenty most recently planted. What gets left out is the middle of the season, where one row of beans is much like another. **It is not a judgment that trees matter more than lettuce**; it is that cutting from one end always loses something you wanted.

    **And it now says when the list was cut**, so an answer can tell you it might not be seeing a plant instead of quietly assuming that plant does not exist.

  9. The entries it says it used are checked now

    When you ask your garden a question, the answer marks which of your journal entries it drew on, and the app lists them underneath: “It used what you had written down.” Until today we were not checking those marks against what we had actually sent. So an entry could turn up on that list having played no part in the answer — most likely one the assistant had seen earlier in the same conversation and remembered, rather than anything invented. It is a small thing that undermines a large one. The point of that list is to let you check an answer against your own record, and it only does that job if every line on it is genuinely what was read. So the server now drops any entry it cannot confirm it handed over. You may see fewer entries listed, or sometimes none at all. None does not mean the answer ignored your garden — much of what we send is your plants, your dates and your beds rather than individual notes, and only notes can be listed this way. It means nothing on that list would have been true. Nothing else changed: the same information reaches the assistant as before, and the answers are the same answers.

  10. The free-questions card sits where you can see it

    When you have used your free questions, the card explaining that sat at the very bottom of the Talk screen. That is the right place when you have a conversation above it — it lands where the message box was, which is where you are already looking. But on a phone you have just signed in on, your allowance arrives before your old conversations do, so for a moment there is nothing above it: the card floated at the foot of a tall empty screen, which reads as something that failed to load rather than as an answer. With nothing above it, the card now sits in the middle of the space instead. Same card, same words. Your conversations are not lost while this happens — they appear in the menu at the top left as soon as they have come across.

  11. The heat alert opens the day it warned you about

    Tapping a hot weather alert used to drop you on your job list, and whatever job happened to be first. So an alert reading “97° tomorrow, move your orange and wax bean into the shade” could land on a card about a different pair of plants, at a different temperature, on a different day. Neither screen was wrong: the alert names the plants we hold a heat limit for and the hottest day of the spell, while the job named the plants sharing a pot and today. Together they read as the app arguing with itself about the same afternoon. The tap now opens the day the warning was about, with that day’s temperature and the plants at risk on it. A warning takes you to the warning, and the jobs are still there when you want them. One more thing, for anyone who comes back to an old alert. These go out the evening before the hot weather starts, so if you tap one several days later the day it named has already gone by. The app says so rather than opening a different day and letting you believe it was the right one.

  12. The "how much?" question was opening off the screen

    Tapping Picked on one of your plants records the harvest and then asks how much you got. On a plant page that question was opening roughly three thousand pixels below the bottom of your screen. You could not see it. What you got instead was the page going dim and stopping responding, with no way to tell why — the question was open the whole time, just nowhere you could look. The entry itself was always saved first, so nothing was lost; you simply could not answer the amount, and the screen appeared to freeze. The cause was a leftover from the small slide-in animation every screen uses. It moves nothing once it has finished, but it quietly changes what "fill the screen" means for anything drawn on top — so the question was filling the whole scrollable page instead of the part you were looking at. Fixed, and there is now a check that fails the build if any pop-up is built the same way, because nothing about it looked wrong from the outside.

  13. The message box has its own line now

    The box you type your question into used to share one row with all the buttons beside it — camera, photos, microphone, send. Adding the new + for attaching a plant made that row too crowded to use: on a phone the typing area was down to about five characters wide, and the words "Ask your garden" no longer fitted on one line. It is now laid out the way most chat apps are: your question gets the full width on its own line, and the buttons sit in a row underneath it. The box still grows as you type and stops growing at about five lines, the same as before. One quiet improvement came with it: the box used to switch between two different layouts depending on how much you had typed, and a question of exactly the wrong length could make it flicker between them. There is only one layout now, so there is nothing left to flicker between.

  14. The plant comes with you, even mid-conversation

    Tapping the ask button from one of your plants opens the chat already knowing which plant you meant — that has worked for a while. But it only worked when the chat was empty. If you already had a conversation open, the plant was quietly dropped: nothing failed, nothing said so, and the answer simply came back about plants in general. That reads as the app being vague rather than as the app losing something, which is why it lasted. It now comes with you whichever way you arrive. Two related things came with the fix. A plant and a place can travel together now, so a question about your tomatoes on the front porch can carry both — the server always accepted that, and only the app was insisting on one. And what a conversation is about is now recorded message by message rather than stamped on the whole thread, so a conversation you reopen in October still shows what it was actually about at the time, instead of being quietly rewritten to match whatever you attached last. One honest limit while we finish the other half: something you attach partway through a conversation lives on the phone you attached it on. Open that conversation on a different device and it falls back to the plant you started it from, which does travel.

  15. A heat warning now names the plants it could not check

    The first real heat alert this app ever sent went out this evening. It named two plants. **The gardener has four.**

    The other two — a lavender and an apricot — have no heat threshold in our records, so they were not checked and found safe. **They were never checked.** Nothing said so, and a warning that names some of your plants makes the rest look fine.

    Tap a hot-weather card now and it lists the plants it could not look at, by name, with the distinction that matters: **we hold no figure for them, which is not the same as them being safe.**

    **It is deliberately not on the lock screen.** A push notification has about a dozen characters spare after the instruction, and a frightening half-sentence about unchecked plants would be worse than the silence it replaces. The short answer stays short; the honest detail sits behind the tap where there is room for it to be fair.

    **Filling in the missing figures is separate work** — we hold a heat threshold for 39 of our 152 crops. This does not fix that. It stops the gap being invisible.

  16. The pot-size note stopped shouting

    On 111 crop pages the container-size line read "2-3 Gal - Low End Is The Minimum, High End Is Better". Every word capitalized, like a machine reading out a form. The cause: that column is styled to capitalize short values, which is right for turning "full sun" into "Full Sun" and wrong the moment a whole sentence goes through it. The note now sits in its own piece of the line and keeps normal sentence case, while the value beside it is still tidied up the way it always was. Nothing about the numbers changed — only how loudly the sentence next to them was being read out.

  17. The row where spraying will not help

    Every crop page has a panel of what tends to go wrong, and until today it had two rows: pests and diseases. Some of what sat under diseases was neither. Blossom end rot is a watering problem, sunscald is too much sun on a fruit, and root knot nematodes are an animal — all three were printed as illnesses because the record a crop keeps has only those two lists, so whatever was not a pest became a disease by default. The page now asks what each problem actually is and puts the growing problems in their own row, labeled not illnesses, with a line saying these come from water, feeding or sun and are fixed by changing what you do rather than by spraying. Six crops read differently today — tomato, pepper, watermelon and goji gained that row, and potato and carrot moved their nematodes across to pests. The rule underneath it is the one that matters more than the six: a problem we hold no record for does not get guessed at. It stays in the row it was already in and we say nothing, because 189 of the 327 problems named across these pages have no entry telling us which kind they are, and an unknown shown as an illness is exactly how a plant doing nothing wrong gets treated for something it has not got.

  18. The sun question finally changes something

    The app asks whether each spot in your garden gets full sun, part sun or shade. **Until today nothing read the answer.** A bed you had marked as shade still got a heat card telling you that *"shade in the afternoon helps"*.

    Nik spotted it and said so: he could answer the question and it changed nothing.

    Now, when every plant in a heat warning stands somewhere you have marked as shade, the card drops that line and gives you the half that still applies — water in the morning, keep an eye on them.

    **It does not change whether you get warned.** Forecast temperatures are measured in the shade to begin with, so there is no honest way for us to say a sunny bed runs a particular number of degrees hotter. Inventing one would be worse than saying nothing. **And a spot nobody has asked you about is not assumed to be shady** — not being asked is not an answer.

  19. The weather drawing got a lot better, and the sun stopped disappearing

    The picture at the top of your day is drawn on your phone rather than downloaded, which is why it can move with the hour and still work with no signal. The first version of that drawing was not good enough. The clouds were a row of identical lumps with a straight line across the bottom, the rain was one mark repeated at one angle, and the snow was made of small squares. They are redrawn: clouds are one soft shape now, wide in the middle and smaller at the edges, with a shaded underside instead of a bar. Rain falls in strokes that vary in length and weight. Snow is round. And fog, which was honestly just a gray rectangle before, is layered banks of haze that sit thickest near the ground. The bigger fix is one you would have felt without being able to name it. The sun climbs and sinks across the picture as the day goes on, so a glance tells you roughly what time it is. On cloudy, rainy, snowy, stormy and foggy days it was not being drawn at all, so on five of the eight kinds of day the picture quietly stopped telling you that. Now it shows through the cloud as a bright patch in the right place, which is what an overcast sky actually looks like. The moon does the same after dark.

  20. Your week strip stopped reporting the weather and started briefing you on your garden

    Today and the next two days are large now, with the rest of the week scrolling sideways — three, because that is how far ahead you can still do something about it. A day only gets marked when a plant you actually own is at risk on it, and the mark is a band across the tile with the hazard and the number of plants on it, not a dot you have to hunt for. It also tells you the window rather than the day: "from Wednesday until Monday" is the part a forecast never gives you and the part that decides when the fleece comes off. Tap a marked day and a panel opens over the screen with the plants, what the heat or cold does to each of them, the wind and the Weather Service’s own words for that day, and a button that starts a chat with the question already written for you to edit. And it now tells you what it could NOT check: nobody has published a heat threshold for about half of common food crops, so where we have no figure the app says so rather than implying those plants were looked at and found fine.

  21. Three blanks that meant three different things

    Every plant page has a line for warning signs — things worth watching for, like a lettuce running to seed. On most plants that line is empty, and the page tells you the gap is deliberate rather than leaving you to wonder. But an empty line can mean more than one thing, and until today they all read the same. Swiss chard is empty because Minnesota Extension says outright that chard will not run to seed in its first summer, however hot it gets — that is an answer, and a reassuring one, and the page was keeping it to itself. Kale is empty because five university pages were read and not one of them names a sign, so the answer is genuinely missing. And parsley does run to seed, but in its second year, because that is what a two-year plant does — so watching the weather for it would have told you the wrong thing. Those three pages now say which kind of empty they are, in a sentence each. The rest still show the general line, and it is still true: we have no figure to put there, and we looked.

  22. Two plots, two forecasts

    If you garden in more than one place, the frost and hot-spell alerts used to look up the weather for **one** of your gardens — whichever came back first, with no rule about which — and then judge **every plant you own** against that one number.

    **That is not just the second plot going unwatched.** A plot in a valley and a plot up a hill can differ by several degrees on a clear night. Judged by the wrong one you would get a warning about plants that were never at risk, or **silence about plants that froze.**

    Each garden is now checked against the forecast for where it actually is, and only the plants standing there are judged by it. **You still get one alert a night, not one per plot.**

    The hot-spell alert describes one garden — whichever spell starts soonest. A heat warning carries a peak, a start day and a length together, and blending two places would give you one plot’s peak beside another plot’s timing. **The other plot is still assessed on its own and warns on its own day.**

  23. Two trays of carrots are carrots

    If you have not given your seed trays their own names, each one is labeled with its crop. So two trays of carrots left outside made the bring-in reminder read "Carrot and Carrot are outside" — right about your trays, and not a sentence anybody would say out loud. It now names each thing once, however many trays of it are out there. The button still says bring them in, because there are still two trays to carry. This is the same fix that landed earlier today on the cards that tell you what frost ends tonight and what is at risk in the heat — and it is here because we went back over that fix afterward and found it had stopped at the edge of one file. If you named your trays yourself, you still see both names.

  24. We ask your phone not to delete your garden

    Everything you record goes onto your phone first, which is why the app works standing in a bed with no signal. That store belongs to the browser, and a browser is allowed to clear it out when it wants space back. Safari is the one worth knowing about: it drops a site’s data after roughly a week of Safari use without visiting that site. That is a week of using the browser, not a week on the calendar, so a gardener who goes quiet through a wet two weeks while reading the news every day is on a clock they cannot see. The app now asks the browser to hold on to your garden, and it asks as soon as you add your first plant rather than the moment you arrive — that is the first point there is anything worth keeping, and browsers are more likely to agree for a site somebody actually uses. The browser can still say no and we cannot make it say yes. This is also not a backup, and we would rather be plain about that: it stops the browser tidying your garden away on its own, and it does nothing about a lost phone or a browser you clear yourself. An account is still the only thing that survives those.

  25. Your carrots are one line, not four

    Four rows of carrots are four entries in your garden, and when a card needed to say which plants it was about, it said all four: "carrot, carrot and carrot and 1 more". Right about your garden, and not a sentence anybody would say out loud. The cards that tell you what frost ends tonight, what is at risk in the heat, what will run to seed, and which plants we are still missing a detail for now name each thing once. This was reported and fixed twice before today on the screens it was noticed on, and it kept coming back for a reason worth saying plainly: nobody had counted how many places did it. There were thirteen, and the two fixes covered the ones that had been reported. The fix now sits in the one piece of code all thirteen use, so the sentences nobody has complained about yet are right too. If you gave two plants of the same kind their own names, you still see both — Sungold and Brandywine stay two things, because they are.

  26. A button that cannot go yet now looks like it cannot go yet

    On the add-a-plant screen there are two ways to finish: the big button, and a line of text under it. Neither will do anything until you have picked a plant and said how it started. The big button showed that — it faded, and it changed its own words to "Pick a plant first". The line under it did not. It stayed bright and looked completely tappable while doing nothing at all, right beneath a button that was busy explaining itself. It now fades the same amount as the button above it. The same gap was quietly true of a couple of other link-shaped buttons elsewhere in the app — the ones that go quiet for a moment while something saves — and those are fixed with it.

  27. A change we cannot file is refused now, not quietly reversed

    If your phone sent us something the server did not recognize — usually because the app updated before the server did — the old value quietly went back, your phone pulled it down, and the answer you had just given was overwritten by the previous one. A garden with no real frost could go back to being dated off a winter zone, on every device, with nothing said anywhere. It looked like data, which is why nobody reported it. Now the server refuses the change and says so, and you see it on the backup line: the server will not take some of them, with a link to the list. Nothing is lost — the change stays on your phone and goes up as soon as the server understands it. The same protection now covers your location, your frost dates, your winter zone and your spray preference, and it applies to a value of the wrong shape as well as an unfamiliar one: a latitude sent as text used to be dropped just as silently.

  28. If your garden never freezes, you can finally set it up

    Pin a garden in Miami, the Florida Keys or coastal southern California and the app used to tell you “it may be water — try a point on the land nearby”, then refuse to save anything. You are not on water, and there was no way past it: setup could never finish, so every date stayed a generic zone 6b guess. The cause was ours. The map we look frost dates up in stores a blank for a square of ocean and the same blank for a garden that never freezes, and we read every blank as ocean — while our own records had Miami and Key West down as never hitting freezing the whole time. The app now tells the two apart. If nothing near you has ever recorded a freeze it says so; if frost turns up some years but not most — which is much of that same coastline — it says that instead, because those are different things and the second one is the one that catches people out. Either way you can carry on and finish setting up. You get no frost dates, because there are none to give you, and nothing will invent one: no last-frost countdown, no “safe to plant out after” built on a date we made up. Everything that does not hang off frost works exactly as it always did.

  29. A photo can now tell us how tall a plant is — and still will not guess its age

    If a picture shows roughly how tall a plant is, we offer that as something you can tap to confirm, and confirming it writes the height onto the plant. Most of this already existed and went nowhere: the model was asked for a height on every photo, the answer was range-checked, the question was put to you, and there was no line of code that wrote it down. It also read in meters, which is the wrong unit for an app that talks in Fahrenheit and USDA zones, so it reads in feet and inches now. Age is different and we will not guess it. A photograph of a tree with nothing beside it for scale cannot tell you whether it is three years old or six, and every date we work out for that plant hangs off its age — when it should fruit, whether it is old enough for a hard prune, what a normal first season looks like. Being wrong there is wrong in a way nobody could spot. So we ask you instead, and "I bought it at about this size" is a perfectly good answer. The same goes for when it was planted, and whether a cane fruits on old wood or new.

  30. A bed now says what goes in it, not just how much

    This morning the app learned how many bags of soil a new raised bed takes. It said, on its own screen, that it could tell you **how much** and not **what of** — because what to fill a bed with is gardening advice, and getting it wrong costs a season. That half is now sourced. A bed tells you how much of the fill should be compost: **a quarter to a half of it**, with the rest topsoil or a soilless growing mix. **It is a range because the sources give a range.** We read four US extension services — Maryland, Utah State, Minnesota and Penn State — and they land at 25-50%, 30-50%, a third to a half, and 30%. Every one falls inside a quarter to a half, and not one of them publishes a single number, so neither do we. **Half is a ceiling, not a target**, and Minnesota gives the reason: too much compost dries out and then actually repels water. A bed filled with compost alone is the common and expensive mistake. **What we deliberately will not do is hand you a three-way shopping list.** The tidy advice you see online — a third compost, a third topsoil, a third perlite — turns out to be one option from one of the four, offered as a possibility rather than the rule. We went looking for it expecting to confirm it and did not. Printing "6 bags of compost, 6 of topsoil, 3 of perlite" would look far more helpful than it is. **And the thing that changes the answer most is what is under the bed** — turf, heavy clay, an existing bed and a patio each want a different fill, which is how Maryland organizes the whole question. We do not ask you that yet, so the screen says so rather than pretending the number covers it. One more gap worth naming: every figure we found is stated for vegetables. Nobody we read says what a perennial bed wants, so we do not say either.