feat: rename a list from its detail view (#115) #141

Merged
nalum merged 2 commits from feat/list-rename into main 2026-08-18 16:43:03 +00:00
Owner

Closes #115. PR 3 of the #137 stack, based on #140.

ItemListService/Update was reachable only from the TUI — a gap on the reference surface itself (parity defect 3). Both daily surfaces now carry the verb:

  • Web: the list detail page's manager row gains Rename (gated on can("ItemListService","Update")), opening a one-field sheet prefilled with the current name. The write rides the offline queue: the optimistic sketch renames the cached list row and each entry's list ref, so no board shows the old name before sync.
  • Android: the detail screen's manager row gains the same Rename, mirroring the New list sheet. ListsRepository.renameList goes online-first through the shared OpQueue; the sketch updates item_list.name plus the denormalised item.list_name, and the server's echo overwrites both.

Verified against the live deploy: server rename round-trips (Update returns the new name), the web sheet opens prefilled and gated. Android on-device check pending (no device attached), matching the stack's standing pattern.

🤖 Generated with Claude Code

Closes #115. PR 3 of the #137 stack, based on #140. `ItemListService/Update` was reachable only from the TUI — a gap on the reference surface itself (parity defect 3). Both daily surfaces now carry the verb: - **Web**: the list detail page's manager row gains **Rename** (gated on `can("ItemListService","Update")`), opening a one-field sheet prefilled with the current name. The write rides the offline queue: the optimistic sketch renames the cached list row and each entry's list ref, so no board shows the old name before sync. - **Android**: the detail screen's manager row gains the same **Rename**, mirroring the New list sheet. `ListsRepository.renameList` goes online-first through the shared OpQueue; the sketch updates `item_list.name` plus the denormalised `item.list_name`, and the server's echo overwrites both. Verified against the live deploy: server rename round-trips (`Update` returns the new name), the web sheet opens prefilled and gated. Android on-device check pending (no device attached), matching the stack's standing pattern. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ItemListService/Update was reachable only from the TUI — a gap on the
reference surface itself (parity defect 3). The detail page's manager
row gains Rename, opening a one-field sheet; the write rides the
offline queue like every other list verb, patching the cached list
name and each entry's list ref so boards stay coherent before sync.
feat(android): rename a list from its detail screen
Some checks failed
check / commits (pull_request) Successful in 6s
check / web (pull_request) Successful in 1m35s
check / go (pull_request) Successful in 2m42s
check / report (pull_request) Successful in 5s
android / build (pull_request) Successful in 5m24s
android / report (pull_request) Successful in 3s
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
android / report (push) Has been cancelled
android / build (push) Has been cancelled
7a83886501
The parity gap on web (defect 3) held on Android too: every list verb
but Update had an affordance. The manager row gains Rename, opening a
sheet mirroring New list; the write goes online-first through the
shared OpQueue, and the sketch renames the cached list row plus each
entry's list_name so offline boards agree with the server's echo.

Test report

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

Coverage: 28.2%

Updated by the check workflow · commit 7a83886501

<!-- ci-test-report --> ## Test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit | 1370 | ✅ pass | 1 | | Integration | 85 | ✅ pass | — | **Coverage:** 28.2% <sub>Updated by the check workflow · commit 7a83886501f3eba6bb9aba17b6b1728a22f1c491</sub>

Android test report

Suite Tests Result Skipped
Unit (debug) 31 ✅ pass 0

Coverage: 2.4% of lines

Updated by the android workflow · commit 7a83886501

<!-- android-test-report --> ## Android test report | Suite | Tests | Result | Skipped | | --- | --: | --- | --: | | Unit (debug) | 31 | ✅ pass | 0 | **Coverage:** 2.4% of lines <sub>Updated by the android workflow · commit 7a83886501f3eba6bb9aba17b6b1728a22f1c491</sub>
nalum changed target branch from fix/reward-job-links to main 2026-08-18 16:42:56 +00:00
nalum merged commit 7a83886501 into main 2026-08-18 16:43:03 +00:00
nalum deleted branch feat/list-rename 2026-08-18 16:43:04 +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!141
No description provided.