From 803c65616b165c3a664196c125347b7b6334078c Mon Sep 17 00:00:00 2001 From: Jared Vititoe Date: Fri, 11 Sep 2026 15:10:56 -0400 Subject: [PATCH] Update stale README Project Structure tree and migrations docs (#45) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cross-checking README.md against the actual file tree found three gaps: views/error_403.php and error_404.php (plus error_500.php, added since the issue was filed) weren't listed under views/; config/requirements.php wasn't listed under config/ (confirmed it's not a duplicate of scripts/check_requirements.php — it's the shared data source both that script and api/health.php read from); and the Database Schema section only described 000_baseline.sql and migrate.php generically, with no mention that four numbered migrations now exist on top of the baseline. Updated the Project Structure tree and the Database Schema/Migrations prose to list all of these, noting that 000_baseline.sql already includes every numbered migration's changes for a fresh install (they only matter when upgrading an existing database). Co-Authored-By: Claude Sonnet 5 Claude-Session: https://claude.ai/code/session_01Lhz7pGMaoTfL5sdYS5XiKv --- README.md | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7f0cabd..0177c49 100644 --- a/README.md +++ b/README.md @@ -255,6 +255,7 @@ Content-Type: application/json - `migrations/000_baseline.sql` is the full schema baseline for the whole database. It is written to be safe to re-run (idempotent) and is the source of truth for a fresh install. - `php migrations/migrate.php` applies any pending migration files in `migrations/` in order, tracking applied files in the `migrations` table. Use `--status` to list state and `--dry-run` to preview without executing. +- Numbered migrations on top of the baseline (all idempotent, safe to re-run): `001_widen_bulk_operations_status.sql`, `002_fix_collation_consistency.sql`, `003_fk_on_delete_set_null.sql`, `004_fix_ticket_watchers_type.sql`. A fresh install via `000_baseline.sql` already includes all of these; they only matter for upgrading an existing database. ### API Endpoints @@ -348,7 +349,9 @@ tinker_tickets/ │ └── images/ │ └── favicon.png ├── config/ -│ └── config.php # Config + .env loading +│ ├── config.php # Config + .env loading +│ └── requirements.php # PHP version/extension requirements (single source of +│ # truth for scripts/check_requirements.php + api/health.php) ├── controllers/ │ ├── CommentController.php # Comment create/edit/delete + notifications │ ├── DashboardController.php # Dashboard with stats + filters @@ -389,6 +392,10 @@ tinker_tickets/ │ └── WorkflowModel.php # Status transition workflows ├── migrations/ │ ├── 000_baseline.sql # Full schema baseline (safe to re-run) +│ ├── 001_widen_bulk_operations_status.sql # Upgrade-only (already in baseline for fresh installs) +│ ├── 002_fix_collation_consistency.sql # Upgrade-only (already in baseline for fresh installs) +│ ├── 003_fk_on_delete_set_null.sql # Upgrade-only (already in baseline for fresh installs) +│ ├── 004_fix_ticket_watchers_type.sql # Upgrade-only (already in baseline for fresh installs) │ └── migrate.php # CLI migration runner (tracks applied migrations) ├── scripts/ │ ├── check_requirements.php # Verify PHP extensions/config prerequisites @@ -406,6 +413,9 @@ tinker_tickets/ │ │ └── WorkflowDesignerView.php # Workflow transition designer │ ├── CreateTicketView.php # Ticket creation with visibility │ ├── DashboardView.php # Dashboard with kanban + sidebar + charts +│ ├── error_403.php # Access-denied error page +│ ├── error_404.php # Not-found error page +│ ├── error_500.php # Fatal-error page (self-contained, no app-state deps) │ ├── layout_footer.php # Shared footer (notification polling, boot sequence) │ ├── layout_header.php # Shared header (nav, command palette, theme toggle) │ └── TicketView.php # Ticket view with timeline, SLA, watcher avatars