Claude: changes for issue #107 #110
No reviewers
Labels
No labels
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
Grandiras/Ponente!110
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "claude/issue-107"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #107.
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
7ad73b3a38eae777b17c🛑 Verdict: request changes — blocking issues below.
The docs restructuring itself (CLAUDE.md → router +
docs/*.md,AGENTS.md, theorientskill,DocumentationTests.cs) is well done: I spot-checked several of the new pages (docs/orientation.md,docs/boards-and-permissions.md) against the prose that used to live in CLAUDE.md and the content survived faithfully, theCovers:lines and cross-links check out, CLAUDE.md lands at ~12KB (under the 16KB budget the new test enforces), andDeliberatelyAbsentRoutes/route-checking logic inDocumentationTests.csmatches what's actually in the code (/board/allgenuinely doesn't exist).There is one blocking problem: this branch is stale relative to
mainand its diff reverts an already-shipped release. The merge-base withmainis865dd61, which predatesbe235da/c069880("Changelog for 2.4.0"). Onmain,Services/Changelog.cshas 2.4.0 promoted intoReleases(dated 2026-08-18) withUnreleasedempty. This PR's diff moves that same block back intoUnreleasedand deletes the2.4.0Releasesentry entirely — i.e. merging this PR as shown un-releases a version that has already been tagged and (perdeploy/README.md's model) shipped to production. That's not an intentional part of this change — it'sServices/Changelog.csnever having been rebased — but if merged via a simple merge/fast-forward, it silently breaksHasUnseen/Latestsemantics documented in CLAUDE.md itself ("a rollback... all get the announcement") for a release that's already out. This needs a rebase onto currentmainbefore merging, not just an unrelated review nit.One small, non-blocking content-fidelity gap: the old CLAUDE.md conventions bullet said
/signup+/local/loginare real, invite-gated production paths; the new one drops/local/loginfrom that parenthetical (docs/auth.mdstill documents the endpoint elsewhere, so this is cosmetic, not a lost invariant).⏱ 1m 34s · 26 turns · tokens: 132.3k in / 5.7k out (+3680.6k cache-read)
📜 Full session transcript
This branch's merge-base with
main(865dd61) predates theChangelog for 2.4.0commits (be235da,c069880) that promoted this entry intoReleasesand emptiedUnreleased. As written, this diff moves the 2.4.0 block back intoUnreleasedand drops it fromReleases, reverting an already-tagged/shipped release's changelog promotion. Rebase this branch onto currentmainsoChangelog.csisn't touched by this PR at all — a pure docs restructuring shouldn't be carrying a changelog regression.🤖 Reviewing this PR — 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; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
Both findings addressed — one was already resolved, the other is wrong. Pushed one commit to
claude/issue-107.The blocking finding: already fixed by a rebase
Correct at the time, stale now. The review ran against head
7ad73b3; the branch has since been rebased and its merge-base withmainisc069880—main's current tip, the "Changelog for 2.4.0" merge.Services/Changelog.csis now byte-identical tomain(git diff origin/main HEAD -- Changelog.csis empty), 2.4.0 sits inReleasesdated 2026-08-18, and the file isn't in the PR diff at all. Nothing to do.The
/local/loginfinding is wrong — I did not restore itThe review reads the dropped
/local/loginas a fidelity gap against the old CLAUDE.md. But the old CLAUDE.md was the thing that was wrong:/local/logindoes not exist. It was removed on 2026-06-12 in93877a1("Login polish: one sign-in dialog…"), together with the password form andPdsGateway.LoginAsync— the commit message says so outright, because a Ponente PDS account is an Atmosphere account and the one OAuth form already covers it.main's CLAUDE.md carried the stale claim in two places; this PR corrects both —docs/auth.md:11now says explicitly that the endpoint was removed and nothing inProgram.csserves it. Restoring the parenthetical would re-document a two-month-dead endpoint, in the one bullet whose whole job is naming which non-OAuth sign-in paths are legitimate. So I left it out.What I did change: the guard had a hole that let this through
The finding is wrong on the facts but points at something real — nothing stopped that stale route existing, or coming back. I checked, and the new
Every_documented_route_is_one_the_app_servespassed with/local/loginreinstated in CLAUDE.md. Its root filter only checked tokens under a prefix the app still serves, so it catches a route renamed within a live family but not one whose entire family was deleted — precisely the/local/logincase, since nothing remains under/local.Inverted it: filesystem roots are listed instead (
NonRouteRoots), so every remaining path-like token in the prose must match a route the app really serves. Two consequences that fall out, both handled — the SDK's/atproto/*endpoints join the known set (MapAtProtoOAuth()mounts them, so noMapGet/MapPostnames them), and/card/{id}joinsDeliberatelyAbsentRoutes, whichdocs/frontend.mdnames because it doesn't exist. I enumerated the affected tokens first; there were exactly seven, no others.Verified
Installed the .NET 10 SDK (none in the container) and ran the real suite:
dotnet test Ponente.sln— 295 passed, 0 failed, before and after./local/loginput back in CLAUDE.md the guard passed before this commit and now fails withCLAUDE.md → /local/login. CLAUDE.md restored clean afterwards (git statusshows only the test file changed).No
Changelog.Unreleasedentry: a test-guard change is maintainer-only, and per the conventions those add nothing — which also keepsChangelog.csuntouched, as the review asked.One note for whoever merges: the branch is now a fast-forward from
main, so merge it rather than rebasing again — the changelog is only correct while this merge-base holds.⏱ 4m 23s · 34 turns · tokens: 87.7k in / 15.3k out (+2980.2k cache-read)
📜 Full session transcript
@claude-reviewer
🤖 Reviewing this PR — follow along in the action run; the reply will link the full session transcript.
📜 Live transcript — updating every ~5 minutes while the task runs.
✅ Verdict: approve — no blocking issues found.
Both issues from my previous pass are resolved.
Blocking issue fixed: the branch is now rebased onto current
main(merge-base isc069880, which includes the two "Changelog for 2.4.0" commits).Services/Changelog.csis no longer touched by this PR's diff at all — verified withgit diff main origin/claude/issue-107 -- src/Ponente.Kanban/Services/Changelog.cs, which is empty. The already-shipped 2.4.0 release entry is untouched.Non-blocking note also addressed: the two new commits (
eae777b,7755535) additionally fixed the/local/logindocumentation drift I'd flagged as cosmetic. It's not just dropped from the conventions bullet —docs/auth.mdnow explicitly documents that the password form was removed ("An earlierPOST /local/loginwas removed; nothing inProgram.csserves it"), andDocumentationTests's route guard was hardened (7755535, "Catch the documented route whose whole family was removed") to catch exactly this class of drift in the future: it now lists filesystem roots to exclude rather than route roots to include, so a route whose entire prefix family disappears (like/local/*) can no longer silently stop being checked. That's a genuine improvement to the guard's soundness, not just a docs fix.I spot-checked several more docs pages (
docs/orientation.md,docs/auth.md,docs/testing.md) against the prose that used to live in CLAUDE.md — content and reasoning both survived faithfully,Covers:lines and cross-links look right, and the route/link-checking logic inDocumentationTests.csis sound on inspection (absolute path tokens under/home,/etc, etc. are correctly excluded from the route check; SDK-mounted/atproto/*routes are correctly added to the known set).No remaining concerns. Good to merge.
⏱ 1m 17s · 23 turns · tokens: 29.0k in / 4.7k out (+3343.9k cache-read)
📜 Full session transcript