Commit Graph

  • f7509720fe build: drop the fixture dictionary option from the image main tiennm99 2026-10-02 14:48:35 +07:00
  • f37e3e69f4 build: ship the dictionary from a committed corpus, refreshed monthly by pull request tiennm99 2026-10-02 13:46:25 +07:00
  • a947f5ce2e feat(build-dictionary): export accepted words as a text corpus and build from it tiennm99 2026-10-02 13:46:25 +07:00
  • 0cb1b74952 docs(reports): record the whole-project review and fixes tiennm99 2026-09-29 20:33:16 +07:00
  • 00d3dadad4 build: container health check, licence in the image, CI hardening tiennm99 2026-09-29 20:33:16 +07:00
  • 1f2624c0e3 fix(web): clear stale rooms on refused resume, harden reconnect paths tiennm99 2026-09-29 20:33:16 +07:00
  • 81234b5ab9 fix(wsapi): stop a kicked token resuming into another seat, harden limits tiennm99 2026-09-29 20:33:16 +07:00
  • 7fb724d29e fix(server): drain live games on SIGTERM and honour a second signal tiennm99 2026-09-29 20:33:16 +07:00
  • d3eb13e36e docs(reports): record the dev branch review and refactor tiennm99 2026-09-28 15:19:59 +07:00
  • 9be86a3cad refactor(web): share alert banner and turn actions, fix restyle leaks tiennm99 2026-09-28 15:19:59 +07:00
  • 55abdb36c1 refactor(wsapi): dedupe routing and seating, fix ordering races tiennm99 2026-09-28 15:19:59 +07:00
  • 5848751c6b refactor(server): share env parsing, shutdown and score capping helpers tiennm99 2026-09-28 15:19:59 +07:00
  • 97a352f9f5 test(e2e): a rung with no record describes the bot, not a missing record tiennm99 2026-09-21 17:07:08 +07:00
  • 80ef632598 Merge branch 'worktree-agent-a4990d1e576b04b80' into dev tiennm99 2026-09-21 17:02:02 +07:00
  • 007f50cbba docs(reports): record the whole-game UX pass implementation tiennm99 2026-09-21 17:01:24 +07:00
  • d5f89665d8 test(web): cover the difficulty-hint table and the last-difficulty setting tiennm99 2026-09-21 16:59:39 +07:00
  • 2a94e05752 style(web): remap the remaining components onto the collapsed type ramp tiennm99 2026-09-21 16:59:33 +07:00
  • 2a7a2a7d53 feat(web): take the quick-match wait's seconds out of the live region tiennm99 2026-09-21 16:59:26 +07:00
  • a95938d611 feat(web): make the rejection row's suggestion and report real touch targets tiennm99 2026-09-21 16:59:19 +07:00
  • 4fe7ef4f11 feat(web): slim the board header and stop the claim/resign row from churning tiennm99 2026-09-21 16:59:13 +07:00
  • 81d99bb0cf feat(web): teach the chain rule on landing and remember the last difficulty tiennm99 2026-09-21 16:59:02 +07:00
  • d94c2a105c feat(web): apply the whole-game UX review's copy proposals tiennm99 2026-09-21 16:58:50 +07:00
  • 18170aad15 style(web): collapse the type ramp, add accent hover tokens, and lift the page background tiennm99 2026-09-21 16:58:38 +07:00
  • 85199df079 Merge branch 'worktree-agent-a38a77d87cb0d7781' into dev tiennm99 2026-09-21 16:37:00 +07:00
  • fbb06ad100 docs(reports): record the server review implementation tiennm99 2026-09-21 16:35:49 +07:00
  • f4acc12668 refactor(wsapi): split wsapi_test.go by topic, delete hub_test.go tiennm99 2026-09-21 16:32:57 +07:00
  • 8c5bb8bef4 Merge branch 'worktree-agent-ae280f2081bd718f6' into dev tiennm99 2026-09-21 16:32:13 +07:00
  • df2ad83770 docs(reports): record the web review actions implementation tiennm99 2026-09-21 16:31:02 +07:00
  • cf48d270de test(web): mount WordInput and GameBoard under jsdom tiennm99 2026-09-21 16:28:36 +07:00
  • 8f739e02ae refactor(wsapi): split room.go and session.go along their seams tiennm99 2026-09-21 16:25:20 +07:00
  • 69310a3b93 test(web): mount ChatPanel under jsdom for fold and unread accounting tiennm99 2026-09-21 16:24:20 +07:00
  • f0bcb6084a refactor(web): extract ArmedButton for the three press-twice controls tiennm99 2026-09-21 16:21:40 +07:00
  • f0c2334228 test(web): cover the room-session request machine tiennm99 2026-09-21 16:18:53 +07:00
  • 8008bf6318 docs: document the per-IP cap and record two open decisions tiennm99 2026-09-21 16:18:31 +07:00
  • eace5940da refactor(web): extract the online screen's request machine into a store tiennm99 2026-09-21 16:17:23 +07:00
  • 2fece2fcea build(docker): track the moving golang and alpine majors tiennm99 2026-09-21 16:17:03 +07:00
  • 5c6421a011 test(server): cover the env parsers and the drain-wait loop tiennm99 2026-09-21 16:16:23 +07:00
  • b1b6e4ba92 test(wsapi): cover ghost seats, drain refusals and a silent resume tiennm99 2026-09-21 16:14:12 +07:00
  • 8b3e8f7e67 fix(wsapi): guard room seating races, refuse games during drain, and drop the history copy tiennm99 2026-09-21 16:13:52 +07:00
  • eae8d42f25 fix(wsapi): loosen the join limiter and answer a non-resumable token tiennm99 2026-09-21 16:13:30 +07:00
  • e3efadfd63 fix(server): cap concurrent connections per client IP tiennm99 2026-09-21 16:13:11 +07:00
  • 70ae09d16b refactor(web): type the wire instead of passing any across it tiennm99 2026-09-21 16:07:02 +07:00
  • c4502f2793 refactor(web): split the game store into shape, apply and store files tiennm99 2026-09-21 16:03:03 +07:00
  • e4f9917312 docs(plans): whole-project server, web and UX reviews tiennm99 2026-09-21 16:01:54 +07:00
  • 3ef9f48df0 fix(web): open the in-room rules link in a new tab tiennm99 2026-09-21 15:42:14 +07:00
  • a198922ad0 test(e2e): reach the chat panel's toggle by its own handle tiennm99 2026-09-21 15:41:03 +07:00
  • 8c3d8f415b fix(web): give the board's chat pill its own accessible name tiennm99 2026-09-21 15:36:15 +07:00
  • 5178a97520 fix(web): open the lobby chat on a phone and fold it when the game starts tiennm99 2026-09-21 15:32:16 +07:00
  • 1358c3d136 fix: close the review findings on the improvement branch tiennm99 2026-09-21 02:20:16 +07:00
  • 6a7cb34897 Merge branch 'worktree-agent-a582df720cc6e3dea' into dev tiennm99 2026-09-21 01:58:02 +07:00
  • 2adab1318b docs(plans): record the in-game feedback implementation report tiennm99 2026-09-21 01:55:46 +07:00
  • e52b0ef2c3 docs: record the score breakdown, dead-end claim and word report tiennm99 2026-09-21 01:55:10 +07:00
  • 0003a4510b feat(web): show why a word scored what it did, and let a dead end be claimed tiennm99 2026-09-21 01:55:04 +07:00
  • 16fd37978a feat(game): a score a player can see the cause of, and a dead end they can claim tiennm99 2026-09-21 01:54:58 +07:00
  • 36915a67bd docs(reports): record the quick-match implementation tiennm99 2026-09-21 01:40:23 +07:00
  • e6f2d1922c feat(web): a play-now button that skips the room code tiennm99 2026-09-21 01:39:54 +07:00
  • 4a78b8aad5 feat(server): pair strangers with quick-match tiennm99 2026-09-21 01:39:44 +07:00
  • 865222d2cd feat(proto): a dead-end claim, a word report, quick-match and a scored breakdown tiennm99 2026-09-21 01:20:22 +07:00
  • 8223f40b16 feat(server): counters, readiness, drain mode and a version stamp tiennm99 2026-09-21 01:17:52 +07:00
  • 90cd679639 feat(web): state the rules, reach the chat from the top of the board, lint the tree tiennm99 2026-09-21 01:17:52 +07:00
  • 442ced32cc fix(server): name the player on every played word, and bound the process tiennm99 2026-09-21 00:38:09 +07:00
  • a5052fca3f docs(plans): research, brainstorm and health-scan reports with synthesis brief tiennm99 2026-09-21 00:30:10 +07:00
  • dd3b46397f fix(web): give the chain three rows to be read in tiennm99 2026-09-10 15:46:59 +07:00
  • aec9d4ad6f fix(web): fade the chain where it runs under the fold tiennm99 2026-09-10 15:36:14 +07:00
  • e5f4dbdd70 fix(web): stop the off-turn word field looking like it wants a word tiennm99 2026-09-10 15:36:14 +07:00
  • 644379fa06 style(web): fit a finished game and its lobby on one screen tiennm99 2026-09-10 15:16:25 +07:00
  • a0029ba5aa style(web): shrink the resign button to secondary weight tiennm99 2026-09-10 15:02:45 +07:00
  • 11d716e68a feat(game): hold every player to their own turn, and let them leave tiennm99 2026-09-10 14:49:25 +07:00
  • db7093bbe5 fix(web): make the game comfortable to play on a phone and in both themes tiennm99 2026-09-10 13:04:13 +07:00
  • b65b4eade1 docs(reports): record the UI/UX review of the game's layout and comfort tiennm99 2026-09-10 13:03:52 +07:00
  • b1204e270f docs(plans): drop delivered plan phases, keep journals and reports tiennm99 2026-09-10 09:56:31 +07:00
  • 2f893c9877 docs(reports): record why Hoàng Phê cannot be shipped as data tiennm99 2026-09-10 09:51:58 +07:00
  • 7644a0745f style(web): repaint the game in word-game green tiennm99 2026-09-09 00:36:04 +07:00
  • f49b906519 fix(web): keep the whole board on screen as the chain grows tiennm99 2026-09-09 00:36:04 +07:00
  • 3212d8fc1a feat(web): toggle a word's meaning from anywhere on its card tiennm99 2026-09-09 00:12:53 +07:00
  • af08df74a9 feat(game): price a word on speed and how rare its link is tiennm99 2026-09-09 00:12:53 +07:00
  • 3ba99ec107 docs(reports): record the codebase cleanup review tiennm99 2026-09-08 23:10:44 +07:00
  • e29c06d6f0 refactor: move test-only helpers out of production code and drop stale comments tiennm99 2026-09-08 23:10:39 +07:00
  • f00d0ef974 docs(plans): record the dump corpus plan, measurement, review and journal tiennm99 2026-09-08 22:48:26 +07:00
  • e652f7764d feat(web): show each chain word's meaning, newest open, click to toggle tiennm99 2026-09-08 22:48:26 +07:00
  • 9e74f6f959 feat(wire): carry a word's senses on PlayedWord and GameStarted tiennm99 2026-09-08 22:48:26 +07:00
  • 80f216d56b feat(dict): build the corpus and word meanings from the Wikimedia viwiktionary dump tiennm99 2026-09-08 22:48:26 +07:00
  • 557de1af94 refactor: remove unused knobs, strings and stale text tiennm99 2026-09-08 18:01:37 +07:00
  • 805cbca39b feat(server): give each turn 30 seconds by default tiennm99 2026-09-08 17:18:34 +07:00
  • ff5627336d docs(plans): record the kaikki corpus plan, measurement and review tiennm99 2026-09-08 17:17:58 +07:00
  • 0a5c5b06fe feat(dict): derive the corpus from kaikki.org's Wiktionary tiếng Việt export tiennm99 2026-09-08 17:17:58 +07:00
  • 5702e6f6cc feat(web): switch the accent colour to Claude's terracotta orange tiennm99 2026-09-08 16:40:44 +07:00
  • 10a47ebc76 docs(plans): record the dictionary corpus switch, its audit and the source research tiennm99 2026-09-08 16:37:45 +07:00
  • 39ef45730f feat(dict): derive the corpus from undertheseanlp's wiktionary rows tiennm99 2026-09-08 16:37:34 +07:00
  • 341d4fd2e0 docs(plans): plan the switch to the undertheseanlp corpus tiennm99 2026-09-08 15:36:48 +07:00
  • 1c32cfa31a docs(plans): survey viwiktionary and undertheseanlp as dictionary sources tiennm99 2026-09-08 15:36:48 +07:00
  • 2f896584f8 test(e2e): bind the test server to loopback only tiennm99 2026-09-08 14:23:28 +07:00
  • 49f14a1f5a feat(online): draw who takes the first turn tiennm99 2026-09-08 13:57:51 +07:00
  • a72af1f0ad docs(plans): record the survey of Vietnamese dictionary sources tiennm99 2026-09-08 13:07:49 +07:00
  • 0f0cc3a357 fix(online): leave focus alone while a player is typing in chat tiennm99 2026-09-08 13:07:38 +07:00
  • e19b083dc0 feat(online): seat the chat beside the game and score the series tiennm99 2026-09-08 11:28:19 +07:00
  • 4e2e9e1433 feat(online)!: seat two to four players in a room tiennm99 2026-09-08 10:56:14 +07:00
  • 0b507c3537 feat(online): let the two people in a room talk to each other tiennm99 2026-09-08 09:49:54 +07:00
  • d481a093ec feat(online): make a room a lobby with an owner and a ready-up tiennm99 2026-09-07 16:32:14 +07:00
  • ef638e52fd feat(game): leave a dead end to the clock and show what was missed tiennm99 2026-09-07 15:51:22 +07:00