feat: the CLI and TUI close their tier gaps (#132) #152

Merged
nalum merged 5 commits from feat/cli-tui-tier-gaps into main 2026-08-18 16:44:21 +00:00
Owner

Closes #132. PR 14 of the #137 stack, based on #151. Five commits:

  1. system group — system set gains --mcp-enabled (the switch was web-only) and a new system release-notes command prints any published release entry; the SDK grows the missing ReleaseNotes wrapper and the mcp_enabled parameter on UpdateSettings.
  2. list group — lists had no cobra path at all: ls, read, create, rename, uncheck-all, delete land (entries ride the item group's --list/set-list from PR #143).
  3. meal + rota groups — the largest whole-domain hole: pkg/client's meals.go and mealrota.go get their first callers. meal carries the library (ls/read/create/update/delete/push-ingredients); rota the standing week (show, week, set-slot, set-timezone, override, clear-override).
  4. notification group — the inbox: ls, mark-read, mark-all-read.
  5. TUI Meals tab — the resolved week board (rota, pins, frozen history) over the meal library with matrix-gated verbs (new/edit/delete/push-ingredients). Recorded tier decisions (system rule 1): rota editing stays on the CLI's rota group — a standing plan is maintenance, not a daily surface — and the TUI leans on the CLI for API keys, webhooks and release notes rather than growing admin sub-tabs the cobra tree covers.

Table renderers land for the new entities (ItemList, Meal, Notification, ResolvedMealDay, MealRota).

Every verb live-verified against the deployed cluster: mcp toggled on and back off, release-notes's not-found path, the full list/meal/rota/notification round-trips (create→rename→read→untick→delete; push-ingredients counting 2 added; set-slot appearing in rota week as ROTA; override pinned and cleared), and a meal created through the TUI's own form appearing in the library and via meal ls. make check green.

🤖 Generated with Claude Code

Closes #132. PR 14 of the #137 stack, based on #151. Five commits: 1. **system group** — `system set` gains `--mcp-enabled` (the switch was web-only) and a new `system release-notes` command prints any published release entry; the SDK grows the missing `ReleaseNotes` wrapper and the `mcp_enabled` parameter on `UpdateSettings`. 2. **list group** — lists had no cobra path at all: `ls`, `read`, `create`, `rename`, `uncheck-all`, `delete` land (entries ride the item group's `--list`/`set-list` from PR #143). 3. **meal + rota groups** — the largest whole-domain hole: `pkg/client`'s meals.go and mealrota.go get their first callers. `meal` carries the library (ls/read/create/update/delete/push-ingredients); `rota` the standing week (show, week, set-slot, set-timezone, override, clear-override). 4. **notification group** — the inbox: `ls`, `mark-read`, `mark-all-read`. 5. **TUI Meals tab** — the resolved week board (rota, pins, frozen history) over the meal library with matrix-gated verbs (new/edit/delete/push-ingredients). **Recorded tier decisions** (system rule 1): rota editing stays on the CLI's rota group — a standing plan is maintenance, not a daily surface — and the TUI leans on the CLI for API keys, webhooks and release notes rather than growing admin sub-tabs the cobra tree covers. Table renderers land for the new entities (ItemList, Meal, Notification, ResolvedMealDay, MealRota). Every verb live-verified against the deployed cluster: mcp toggled on and back off, release-notes's not-found path, the full list/meal/rota/notification round-trips (create→rename→read→untick→delete; push-ingredients counting 2 added; set-slot appearing in `rota week` as ROTA; override pinned and cleared), and a meal created through the TUI's own form appearing in the library and via `meal ls`. `make check` green. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
system set gains --mcp-enabled (the switch was web-only) and a new
system release-notes command prints any published release entry — the
running server's own by default. The SDK grows the missing
ReleaseNotes wrapper and the mcp_enabled parameter on UpdateSettings
to carry both (#132).
Lists had no cobra path at all — the CLI could not create, read,
rename, untick or delete a list (#132). The group lands with the
whole verb set; entries ride the existing item group (--list on
create, set-list to move).
The meal domain was the largest whole-domain hole on the maintenance
tier — pkg/client's meals.go and mealrota.go had no caller under cmd/
(#132). The meal group carries the library (ls, read, create, update,
delete, push-ingredients) and the rota group the standing week (show,
week, set-slot, set-timezone, override, clear-override).
The inbox had no cobra path (#132) — the TUI's Alerts tab covered
only the TUI half. The group lists the inbox and marks rows (or the
whole inbox) read.
feat(tui): a Meals tab
Some checks failed
check / commits (pull_request) Successful in 7s
check / web (pull_request) Successful in 1m33s
check / go (pull_request) Failing after 2m4s
check / report (pull_request) Has been cancelled
d269bdaa4a
The meal domain had no TUI path at all (#132): the tab lands with the
resolved week board (rota, pins and frozen history), the meal library,
and the library verbs the matrix grants — new, edit, delete and
push-ingredients onto a list. Deliberate tier decisions, recorded
here per system rule 1: rota editing (set-slot, overrides, time zone)
stays on the CLI's new rota group — a standing plan is maintenance,
not a daily-driver surface — and the TUI likewise leans on the CLI
for API keys, webhooks and release notes rather than growing admin
sub-tabs the cobra tree already covers.

Test report

Suite Tests Result Skipped
Unit 1370 ✅ pass 1
Integration 86 ✅ pass —

Coverage: 27.4%

Updated by the check workflow · commit eafd801c74

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1370 | ✅ pass | 1 | | Integration | 86 | ✅ pass | — | **Coverage:** 27.4% <sub>Updated by the check workflow · commit eafd801c74fb81332889b81a30b18926fe3787a2</sub>
nalum force-pushed feat/cli-tui-tier-gaps from d269bdaa4a
Some checks failed
check / commits (pull_request) Successful in 7s
check / web (pull_request) Successful in 1m33s
check / go (pull_request) Failing after 2m4s
check / report (pull_request) Has been cancelled
to eafd801c74
Some checks failed
check / commits (pull_request) Successful in 6s
check / web (pull_request) Successful in 1m35s
check / go (pull_request) Successful in 2m34s
check / report (pull_request) Successful in 7s
check / commits (push) Has been cancelled
check / go (push) Has been cancelled
check / report (push) Has been cancelled
check / web (push) Has been cancelled
tag / tag (push) Has been cancelled
2026-08-18 15:14:36 +00:00
Compare
nalum changed target branch from feat/tui-matrix to main 2026-08-18 16:44:14 +00:00
nalum merged commit eafd801c74 into main 2026-08-18 16:44:21 +00:00
nalum deleted branch feat/cli-tui-tier-gaps 2026-08-18 16:44:21 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eagraiclainne/app!152
No description provided.