Commit Graph

  • 6d74602b3e chore(deps): bump next in the npm_and_yarn group across 1 directory dependabot/npm_and_yarn/npm_and_yarn-2c8a7f9a5b dependabot[bot] 2026-09-11 06:02:05 +00:00
  • 9ca56c4226 Merge pull request #77 from yusufipk/fix/stripe-billing-lifecycle master Yusuf İpek 2026-09-08 16:56:06 +03:00
  • 1c24336b6a fix(billing): serialize reconciliation and record accepted cancellations yusufipek 2026-09-08 16:32:11 +03:00
  • 57061b5a5d fix(billing): preserve entitlements and bound cancellation cleanup yusufipek 2026-09-08 15:49:37 +03:00
  • 6d283f0b60 Merge pull request #80 from yusufipk/codex/video-review-metadata Yusuf İpek 2026-09-08 15:22:40 +03:00
  • 7019676398 fix(seo): clarify video review metadata yusufipek 2026-09-08 15:18:53 +03:00
  • 2c890314c1 fix(billing): show paid cancellation dates instead of leftover trial yusufipek 2026-09-08 15:17:19 +03:00
  • 36b2e5c905 Merge pull request #79 from yusufipk/claude/landing-page-design-refresh-c78363 Yusuf İpek 2026-09-08 15:08:33 +03:00
  • a8607e8254 feat(landing): refresh product-focused landing page yusufipek 2026-09-08 15:04:25 +03:00
  • 53c7899659 Merge pull request #78 from yusufipk/claude/lifecycle-messages-cancellation-a0142a Yusuf İpek 2026-09-08 14:21:18 +03:00
  • 6ad22508fe test(api): classify the billing cancel route in the auth matrix Yusuf İpek 2026-09-08 14:12:46 +03:00
  • c0809e23bd test(billing): cover the Stripe field locations this change depends on yusufipek 2026-09-08 14:07:48 +03:00
  • 7aeda83eb6 feat(billing): cancel in-app with a one-question reason Yusuf İpek 2026-09-08 14:05:16 +03:00
  • d5cb288719 test(api): register the billing cancel route in the auth matrix yusufipek 2026-09-08 13:58:54 +03:00
  • 85855a6d52 fix(billing): close the gaps the code and security reviews found yusufipek 2026-09-08 13:51:59 +03:00
  • fe1faeced4 fix(billing): pin the Stripe API version and stop unpaid periods granting access yusufipek 2026-09-08 13:30:42 +03:00
  • d5d2f0535e Merge pull request #75 from yusufipk/claude/openframe-mouse-overlay-bug-66603b Yusuf İpek 2026-09-08 13:23:44 +03:00
  • 42b974e422 Merge pull request #76 from yusufipk/claude/webm-to-wav-conversion-0169ff Yusuf İpek 2026-09-08 13:20:12 +03:00
  • 7357f24831 refactor(player): share the cursor idle hook and stop waking on element pauses yusufipek 2026-09-08 13:17:34 +03:00
  • 142dee0c06 feat(voice-notes): convert recordings to WAV on download yusufipek 2026-09-08 13:15:28 +03:00
  • b2070c1030 fix(player): re-arm the cursor idle timer when playback changes yusufipek 2026-09-08 12:55:30 +03:00
  • 79bba5e7a1 Merge pull request #74 from yusufipk/claude/compress-video-landing-page-08cc57 Yusuf İpek 2026-09-01 15:28:59 +03:00
  • ab03f7c378 Merge pull request #73 from yusufipk/fix/download-unload-guard Yusuf İpek 2026-09-01 15:24:50 +03:00
  • 43cc54c0ae feat(landing): drop the toolbar overlay and gradient from the hero video yusufipek 2026-09-01 15:23:17 +03:00
  • 54e99cb4ab test(api): register billing/trial in the auth matrix yusufipek 2026-09-01 15:17:51 +03:00
  • 5f061d1b09 feat(landing): replace the hero image with the flow video yusufipek 2026-09-01 15:12:40 +03:00
  • 59a64141ee chore(lint): ignore .claude worktree checkouts in eslint yusufipek 2026-09-01 15:09:53 +03:00
  • 4b3c3934dd feat(billing): defer the cardless trial for invited collaborators yusufipek 2026-09-01 15:07:54 +03:00
  • c5c9da1e30 Merge pull request #70 from yusufipk/claude/landing-page-removal-c07551 Yusuf İpek 2026-08-25 07:44:00 +03:00
  • 07a6bfbef4 feat(landing): remove the Fair Source badge from the hero yusufipek 2026-08-25 07:37:30 +03:00
  • d894eeb0e4 Merge pull request #69 from yusufipk/fix/download-unload-guard Yusuf İpek 2026-08-22 13:02:32 +03:00
  • cba8163286 fix(download): warn before the tab closes mid-download yusufipek 2026-08-22 12:50:45 +03:00
  • 74e4b4353e Merge pull request #68 from yusufipk/feat/version-subtitles Yusuf İpek 2026-08-22 08:16:35 +03:00
  • a709ca8544 fix(subtitles): escape a rejected cue tag instead of deleting it yusufipek 2026-08-22 08:01:12 +03:00
  • d981d98cf5 feat(player): let editors upload subtitles for a version yusufipek 2026-08-22 07:51:46 +03:00
  • 1f3c6b3f1e Merge pull request #67 from yusufipk/chore/version-0-1-1 Yusuf İpek 2026-08-20 17:21:40 +03:00
  • 6f575e48bf chore(release): set the package version to 0.1.1 yusufipek 2026-08-20 17:11:16 +03:00
  • 9826c117dd Merge pull request #66 from yusufipk/fix/bunny-cdn-runtime-config v0.1.1 Yusuf İpek 2026-08-20 16:19:15 +03:00
  • 0ff8b42b4a fix(bunny): read the CDN host from runtime config so Docker images can play video yusufipek 2026-08-20 15:40:21 +03:00
  • 1f2294c7ac Merge pull request #65 from yusufipk/chore/trim-comment-composer-hint Yusuf İpek 2026-08-20 15:22:46 +03:00
  • bcaf9e0c57 chore(comments): drop the image paste hint from the composer yusufipek 2026-08-20 15:04:17 +03:00
  • 68d23ef1e6 Merge pull request #64 from yusufipk/fix/silent-speed-threshold Yusuf İpek 2026-08-20 11:43:53 +03:00
  • 14ddf19d58 Merge pull request #63 from yusufipk/feat/multi-image-comment-attachments Yusuf İpek 2026-08-20 11:43:38 +03:00
  • b040fe0dc9 fix(player): label only 16x as silent in the speed picker yusufipek 2026-08-20 11:36:39 +03:00
  • b9e2006e34 feat(comments): carry a batch of screenshots on one comment yusufipek 2026-08-20 11:01:33 +03:00
  • 689f5bc81b Merge pull request #62 from yusufipk/worktree-bunny-playback-speed Yusuf İpek 2026-08-20 11:00:26 +03:00
  • 7b7b1d21b2 feat(player): raise the playback speed ceiling off YouTube's limit yusufipek 2026-08-20 10:50:42 +03:00
  • 4d9d35164f Merge pull request #61 from yusufipk/feat/upload-ceiling-from-quota Yusuf İpek 2026-08-20 09:04:32 +03:00
  • 7b60f3bf76 feat(uploads): size one upload against the account's own quota yusufipek 2026-08-20 08:52:26 +03:00
  • 1d65ed348e Merge pull request #59 from yusufipk/fix/admin-cardless-trial-visibility Yusuf İpek 2026-08-19 08:10:29 +03:00
  • 60c208b3b3 fix(admin): show the cardless trial as a trial in the admin panel yusufipek 2026-08-18 18:55:41 +03:00
  • bf46860feb Merge pull request #58 from yusufipk/fix/theme-menu-spacing Yusuf İpek 2026-08-18 12:25:22 +03:00
  • 2bc07c47e6 fix(theme): stop the theme menu from crowding its own top edge yusufipek 2026-08-18 12:21:02 +03:00
  • a16f7cd856 Merge pull request #57 from yusufipk/fix/new-video-page-upgrade-link Yusuf İpek 2026-08-18 12:17:39 +03:00
  • a055f4a8f0 fix(upload): give the Add Video page the upgrade link too yusufipek 2026-08-18 12:13:09 +03:00
  • 98df4e783a Merge pull request #56 from yusufipk/fix/upload-upgrade-link Yusuf İpek 2026-08-18 12:05:03 +03:00
  • f9f08a021d fix(upload): give a full trial account the upgrade link where it reads the refusal yusufipek 2026-08-18 11:57:17 +03:00
  • 09af61b531 Merge pull request #55 from yusufipk/feat/storage-upgrade-nudge Yusuf İpek 2026-08-18 11:47:16 +03:00
  • 6561e0817e feat(storage): point a full trial account at the upgrade rather than at nothing yusufipek 2026-08-18 11:42:30 +03:00
  • 63288761ed fix(storage): count a finished Bunny upload the moment it lands yusufipek 2026-08-18 11:42:30 +03:00
  • 2c4c6101d5 Merge pull request #54 from yusufipk/fix/bunny-upload-reservation Yusuf İpek 2026-08-18 11:12:30 +03:00
  • e78911e850 fix(comments): say the account is full instead of blaming the comment yusufipek 2026-08-18 11:07:25 +03:00
  • 00f1d430b8 fix(uploads): stop a storage hold from being dropped by whoever can name it yusufipek 2026-08-18 11:07:18 +03:00
  • 7b36e027ff Merge pull request #53 from yusufipk/feat/admin-api-token Yusuf İpek 2026-08-18 10:40:05 +03:00
  • 4ff801738c fix(uploads): count a Bunny upload from the moment it is admitted yusufipek 2026-08-18 10:35:08 +03:00
  • bfe3cb28b4 feat(admin): let a token read the growth scoreboard without a session yusufipek 2026-08-18 10:05:28 +03:00
  • 32164db15c Merge pull request #51 from yusufipk/feat/cardless-trial Yusuf İpek 2026-08-18 09:57:40 +03:00
  • 313cd552e6 fix(billing): stop an unpaid subscription from unlocking the paid limits yusufipek 2026-08-18 09:48:10 +03:00
  • 1ec5c53802 fix(auth): start the cardless trial for social signups too yusufipek 2026-08-18 09:48:00 +03:00
  • 4c0b18e5e4 feat(marketing): say no card where the trial is actually claimed yusufipek 2026-08-18 09:23:21 +03:00
  • 364e60146d test(e2e): expect a fresh account to reach onboarding, not billing yusufipek 2026-08-18 09:13:42 +03:00
  • 03f670cf0e Merge remote-tracking branch 'origin/master' into feat/cardless-trial yusufipek 2026-08-18 09:12:32 +03:00
  • e98cfe20ec Merge pull request #52 from yusufipk/fix/scoreboard-tests-week-boundary Yusuf İpek 2026-08-06 00:05:36 +03:00
  • b27b37c11f fix(tests): stop the scoreboard suite from depending on the weekday yusufipk 2026-08-05 23:57:13 +03:00
  • 39e81042bb feat(billing): let people try the product before handing over a card yusufipk 2026-08-05 19:40:36 +03:00
  • b8d68a9196 Merge pull request #50 from yusufipk/feat/acquisition-analytics Yusuf İpek 2026-08-05 18:47:51 +03:00
  • e3676e6142 docs(legal): print the full US business address on the site yusufipk 2026-08-02 13:47:44 +03:00
  • 33c845636c fix(analytics): sign the acquisition cookies and bound what they can write yusufipk 2026-08-01 20:29:28 +03:00
  • 7ca5abd041 feat(analytics): record where paying customers actually came from yusufipk 2026-08-01 20:00:27 +03:00
  • 93e85683e9 fix(downloads): stop repeating an extension the name already carries yusufipk 2026-07-30 23:11:58 +07:00
  • e7008c571a fix(voice): record the real length and write it into the file yusufipk 2026-07-30 23:11:46 +07:00
  • a527e9f935 Merge pull request #49 from yusufipk/docs/terms-export-window Yusuf İpek 2026-07-30 16:25:50 +03:00
  • 726c04d9cc docs(terms): match the export window to the cleanup the product runs yusufipk 2026-07-30 20:07:36 +07:00
  • ea6414348f Merge pull request #48 from yusufipk/fix/expired-billing-cleanup-null-dates Yusuf İpek 2026-07-30 15:38:34 +03:00
  • 733ac43172 test(api): match the bunny host instead of a substring of the url yusufipk 2026-07-30 19:33:19 +07:00
  • 38d829597a test(api): pin the stripe-disabled guard to a real empty result yusufipk 2026-07-30 19:30:34 +07:00
  • 80ef29f787 fix(scripts): tell an empty cleanup scan apart from an unreachable one yusufipk 2026-07-30 19:26:06 +07:00
  • a3036f1a52 fix(billing): select expired owners whose billing dates are null yusufipk 2026-07-30 19:25:47 +07:00
  • debfd73214 docs(terms): require cause for suspension and termination yusufipk 2026-07-30 17:41:43 +07:00
  • 425cc04f4f Merge pull request #47 from yusufipk/fix/bunny-orphan-url-reference Yusuf İpek 2026-07-26 15:26:39 +03:00
  • 4e60b61edb fix(scripts): count a Bunny id referenced by url, not only by column yusufipk 2026-07-26 19:22:02 +07:00
  • c0e7211052 Merge pull request #46 from yusufipk/fix/orphan-cleanup-review Yusuf İpek 2026-07-26 15:11:56 +03:00
  • 1f7b77873c fix(scripts): make the orphan cleanups reviewable before they delete yusufipk 2026-07-26 19:08:03 +07:00
  • 4c2e88b1cc Merge pull request #45 from yusufipk/worktree-fix-test-findings Yusuf İpek 2026-07-26 15:03:40 +03:00
  • b51e690062 fix: close the findings the test suite surfaced yusufipk 2026-07-26 18:53:54 +07:00
  • 0ceba72d5b Merge pull request #44 from yusufipk/fix/test-suite-database-safety Yusuf İpek 2026-07-26 12:07:35 +03:00
  • 4e86969f74 test(component): restore localStorage under Node 24 and newer yusufipk 2026-07-26 15:58:27 +07:00
  • 6136817f75 fix(test): keep the suites off a developer's real database yusufipk 2026-07-26 15:49:19 +07:00
  • e3fcbf30bf fix(build): move the test db bootstrap under tests/ yusufipk 2026-07-26 15:48:55 +07:00
  • 4eff54b0a6 Merge pull request #43 from yusufipk/worktree-writing-tests Yusuf İpek 2026-07-26 11:06:24 +03:00