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
88 lines
6.4 KiB
Markdown
88 lines
6.4 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
|
|
## [2026-05-22]
|
|
|
|
### Added
|
|
- Added an authenticated `Account` page 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 `Leads4less` to `LocaleScope` and 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 `Dockerfile` and `docker-compose.yml` for 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 `.dockerignore` to 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_PORT` and `APP_PORT` values.
|
|
|
|
### 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 `Research` and `Results` workspaces 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 Research` view 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 `Leads4less` branding, the renamed `Research` view, 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.
|