shadow·typer← home
Release notes

Changelog

Every notable change to Shadow Typer — new features, realism tweaks, and the bugs we cared enough to write down. Newest first.

  1. v1.11.0

    feature2026-05-26

    Feedback widget, changelog, deeper realism

    • New 'Feedback' floating button on every signed-in page. Submit bugs, feature ideas, or general feedback — admins can triage with status workflow (open / planned / in progress / done / won't fix) and internal notes.
    • Public /changelog page (you're reading it) — backfilled history of every notable change since launch.
    • Realism: deeper night-time WPM trough (2-4 AM = ~0.45-0.6x base speed; 0-1 AM and 5 AM = ~0.55-0.75x). Casual personas no longer type at noon-speed at 3 AM.
    • Realism: burst fatigue — each successive burst within a session adds a longer cooldown and shortens the next active burst, modeling real writers stretching after 5+ focus stretches.
    • Job detail: 'Load more' on the recent activity list — see full session history on long jobs instead of just the last 30.
    • Default timezone changed to America/New_York (ET) as the worker fallback, so jobs with unset timezone respect ET sleep hours.
  2. v1.10.0

    feature2026-05-26

    Video demo on landing page

    • Added a 'See it in action' section under the hero with a real recorded demo of Shadow Typer writing a Google Doc.
    • Patched the Dockerfile to copy the public/ folder into the runtime image so static assets ship in production.
    • Migrated Fly deployment to a billing-enabled org (no more 5-minute machine kills).
  3. v1.9.0

    realism2026-05-25

    WPM ceiling fix + rush mode UI consistency

    • Fixed a long-standing bug where baseCharDelay was capped at 180ms, hard-limiting typing to 67 WPM regardless of persona. Cap is now 40-800ms so Casual (38 WPM) and Power user (75 WPM) actually run at their stated speeds.
    • Live status now respects force_continuous: rush mode shows 'writing now' instead of 'next in 2 hours'.
    • Added needs_reauth flag — when Google OAuth refresh fails, the worker skips the job and the dashboard shows a re-sign-in banner instead of silently failing.
  4. v1.8.0

    feature2026-05-23

    Formatting toolbar + markdown paste

    • B / I / H1-3 / bullet buttons above the text input. Selection-aware wrapping for inline marks; line-prefix logic for headings and lists.
    • Paste from Google Docs / Word / web pages now converts to markdown automatically — bold, italics, headings, links, and lists survive the round trip.
    • Markdown gets applied to the Doc on completion via a final formatting pass that converts **bold**, *italic*, # headings, and - bullets into real Docs styles.
  5. v1.7.0

    feature2026-05-21

    Admin user profiles + audit log

    • Admin can now click into any user to see every job they've created, total characters written, doc IDs touched, and full session history.
    • Audit log table records every admin action (pause, resume, delete, force format) with timestamp and admin ID.
    • Toast notifications on admin actions so it's obvious when a button actually fired.
  6. v1.6.0

    realism2026-05-19

    Planned revisions across days

    • First draft uses weaker word choices on purpose — 'show' instead of 'demonstrate', 'to' instead of 'in order to'. Later sessions quietly upgrade them.
    • Homophone swaps (their/there, principal/principle) get planted in early sessions and corrected days later, modeling 'I re-read what I wrote yesterday and caught a thing.'
    • ~80 word downgrades, ~30 phrase downgrades, full homophone set in src/lib/upgrades.ts.
    • Crunch mode: past 60% of timeline, sessions stretch and break-rate drops. Past 95%, all pending revisions get pulled forward into one marathon polish session.
  7. v1.5.0

    feature2026-05-17

    Live ETA + 24h forecast

    • Job page now shows a projected completion timestamp that blends observed throughput with planned pace.
    • 24-hour writing forecast: estimated characters in each upcoming window, accounting for vacation days, day intensity, and crunch.
    • Activity heatmap with per-day session count.
  8. v1.4.0

    realism2026-05-15

    Per-user typing fingerprint

    • Every account gets a permanent randomized WPM jitter, typo bias, and pause pattern. Two users running the same essay produce noticeably different cadences.
    • Session 'mood' — flowing, neutral, thoughtful, sluggish — shifts naturally across sessions and shapes burst length, hesitation rate, and typo frequency.
    • Per-char delay now uses bigram-aware timing (common letter pairs type faster) and varies with mood.
  9. v1.3.0

    feature2026-05-13

    10 personas + vacation ranges + day intensity

    • Persona presets: Cramming student, Steady worker, Thoughtful essayist, Procrastinator, Night owl, Early bird, Weekend warrior, Lunch break, Power user, Casual.
    • Vacation date ranges — schedule respects 'I'm gone next weekend' without manually unchecking days.
    • Per-weekday intensity slider (0-100%) so users can say 'big push Thursdays, light Saturdays.'
    • Conflict detection: if the Doc shrinks below what we've written or grows unexpectedly, the job auto-pauses and emails the user.
  10. v1.2.0

    feature2026-05-11

    Admin panel + bootstrap admin

    • Admin sign-in with scrypt-hashed password seeded from ADMIN_EMAIL/ADMIN_PASSWORD env vars (never hardcoded).
    • Allowlist mode: when enabled, only listed emails can sign in.
    • Per-job admin controls: pause, resume, delete, force format. Server-validated sameOrigin checks on every admin POST.
    • Pause-all / Resume-all global controls. Browser notifications opt-in for completion + conflict alerts.
  11. v1.1.0

    infra2026-05-09

    Privacy/Terms pages + Google verification prep

    • Privacy Policy and Terms of Service pages with the Google API Services User Data Policy / Limited Use disclosure verbatim.
    • Robots.txt, sitemap.xml, PWA manifest, branded favicon, OG metadata.
    • AES-256-GCM encryption at rest for stored full_text (key derived from ENCRYPTION_KEY env).
    • Self-delete + JSON export endpoints for user data.
  12. v1.0.0

    feature2026-05-07

    Public launch on shadowtyper.ca

    • Initial release. Bring-your-own Google account sign-in. Paste text + Google Docs URL + deadline. Worker writes the doc over time on a configurable schedule.
    • Realism engine: shallow typos that fix in seconds, burst-pause sessions (12-35s on / 8-35s off), time-of-day energy curve, hard late-night sleep (2-5 AM in user timezone), window-skip probability, 'I'm ahead of schedule' coast behavior.
    • Deferred error model — some typos get 'noticed and fixed' seconds later, others get corrected next session, the deepest sit until a final polish pass.
    • Custom domain shadowtyper.ca on Fly.io with persistent SQLite volume.