v0.1.0
What's Changed
- phase-0: scope comparison (customer-researcher deliverable) by @BinaryBourbon in #1
- G1: press release draft — lock narrative before engineering scope by @BinaryBourbon in #2
- Add UX spec for Phase 2 dashboard flows by @BinaryBourbon in #3
- plan: phase-2 engineering plan (G2 gate document) by @BinaryBourbon in #4
- decisions: ADRs 0004-0006 for load-bearing G2 calls by @BinaryBourbon in #5
- feat: phase-3 foundation — Postgres, envelope encryption, Accounts by @BinaryBourbon in #7
- feat: phase-3-tenant-contexts — scope all data access to user_id by @BinaryBourbon in #6
- feat: phase-3-auth — multi-tenant auth layer by @BinaryBourbon in #9
- phase-3-cli: CLI distribution — auth, keys, credentials, release workflow by @BinaryBourbon in #8
- feat: phase-3-billing — Stripe billing gate, webhook sync, BillingLive by @BinaryBourbon in #10
- phase-3: onboarding LiveView, multi-tenant scoping, log viewer, API keys, admin by @BinaryBourbon in #11
- fix(render): migrate Postgres plan from legacy 'starter' to 'basic-256mb' by @BinaryBourbon in #12
- phase-3-release-validation: validation report by @BinaryBourbon in #13
- fix(S1/S4): correct onboarding redirect path from step/1 to step_1 by @BinaryBourbon in #14
- chore(render): nest service + database under fountain/prod project by @BinaryBourbon in #15
- Phase 3: Design system — tokens, components, dark mode, accessible nav by @BinaryBourbon in #16
- chore(render): attach fountain-prod-core env group to web service by @BinaryBourbon in #17
- fix: add POST /api/auth/token endpoint for CLI login by @BinaryBourbon in #18
- feat(email): switch transactional email from generic SMTP to Resend by @BinaryBourbon in #19
- chore(render): point FOUNTAIN_DOMAIN at fountain.inevitable.fyi by @BinaryBourbon in #20
- chore(render): set EMAIL_FROM to noreply@updates.inevitable.fyi by @BinaryBourbon in #21
- chore(email): align EMAIL_FROM defaults with updates.inevitable.fyi by @BinaryBourbon in #22
- chore(config): replace 'fountain.dev' default for FOUNTAIN_DOMAIN by @BinaryBourbon in #23
- feat(billing): wire STRIPE_PRICE_ID env var through to Checkout by @BinaryBourbon in #24
- fix(config): add config/prod.exs to unblock prod compile by @BinaryBourbon in #25
- chore: remove vestigial agent_on_demand app + fix release overlay scripts by @BinaryBourbon in #26
- feat(inference): per-tenant BYO inference credentials by @BinaryBourbon in #27
- fix(render): name fountain_server release in build command by @jhgaylor in #28
- fix(secrets): wire per-tenant DEK through vault + environment encryption by @BinaryBourbon in #29
- fix(render): drop Burrito wrap from fountain_server release by @jhgaylor in #30
- test(onboarding): update wizard tests for renumbered steps by @BinaryBourbon in #31
- chore: pre-launch cleanup — duplicate ADRs, dead controller, dead links by @BinaryBourbon in #32
- chore: clean up compile warnings by @jhgaylor in #33
- fix(render): bump Erlang to 28.0.2 and disable Postgres TLS verify by @jhgaylor in #34
- fix(render): bump Elixir to 1.19.2 to pair with OTP 28.0.2 by @jhgaylor in #35
- fix(render): SECRET_KEY_BASE must be ≥64 bytes (sync: false, not generateValue) by @BinaryBourbon in #36
- chore: pin toolchain + add SETUP.md for ephemeral workstations by @jhgaylor in #37
- chore(render): bump fountain-db to basic-1gb by @jhgaylor in #38
- fix(live): set @current_path in the authenticated on_mount hook by @jhgaylor in #39
- fix(onboarding): wizard agent submit + dark-mode contrast by @jhgaylor in #40
- fix(oauth): install plug Ueberauth + set base_path to match router prefix by @BinaryBourbon in #41
- feat(billing): allow promotion codes on Stripe Checkout by @BinaryBourbon in #42
- fix(admin): render sandbox->conversations as a list, not a single id by @jhgaylor in #43
- fix(security): scope all Conversation reads/writes to current_user by @jhgaylor in #44
- fix(release): repair CLI release workflow before first tag by @jhgaylor in #45
Full Changelog: https://github.com/BinaryBourbon/fountain/commits/v0.1.0