
autumn
Autumn is an open-source pricing & billing platform
This change revamps the frontend tables by adding clickable rows, refined spacing/borders/shadows, icons, updated labels (“Plans” instead of “Products”), new theme variables, and a new @jsx-tool/jsx-tool dependency. It enhances UX consistency and navigation but also flips some defaults (e.g. showExpired now false), injects a new dependency, and touches many files. Concerns include the failed build check, risk of styling regressions, behavioral changes in table interactivity, and the large surface area for potential breakage.
This change updates the onboarding documentation by rewriting React hook integration descriptions, refreshing code examples to showcase the new PricingTable component, and replacing placeholder icons with the correct Node.js and auth-key assets. It enhances accuracy and clarity for developers configuring backend URLs and using the current components. Reviewers should verify that the new asset paths are correct and that the updated snippets reflect actual implementation details.
The PR updates the onboarding docs by refining code snippets and descriptions in the Frontend and PricingTable sections and swapping out generic placeholder images for a new Node.js SVG asset in the stack selection. These changes improve the accuracy and clarity of the integration guide without altering core functionality, though they do introduce a new static asset that could affect build size. Reviewers may want to verify the SVG is optimized, confirm the wording matches actual behavior, and consider adding tests or screenshots for better validation.
This change replaces the meta modifier with mod in the ShortcutButton component to standardize keyboard shortcuts across platforms. It should ensure more consistent hotkey behavior on both Windows and Mac systems and directly addresses issue #278. However, it’s only been tested on Windows so far, so macOS validation is still needed to confirm there are no regressions.
This change updates the envToPath function so that switching between sandbox and production from a customer or product detail page always redirects to the respective list view instead of trying to preserve an ID that doesn’t exist in the other environment, preventing users from landing on broken or non-existent pages. It streamlines environment toggling and fixes issue #276, but the lack of added tests and reliance on simple regex patterns could lead to untested edge cases or unintended URL matches.
This change adds Zod‐based email validation in the SignIn and PasswordSignIn components so invalid addresses are caught client-side and OTP requests aren’t sent unnecessarily, improving user feedback and reducing wasted API calls. It streamlines the auth flow but leans on a simple schema that may miss edge-case formats and arrives without tests or CI checks to ensure robustness.
This update overhauls the PlanFeatureRow so that long feature names no longer collide with the copy/delete buttons by using dynamic truncation and smooth CSS slide-in animations, and it adds the ability to deselect a feature row to return to the plan view. It improves readability and user interaction but lacks corresponding tests for the new behaviors, may introduce performance or accessibility concerns with the added transitions, and could have edge cases in responsive layouts.
A new GitHub Actions workflow was added to run a build check on pull requests and pushes to main, staging, and dev (checking out the code, setting up Bun, installing dependencies, and building the shared, server, and vite packages), and the Stripe dependency in shared/package.json was bumped to a beta version. This enforces build integrity in CI and helps catch errors early across all packages. However, it may increase CI run time and the newly introduced Stripe beta release could pose stability risks if not thoroughly vetted.
The routes for “/customers/:customer_id” and its sandbox variant have been switched to import and render a new CustomerView2 component instead of the original view. This change redirects user traffic to the revamped component and may deliver updated features or fixes in the customer interface. Without any description, tests, or CI checks, there’s a risk of breaking existing behavior and unclear migration or rollback steps.
This change adds an initial Customer v2 UI by introducing a generic table component suite, chart utilities, and a detailed customer feature–usage table complete with pagination, sorting, and filtering. It significantly expands the codebase (+3510 lines) and provides reusable UI primitives for richer data presentation on customer pages. Concerns include the lack of accompanying tests or CI validations, potential performance and accessibility issues, and risks around integrating such a large diff without incremental review.
This change refactors the usage‐tracking logic to run synchronously within a transaction (using PostgreSQL advisory locks) instead of queuing, adds full ACID‐style balance and usage_limit validation (including rollover, free/capped, and pay-per-use scenarios), and expands the test suite with concurrent‐request cases to enforce correctness. It impacts the project by improving consistency and error reporting for feature usage updates but introduces significant complexity and potential performance overhead from locking and heavy in‐code validation. Key concerns include the crude 32-bit hash for advisory locks (risking collisions), the increased maintenance burden of complex validation logic, and the large surface area for subtle concurrency bugs despite added tests.
This adds a new synchronous “track” and “set usage” API backed by Redis caching (via Lua scripts) and PostgreSQL stored procedures, updates test groups to cover balances/track scenarios, and introduces general and customer-level rate limiting middleware. It overhauls how feature consumption is recorded—shifting from async event routing to atomic, in-transaction balance deductions for better performance, consistency, and observability. Because it’s a very large change with dozens of new SQL functions, complex deduction logic and Redis dependencies (e.g. REDIS_URL, script loading), it risks untested edge cases, race conditions, missing cleanup of old routes, and potential environment-configuration gaps.
The change overhauls the entitlement/check API by migrating legacy Express routers into a unified Hono‐based handleCheck route, adds a publicKeyMiddleware to support publishable keys alongside the existing secret‐key flow, and tightens Zod/OpenAPI import and testing guidelines. It reshapes routing and authentication layers across 82 files—consolidating logic into reusable utilities, deprecating old endpoints, and enforcing consistent schema registration—so developers must update imports and configuration accordingly. Given the sheer volume of additions and absence of any CI checks or new tests, there’s a real risk of breaking existing integrations, unhandled edge cases, and incomplete validation of the new flows.
On staging, SirTenzin just merged in the latest main changes and johnyeocx cleaned up some commented‐out logs, added logic to skip a specific customer ID in the worker, and tweaked the usage update task to calculate allowances based on included usage (using sumValues and cusEntToIncludedUsage) rather than a simple reduction.
This change updates free-trial handling so that existing trials aren’t deleted when a new product version is created, tightens the logic for when free_trial fields are overridden in update routes, and adjusts related UI dialogs and import paths to ensure proper versioning prompts and data fetching. It preserves trials for current customers and errs on the side of caution when showing versioning dialogs, but it may introduce regressions in routing imports, untested edge cases around version-specific count queries, and it currently lacks any automated checks or tests.
John Yeocx pushed a refactor on the staging branch, revamping the /check endpoint to use the new versioning system, introducing a publicKeyMiddleware (and integrating it into the secret-key flow), and updating docs, scripts, and tests—alongside merging in recent WIP and main↔staging updates.
johnyeocx merged main into staging and pushed a handful of fixes and improvements—handling an edge case when updating custom entitlements (free → paid usage with allowance increase), adjusting tiered pricing inputs, fixing a UI bug for tiers, and resolving issues when attaching multiple add-ons with recurring cycles. He also added a new “replicate” Bun script to package.json for streamlined PostgreSQL database replication.
On the staging branch, johnyeocx pushed a fix that adds comprehensive credit system check tests. He also enhanced the documentation with testing guidelines, refactored the creditSystemUtils module (using strict equality, const declarations and a new getCreditCost helper), and sprinkled in a console log for troubleshooting. Finally, the commit greatly expands the /check endpoint test suite with detailed guides and credit-system integration tests.
johnyeocx pushed a fix to the staging branch, updating the OpenAPI models for feature endpoints and standardizing imports from zod/v4 along with using .meta() for schema registration. The update also tweaks the delete-feature handler to return { success: true } and refreshes related docs and spec files across the codebase.
On the staging branch, John Yeocx added a new handleWebhookErrorSkip utility and extended both the ConnectWebhook router and global error-skip middleware to quietly skip known Stripe “live key” and “Not a valid URL” errors (plus a Zod email validation rule on /checkout). He also cleaned up a stray console.log in the event router.






