Promote development → master: Erudit blank star + dictionary v1.3.0 pin #111

Merged
developer merged 8 commits from development into master 2026-06-22 13:12:01 +00:00
Owner

Promotes development to production:

  • feat(ui): Erudit blank tiles carry the star (✻) (#109) — the Эрудит blank renders its star: centred on an empty rack tile, in the value corner of a placed blank (board + Stats); Scrabble variants unchanged.
  • chore(deploy): pin dictionary seed to v1.3.0 (#110) — DICT_VERSION → v1.3.0 (scrabble-dictionary #6: abbreviations dropped, incl. ОГВЗ), and DICT_VERSION made a required, single-sourced build arg (no scattered defaults; deploy/README documents where to bump). Gitea TEST_/PROD_DICT_VERSION already at v1.3.0.

Deploy notes: the dictionary seed bump is a no-op on the live prod volume (seed-drift guard); prod moves to v1.3.0 through the admin console /_gm/dictionary (in-flight games keep their pinned version). Test contour already verified on v1.3.0. After merge: tag the release and run prod-deploy.

Promotes development to production: - **feat(ui): Erudit blank tiles carry the star (✻)** (#109) — the Эрудит blank renders its star: centred on an empty rack tile, in the value corner of a placed blank (board + Stats); Scrabble variants unchanged. - **chore(deploy): pin dictionary seed to v1.3.0** (#110) — DICT_VERSION → v1.3.0 (scrabble-dictionary #6: abbreviations dropped, incl. ОГВЗ), and DICT_VERSION made a **required, single-sourced** build arg (no scattered defaults; deploy/README documents where to bump). Gitea TEST_/PROD_DICT_VERSION already at v1.3.0. Deploy notes: the dictionary seed bump is a no-op on the live prod volume (seed-drift guard); prod moves to v1.3.0 through the admin console `/_gm/dictionary` (in-flight games keep their pinned version). Test contour already verified on v1.3.0. After merge: tag the release and run prod-deploy.
developer added 8 commits 2026-06-22 13:10:02 +00:00
feat(ui): Erudit blank tiles carry the star (✻) mark
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 54s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m17s
e3e4cedc77
The Erudit variant's blank is the "звёздочка", so render it with a star.
An empty rack blank (and its drag ghost) shows ✻ centred; a placed blank
keeps its designated letter and carries ✻ where the (absent) point value
sits — on the board and in the Stats best-move tiles. The Scrabble variants
are unchanged. Gated by usesStarBlank() in lib/variants.ts.
fix(ui): align the Erudit blank star with neighbouring tiles
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 54s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m21s
a393561d79
Rack: the empty-blank star is now top-anchored level with the letters and a
touch larger (was centred, sitting low). Board and Stats best-move tiles: the
placed-blank star's ink is centred on the value digits' line (was slightly
high). CSS-only nudges; pixel offsets measured against the rendered glyphs.
fix(ui): raise the rack blank star to centre on the letters
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 55s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m18s
81680a1d5e
Top-aligning it still read a touch low; move the empty-blank star up
(top 8% -> 0.5%) so its ink centres against the rack letters' block,
matching the board tile's centred mark. Size unchanged.
fix(ui): nudge the rack blank star up a pixel
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Has been skipped
CI / integration (pull_request) Has been skipped
CI / ui (pull_request) Successful in 53s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m19s
62f66735a3
By eye the centred star still read a hair low; subtract 1px from its top
offset (top: calc(0.5% - 1px)).
Merge pull request 'feat(ui): Erudit blank tiles carry the star (✻) mark' (#109) from feature/erudit-blank-star into development
CI / changes (push) Successful in 1s
CI / unit (push) Has been skipped
CI / integration (push) Has been skipped
CI / ui (push) Successful in 54s
CI / gate (push) Successful in 0s
CI / deploy (push) Successful in 1m18s
1ef2bde395
chore(deploy): pin dictionary seed to v1.3.0
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 10s
CI / integration (pull_request) Successful in 14s
CI / ui (pull_request) Successful in 54s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m22s
bb0e3e17e5
Bump DICT_VERSION v1.2.1 -> v1.3.0 across the seed surface: .env.example, the
compose build-arg default, both backend Dockerfile stages, the loadtest
Dockerfile, the CI dawg-download version, and the deploy/backend docs.

v1.3.0 drops the abbreviation class from the Russian word list (scrabble-dictionary
#6). This only seeds a FRESH volume; a live contour/prod volume is unaffected (the
.seed_version marker wins — seed-drift guard) and moves to v1.3.0 through the admin
console (ARCHITECTURE §5). Per-contour deploy still overrides via TEST_/PROD_DICT_VERSION.
refactor(deploy): make DICT_VERSION a required build arg (single-sourced)
CI / changes (pull_request) Successful in 3s
CI / unit (pull_request) Successful in 9s
CI / integration (pull_request) Successful in 17s
CI / ui (pull_request) Successful in 54s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Successful in 1m28s
1ba52dd0b4
Drop the literal version default from the build files (backend Dockerfile both
stages, loadtest Dockerfile, the compose build-arg) so the release tag is not
duplicated as a stale-prone default a newcomer can't tell from the real source.

DICT_VERSION is now required: compose uses ${DICT_VERSION:?…} and the Dockerfiles
have no ARG default, so a missing value fails loudly instead of baking a stale tag.
The tag lives only in its genuine sources — ci.yaml env (CI tests), the Gitea
TEST_/PROD_DICT_VERSION variables (deploy seed) and deploy/.env.example (local).
Adds a "Bumping the dictionary version" section to deploy/README and fixes the bare
docker-build examples (CLAUDE.md, README.md, loadtest/README) to pass --build-arg.
Merge pull request 'chore(deploy): pin dictionary seed to v1.3.0' (#110) from feature/pin-dict-v130 into development
CI / changes (push) Successful in 2s
CI / integration (pull_request) Successful in 16s
CI / ui (pull_request) Successful in 54s
CI / unit (push) Successful in 10s
CI / integration (push) Successful in 14s
CI / ui (push) Successful in 53s
CI / gate (push) Successful in 0s
CI / deploy (push) Successful in 1m19s
CI / changes (pull_request) Successful in 2s
CI / unit (pull_request) Successful in 10s
CI / gate (pull_request) Successful in 0s
CI / deploy (pull_request) Has been skipped
be1627936f
owner approved these changes 2026-06-22 13:10:13 +00:00
developer merged commit c5d22fceca into master 2026-06-22 13:12:01 +00:00
Sign in to join this conversation.
No Reviewers
No Label
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: developer/scrabble-game#111