Units correctness: exact imperial entry, garden grid at dimension scale (#47)
Build image / build-and-push (push) Successful in 8s
Copy a garden (deep duplicate) from the gardens list
Build image / build-and-push (push) Successful in 8s
Configurable grid + snap-to-grid in the layout system
Build image / build-and-push (push) Successful in 15s
Public read-only share link (no login / no OIDC) (#41)
Build image / build-and-push (push) Successful in 15s
Fix plant placement + add a Seed Tray (#39)
Build image / build-and-push (push) Successful in 9s
Agent seam: bulk ops (FillRegion/ClearObject/DescribeGarden) + DefineTool wrappers (#19)
Build image / build-and-push (push) Successful in 15s
Polish: imperial, clear-bed, keyboard nudging, empty states (#18)
Build image / build-and-push (push) Successful in 8s
Sharing UI: invite by email, roles, read-only viewer mode (#17)
Build image / build-and-push (push) Successful in 17s
Sharing backend: shares CRUD + ACL enforcement everywhere (#16)
Build image / build-and-push (push) Successful in 5s
Plops editor: focus mode, place/move/resize, semantic zoom (#15)
Build image / build-and-push (push) Successful in 9s
Plantings backend: plop CRUD, derived counts, removed_at (#14)
Build image / build-and-push (push) Successful in 5s
Plant catalog UI: /plants page + PlantPicker (#13)
Build image / build-and-push (push) Successful in 8s
Plant catalog backend: CRUD + seeded built-ins (#12)
Build image / build-and-push (push) Successful in 5s
Field editor: palette, select/move/resize/rotate, inspector, optimistic sync (#11)
Build image / build-and-push (push) Successful in 8s
Canvas foundation: SVG viewport, pan/zoom/pinch, geometry lib (#9)
Build image / build-and-push (push) Successful in 24s
Garden objects backend: polymorphic CRUD + /full endpoint (#10)
Build image / build-and-push (push) Successful in 7s
Gardens UI: list page + create/edit/delete (#8)
Build image / build-and-push (push) Successful in 7s
Gardens CRUD + service-layer conventions (actor, version guard, 409) (#7)
Build image / build-and-push (push) Successful in 5s
Auth UI: login/register pages, OIDC button, route guard (#6)
Build image / build-and-push (push) Successful in 7s
OIDC login via Authentik: PKCE, JIT provisioning, email linking (#5)
Build image / build-and-push (push) Successful in 9s