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.
-
"What did I miss?" now asks the chat, which answers it far better
Three buttons sat side by side on the Talk screen, identical in every way. Two of them put the question in the box so the chat could answer it. The third quietly took you somewhere else — a screen about the jobs that come round once a year, like winter pruning. If you were growing lettuce and tomatoes it told you there was nothing, so you would reasonably conclude the app had nothing to say. Typing those same four words instead got you the best summary in the app: every plant, every bed, what you had watered, what had come up and what was running late. Now the button does that. The once-a-year screen is still there, doing its real job under a name that matches it, and you reach it from This week where the rest of your trees and bushes already live.
-
The app asked where a plant was, and you had already told it
A standing job read "say where the plants are". If your tomatoes live on the front porch you have already said that — the porch is a bed and it was on the same screen — so being asked again read as the app having forgotten. It was never asking that: the five buttons behind it are a seed tray, a pot, a raised bed, straight in the ground, or a greenhouse, which is what the roots are in rather than where the plant is standing. It now asks "What is it planted in?" and names the bed you already gave us above the buttons. Two things came out of looking at it. Four of the five answers were being saved and then ignored — only "a pot" ever reached the part of the app that works out watering, so a tray of seedlings kept getting the advice for a row in open soil. That is fixed, and answers already on file started working with it. And a job covering several plants used to name the first plant's bed as though it were everyone's, so three plants across two beds read as "3 plants · Back bed"; it now names a bed only when they genuinely share one.
-
A plant with no date was being given a brand-new plant’s jobs
Add a plant by talking to the app and the date is optional — a plant is worth adding even when you cannot remember when it went in. The catch is what happened next: with no date, everything we showed you was worked out from a typical plant of that crop planted right about now. On a tree grown from a pip years ago that meant being told to mulch it, weed round it and rub the suckers off. The app now asks. One plant at a time, one tap: earlier this year, last year, two or three years ago, or longer ago than that — and a date box for anyone who knows the day. Answer it and the brand-new-plant jobs drop away immediately. A rough answer is worth far more than none, because for a tree the year is the whole of it. The date box on the plant page has existed for a while; nothing ever pointed anyone at it, which was the actual complaint.
-
Profile said “an 800-foot square” to people who had given us a ZIP
Pin your garden with a street address, or let your phone share its location, and your frost dates come from an 800-foot square around that point. Pin it with a ZIP and they come from the middle of a postal area, which can be a few miles from where you actually garden — in the mountains, a different growing season. Profile said the first thing to everybody, because the app worked out which kind it had at the moment you pinned it and then threw that away. It now keeps it, says which one you have, and only offers to sharpen it when sharpening would actually change anything. A garden pinned before today keeps the general wording rather than us guessing; re-pin it and it becomes specific. The admin view we use for support now shows the coordinates and how they were obtained too, which is what made the gap visible in the first place.
-
Ask about a problem on your plant and the answer says whose plant it was written about
When you ask what something looks like — powdery mildew, squash bugs, bacterial blight — the answer comes from text we wrote off a named extension page, and it tells you which one. Where that page covers something narrower than your plant, it says so too, because a description written for tomatoes is not automatically a description of the same trouble on dill. That was true of most of our problem descriptions and not all of them: of ninety-eight, twenty said nothing on the subject either way, and there was no way to tell those from the ones somebody had checked and found nothing to declare. All ninety-eight now record an answer. Most of them turned out to need no note at all, which is the right outcome and worth saying plainly: a page about squash bugs, used on eight kinds of squash, is not narrower than what we hang on it. One was a real find. Nine of our crops list bacterial blight, and the description we hold is the bean one, from a University of California page about dry beans. Mulberry, mustard and quinoa also list it — each from their own extension source, each a genuinely different organism sharing the name. All four are correct. The answer now says which one the description belongs to, instead of handing a mulberry grower a page about beans. Nothing was deleted to tidy this up: the attachments were right, and what was missing was the sentence saying whose.
-
Your garden list stopped talking about our schedule
A few plants on the Garden tab used to say "nothing scheduled" — which is a sentence about our calendar, not about your plant, on the screen whose whole job is showing you the garden. On a young apple it was worse than useless: the row said nothing was scheduled and then named a job to do in the same breath. Now the job simply leads — "Check for pests" — and a plant that has finished everything we track for the year says so. Nothing else changed: a plant in a stage still names its stage, one with a date still gives the date, and seeds you have not put in yet still say when you are planting them.
-
Enter your own frost dates
If you have kept records for your own garden, they beat anything we can model for it. Pin my garden now has “I have my own records” — type your last spring frost and your first fall frost and those are the dates the whole app uses. Only the month and day are read, so pick any year. This matters most outside the lower 48, where our map holds nothing and the lookup simply would not save: Alaska, Hawaii and the territories now have a route to real dates, the setup nag stops, and every journal entry that was stamped blank while unpinned fills itself in the moment you save.
-
Five states now have their own frost page, station by station
Every site that answers "when is the last frost in Ohio" gives you one date. Ohio has 130 weather stations and 32 days between the first of them to clear frost and the last. Texas has 434 stations and 88 days — from January 30 at Bruni to April 28 at Dalhart. Planting to a state average in the wrong half of Texas is not a small error. Ohio, Texas, Michigan, Florida and Georgia now have their own page: the spread, the two stations at either end with their elevations, and then every station in the state — its cautious date, its even-odds date, its early date, and how long its growing season runs. That last number is in NOAA’s data and almost nobody publishes it per station. Two things worth knowing before you read one. Florida’s page lists 59 stations and says plainly that 80 more were left out, because they do not freeze in at least nine years in ten and a "last frost" for those is a number without a meaning. And the cautious date sits later on the page than the early one, which looks like a mistake and is not — in spring the odds run backwards from the way they run in autumn, and the page says so where you will see it. Five states is a pilot. The rest follow if these earn their keep.
-
A pot is sold in gallons, so we stopped asking it for width and length
Telling the app about a pot meant answering how wide and how long it was — which is the measurement nobody has. A raised bed has a footprint you walk around; a pot has a volume, it is stamped on the bottom, and gallons is what you ask for at the nursery. It is also the number that decides whether a tomato can live in it, which width times length never could. Pots are now asked in gallons, with the standard nursery sizes named so you are not guessing: 1, 3, 5, 7 and 15. If you already measured a pot the old way your numbers are still there, shown back to you on that pot with a note. We did not convert them. Turning a rectangle into a volume means inventing a depth you never gave us, and we would rather show you what you actually said than quietly invent a number and hand it back as yours.
-
Telling the chat about one plant could file it against another
You can now just tell the chat what you have seen — "the carrots have their proper leaves now" — and it records it and puts the jobs that were waiting on that back on your list. No button to press, no form. That went live this morning, and within the hour we found a hole in it and closed it. A message like that did not carry which plant you meant. It was filed against whatever plant the conversation happened to be about. So if you were talking about your tomato and mentioned the carrots in passing, the note landed on the tomato — and the app then started offering you jobs for leaves that plant had never grown. Nothing about that record looked wrong afterwards. It was a real observation, correctly dated, on the wrong plant, and nothing further down the line could have spotted it. Now, if we cannot tell which plant you mean, we do not guess: we hold off rather than file it somewhere plausible. Name the crop and it records exactly as before. This is the same rule we already use for pests, where guessing which plant a problem belongs to would be worse than asking.
-
Is this actually my plant?
A tester told us our only lavender was English lavender, and asked whether that was right. It was — but it pointed at a real problem. Five of our plant pages are named for a whole group and written about one member of it.
The Latin name was already on the page, and it does not help. Somebody holding a French lavender reads "Lavandula angustifolia" and has no way to know it means "not yours".
So those five now say it in words. Lavender says French and Spanish lavender are different plants. Chamomile says the same about the Roman kind. Pear says these are the European ones — Bartlett, Bosc, Anjou — and Asian pears are a different tree. Raspberry says black raspberries are a different plant, not a different color.
Artichoke is the good one: Jerusalem artichoke is unrelated, we already have a page for it, and the note now links straight there.
We checked the other eighteen plants whose names could have the same problem. They are fine — "carrots" is just the plural of carrot, and yarrow really does mean common yarrow. Saying it on all twenty-three would have been noise; saying it on five is a warning.
-
It now hears what you tell it
Some jobs wait on something only you can see — the first proper leaves, fruit starting to turn. The app held those back until it knew, which was right, except it had no way to hear the answer and no way to ask the question. So it waited forever.
It now asks, in plain terms — "do the carrots have proper leaves yet?" — and answering releases the jobs that were waiting. That covers nearly every job the app was ever holding for a sign, rather than the handful it could work out from your journal.
-
"Not yet" is an answer now
When the app asked whether something had come up and you tapped "Not yet", it recorded nothing — only a note to stop asking that day. What you actually told it was thrown away.
It now remembers, and it behaves differently depending on when you said it. Early on, it goes quiet: a seed three days into a five-day window has not failed at anything, and asking again tomorrow would say we did not believe you. Once the plant is genuinely past when it should have done the thing, it speaks up — "the carrot should have its first proper leaves by now" — because that is the one thing the app can notice before you do.
It never says the plant failed. It reports what the record expects, and you are still the one looking at it.
-
"Still nothing up" now counts, wherever you say it
Earlier today, tapping "Not yet" on your daily list started being recorded properly. **Saying the same thing in the chat still went nowhere** — there was no way for it to become a fact about your plant, only a sympathetic reply.
Now it counts. Tell the chat "the carrots still have not come up" and it records that, and stops asking you about it until the plant is genuinely overdue.
**It never means the plant failed.** It is what you can see today. A cold spell, deep sowing or old seed all push things later, and a seed that has not come up eleven days after a five-day window is the most useful thing you can tell us — it is the one thing the app can spot before you do.
-
Pests arrive on your garden’s schedule, not a book’s
Most gardening advice tells you a month. **"Watch for asparagus beetle in early May."** Early May is Minnesota's — and if you are not in Minnesota it is either too early to bother or already too late.
So we sourced the arrival times and threw the months away. What is left is the thing the extension pages actually anchor to: **"start looking as the first spears push through the soil."** That happens wherever you are, on your date, without anyone needing to know your zip code.
If you grow one of the crops these pests go for, your daily list now carries one card — one for the whole garden, not one per plant — saying what to look for and what will tell you it is time.
**Two of the six we sourced are not here**, and they are the interesting ones: one starts when the forsythia blooms and one when a particular weed shows up. Both are real signals and neither is anything your garden record knows about, so we are not guessing at them.
-
Tell the chat what you see, and the jobs come back
When a job is waiting on something only you can see — whether the first proper leaves have appeared, say — you could settle it by answering the card on your daily list. **Saying the same thing in the chat did nothing.** Two ways to tell us, and only one of them worked.
Now the chat listens. Type "the carrots have their proper leaves now" and it records it, puts the waiting jobs back, and says so in one line: *"Noted — thin seedlings is back on the carrot's list."*
**There is no button asking you to confirm it.** You already said it. Being asked to tick a box agreeing with your own sentence is the app not listening, and the card only asks first because the card is the one doing the asking.
-
The app asks while you can still do something, and stops when you cannot
When a plant is late showing a sign — nothing up weeks after it should have sprouted — the app is meant to say so. **It was doing that backwards.**
It stayed quiet during the weeks when looking at the bed could still change something, then started asking once the plant's whole season was over. And then it never stopped: a bush bean that finished in sixty days was still being asked whether it had come up **six hundred and eighty-three days later.**
Now it asks the day after the plant is genuinely late, and stops a couple of weeks after the moment has passed. Nothing on a two-year-old plant is still asking about the week it was sown.
-
The app took nearly a minute to open, and it now takes seconds
Opening GardenTrack for the first time meant waiting while it downloaded every single thing it might ever need — all 152 crop pictures, all 151 variety lists, the entire frost map. Over five megabytes and more than three hundred separate requests, all of it before the first screen would appear. On a good connection that is slow. On a phone in a garden it was close to a minute of looking at nothing. It now downloads the app itself, about seventeen files, and starts. Everything else arrives quietly a few seconds later, once you are already using it — so the whole catalog still ends up on your phone for when you have no signal, exactly as before. What changed is when, not whether. Open a plant before that quiet download has caught up and its picture is fetched right then and kept, so you end up in the same place either way. Worth saying how this lasted: every build printed the line "precaches 322 files" and we read it as a sign of thoroughness for a full day. A count tells you how much happened. It never tells you what it cost the person waiting.
-
The beetle arrives with the spears
Ask about a problem and the app tells you what it looks like, from a page a university extension service wrote. Asparagus beetle was missing from that list, and now it is there — the six cream spots, the dark eggs standing on end in rows along the spears, and the spears that turn brown and bend into a hook. That makes 98 problems we can describe.
We also started recording something we had not before: when to start watching. Not a date — a date written in Minnesota is wrong in Georgia, and we would rather say nothing than say that. What the extension pages actually give, when they give anything, is a thing you can see: the asparagus beetle turns up as the first spears push through the soil, and the Colorado potato beetle gets moving as the potato leaves come up.
That kind of signal is worth more than a calendar, because it moves with your weather instead of somebody else's. Those two cost you nothing at all to watch — the plant is already in your garden and already on your screen. Two more need you to look at something else: the cabbage root fly comes out when forsythia is in full bloom, and the squash vine borer turns up when the chicory on the roadsides does. Still better than a date, but they ask something of you, and we record which kind each one is so we never mix them up.
Two more are the same free kind: your sweet corn is the signal for corn earworm, from the moment the tassels finish until the silks brown, and young beans are the signal for the bean leaf beetle until they have their first proper three-part leaves.
Six so far, each written down with the page we got it from. Nothing in the app uses them yet — that half comes next.
-
The photo answer now comes back in a known shape
When you point the camera at a plant, the app asks the model what it can see and writes the answer into that plant's record. Until now it found that answer by **searching the reply for something that looked like a list** — which worked, and was a guess.
The reply is now required to come back in an exact shape, so there is nothing to search for. **Anything outside the shape is rejected before it reaches your journal**, and we deleted the old searching code rather than keeping it as a backup — two ways of reading one answer is worse than one, because the second only runs when the first has already been surprised.
Nothing changes on screen. It is a change to how carefully the app treats what gets written down about your garden.
-
Three jobs held back, two mentioned
When the app is waiting to hear something before it can advise you, it tells you which jobs are on hold — naming a few and counting the rest: *"one more job is waiting on the same answer."*
**The count was wrong whenever a held-back job had no plain-English name.** Those jobs disappeared from the list, which is right, and from the count as well, which is not. Four jobs on hold could be described as three, with no mention that a fourth existed.
Now the count is of what is actually held back, whether or not we have a good way to name it. The list is still only the ones we can describe properly.
-
Two buttons that said nothing, and nothing looked wrong
The two small buttons next to the message box — one opens your camera, the other your photo library — had no name at all. Not a shortened name or a confusing one: nothing. To anyone using a screen reader they both announced as "button", so there was no way to tell which was which except by pressing one and finding out. The reason it lasted so long is worth saying: nothing looked wrong. The composer rendered exactly as designed, which is why it survived every visual review we have done. It was only found by driving the buttons rather than looking at them. They now say what they do, and the fix was made in the shared component so the next icon-only button cannot repeat it. They also grew from 36 to 44 pixels, the same minimum every other control in the app already honored, which matters most here because they are the closest-together pair we have. Two other things went with it. The time-of-day choices on your profile were running with no styling at all, because a rule meant to scope one thing had quietly taken two others with it. And choosing "I am home most days" was stored as exactly the same thing as never answering, so the app forgot it the moment you reloaded — it now remembers.
-
Two beds of the same crop, and we filed your note against the wrong one
This morning we closed a hole where telling the chat about one plant could file the note against a different plant. Then we went looking for the version of it we had missed, and found one that is far more likely to happen to a real gardener. If you grow carrots in two beds — which is completely ordinary — and you are in a conversation about the front bed, saying "the ones in the back have their leaves" put that note on the front bed. The check we had added that morning let it through, and it was right to: the crop matched. Carrots are carrots. What it could not see was which carrots. The app already knew the bed names all along; the part doing the filing was only ever looking at the crop. Now, when you have more than one planting of the same crop and it cannot tell which you mean, it holds off rather than picking one. Name the bed and it records straight away. And if you only grow carrots in one place, nothing changes — "the ones in the back" is just how people talk, and refusing to record it there would make the app annoying for everybody in order to protect a case that cannot happen to them.
-
Your plant had two harvest dates and the app was showing you both
A plant growing into autumn does not grow at the speed it did in June — shorter days and colder soil mean the last stretch to a ripe fruit takes longer than the day count on a seed packet. The app already allowed for that, and it turned out it was doing so in one place and not the other. The frost check used the corrected date. The harvest window on your plant page used the raw one. On a late crop that frost actually ends, the two could sit as much as four weeks apart — the same app telling you two different things about the same tomato, and the earlier of the two is the one that quietly suggests there is time when there might not be. Both now use the corrected date, so a late-season harvest window may have moved later by up to about four weeks. Nothing about your plant changed. We chose the later date on purpose: being told you will get fruit and then losing the crop is a worse afternoon than being told you will not and getting some anyway. The same fix removed a second, quieter disagreement underneath it — the two parts of the app were each keeping their own list of which growth stages count as a harvest, and one of the lists had left out curing. There is one list now.
-
Typing "wax" now finds the wax beans
The search on the add-a-plant screen had never looked at varieties. It searched crops — three fields, all of them the crop’s name — so typing "wax" asked which crop is called wax and answered honestly: Wax gourd. Four wax bean varieties, a wax onion and a wax pepper were sitting in the data the whole time, and nothing in the app could reach them. It is the front door, and the most confident thing a gardener can type — the exact name of the thing they planted — was the least likely to work. It now searches crops and varieties together: crops first, then a Varieties heading with the matching kinds grouped by crop, so all the beans sit together instead of interleaved with the gourds. Tapping a variety fills in both the crop and the kind in one tap, because finding "Golden Wax Bush Bean" and then asking you to pick "bush bean" from a list would be finding the thing and throwing half the answer away. The list of 3,174 varieties downloads once, quietly, the first time you open the screen, and works offline from then on.
-
Vine or bush, on every tomato
The tomato page has a column headed Habit. Until today it was blank on 112 of our 115 tomatoes.
That one word changes what you do on planting day. A vining tomato keeps growing until frost and needs something tall to climb. A bush tomato sets its crop over a few weeks and stops, and needs almost nothing. Same plant, same page, two completely different jobs — and we knew which was which the whole time.
The reason it was blank is dull and worth saying anyway: tomatoes record this under a different name than cucumbers and beans do, and the page only looked for the one name. Every tomato now says Bush or Vining, and so do the tomatillos.
Potatoes are the odd one out. They record the same thing, but on a potato it means whether the tubers form in one layer or all the way up the stem — which decides whether hilling is worth it. Calling that "vining" would be wrong, so the potato page shows nothing there until we have the right words for it. An empty column is worse than no column, so that one is hidden now instead.
-
A dark phone now opens dark, the zone buttons got bigger, and the sign-in screen says where the invite code goes
Three things a tester found by using the app rather than reading the code. **If your phone is set to dark, GardenTrack now opens dark** — on a brand new install, before you have chosen anything. It used to open bright cream whatever the phone said, and Profile would show Light switched on, which nobody had picked. The dark theme worked the whole time; the app simply never asked the phone. If you have chosen one yourself, that still wins and always will — a switch the phone could silently undo would be worse than not having asked. **The thirteen winter-cold number buttons are bigger.** They were 37 pixels wide against a 44 minimum we set ourselves, sitting close together, and the number you pick there decides whether we tell you a plant survives your winter outdoors. A near miss did not do nothing — it picked the number next door, quietly. They are now 44 wide with a wider gap. **And the sign-in screen now tells you where the invite code goes.** If you are holding one, the first screen asks only for your email and the invite box is on the screen after it — which was true before and said nowhere, so a tester with a code in their hand had every reason to think they were in the wrong place.
-
A photo answer could have gone missing on your other phone, and nothing would have said so
Every change in your garden gets a number, and your other devices ask for "everything newer than the last number I saw". That is how a plant you add on your phone turns up on your tablet. Handing out those numbers has to be one indivisible step — ask for the next number and take it in the same breath — because if two things ask at the same moment and it happens in two steps, they can both be given the SAME number. The second one is then invisible to any device that has already asked past it. For ever, with no error and no gap on screen: the change simply never arrives. We fixed that in the main sync path a couple of days ago, and two other places in the app were still doing it the old way — photo diagnoses, and the account-reset tool. Both now use the same single-step counter as everything else. **We have no evidence this bit anyone**, and we are not going to pretend otherwise: it needs two things happening in the same instant, and the beta is small. But it is the kind of fault you cannot find by looking, because the symptom is something you never see, so it is worth saying out loud rather than fixing quietly.
-
"Tonight ends the tomato seedlings" — about a tray on the kitchen windowsill
The frost, heat and cold warnings looked at every plant you are growing and never once asked where it was standing. So a seed tray indoors got told that tonight would finish it, and to go and cover it or pick what was on it. The same thing reached the notification that goes to your phone after dark, which is worse: a card you scroll past, an alarm at night you remember. And the reason we care about a warning firing when it should not is that it teaches people to ignore the ones that matter, and frost is the last warning we want anybody ignoring. Trays are now left out of all three. What has deliberately not changed is everything else. A pot still gets warned, because a potted tree on a porch is exactly the plant a frost kills — and since you can pick it up, bringing it in is something you can actually do that night. A greenhouse still gets warned, because it buys you a few degrees rather than making you safe, and we have no way of knowing whether yours is heated. A plant you have never told us the position of still gets warned, because not being asked is not the same as being fine. The one case where a tray really is out in the weather — one you have carried outside to harden off — already had its own alert, and it is better than a general frost card: it knows the temperature each crop can genuinely take and tells you to bring that tray in.
-
Add a photo of a bed and the app writes itself a note about it
When you add a picture of a plant, GardenTrack now has a quick look at it and writes down what it can see — the stage it is at, and whether anything has changed since the last picture of that same spot. Those notes collect in a conversation named after the bed, so a bed has one running notebook rather than a new chat for every photo. **It will not message you, buzz your phone, or take you anywhere.** That is deliberate and it is the whole point: somebody walking seven raised beds dropping pictures does not want to be interrupted after the first one. Open it when you feel like it, or never. Two honest limits. **There is no way to switch it off yet** — it only ever looks at photos you chose to add, and only writes into that one place, but a setting is a fair thing to want and it is not built. And **it does not use up any of your questions**: looking at a picture you uploaded is not a question you asked.