94b8c357b4
- add workspace-scoped billing storage, usage tracking, and add-on catalog - enforce plan entitlements for search and deep research routes - expand pricing and account UI around billing state, usage, and upgrades
6.4 KiB
6.4 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog.
[2026-05-22]
Added
- Added an authenticated
Accountpage with editable profile settings, workspace details, usage summaries, and placeholders for upcoming billing and team management. - Added workspace and workspace-membership schema foundations plus new account API endpoints so each user now has a default personal workspace for future company, billing, and team features.
- Added a shared billing catalog, entitlement policy helpers, and feature-gate logic for Starter, Growth, Pro, and Enterprise packaging so pricing and future subscription enforcement can share one source of truth.
- Added workspace-scoped billing foundation storage, repository/service layers, and add-on catalog definitions for billing accounts, usage periods, usage counters, purchases, and balances.
- Added backend entitlement enforcement for basic search and deep research routes using shared workspace billing state and reusable usage-cost estimation.
- Added workspace-readiness reference material plus billing-aware account usage, add-on, and upgrade surfaces to keep plan promises honest during the workspace migration phase.
Changed
- Normalized the product UI around shared design primitives for buttons, cards, alerts, tabs, and page shells to keep public, auth, research, results, dashboard, map, and account surfaces visually aligned.
- Refined the authenticated app for mobile with a phone-friendly top bar, bottom tab navigation, shorter inline research maps, touch-friendlier map gestures, and a mobile lead-card presentation in the dashboard while preserving desktop layouts.
- Rebranded public, auth, worker, and supporting documentation copy from
Leads4lesstoLocaleScopeand repositioned the product around local market intelligence and territory research. - Expanded the pricing experience with monthly/annual plan toggles, interval-specific pricing cards, and a comparison table derived from canonical billing metadata.
- Bootstrapped existing and new workspaces into a pre-payments Starter billing state so usage tracking and enforcement can run before subscription automation exists.
- Updated dashboard, map, and results copy to describe saved businesses and research outputs instead of lead-focused terminology.
[2026-05-01]
Added
- Added a multi-stage
Dockerfileanddocker-compose.ymlfor running the web app, API, worker, and PostGIS database as a local container stack.
Changed
- Updated the Docker Compose deployment config to read app secrets and Vite build settings from environment variables, and added a
.dockerignoreto keep container builds leaner. - Aligned the Docker Compose and example environment settings so local and deployment configs use the same variable names and document URL-encoded database passwords when needed.
- Simplified container deployment by adding a dedicated migration image and Compose startup ordering so the database becomes healthy, migrations run automatically, and the API, worker, and web services start afterward.
- Published the Docker web and API services to host ports so local Compose runs are reachable directly from the browser with configurable
WEB_PORTandAPP_PORTvalues.
Fixed
- Fixed the Docker startup flow by passing required env validation into the migration container, bundling SQL migrations into the runtime image, and creating pg-boss queues before the worker starts consuming them.
[2026-04-19]
Added
- Added separate
ResearchandResultsworkspaces so new runs and saved run browsing live in distinct flows while preserving bundled map selection. - Added dedicated Basic and Deep Research results views, plus a public landing page and dedicated auth route for the unauthenticated experience.
Changed
- Made Basic research map-first by requiring a dropped pin or current location, sending coordinate-based searches through the API, and cleaning up shared map presentation.
- Simplified shared Google Maps rendering by moving Basic, Deep Research, and result review maps onto the same cleaner visual style.
Fixed
- Fixed local logout behavior so the session cookie is cleared consistently and optional session-id logout requests can remove the active server session record.
[2026-04-12]
Changed
- Improved local development networking by making API env loading work with
.env.local, adding LAN-friendly API URL fallback behavior, and fixing development CORS handling. - Fixed local research inserts so nullable Google Places coordinates no longer break business upserts.
- Improved postal data tooling with streaming imports, clearer CRS validation, progress logs, and a status command for checking imported areas and adjacency counts.
Added
- Added postal-area import and adjacency build scripts for US ZIP/ZCTA and Canada FSA datasets.
- Added a dedicated
Deep Researchview with map pin placement, propagation preview overlays, batch history, and bundled map navigation. - Added backend deep-research preview, batch creation, and batch detail APIs, reusing the existing research engine to create one child search per postal area.
Removed
- Removed stale local metadata, placeholder postal seeding code, and leftover Supabase-era repository artifacts.
[2026-03-27]
Changed
- Migrated the app from a Supabase runtime to a local Fastify API with PostgreSQL, PostGIS, and cookie-based session auth.
- Reworked the research experience with the
Leads4lessbranding, the renamedResearchview, a top-form layout, and a filterable grid of research jobs. - Added local API wiring for research, dashboard, and map flows while keeping selected-job map behavior and broader lead retrieval support.
Added
- Added local backend scaffolding under
server/for auth, health checks, search routes, database access, and worker startup. - Added local database migrations and scripts under
db/, including the first PostGIS-enabled schema and migration runner. - Added shared app types and frontend API/auth helpers for the local stack.
Removed
- Removed the Supabase browser client, Edge Function runtime, and Supabase migration artifacts from the active app stack.
[2026-03-26]
Added
- Initial Leads4Less app with React and Vite.
- Supabase-backed authentication, lead storage, and search job persistence.
- Research, dashboard, and map views for running searches, browsing leads, and visualizing results on Google Maps.