Changelog

Build notes, not marketing beats.

CURRENTLY v0.4.0 / 11 NOVEMBER 2026 / SOURCE ON GITHUB / NO STORE SUBMISSION YET

v0.4.0 CURRENT 11 NOV 2026

Fastfingaz. Same instrument, new label.

  • The rename is complete. The extension, manifest, popup, settings, receipts, share cards, site and repository are now Fastfingaz. The receipt footer prints FASTFINGAZ.LOFTAH.COM.
  • Pixel F. The toolbar, store and favicon set use the approved pixel-grid F at 16, 32, 48, 128, 180, 192 and 512, including maskable icons.
  • Old links keep working: the previous site address redirects here, and GitHub redirects the old repository and release URLs.
  • Local history is preserved: the internal tt: storage keys were kept through the rename. No new permissions, no network code, 47 tests.
v0.3.4 11 NOV 2026

Four sizes, one instrument.

  • Auto, Mini, Small, Medium, Large. Auto fits the conversation gutter; Mini is the WPM orb; Small, Medium and Large are the 142px, 286px and 360px panels. Manual sizes use the chosen width and may overlap the conversation.
  • The popup has the size selector and remembers the choice. Changing size also shows the HUD if it was hidden.
  • A LIVE RUN panel in the popup shows the current held WPM, time, words, flow, peak and status from the text-free session snapshot. It disappears when the run ends.
  • No new permissions; 47 tests.
v0.3.3 11 NOV 2026

Dark, and easier to get back.

  • The popup and settings page are now anodised black, matching the HUD. Receipts and share cards stay paper.
  • A HUD toggle sits at the top of the popup: HIDE HUD / SHOW HUD. The toolbar badge reads OFF while the HUD is hidden, and Alt+Shift+T still toggles it on ChatGPT.
  • Chart bars and scrollbars retuned for the dark palette; the light flash and muddy bars are gone.
  • Scope unchanged: chatgpt.com only. A per-tab opt-in for other text boxes is on the roadmap, not in this build.
  • No new permissions; 47 tests.
v0.3.2 11 NOV 2026

The orb moves.

  • The collapsed WPM orb is now a drag handle. Move it anywhere; the position persists across reloads and chats. A click still expands it.
  • A corner grip resizes the orb from 44px to 104px. Drag it, or focus it and use the arrow keys (hold Shift for bigger steps). The size persists.
  • The full HUD still drags by its header and auto-fits the conversation gutter; the resize grip applies to the minimized orb.
  • Settings adds Reset orb size next to Reset HUD position. No new permissions; 47 tests.
v0.3.1 11 NOV 2026

The live number tells the truth.

  • The big live number now uses only the last eight seconds of actual typing. A think gap is skipped, not averaged in, so the reading holds instead of crashing when you pause to choose a word.
  • Fixed the bleed: the reading is recomputed only when a key lands. The 250 ms UI tick can no longer slide it down while you think.
  • A short run is no longer divided by a full eight seconds. A three-second burst reads as a three-second burst.
  • The idle big number is now labelled LAST THINK, so it is not mistaken for a typing score. Use FLOW and PEAK to compare with Monkeytype.
  • No new permissions; 47 tests.
v0.3.0 11 NOV 2026

Pause and hold.

  • A pause button in the HUD header and the Alt+Shift+P shortcut. A manual pause freezes the wall and active clocks, holds the big number, and shows PAUSED in the header and footer. Typing resumes automatically.
  • The paused interval is excluded from the final session’s wall and active time; it is a declared break, not a reset. It is not recorded as a receipt on its own.
  • The live number is held for short gaps instead of bleeding down key by key, and the rolling window is 8 seconds. Automatic THINKING now waits 1.8 seconds.
  • Same dark fixed 680px instrument, side-gutter rail and stable dock from 0.2.2. No new permissions; 42 tests.
v0.2.2 11 NOV 2026

Stable dock.

  • The HUD and rail no longer re-dock when the ChatGPT composer grows with text. They stay put; the composer gets a wider gutter buffer instead.
  • Wider right margin and a 32px rail gap, so the first keystroke cannot slide the composer under the instrument.
  • One fixed frame across idle, draft, typing, thinking, receipt and share; no size change when you start working.
  • Still 38 tests, no new permissions, no network code.
v0.2.1 11 NOV 2026

The night instrument.

  • Anodised black HUD: the live instrument is dark, with a black LCD and signal orange data. Paper is reserved for the receipt and the documents.
  • One fixed 680px frame across idle, draft, typing, thinking, receipt and share. The panel no longer changes size when you start working.
  • Side-gutter layout: a 360px live instrument in the right gutter, a 320px baseline rail in the left gutter at wide widths, a 142px slim strip at 1440 and an orb when no true gutter fits.
  • 120px primary reading at full width; the rail carries LAST / BEST / AVG, a 14-day chart, best/avg flow, readings/drafts and the recent log.
  • The receipt cadence chart, paper print and share sheet all live inside the fixed frame. No new permissions; 38 tests.
v0.2.0 11 NOV 2026

The vertical instrument.

  • New vertical HUD, anchored to the bottom of the viewport. It lives in the empty gutter beside the conversation: full 300 px at 1728/2048, a slim 140 px strip at 1440, and a 232 px medium panel at 1280 with the sidebar hidden.
  • Think WPM, flow WPM, peak, best, rolling average, readings, drafts and steady rhythm are visible at once. The primary reading is 72–80 px.
  • A pause now holds the run in THINKING; the live number does not drop to zero. Idle shows LAST / BEST / AVG, with dashes before the first reading.
  • Durable history in chrome.storage.local: best think, flow and peak, last eligible session, a weighted 20-session rolling average and an all-time average. A lower run never overwrites a best.
  • Eligibility gates: sent prompts only, minimum characters and wall time, signal above 50%, paste-dominated runs rejected, resumed drafts kept in a draft bucket and excluded from best/average, IME runs excluded from best below 85% signal.
  • An in-progress snapshot is kept in chrome.storage.session without text and shown as PAUSED / NOT RECORDED after a reload.
  • Share cards at 1200×630, 1080×1080 and 1080×1920. Each format is designed separately; the receipt keeps the serial, barcode, cadence bars and baseline.
  • A share sheet in the HUD receipt and the popup: format tabs, live preview, file name and PNG size, copy and download.
  • New static marketing site at fastfingaz.loftwah.com, deployed on Cloudflare Pages. No new extension permissions.
v0.1.1 11 NOV 2026

Draft-aware sessions, larger paper HUD.

  • Draft state: an existing composer text shows DRAFT / TYPE TO MEASURE.
  • 420 px paper housing with a black LCD and a 38-bar cadence meter.
  • Smart docking beside the composer, with an above-composer fallback.
  • Removed the theme setting; the report is always paper.
  • 27 unit tests for the measurement core.
v0.1.0 10 NOV 2026

Initial local-first instrument.

  • Chrome MV3 extension built with WXT, TypeScript and vanilla DOM/CSS.
  • Think WPM, flow WPM, peak, consistency, correction rate, pauses and signal quality.
  • Floating HUD, collapsed orb, printed receipt, keyboard toggle.
  • 14-day history in the popup; export and clear in settings.
  • Original share receipt at 1200×630, rendered locally on canvas.

Full commit history and release assets: github.com/loftwah/fastfingaz/releases. The Chrome Web Store listing is being prepared; nothing has been submitted for review.