typy v0: one-word typing, tempo, replays and ghost races #255

Merged
teahubxyz merged 1 commits from typy/v0-254 into main 2026-10-24 23:18:15 +00:00
Owner

Implements typy v0 from #254: a focused, one-word typing game with timed, 50-word, endless, and accelerating tempo runs.

Changes

  • Keyboard and phone input, correction feedback, adjustable advancement, and upcoming-word preview.
  • Weighted common words, local pasted passages, cached Venice topic passages, and a shared daily 60-second passage and board.
  • Explicitly shared results with recomputed scores, original-timing replay, ghost races, and real 1200×630 PNG social previews.
  • A self-contained Cloudflare Worker under typy/, with KV persistence and an atomic quota Durable Object. The deployment script reuses the existing operator path and checks committed/generated source integrity.

Validation

  • 13 game tests and 16 backend tests pass.
  • Independent desktop and phone review passed after keyboard activation and long-word layout fixes.
  • Real local browser integration passed: save → public result reload → replay scrub → ghost race; valid PNG preview; identical daily passage across requests.
  • All 43 committed files were independently compared with the tested local Git blob hashes: zero mismatches.
  • Review, screenshots, test scripts, and receipts are in typy/evidence/ and typy/test/.

Deployment and live acceptance — 2026-10-24

  • Live app: https://typy.yolopreneur.lol/
  • Merged main source: 5c8d0d9889b569e7df69d264d860d5bab1f24a22.
  • Cloudflare Worker time-typy, revision d81c8bfd4647f847; deployment receipt mac-92fb8ef23a424e5393db01c10c70daaa.
  • The merged typy tree exactly matches the independently reviewed feature tree. Public health returned the merged SHA and revision, with KV and quota bindings ready.
  • Repository CI run 2357 passed before merge. This existing workflow covers the factory and quc; typy's 29 tests were run separately and passed.
  • Live browser integration passed on the merged deployment: explicit save, public result reload, matching recomputed score, original-timing replay and scrub, ghost race, and a real 1200×630 PNG preview (4,279 bytes). Test result: https://typy.yolopreneur.lol/r/ee5827c875ef40049621ee94 . Its automated score is test data, not a human benchmark; no synthetic daily-board entry was written.
  • Daily requests returned identical 300-word canonical passages.
  • Independent live visual/play acceptance passed 10 checks at desktop 1440 px and phone emulation 390/360 px, with no overflow or uncaught script errors. That pass observed feature revision 6ff0c224e981f397; deployed application bytes are identical after merge.
  • Both the cloud test browser and operator Mac returned HTTP 200 for the app. The operator verified normal HTTPS and the final health revision; no DNS or WAF changes were needed. The cloud browser required its environment's CA workaround and browser-native fetch because its separate Node request client could not resolve the host.

Remaining external blocker

Real Venice generation was attempted. The configured account returned HTTP 402: “Insufficient USD or Diem balance to complete request.” A direct provider call confirmed the same result (receipt mac-f49aa2ec7fbf4283b2a3115e4e96453d). The app displays a recoverable source error.

Topic generation and caching are implemented and backend-tested, but successful live generation/cache acceptance remains blocked until this account has credits: https://venice.ai/settings/api . No purchase or billing change was made. Common words, pasted text, all play modes, daily passage, sharing, replay, and ghost races remain usable. topics: true in health means the key is configured; it does not attest account balance.

Refs #254; leave its final acceptance open for the provider-funding check.

Implements typy v0 from #254: a focused, one-word typing game with timed, 50-word, endless, and accelerating tempo runs. ## Changes - Keyboard and phone input, correction feedback, adjustable advancement, and upcoming-word preview. - Weighted common words, local pasted passages, cached Venice topic passages, and a shared daily 60-second passage and board. - Explicitly shared results with recomputed scores, original-timing replay, ghost races, and real 1200×630 PNG social previews. - A self-contained Cloudflare Worker under typy/, with KV persistence and an atomic quota Durable Object. The deployment script reuses the existing operator path and checks committed/generated source integrity. ## Validation - 13 game tests and 16 backend tests pass. - Independent desktop and phone review passed after keyboard activation and long-word layout fixes. - Real local browser integration passed: save → public result reload → replay scrub → ghost race; valid PNG preview; identical daily passage across requests. - All 43 committed files were independently compared with the tested local Git blob hashes: zero mismatches. - Review, screenshots, test scripts, and receipts are in typy/evidence/ and typy/test/. ## Deployment and live acceptance — 2026-10-24 - Live app: https://typy.yolopreneur.lol/ - Merged main source: `5c8d0d9889b569e7df69d264d860d5bab1f24a22`. - Cloudflare Worker `time-typy`, revision `d81c8bfd4647f847`; deployment receipt `mac-92fb8ef23a424e5393db01c10c70daaa`. - The merged typy tree exactly matches the independently reviewed feature tree. Public health returned the merged SHA and revision, with KV and quota bindings ready. - Repository CI [run 2357](https://teahub.xyz/teahubxyz/time/actions/runs/2357) passed before merge. This existing workflow covers the factory and quc; typy's 29 tests were run separately and passed. - Live browser integration passed on the merged deployment: explicit save, public result reload, matching recomputed score, original-timing replay and scrub, ghost race, and a real 1200×630 PNG preview (4,279 bytes). Test result: https://typy.yolopreneur.lol/r/ee5827c875ef40049621ee94 . Its automated score is test data, not a human benchmark; no synthetic daily-board entry was written. - Daily requests returned identical 300-word canonical passages. - Independent live visual/play acceptance passed 10 checks at desktop 1440 px and phone emulation 390/360 px, with no overflow or uncaught script errors. That pass observed feature revision `6ff0c224e981f397`; deployed application bytes are identical after merge. - Both the cloud test browser and operator Mac returned HTTP 200 for the app. The operator verified normal HTTPS and the final health revision; no DNS or WAF changes were needed. The cloud browser required its environment's CA workaround and browser-native fetch because its separate Node request client could not resolve the host. ### Remaining external blocker Real Venice generation was attempted. The configured account returned HTTP 402: “Insufficient USD or Diem balance to complete request.” A direct provider call confirmed the same result (receipt `mac-f49aa2ec7fbf4283b2a3115e4e96453d`). The app displays a recoverable source error. Topic generation and caching are implemented and backend-tested, but successful live generation/cache acceptance remains blocked until this account has credits: https://venice.ai/settings/api . No purchase or billing change was made. Common words, pasted text, all play modes, daily passage, sharing, replay, and ghost races remain usable. `topics: true` in health means the key is configured; it does not attest account balance. Refs #254; leave its final acceptance open for the provider-funding check.
teahubxyz added 1 commit 2026-10-24 23:11:38 +00:00
teahubxyz merged commit 5c8d0d9889 into main 2026-10-24 23:18:15 +00:00
Sign in to join this conversation.