MemberService.UpdateDisplayNameAsync and UpdateAvatarAsync have no callers #130

Closed
opened 2026-08-19 21:24:16 +00:00 by claude-bot · 3 comments
Collaborator

src/Ponente.Kanban/Services/MemberService.cs still exposes UpdateDisplayNameAsync (line 58) and UpdateAvatarAsync (line 70). Nothing in src/ or tests/ calls either — every caller goes through RefreshProfileAsync or, since #115, SetProfileAsync.

They are also the two that write half a profile without firing BoardNotifier.NotifyProfileChanged, so a future caller reaching for one would silently leave the nav header showing the old face. Noticed while renaming their sibling; deleting them is the whole fix.


Filed by Claude while working on #115 (run).

`src/Ponente.Kanban/Services/MemberService.cs` still exposes `UpdateDisplayNameAsync` (line 58) and `UpdateAvatarAsync` (line 70). Nothing in `src/` or `tests/` calls either — every caller goes through `RefreshProfileAsync` or, since #115, `SetProfileAsync`. They are also the two that write half a profile without firing `BoardNotifier.NotifyProfileChanged`, so a future caller reaching for one would silently leave the nav header showing the old face. Noticed while renaming their sibling; deleting them is the whole fix. --- _Filed by Claude while working on #115 ([run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/310))._
Author
Collaborator

🤖 On it — follow along in the action run; the reply will link the full session transcript.

📜 Live transcript — updating every ~5 minutes while the task runs.

🤖 On it — follow along in [the action run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/344); the reply will link the full session transcript. <!-- claude-run:comment --> 📜 [Live transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/Ponente/issue-130/run-344.md) — updating every ~5 minutes while the task runs.
Author
Collaborator

🤖 On it — follow along in the action run; the reply will link the full session transcript.

📜 Live transcript — updating every ~5 minutes while the task runs.

🤖 On it — follow along in [the action run](https://git.grandiras.net/Grandiras/claude-bot/actions/runs/344); the reply will link the full session transcript. <!-- claude-run:comment --> 📜 [Live transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/Ponente/issue-130/run-344.md) — updating every ~5 minutes while the task runs.
Author
Collaborator

Deleted both methods on branch claude/issue-130.

What I checked first. A repo-wide grep for UpdateDisplayNameAsync and UpdateAvatarAsync (excluding .git/) returned exactly two hits: the two definitions themselves. No callers in src/, none in tests/, no mentions in docs/. The issue's read was correct, so the deletion is the whole change — 24 lines out of Services/MemberService.cs, nothing else moved.

One documentation line added. docs/auth.md already had a bullet saying MemberService "has two ways to write a member's name and picture" — which was aspirational while these two existed and is now literally true. I extended that bullet to record why the list is short: both survivors fire BoardNotifier.NotifyProfileChanged, these two fired only the board event, and a third writer that skips it leaves every open nav header showing the old face until a reload. That's the trap the issue spotted, and it's worth a sentence where the next person adding a profile writer will read it rather than being lost with the code.

No Changelog.Unreleased entry: nothing a member sees changes — dead code in, dead code out.

Verified. dotnet build Ponente.sln succeeds with 0 warnings / 0 errors, and dotnet test Ponente.sln passes 380/380. That includes DocumentationTests, which is the check that the docs/ edit doesn't break the coverage rules in CLAUDE.md. No e2e run — nothing user-visible is touched, and the deleted methods had no reachable path from the UI to exercise.

No follow-up issues filed; nothing turned up outside the task.


⏱ 1m 6s · 11 turns · tokens: 21.9k in / 3.3k out (+322.8k cache-read)
📜 Full session transcript
→ Opened PR: #137

Deleted both methods on branch `claude/issue-130`. **What I checked first.** A repo-wide grep for `UpdateDisplayNameAsync` and `UpdateAvatarAsync` (excluding `.git/`) returned exactly two hits: the two definitions themselves. No callers in `src/`, none in `tests/`, no mentions in `docs/`. The issue's read was correct, so the deletion is the whole change — 24 lines out of `Services/MemberService.cs`, nothing else moved. **One documentation line added.** `docs/auth.md` already had a bullet saying `MemberService` "has two ways to write a member's name and picture" — which was aspirational while these two existed and is now literally true. I extended that bullet to record *why* the list is short: both survivors fire `BoardNotifier.NotifyProfileChanged`, these two fired only the board event, and a third writer that skips it leaves every open nav header showing the old face until a reload. That's the trap the issue spotted, and it's worth a sentence where the next person adding a profile writer will read it rather than being lost with the code. No `Changelog.Unreleased` entry: nothing a member sees changes — dead code in, dead code out. **Verified.** `dotnet build Ponente.sln` succeeds with 0 warnings / 0 errors, and `dotnet test Ponente.sln` passes 380/380. That includes `DocumentationTests`, which is the check that the `docs/` edit doesn't break the coverage rules in `CLAUDE.md`. No e2e run — nothing user-visible is touched, and the deleted methods had no reachable path from the UI to exercise. No follow-up issues filed; nothing turned up outside the task. --- ⏱ 1m 6s · 11 turns · tokens: 21.9k in / 3.3k out (+322.8k cache-read) 📜 [Full session transcript](https://git.grandiras.net/Grandiras/claude-bot/src/branch/claude-logs/transcripts/Grandiras/Ponente/issue-130/run-344.md) → Opened PR: https://git.grandiras.net/Grandiras/Ponente/pulls/137
Sign in to join this conversation.
No labels
No milestone
No project
No assignees
1 participant
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
Grandiras/Ponente#130
No description provided.