opencode-bot: changes for issue #194 #203

Closed
opencode-bot wants to merge 1 commit from opencode/issue-194 into main
Collaborator

Closes #194.

Closes #194.
opencode-bot: finish the task for #194
Some checks failed
CI / build (pull_request) Failing after 42s
cb41e823d1
Author
Collaborator

🤖 Reviewing this PR — the review will link the full session transcript.

🤖 Reviewing this PR — the review will link the full session transcript. <!-- opencode-run:review -->
opencode-reviewer left a comment

🛑 Verdict: request changes — blocking issues below.

The feature itself is well built — / becomes a home page with board tiles and member-side board creation, the default-board concept is removed consistently across routes, the ICS scope, the resume logic (now split between /launch and a Sec-Fetch-Site: none gate on /), and the e2e suite is thoroughly reworked with a shared helpers/nav.js. The middleware ordering is correct (the new app.Use sits after UseAuthentication, so ctx.User is populated), the resume target goes through the same validated LastPage.Resume path, and the new home.spec.js pins all four resume rows.

What blocks merge is the repo's own documentation rule: no page in docs/ was touched, yet this change makes several of them confidently wrong — boards-and-permissions.md (the whole "default board is the first in switcher order" / LastBoardException / wordmark-goes-to-the-board-you're-on story), ui.md ("/launch and not a rule about /"), calendar.md (absent board param = default board), auth.md (/admin/boards as the board-creation form), and frontend.md. Worse, DocumentationTests.Every_e2e_spec_is_described_somewhere will fail CI: the new tests/e2e/home.spec.js is mentioned nowhere in CLAUDE.md or docs/. Per CLAUDE.md, docs updates belong in this same PR.

Minor: a couple of orphaned comment fragments in boards.spec.js, a now-dead HomeHref property, and the question of whether .design-extract/ (a ~1 MB Lunacy export with 35 images) should be committed at all rather than gitignored.



⏱ 3m 49s · 18 steps · $0.1064 · tokens: 409.1k in / 5.7k out (+1405.7k cache-read) · Go: 5h 88% · wk 60% · mo 32% ⚠️
📜 Full session transcript

🛑 **Verdict: request changes** — blocking issues below. The feature itself is well built — `/` becomes a home page with board tiles and member-side board creation, the default-board concept is removed consistently across routes, the ICS scope, the resume logic (now split between `/launch` and a `Sec-Fetch-Site: none` gate on `/`), and the e2e suite is thoroughly reworked with a shared `helpers/nav.js`. The middleware ordering is correct (the new `app.Use` sits after `UseAuthentication`, so `ctx.User` is populated), the resume target goes through the same validated `LastPage.Resume` path, and the new `home.spec.js` pins all four resume rows. What blocks merge is the repo's own documentation rule: **no page in `docs/` was touched**, yet this change makes several of them confidently wrong — `boards-and-permissions.md` (the whole "default board is the first in switcher order" / `LastBoardException` / wordmark-goes-to-the-board-you're-on story), `ui.md` ("/launch and not a rule about `/`"), `calendar.md` (absent `board` param = default board), `auth.md` (`/admin/boards` as the board-creation form), and `frontend.md`. Worse, `DocumentationTests.Every_e2e_spec_is_described_somewhere` will fail CI: the new `tests/e2e/home.spec.js` is mentioned nowhere in CLAUDE.md or docs/. Per CLAUDE.md, docs updates belong in this same PR. Minor: a couple of orphaned comment fragments in `boards.spec.js`, a now-dead `HomeHref` property, and the question of whether `.design-extract/` (a ~1 MB Lunacy export with 35 images) should be committed at all rather than gitignored. --- --- ⏱ 3m 49s · 18 steps · $0.1064 · tokens: 409.1k in / 5.7k out (+1405.7k cache-read) · Go: 5h 88% · wk 60% · mo 32% ⚠️ 📜 [Full session transcript](https://git.grandiras.net/Grandiras/opencode-bot/src/branch/opencode-logs/transcripts/Grandiras/Ponente/pr-203/run-2026-09-18T21-16-32-930Z.md) <!-- opencode-reviewed-head:cb41e823d166ee275481b5c5e15e3864d1322ebd --> <!-- opencode-verdict:request_changes -->
@ -0,0 +1 @@
{"id":"LFqN125VaUyVIpIkES1Y5Q","variableCollections":[{"id":"x1uwOWqTtUStbQOgnFUboQ","name":"Warm Studio","themes":[{"id":"y-ecpFdOzU6BRQlvNoHngA","name":"Light"},{"id":"PnDkThm5EU2Wr7QaZx0Tvw","name":"Dark"}],"variables":[{"_t":"COLOR","id":"QgMQVuDdvki8GoHcSNkmgg","name":"Brand","type":10,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"7C3AED"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"B59CFF"}]},{"_t":"COLOR","id":"hm8ud5G1_EyLsQrEwLFq9Q","name":"Brand bright","type":12,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"AB7EF6"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"D2C4FF"}]},{"_t":"COLOR","id":"Z2SJJsl-50-s6tFOWTsEVQ","name":"Brand dim","type":20,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"6D2AD9"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"8B6CFF"}]},{"_t":"COLOR","id":"GvTSp_WPx0CDFny63ecHWg","name":"Brand surface","type":22,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"F3EEFF"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"2A2340"}]},{"_t":"COLOR","id":"9cnKZzqn5EG2FcujgQ9dog","name":"Text / fg","type":11,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"2C2418"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"F2ECE2"}]},{"_t":"COLOR","id":"ICEiJ-NTPUmX2b95msDIkg","name":"Text / fg-2","type":30,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"6B7E6F"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"B5A896"}]},{"_t":"COLOR","id":"o1xIMPTImkGVgwOSuwN2RQ","name":"Surface / bg-0","type":40,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"F7F6EF"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"161311"}]},{"_t":"COLOR","id":"_1P938Uy3UuqzqOuvrnTJg","name":"Surface / bg-1","type":100,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"F"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"2E2823"}]},{"_t":"COLOR","id":"X-elIpCaH0-onGnsTIzFwQ","name":"Surface / bg-2","type":110,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"F2EEE5"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"221D1A"}]},{"_t":"COLOR","id":"FbK0O0OikkW5oPhkyp9Pyg","name":"Success","type":200,"values":[{"themeId":"y-ecpFdOzU6BRQlvNoHngA","value":"16A36A"},{"themeId":"PnDkThm5EU2Wr7QaZx0Tvw","value":"36D399"}]}]}],"pages":["LVqN125VaUyVIpIkES1Y5Q"]}
Collaborator

This commits a ~1 MB Lunacy export (page JSON plus 35 webp images) into the repo. The canvas source of truth already lives in design/Ponente.free; is the extract meant to be tracked, or should .design-extract/ be gitignored like other generated artifacts?

This commits a ~1 MB Lunacy export (page JSON plus 35 webp images) into the repo. The canvas source of truth already lives in `design/Ponente.free`; is the extract meant to be tracked, or should `.design-extract/` be gitignored like other generated artifacts?
@ -943,2 +958,3 @@
/// from every page.
/// </remarks>
private string HomeHref => BoardHref(ActiveBoardId, "/board");
private string HomeHref => "/";
Collaborator

HomeHref is now a constant "/" with no remaining callers — the anchor above uses the literal. Either use it in the markup or drop the property.

`HomeHref` is now a constant `"/"` with no remaining callers — the anchor above uses the literal. Either use it in the markup or drop the property.
@ -0,0 +1,236 @@
@* The place a member starts from: a tile per board they can see, and the one
place a new board is made. Not a dashboard — the launchpad. `/` used to be
the default board, which is why this file exists at all; see
Collaborator

Blocker: the PR updates no page in docs/, but this change invalidates several of them — boards-and-permissions.md (default board, LastBoardException, board.none, the wordmark rule), ui.md ("/launch and not a rule about /"), calendar.md (absent board param = default board), auth.md (/admin/boards as the creation form), frontend.md. CLAUDE.md requires doc updates in the same PR, and DocumentationTests will fail CI regardless: the new tests/e2e/home.spec.js (and the GetTilesAsync/BoardTile service surface) is named nowhere in CLAUDE.md or docs/.

Blocker: the PR updates no page in `docs/`, but this change invalidates several of them — `boards-and-permissions.md` (default board, `LastBoardException`, `board.none`, the wordmark rule), `ui.md` ("`/launch` and not a rule about `/`"), `calendar.md` (absent `board` param = default board), `auth.md` (`/admin/boards` as the creation form), `frontend.md`. CLAUDE.md requires doc updates in the same PR, and `DocumentationTests` will fail CI regardless: the new `tests/e2e/home.spec.js` (and the `GetTilesAsync`/`BoardTile` service surface) is named nowhere in CLAUDE.md or docs/.
@ -119,2 +124,2 @@
await page.goto('/admin/boards');
await fillUntilEnabled(page, name);
/**
* Makes a board from the home page's tile — helpers/nav.js's, which every spec
Collaborator

Two orphaned doc-comment fragments are left behind where the local createBoard used to be ("Makes a board from the home page's tile…" and "The id of the board with this name…"), now dangling above createTag and describing functions that live in helpers/nav.js. Delete them.

Two orphaned doc-comment fragments are left behind where the local `createBoard` used to be ("Makes a board from the home page's tile…" and "The id of the board with this name…"), now dangling above `createTag` and describing functions that live in `helpers/nav.js`. Delete them.
Author
Collaborator

🔧 Let opencode-bot fix this — tick the box and opencode-bot picks up the review above, on this PR branch. Nothing runs until you do.

  • @opencode-bot Address the findings of the latest review on this pull request.
🔧 **Let opencode-bot fix this** — tick the box and opencode-bot picks up the review above, on this PR branch. Nothing runs until you do. - [ ] @opencode-bot Address the findings of the latest review on this pull request. <!-- opencode-fix-button:203 -->
Grandiras closed this pull request 2026-09-18 21:28:05 +00:00
Some checks failed
CI / build (pull_request) Failing after 42s

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
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
Grandiras/Ponente!203
No description provided.