Agent: undo for real, past seasons, and tools that correct the record
Build image / build-and-push (push) Successful in 11s
Gadfly review (reusable) / review (pull_request) Successful in 10m8s
Adversarial Review (Gadfly) / review (pull_request) Successful in 10m8s

Six tools the live assistant kept needing and a prompt that knows about them:

- undo_change wraps RevertChangeSet(source=agent). A revert is its own change
  set, so Run reports the last one as the turn's handle when the turn changed
  nothing else — an undo-only reply keeps its "Undo this", which is now a redo.
- describe_garden takes a year: the season view (GardenFull(year)), pulled
  plops included, with removed/removedAt per group and per plop; list_years
  says which years have records. Rotation questions finally have data.
- update_planting corrects a plop's date, count, label, radius or seed lot in
  place; remove_planting, remove_plantings and clear_object take a removedAt so
  a harvest can be backdated.
- update_journal_entry / delete_journal_entry correct a note instead of
  stacking a contradicting one.
- update_garden renames/resizes/re-units a garden and rewrites its notes — and
  the notes now go into the system prompt as the gardener's standing facts, so
  "remember we're in zone 6a" persists across conversations.

describe_garden also reports the garden's notes, version and grid, which the
new tools need. Prompt, CLAUDE.md and DESIGN.md updated to match; UI step
labels for the new tools.

Co-Authored-By: Claude Fable 5 <[email protected]>
This commit is contained in:
2026-08-23 01:50:10 -04:00
co-authored by Claude Fable 5
parent 5317c92683
commit deec7bb917
10 changed files with 801 additions and 69 deletions
+6
View File
@@ -98,6 +98,7 @@ export interface AgentStep {
const TOOL_LABELS: Record<string, string> = {
list_gardens: 'Looking at your gardens',
describe_garden: 'Reading the garden',
list_years: 'Checking past seasons',
list_plantings: 'Reading a bed',
create_object: 'Adding a bed',
move_object: 'Moving a bed',
@@ -106,6 +107,7 @@ const TOOL_LABELS: Record<string, string> = {
place_planting: 'Planting',
fill_region: 'Filling a bed',
move_planting: 'Moving a plant',
update_planting: 'Correcting a planting',
remove_planting: 'Pulling a plant',
remove_plantings: 'Pulling plants',
clear_object: 'Clearing a bed',
@@ -114,10 +116,14 @@ const TOOL_LABELS: Record<string, string> = {
update_plant: 'Updating your catalog',
add_journal_entry: 'Writing a journal note',
read_journal: 'Reading the journal',
update_journal_entry: 'Correcting a journal note',
delete_journal_entry: 'Deleting a journal note',
read_history: 'Reading the history',
undo_change: 'Undoing a change',
list_seed_lots: 'Checking your seed',
record_seed_lot: 'Recording seed',
copy_garden: 'Copying the garden',
update_garden: 'Changing the garden',
}
export function describeStep(step: AgentStep): string {