Repository navigation
Releases: coolapso/c4stack
Releases · coolapso/c4stack
Release list
v0.1.1
v0.1.0
v0.1.0 (2026-10-12)
⚠ BREAKING CHANGES
- expiry: expire only after a delivered warning and its stored deadline
- apikeys,credits: mount the pages at the group the app chooses
- accounts: never finish an unconfirmed deletion, and move every path
- credits: use Searchbase's purchases, ledger and expiry
- apikeys: use Searchbase's key table, and rename and delete keys
- accounts: link accounts by verified email, as Searchbase does
Features
- accounts,web: leave sign-in and CSRF failures for the app to render
- web: serve further origins, and any host in development
- expiry: report every run to the app through OnRun
- identity: one 5-minute recent sign-in for deletion and passkeys
- example: run Textlab's console at Searchbase's /account paths
- scaffold: mount the account pages at Searchbase's paths
- creem: send Searchbase's checkout request and keep the event time
- postgres: adopt a migration history without namespaces
- examples: add Textlab, an example app with a custom layout, API keys and credits
- credits: expire unused credit after a delivered warning
- email: add the sender interface and the Scaleway adapter
- credits: add the opt-in credit ledger, purchases, payment webhooks and credits page
- payments: add the payment provider interface and the Creem adapter
- apikeys: add opt-in API keys with bearer authentication and a keys page
- scaffold: generate apps that include the shared Taskfile
- accounts: map identities to accounts and delete them provider-first
- identity: add the provider interface and the Hanko adapter with profile management
- ui: add the default design, layout types and hashed assets
- app: add the command entry point with a database-only migrate
- postgres: connect with verified TLS and apply namespaced migrations
- web: add the engine, security middleware and graceful serving
Bug Fixes
- taskfiles: run staticcheck v0.8.2, which supports Go 1.27.2
- expiry: warn only a verified address, and count a warning only there
- accounts: change an address in one transaction, and let a stale account give up its address
- expiry: keep each warning's notice period, and count no unconfirmed warning
- accounts: record an unverified address before turning the identity away
- example: bind each Idempotency-Key to its request
- close rows with defer and wrap the email update error
- accounts: let the delete page's cancel link navigate
- taskfiles: keep the shared tasks' variables from overriding the app's
- scaffold: pin the shared Taskfile release statically and check it against go.mod
- pass request contexts, not Gin contexts, to database and provider calls
- scaffold: require Task 3.53.1, the first release with remote Taskfiles enabled
- handle wrapped errors and checked cleanup found by linters
Other Changes
- scaffold: list tasks without colour, which CI turns on
- release with semrel
- stop the example's database when task serve ends
- serve the example with settings from Infisical
- serve the example app from the repository root
- run the checks on GitHub-hosted runners
- keep bundled JavaScript and generated code out of GitHub's language stats
- make C4Stack personally owned, as Searchbase is
- send security reports to security@coolapso.sh
- present C4Stack as an open-source project by Coolapso
- add a security policy and the repository settings it relies on
- add contribution terms and a CLA workflow
- license C4Stack under Apache-2.0
- describe failures the app can render
- describe movable pages, confirmed deletion and delivered warnings
- describe the Searchbase-aligned modules
- prove that Searchbase moves onto C4Stack with one release
- apikeys: regenerate the keys page
- scaffold: link the pinned release's docs from generated apps
- update the agent rules for every module
- rewrite the README around the quickstart and modules
- architecture: describe the system as built
- add a release verification task
- add the v0.1.0 release notes
- add the operations guide and runbooks
- add the guide with recipes for common app changes
- install Go, Task and golangci-lint in the checks workflow
- run the upgrade test, and keep framework checks out of the example module
- scaffold: move a generated app to the next release
- match the credits, expiry and payments surfaces
- credits: describe the credit contract and webhook outcomes
- add the README and agent rules
- architecture: match the implemented surfaces
- accounts: mount default pages elsewhere inside a custom layout
- add framework tasks, lint configuration and CI checks
- scaffold: serve the generated starter app end to end
- regenerate Templ code from the repository root
- sketch the building-block architecture