# 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/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ## [0.8.0] - 2026-08-17 ### Added - **Forgejo CI pipeline** (#45) — added a CI workflow that runs Laravel Pint code-style checks, PHPStan static analysis, and the PHPUnit suite against SQLite in memory. - **Static analysis** — added PHPStan via `larastan/larastan` and `phpstan/phpstan-mockery`, with `phpstan.neon` and a baseline. - **Code style** — added Laravel Pint configuration (`pint.json`). - **CI and app image build workflows** (#46) — automated Docker image builds for the app and the CI base image, published to the Forgejo registry. - **CI base image** (#46) — added `docker/build/Dockerfile.ci`, a Debian-based PHP 8.3 CLI image with the project's PHP dependencies pre-loaded so CI doesn't pay a per-run Composer install. - **Contributing guide** (#47) — added `CONTRIBUTING.md`. - **Nix shell completion** (#44) — finished the `nix-shell` development commands. ### Changed - **Dependencies** — `composer.lock` is now committed to the repository. - **Code style** — reformatted the codebase with Laravel Pint. - **Documentation** (#47) — professionalized the `README.md`. - **Git hygiene** — dropped stale `.github`/StyleCI export rules from `.gitattributes`. ### Fixed - **CI dependency installation** (#46, #50) — retried `composer install` on transient HTTP 429s, switched to `--prefer-source` and pre-loaded dependencies to avoid `codeload.github.com` rate limits, and added the missing `zip` extension to the CI image. - **Test suite** (#50) — fixed feature tests failing on a missing Vite manifest by disabling Vite resolution during tests. ## [0.7.0] - 2026-08-17 ### Removed - **SaaS mode and subscription billing** (#37) — dropped Laravel Cashier, the `Billable` trait, `SubscriptionController`, the `RequireSubscription`/`RequireSaasMode` middleware, the `/subscription` and `/billing` routes, the billing/subscription views, the Cashier migrations, and the `stripe` service config. - **Demo mode** (#38) — removed the demo middleware, demo-account seeding and purge commands, and demo-only UI. - **`APP_MODE` plumbing** (#39) — removed `AppModeEnum`, the `app/helpers.php` global helper, and the `mode`/`demo_subscribe_url` config keys; the app now runs in a single self-hosted mode. - **Dead code** (#40) — deleted `frontend-old/`, `bin/start-dev`, the unused `welcome.blade.php`, and the stale root-level `build_and_push.sh`/`update.sh` scripts. ### Changed - **License** (#41) — adopted AGPL-3.0 as the single project license (`LICENSE.md`, `composer.json`, `README.md`). - **Registry and remote references** — repointed build, push, and update scripts and docs at `forge.lvl0.xyz/lvl0/dishplanner`, removing the stale LAN-registry and old `backend` naming. - **Documentation** — updated the production and development instructions. ### Fixed - Fixed health-check warnings in the development shell. - Fixed schedule regeneration iterating every user instead of the planner's own users.