ui(webapp): "table notes", and fix two flaky frontend tests (#603, #604) #606

Merged
claude-bot merged 2 commits from ui/table-notes-label into main 2026-09-11 19:19:59 +00:00
Collaborator

Closes #604.

"table notes" (#603 follow-up)

This was deferred on #603 until #602 had merged, since #602 rewrote the same component. #603 widened table_admin from "the table running the game" to "not part of the story", so off-topic chatter is folded there too (run 8 folded the Phasmophobia talk). The labels no longer fitted, so:

  • The fold line: "N table-admin notes" becomes "N table notes".
  • The row tag: "table admin" becomes "table".
  • The CHANGELOG: the unreleased #596 entry is updated to match.

The row-tag test now finds the tag element instead of a word in the row's text. The row renders its parts without spaces ("00:03:10tableGM — …"), so a word-boundary match can't see it.

Two flaky tests (#604)

This PR's first CI run failed on one flake; #602's failed on the other. Both came from the same mistake, asserting the moment something else had rendered, and both only showed up on the slower runner:

  • CampaignStoryline, "counts relationship suggestions in the badge": it found the "Suggested wiki updates" link before both counts had arrived, then looked for the "3" at once. It now waits for the badge, re-querying the link each time.
  • CampaignDetail, content packs: the GM test found the heading before the panel's effect had called listPacks, and saw no call. The effect then fired after afterEach had cleared the mocks, inside the player test, which failed for a call it never made. The GM test now waits for the call.

Test code only.

Checked

The full frontend suite passes, 863 of 863, and ESLint is clean.

🤖 Generated with Claude Code

Closes #604. ## "table notes" (#603 follow-up) This was deferred on #603 until #602 had merged, since #602 rewrote the same component. #603 widened `table_admin` from "the table running the game" to "not part of the story", so off-topic chatter is folded there too (run 8 folded the Phasmophobia talk). The labels no longer fitted, so: - **The fold line:** "N table-admin notes" becomes "**N table notes**". - **The row tag:** "table admin" becomes "**table**". - **The CHANGELOG:** the unreleased #596 entry is updated to match. The row-tag test now finds the tag element instead of a word in the row's text. The row renders its parts without spaces ("00:03:10tableGM — …"), so a word-boundary match can't see it. ## Two flaky tests (#604) This PR's first CI run failed on one flake; #602's failed on the other. Both came from the same mistake, **asserting the moment something else had rendered**, and both only showed up on the slower runner: - **`CampaignStoryline`, "counts relationship suggestions in the badge":** it found the "Suggested wiki updates" link before both counts had arrived, then looked for the "3" at once. It now waits for the badge, re-querying the link each time. - **`CampaignDetail`, content packs:** the GM test found the heading before the panel's effect had called `listPacks`, and saw no call. The effect then fired after `afterEach` had cleared the mocks, inside the player test, which failed for a call it never made. The GM test now waits for the call. Test code only. ## Checked The full frontend suite passes, 863 of 863, and ESLint is clean. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
ui(webapp): "table notes", now that the fold holds chatter too (#603)
Some checks failed
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 48s
CI / Docker image build (pull_request) Successful in 47s
CI / Backend lint (ruff) (pull_request) Successful in 48s
CI / Bot/backend version sync (pull_request) Successful in 49s
CI / Frontend tests, audit, and build (pull_request) Failing after 2m20s
CI / Bot tests and audit (pull_request) Successful in 2m23s
CI / Backend migration, tests, and audit (pull_request) Successful in 8m19s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 22m37s
9bd8c7de4f
#603 widened the table_admin kind from "the table running the game" to
"not part of the story", so off-topic chatter is folded there as well. The
event log's one quiet line said "N table-admin notes" and each unfolded row
was tagged "table admin", which now misnames the Phasmophobia talk. They
read "N table notes" and "table"; the unreleased #596 changelog entry says
the same.

The row-tag test now finds the tag element instead of a word in the row's
text: the row renders without spaces between its parts ("00:03:10tableGM"),
so a word-boundary match could never see it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
claude-bot scheduled this pull request to auto merge when all checks succeed 2026-09-11 15:55:14 +00:00
test(webapp): wait for what is asserted, fixing two CI flakes (#604)
All checks were successful
CI / Summarisation accuracy eval harness (stub provider) (pull_request) Successful in 50s
CI / Docker image build (pull_request) Successful in 39s
CI / Bot/backend version sync (pull_request) Successful in 42s
CI / Backend lint (ruff) (pull_request) Successful in 46s
CI / Bot tests and audit (pull_request) Successful in 1m45s
CI / Frontend tests, audit, and build (pull_request) Successful in 2m9s
CI / Backend migration, tests, and audit (pull_request) Successful in 7m31s
CI / Synthetic session harness (no GPU, no LLM) (pull_request) Successful in 21m30s
5ff201441d
Two frontend tests asserted the moment something else had rendered, and
both failed on the slower CI runner (runs 9404 and 9411), each blocking an
unrelated PR:

- CampaignStoryline, "counts relationship suggestions in the badge": found
  the "Suggested wiki updates" link before both counts had arrived and
  looked for the "3" at once. It now waits for the badge, re-querying the
  link each time in case the render that adds the count replaces it.
- CampaignDetail, content packs: the GM test found the heading before the
  panel's effect had called listPacks, saw no call, and the effect then
  fired after afterEach cleared the mocks - inside the player test, which
  failed for a call it never made. The GM test now waits for the call.

Test code only. Full frontend suite 863/863, eslint clean.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
claude-bot changed title from ui(webapp): "table notes", now that the fold holds chatter too (#603) to ui(webapp): "table notes", and fix two flaky frontend tests (#603, #604) 2026-09-11 18:57:37 +00:00
claude-bot deleted branch ui/table-notes-label 2026-09-11 19:20:00 +00:00
Sign in to join this conversation.
No description provided.