2026-06-27 - 2026-07-27
Overview
63 Pull requests merged by 1 user
Merged
#123 Let plop notes be written from the UI (#85 item 5)
Merged
#122 Agent: add the corrective tools the toolbox was missing (#85 item 3)
Merged
#121 Reclaim mobile chrome: drop the editor's top banner, un-cramp the assistant
Merged
#120 Add "Scan a packet" to the editor's Plants mode
Merged
#119 Seed-packet scan UI: camera/upload → proposal → confirm (#102)
Merged
#118 Render the assistant's replies as Markdown
Merged
#117 Touch ergonomics: bigger handles + on-screen nudge pad (#104)
Merged
#116 Cleanup: ConfirmModal primitive, drop dead PageStub, full-width editor (#107)
Merged
#115 Touch-size the list-card footer actions (#105)
Merged
#114 Non-occluding mobile inspector + always-visible mode bar (#101)
Merged
#113 Route-level code splitting for faster mobile first paint (#106)
Merged
#112 Plants mode: recent-planted quick strip + clump/rows fill (#100)
Merged
#111 EXIF orientation: bake it in when normalizing images (#103)
Merged
#110 Editor mode model: mobile Fixtures/Plants/Journal/Assistant bar (#99)
Merged
#109 Mobile-first app shell: bottom tab nav + slim top bar (#98)
Merged
#108 Resume the last garden on this device (#97)
Merged
#95 Fill mode: a "grid" layout that plants individual plants in rows
Merged
#94 Seed-packet capture: vision model, extraction, catalog match, create (backend)
Merged
#93 Rough edges: mobile 100dvh, session-expiry in chat, sticky error toasts, journal date filter
Merged
#92 Make the canvas keyboard-reachable + trap focus in dialogs
Merged
#91 Image normalization: decode HEIC/webp/png/jpeg → JPEG
Merged
#90 Admin-gated Settings: runtime model selection, and is_admin enforced for the first time
Merged
#89 REST fill/clear on objects; clear-bed becomes one change set
Merged
#88 API-level tests for the /seed-lots route group
Merged
#87 Clear the SSE write deadline so an agent turn can outlive WriteTimeout
Merged
#76 Fill: honour the half-spacing edge rule when packing plops
Merged
#74 Let the container align the undo outcome note
Merged
#73 Commit history detached from cancellation on every path, not just failure
Merged
#72 Undo reported "nothing left to undo" after a successful undo
Merged
#71 Chat panel in the garden editor (#57)
Merged
#70 Agent runtime: majordomo in-process, Ollama Cloud config, chat endpoint (#56)
Merged
#69 Agent tools: plant lookup, plant creation, journal entries (#55)
Merged
#68 Seed shelf UI: source links, lots, and what's left (#51)
Merged
#67 Journal UI: write and read season notes where you're already looking (#53)
Merged
#66 Season view: filter the editor to a year (#54)
Merged
#65 Grow journal: time-stamped notes on gardens, beds and plantings (#52)
Merged
#64 Seed provenance + inventory: source links and seed lots (#50)
Merged
#63 History panel + undo in the editor (#49)
Merged
#62 Feet-and-inches entry: type 2' 7" instead of 2.6 (#59)
Merged
#61 Revision history: change sets + revisions + revert — the undo substrate (#48)
Merged
#60 Units correctness: exact imperial entry, garden grid at dimension scale (#47)
Merged
#46 Copy a garden (deep duplicate) from the gardens list
Merged
#45 Configurable grid + snap-to-grid in the layout system
Merged
#43 Public read-only share link (no login / no OIDC) (#41)
Merged
#42 Fix plant placement + add a Seed Tray (#39)
Merged
#38 Agent seam: bulk ops (FillRegion/ClearObject/DescribeGarden) + DefineTool wrappers (#19)
Merged
#37 Polish: imperial, clear-bed, keyboard nudging, empty states (#18)
Merged
#36 Sharing UI: invite by email, roles, read-only viewer mode (#17)
Merged
#35 Sharing backend: shares CRUD + ACL enforcement everywhere (#16)
Merged
#34 Plops editor: focus mode, place/move/resize, semantic zoom (#15)
Merged
#33 Plantings backend: plop CRUD, derived counts, removed_at (#14)
Merged
#32 Plant catalog UI: /plants page + PlantPicker (#13)
Merged
#31 Plant catalog backend: CRUD + seeded built-ins (#12)
Merged
#30 Field editor: palette, select/move/resize/rotate, inspector, optimistic sync (#11)
Merged
#29 Canvas foundation: SVG viewport, pan/zoom/pinch, geometry lib (#9)
Merged
#28 Garden objects backend: polymorphic CRUD + /full endpoint (#10)
Merged
#27 Gardens UI: list page + create/edit/delete (#8)
Merged
#26 Gardens CRUD + service-layer conventions (actor, version guard, 409) (#7)
Merged
#25 Auth UI: login/register pages, OIDC button, route guard (#6)
Merged
#24 OIDC login via Authentik: PKCE, JIT provisioning, email linking (#5)
Merged
#23 Local auth: users, sessions, register/login/logout/me (#4)
Merged
#22 CI: build and push the container image for Komodo deploys
Merged
#21 Phase 0: backend + frontend scaffold, single-binary build
58 Issues closed from 1 user
Closed
#58 Pansy v2 tracking epic — grow log & garden assistant
Closed
#20 Pansy v1 tracking epic
Closed
#81 Seed packet capture: photograph a packet, extract it with a vision model, create the plant and the lot
Closed
#102 Seed-packet scan UI (camera/upload → proposal → confirm)
Closed
#104 Touch ergonomics: bigger canvas handles, on-screen nudge, tap targets, sheet/toast z-index
Closed
#107 Cleanup: remove dead PageStub, extract ConfirmModal, editor max-width
Closed
#105 Responsive polish on non-editor pages (gardens list, plants, settings, modals)
Closed
#101 Non-occluding mobile inspector (object + plop)
Closed
#106 Route-level code splitting for faster mobile first paint
Closed
#100 Plants mode: recent-plants quick strip + clump/grid fill toggle
Closed
#103 EXIF orientation when normalizing uploaded images
Closed
#99 Editor mode model + mobile layout restructure (Fixtures · Plants · Journal · Assistant)
Closed
#98 Mobile app shell: bottom tab nav + slim top bar
Closed
#97 Resume the last garden on this device
Closed
#86 Epic: v3 — Settings, seed packet capture, and the gaps a sweep turned up
Closed
#77 The clump model can't draw a real planting: a filled bed is 3 blobs per row, not 8 rows of garlic
Closed
#84 The canvas is unreachable by keyboard: arrow-key nudging exists but nothing can select without a pointer
Closed
#80 Image normalization on upload: decode HEIC/webp and re-encode to JPEG, without breaking CGO_ENABLED=0
Closed
#79 Admin-gated Settings section: move model selection out of env, and enforce is_admin for the first time
Closed
#82 Bed filling and clearing are reachable only through the agent — and the UI's clear-bed writes N change sets
Closed
#83 The /seed-lots route group has no API-level tests — the exact gap the journal routes shipped through
Closed
#78 WriteTimeout: 30s silently truncates every agent turn over 30 seconds — the keep-alive from #73 can never work
Closed
#75 Fill packs plops against the bed edge wrong: full-pitch indent on staggered rows, overhang on the far edge
Closed
#57 Chat panel in the garden editor
Closed
#56 Agent runtime: majordomo in-process, Ollama Cloud config, chat endpoint
Closed
#55 Agent tools: plant lookup + creation (closes the gap blocking the demo task)
Closed
#51 Seed shelf UI: source links, lots, and what's left
Closed
#53 Journal UI: write and read season notes where you're already looking
Closed
#54 Season view: filter the editor to a year
Closed
#52 Grow journal: time-stamped notes on gardens, beds and plantings
Closed
#50 Seed provenance + inventory: source links on plants, seed_lots for what you actually bought
Closed
#49 History panel + undo in the editor
Closed
#59 Feet-and-inches entry: type 2' 7" instead of 2.6
Closed
#48 Revision history: change sets + revisions + revert (the undo substrate)
Closed
#47 Units correctness: exact imperial, garden grid at dimension scale, no silently-invisible grid
Closed
#44 Configurable grid + snap-to-grid in the layout editor
Closed
#41 Public read-only share link (no login / no OIDC)
Closed
#39 Fix plant placement flow + add a Seed Tray for quick placing
Closed
#40 Deploy to Komodo on main / manual dispatch (mirror mort)
Closed
#19 Agent seam: bulk ops (FillRegion/ClearObject/DescribeGarden) + DefineTool wrappers
Closed
#18 Polish: imperial display, mobile ergonomics, clear-bed, keyboard nudging
Closed
#17 Sharing UI: invite by email, role management, read-only viewer mode
Closed
#16 Sharing backend: shares CRUD + ACL enforcement everywhere
Closed
#15 Plops editor: focus mode, place/move/resize, semantic zoom
Closed
#14 Plantings backend: plop CRUD, derived counts, removed_at
Closed
#13 Plant catalog UI: /plants page + PlantPicker component
Closed
#12 Plant catalog backend: CRUD + seeded built-ins
Closed
#11 Field editor: palette, select/move/resize/rotate, inspector, optimistic sync
Closed
#9 Canvas foundation: SVG viewport, pan/zoom/pinch, geometry lib
Closed
#10 Garden objects backend: polymorphic CRUD + /full endpoint
Closed
#8 Gardens UI: list page + create/edit
Closed
#7 Gardens CRUD + service-layer conventions (actor, version guard, 409)
Closed
#6 Auth UI: login/register pages, OIDC button, route guard
Closed
#5 OIDC login via Authentik: PKCE flow, JIT provisioning, email linking
Closed
#4 Local auth: users, sessions, register/login/logout/me
Closed
#1 Backend scaffold: Go module, config, HTTP server, SQLite store + migrations
Closed
#2 Frontend scaffold: Vite + React + TypeScript + Tailwind + TanStack Router
Closed
#3 Single-binary build: embed web dist, SPA fallback, Makefile
60 Issues created by 1 user
Opened
#1 Backend scaffold: Go module, config, HTTP server, SQLite store + migrations
Opened
#2 Frontend scaffold: Vite + React + TypeScript + Tailwind + TanStack Router
Opened
#3 Single-binary build: embed web dist, SPA fallback, Makefile
Opened
#4 Local auth: users, sessions, register/login/logout/me
Opened
#5 OIDC login via Authentik: PKCE flow, JIT provisioning, email linking
Opened
#6 Auth UI: login/register pages, OIDC button, route guard
Opened
#7 Gardens CRUD + service-layer conventions (actor, version guard, 409)
Opened
#8 Gardens UI: list page + create/edit
Opened
#9 Canvas foundation: SVG viewport, pan/zoom/pinch, geometry lib
Opened
#10 Garden objects backend: polymorphic CRUD + /full endpoint
Opened
#11 Field editor: palette, select/move/resize/rotate, inspector, optimistic sync
Opened
#12 Plant catalog backend: CRUD + seeded built-ins
Opened
#13 Plant catalog UI: /plants page + PlantPicker component
Opened
#14 Plantings backend: plop CRUD, derived counts, removed_at
Opened
#15 Plops editor: focus mode, place/move/resize, semantic zoom
Opened
#16 Sharing backend: shares CRUD + ACL enforcement everywhere
Opened
#17 Sharing UI: invite by email, role management, read-only viewer mode
Opened
#18 Polish: imperial display, mobile ergonomics, clear-bed, keyboard nudging
Opened
#19 Agent seam: bulk ops (FillRegion/ClearObject/DescribeGarden) + DefineTool wrappers
Opened
#20 Pansy v1 tracking epic
Opened
#39 Fix plant placement flow + add a Seed Tray for quick placing
Opened
#40 Deploy to Komodo on main / manual dispatch (mirror mort)
Opened
#41 Public read-only share link (no login / no OIDC)
Opened
#44 Configurable grid + snap-to-grid in the layout editor
Opened
#47 Units correctness: exact imperial, garden grid at dimension scale, no silently-invisible grid
Opened
#48 Revision history: change sets + revisions + revert (the undo substrate)
Opened
#49 History panel + undo in the editor
Opened
#50 Seed provenance + inventory: source links on plants, seed_lots for what you actually bought
Opened
#51 Seed shelf UI: source links, lots, and what's left
Opened
#52 Grow journal: time-stamped notes on gardens, beds and plantings
Opened
#53 Journal UI: write and read season notes where you're already looking
Opened
#54 Season view: filter the editor to a year
Opened
#55 Agent tools: plant lookup + creation (closes the gap blocking the demo task)
Opened
#56 Agent runtime: majordomo in-process, Ollama Cloud config, chat endpoint
Opened
#57 Chat panel in the garden editor
Opened
#58 Pansy v2 tracking epic — grow log & garden assistant
Opened
#59 Feet-and-inches entry: type 2' 7" instead of 2.6
Opened
#75 Fill packs plops against the bed edge wrong: full-pitch indent on staggered rows, overhang on the far edge
Opened
#77 The clump model can't draw a real planting: a filled bed is 3 blobs per row, not 8 rows of garlic
Opened
#78 WriteTimeout: 30s silently truncates every agent turn over 30 seconds — the keep-alive from #73 can never work
Opened
#79 Admin-gated Settings section: move model selection out of env, and enforce is_admin for the first time
Opened
#80 Image normalization on upload: decode HEIC/webp and re-encode to JPEG, without breaking CGO_ENABLED=0
Opened
#81 Seed packet capture: photograph a packet, extract it with a vision model, create the plant and the lot
Opened
#82 Bed filling and clearing are reachable only through the agent — and the UI's clear-bed writes N change sets
Opened
#83 The /seed-lots route group has no API-level tests — the exact gap the journal routes shipped through
Opened
#84 The canvas is unreachable by keyboard: arrow-key nudging exists but nothing can select without a pointer
Opened
#85 Smaller rough edges: 100vh on mobile, unbounded history growth, agent toolbox gaps, and four UI/doc fixes
Opened
#86 Epic: v3 — Settings, seed packet capture, and the gaps a sweep turned up
Opened
#96 Epic: v4 — Mobile-first UI/UX overhaul
Opened
#97 Resume the last garden on this device
Opened
#98 Mobile app shell: bottom tab nav + slim top bar
Opened
#99 Editor mode model + mobile layout restructure (Fixtures · Plants · Journal · Assistant)
Opened
#100 Plants mode: recent-plants quick strip + clump/grid fill toggle
Opened
#101 Non-occluding mobile inspector (object + plop)
Opened
#102 Seed-packet scan UI (camera/upload → proposal → confirm)
Opened
#103 EXIF orientation when normalizing uploaded images
Opened
#104 Touch ergonomics: bigger canvas handles, on-screen nudge, tap targets, sheet/toast z-index
Opened
#105 Responsive polish on non-editor pages (gardens list, plants, settings, modals)
Opened
#106 Route-level code splitting for faster mobile first paint
Opened
#107 Cleanup: remove dead PageStub, extract ConfirmModal, editor max-width