←
Back to Architecture Directory
File: .antigravity-ai/rebuild-implementation-log.md
Live Disk Read
---
title: FFC-Rebuild-26 Action & Implementation Log
date: 2026-09-02
category: Rebuild Implementation Tracking
tags:
- rebuild
- ffc-rebuild-26
- filament
- action-log
- ionos-inodes
- product-expiration
- php-whitelist-rule
---
# FFC-Rebuild-26 Action & Implementation Log
*Privilege Authorization Granted: 2026-09-01 (Active through 2026-09-08 / 7-Day Renewal Cycle)*
*Note: Newest tasks and actions are documented at the top.*
---
## 🛑 MANDATORY ARCHITECTURAL POLICY: ALL CASE MANAGEMENT REJECTED
>
> **PERMANENT EXECUTIVE DIRECTIVE:** ALL CASE MANAGEMENT, COURT DOCKET TRACKING, COURT DATE TRACKING, AND LEGAL PRACTICE ITEMS ARE **STRICTLY REJECTED AND PROHIBITED**.
> Fix Family Courts is exclusively an **Educational Consulting and Constitutional Analysis** platform. Tracking court dates or case dockets introduces severe legal malpractice and unauthorized practice of law (UPL) liabilities that Fix Family Courts is not equipped for and does not provide.
### [2026-09-06 01:35] Built: Post/Page Creation & Editing System (`DocumentResource`) with Dual MD/HTML Editor & Live CSS Preview
- **Core Capabilities Delivered:**
1. *Zero Cost / Open-Source:* Rejected TinyMCE proprietary cloud licensing trap; built on native open-source components.
2. *VS Code-Style HTML Editor (`CodeEditor`):* Supports full syntax highlighting, line numbers, and arbitrary HTML tags and custom CSS classes (`<div class="...">`, `<p class="...">`) with zero sanitization stripping.
3. *Markdown Editor (`MarkdownEditor`):* Dedicated Markdown mode for authors who prefer writing in MD syntax (`#`, `*`, `[]()`, tables).
4. *Live Auto-Refreshing CSS Preview:* Interactive iframe component (`resources/views/filament/forms/components/document-preview.blade.php`) loading compiled `app.css` stylesheet and brand fonts, autorefreshing on every keystroke, with Desktop, Tablet, and Mobile viewport switches.
5. *16-Column Schema Compliance:* Integrated all 16 fields (`title`, `slug`, `content`, `excerpt`, `type`, `status`, `author_id`, `published`, `modified`, `h1_placement`, `sitemap_include`, `html_title`, `legacy_id`).
6. *Multi-Panel Availability:* Registered in both Editorial Studio (`/editor/documents`) and Technical Admin (`/admin/documents`).
- **Automated Verification:** Added `tests/Feature/DocumentResourceTest.php` (7 passed). Full test suite: 60 tests passed green (249 assertions).
### [2026-09-06 01:20] Updated: Documents Table Schema & Model with Ron's Exact Fields & Order
- **Migration & Database Schema:**
- Added requested fields to [`database/migrations/2026_09_01_000005_create_documents_table.php`](file:///c:/laragon/www/ffc-rebuild-26/database/migrations/2026_09_01_000005_create_documents_table.php) in Ron's exact order:
1. `id`, 2. `legacy_id`, 3. `slug`, 4. `html_title`, 5. `title`, 6. `excerpt`, 7. `content`, 8. `type`, 9. `status`, 10. `author_id`, 11. `published` (dateTime), 12. `modified` (dateTime), 13. `created_at` (timestamp), 14. `updated_at` (timestamp), 15. `h1_placement` (varchar default 'page'), 16. `sitemap_include` (tinyint default 0).
- Applied migration to `ffc_rebuild_26` MySQL database.
- **Eloquent Model Updates (`App\Models\Document`):**
- Updated `$fillable` and `$casts` for `published`, `modified`, `h1_placement`, `sitemap_include`.
- Implemented **dynamic canonical URL resolution** based on document `type` (e.g. `resources/slug`, `articles/slug`, etc.).
- Added backward-compatible accessor for `published_at` mapping to `published`.
- **Automated Verification:** All 53 tests passing green (236 assertions).
### [2026-09-06 01:10] Built: Sandboxed Filament Image Tool & Media Management System (`MediaAssetResource`)
- **Database Schema & Model:**
- Created migration [`database/migrations/2026_09_06_000001_create_media_assets_table.php`](file:///c:/laragon/www/ffc-rebuild-26/database/migrations/2026_09_06_000001_create_media_assets_table.php) and migrated via `--database=ffc_rebuild_26`.
- Created Eloquent model [`app/Models/MediaAsset.php`](file:///c:/laragon/www/ffc-rebuild-26/app/Models/MediaAsset.php) with automatic sandboxed URL resolution (`https://images.fixfamilycourts.com/FFC-WEBSITE-2026-FORWARD/...`) and markdown/HTML embed accessors.
- **Filament Media Management Resource:**
- Built [`app/Filament/Editor/Resources/MediaAssets/MediaAssetResource.php`](file:///c:/laragon/www/ffc-rebuild-26/app/Filament/Editor/Resources/MediaAssets/MediaAssetResource.php) with dedicated form schemas and table catalog.
- Hardcoded upload sandboxing: FileUpload targets disk `ionos` and root directory `/FFC-WEBSITE-2026-FORWARD/`.
- **Rule 10 Enforcement:** `DeleteAction` and `BulkDeleteAction` strictly omitted from table and forms.
- Multi-panel discovery: Available in **Editorial Studio (`/editor/media-assets`)**, **Admin Console (`/admin/media-assets`)**, and **Operations Console (`/operations/media-assets`)**.
- **Automated Verification:** Added [`tests/Feature/MediaAssetToolSecurityTest.php`](file:///c:/laragon/www/ffc-rebuild-26/tests/Feature/MediaAssetToolSecurityTest.php) with 5 tests passing green (11 assertions).
- **Standing by for Ron's Documents Migration File:** Ready to apply the new schema baseline and scaffold `DocumentResource` as soon as Ron confirms the migration file is finalized.
### [2026-09-06 00:45] Verified: `/FFC-WEBSITE-2026-FORWARD/` Sandboxed Uploads & Created Task 2.6
- **Sandboxed Directory Active:** Ron established `/FFC-WEBSITE-2026-FORWARD/` on `images.fixfamilycourts.com`.
- **Live Verification Completed:**
- SFTP authentication and programmatic file write into `/FFC-WEBSITE-2026-FORWARD/` succeeded.
- Public HTTP delivery at `https://images.fixfamilycourts.com/FFC-WEBSITE-2026-FORWARD/` verified with HTTP 200 OK.
- Test verification file cleanly unlinked; legacy root remains 100% untouched.
- **Created Task 2.6 (Image Subdomain Archival, Staged Transition & Production Stabilization Pipeline):**
- Codified the 4-phase transition:
1. Read-only exhaustive asset audit.
2. Double-verification gate (`.zip` on server + local copy on Ron's machine).
3. Root transition with post-pruning duplicate management during production stabilization.
- **Permanent Rollback Guarantee:** All currently used legacy image paths and files remain untouched so the old site can be rolled back to at any time with 100% of images working.
- **Zero Path Interference:** Future root transitions must never collide with, displace, or overwrite any legacy file or path.
4. Legacy image removal **ONLY upon Ron's explicit authorization** post-stability verification.
### [2026-09-06 00:35] Codified: Rule 10 — Strict Read-Only & Zero Deletion/Modification for IONOS Media Assets
- **Executive Safety Directive (Rule 10 Enforced):**
- Formally codified **Rule 10** in [`architecture-boundaries-and-rejections.md`](file:///C:/laragon/www/ffc-rebuild-26/.antigravity-ai/architecture-boundaries-and-rejections.md).
- **Zero Deletions / Zero Alterations:** All existing images and files on `home333798556.1and1-data.host` (`images.fixfamilycourts.com`) are permanently locked as **STRICTLY READ-ONLY**. Under no circumstances will any agent or script delete, modify, or overwrite any existing media asset.
- **Application & CMS System Configuration Enforcement:**
- Any Image Management System or Filament Media Resource built into `ffc-rebuild-26` will have all delete/purge actions completely omitted/disabled.
- Zero in-place overwriting: Existing images cannot be overwritten or renamed by CMS forms.
- Hardcoded directory scoping: The application upload pipeline is strictly restricted to write *only* into the designated folder specified by Ron.
- Media browsing is purely index/preview/copy-URL (non-destructive).
- **Dedicated Human-Configured Writable Directory Only:** New asset additions or edits will ONLY ever be permitted within a specific, dedicated folder that Ron explicitly sets up and designates. Until that folder path is explicitly provided, the entire connection is treated as 100% immutable.
- **Preservation of Remote `.php` Tools:** Strict protection maintained for Ron's custom standalone image browser script.
- **Configured SFTP Credentials:**
- Configured `IONOS_DISK_DRIVER=sftp`, `IONOS_FTP_HOST=home333798556.1and1-data.host`, `IONOS_FTP_PORT=22`, `IONOS_FTP_USERNAME=acc1961651008`, and generated 24-character password in local [`.env`](file:///C:/laragon/www/ffc-rebuild-26/.env).
### [2026-09-05 21:05] Built: Dedicated Operations Console Panel (`/operations`) & Rule 9 Hard Panel Isolation
- **Architectural Security Decision (Rule 9 Enforced):**
- Completely separated Technical Administration from Business Operations into distinct Filament panels.
- Formally codified **Rule 9** in [`architecture-boundaries-and-rejections.md`](file:///C:/laragon/www/ffc-rebuild-26/.antigravity-ai/architecture-boundaries-and-rejections.md).
- **Hard Panel Isolation Implemented:**
- **Super Admin (`/admin`):** Strictly restricted to Super Admin (Ron Palmer). Attempted access by Business Master or any lower role is rejected with an immediate `403 Forbidden`.
- **Operations Console (`/operations`):** Dedicated workspace for Business Master (Sherry Palmer) via [`OperationsPanelProvider`](file:///C:/laragon/www/ffc-rebuild-26/app/Providers/Filament/OperationsPanelProvider.php), registered in `bootstrap/providers.php`.
- **Upward Inheritance Maintained:** Super Admin retains full inheritance rights and can access `/operations` at any time.
- **Dedicated Operations Widgets & UI:**
- Created [`app/Filament/Operations/Widgets/OperationsOverviewWidget.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Filament/Operations/Widgets/OperationsOverviewWidget.php) showing educational consulting counts, client accounts, product overrides, and upload authorizations.
- Updated [`app/Enums/UserRole.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Enums/UserRole.php): `BUSINESS_ADMIN->panelPath()` mapped to `/operations`.
- Updated [`app/Http/Controllers/DashboardHubController.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Http/Controllers/DashboardHubController.php) and [`resources/views/pages/dashboard/hub.blade.php`](file:///C:/laragon/www/ffc-rebuild-26/resources/views/pages/dashboard/hub.blade.php): 1-click launcher for Business Master targets `/operations`.
- Updated [`resources/views/auth/login.blade.php`](file:///C:/laragon/www/ffc-rebuild-26/resources/views/auth/login.blade.php) and [`app/Filament/Auth/Pages/CustomLogin.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Filament/Auth/Pages/CustomLogin.php) to reference `/operations`.
- **Security Test Coverage:** Added 6 dedicated automated feature tests verifying that Business Master is blocked from `/admin`, authorized on `/operations`, and that lower roles are blocked. All 48 tests passing green (225 assertions).
### [2026-09-05 20:55] Resolved: Missing Product & CustomerEntitlement Models & Migrations
- **Root Cause:**
- `AdminSystemOverviewWidget` and `CustomerProductsWidget` reference `App\Models\Product` and `App\Models\CustomerEntitlement`.
- While the database tables existed and were seeded, the corresponding Eloquent model classes were missing from `app/Models/`.
- **Created Models & Methods:**
- Created [`app/Models/Product.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Models/Product.php) with casts (`decimal:2`, `integer`, `boolean`) and `entitlements()` relationship.
- Created [`app/Models/CustomerEntitlement.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Models/CustomerEntitlement.php) with `canDownload()` capability check respecting `is_active`, `access_expires_override`, and `max_downloads_override`.
- **Created Repeatable Migrations:**
- Added [`database/migrations/2026_09_02_000001_create_products_table.php`](file:///C:/laragon/www/ffc-rebuild-26/database/migrations/2026_09_02_000001_create_products_table.php).
- Added [`database/migrations/2026_09_02_000002_create_customer_entitlements_table.php`](file:///C:/laragon/www/ffc-rebuild-26/database/migrations/2026_09_02_000002_create_customer_entitlements_table.php).
- **Verification:** Both widgets executed directly with 100% success. Full test suite passing green (42 tests, 217 assertions).
### [2026-09-05 20:50] Resolved: Dashboard 1-Click Launchers, Admin Access & Login Credentials
- **Resolved User Model Missing Methods:**
- Added `isSuperAdmin()`, `isBusinessAdmin()`, and updated `isAdmin()` to include Super Admin on [`App\Models\User`](file:///C:/laragon/www/ffc-rebuild-26/app/Models/User.php).
- Fixed `canAccessPanel()` so Super Admin (`/admin`), Business Master (`/admin`), Editor (`/editor`), Client (`/client`), and Customer (`/customer`) authenticate cleanly without `BadMethodCallException`.
- **Database Seeder Fix & Execution:**
- Fixed syntax error and missing `role` definitions in [`database/seeders/DatabaseSeeder.php`](file:///C:/laragon/www/ffc-rebuild-26/database/seeders/DatabaseSeeder.php).
- Seeded all demo test accounts (`admin@test.com`, `business@test.com`, `editor@test.com`, `client@test.com`, `customer@test.com`) with `password`.
- Re-ran `php artisan db:seed --database=ffc_rebuild_26`.
- **1-Click Launchers & Hub Blade:**
- Updated [`app/Http/Controllers/DashboardHubController.php`](file:///C:/laragon/www/ffc-rebuild-26/app/Http/Controllers/DashboardHubController.php) and [`resources/views/pages/dashboard/hub.blade.php`](file:///C:/laragon/www/ffc-rebuild-26/resources/views/pages/dashboard/hub.blade.php) with explicit `launch_title` properties.
- **Login Credentials & Quick-Fill UI:**
- Updated [`resources/views/auth/login.blade.php`](file:///C:/laragon/www/ffc-rebuild-26/resources/views/auth/login.blade.php) to display true roles for all 4 author accounts (Ron Palmer: Super Admin #1, Fix Family Courts: Super Admin #2, Sherry Palmer: Business Master #3, Bob Palmer: Super Admin #4).
- Added 1-click "Fill" buttons for all author accounts alongside the role test badges.
- Made default test password (`password`) explicit.
- **Verification:** All 42 feature & unit tests passing green (217 assertions).
### [2026-09-05 20:45] Design Rule 8 Enforced: Members vs. Product Customers & Dynamic Portals Navigation
- **Design Rule 8 Formally Codified:** Added to `architecture-boundaries-and-rejections.md` and registered in `rebuild-task-backlog.md` (Task 1.5).
- **Public / Unauthenticated Navigation Rule:**
- When a user is NOT logged in, the "Portals" / "Members" menu dropdown renders ONLY a single link describing Members Only access (matching live `https://fixfamilycourts.com/divorce-child-custody-membership` / Document ID 2127).
- No internal portals (`/customer`, `/client`, `/editor`, `/admin`) or login-required dashboards may be publicly exposed in the dropdown.
- **Authenticated Navigation Rule:**
- When logged in, a user sees ONLY:
1. The Members Only description page.
2. The specific portal/access level they are signed up for (e.g. Customer Hub for digital product owners, Client Portal for consulting clients, or higher administrative consoles if authorized).
- **Customer vs. Member Separation:**
- Customers who only purchase digital products (books, motion packages) are **NOT members**. They hold product entitlement records (`customer_entitlements`), NOT membership status.
- **Membership Bucket & Granular Training Access:**
- "Members Only" is currently a single bucket for "Gold Members".
- Granular access to training courses must be purchased separately.
- All training sits under the "Members Only" login umbrella currently, requiring discrete course entitlement checks rather than blanket training access.
### [2026-09-05 20:31] Tasks 3.4 & 3.5 Added: Production Console Docs & Role Training Pages
- **Task 3.4 (Console Documentation Hub):**
- Port `/dev/architecture` documentation hub into authenticated Filament panels for Super Admin (`/admin`) and Business Master / Operations Console.
- Keeps architecture diagrams, database isolation rules, and operational logs accessible exclusively to authorized leadership in production.
- **Task 3.5 (Role-Specific Training Markdown Pages):**
- Create dedicated `.md`-backed guidance pages embedded inside panel navigations:
- *Editor Panel:* Publishing workflows, category guidelines, Divi cleanup SOPs.
- *Client Panel:* Onboarding guide, narrative material review instructions, compliance disclosures.
- *Customer Panel:* Digital vault guide, token expiration info, download troubleshooting.
- **Backlog Updated:** Queued under Phase 3 in `rebuild-task-backlog.md`.
### [2026-09-05 20:26] Dev-Only Architecture & Mindmap Page Live with Home Banner
- **Interactive Review Page Created:**
- Route: `/dev/architecture` (named `dev.architecture`).
- View: Enhanced `pages.stubs.generic` with client-side Mermaid.js rendering.
- Features: 9-subsystem visual cards overview + live graphical Mermaid mindmap tree.
- **Prominent Home Page Banner:**
- Added high-contrast dev banner at top of `resources/views/welcome.blade.php`.
- Features 1-click launcher directly to the architecture mindmap console.
- **Production Cleanup Note Recorded:**
- Explicit reminder logged in Phase 3.3 backlog checklist to prune this route and banner before deploying to production.
### [2026-09-05 20:22] Task 1.1 Completed: Database Migrated and Seeded
- **Command Executed:** `php artisan migrate:fresh --database=ffc_rebuild_26 --seed`
- **Result:** Successfully wiped and re-seeded `ffc_rebuild_26` with complete isolation.
- **Components Stood Up:**
- `products` and `customer_entitlements` tables (with Business Master overrides).
- Upward role hierarchy (`SUPER_ADMIN`, `BUSINESS_ADMIN`).
- Client consultation & compliance logs.
- Core documents & sample digital product vault records.
- **Task Status:** Marked `[x] Completed` in `rebuild-task-backlog.md`.
### [2026-09-05 20:20] Task 1.3 Architectural Anticipation: Delegated Technical & Operational Sub-Roles
- **Requirement:** Design anticipation for roles below Super Admin (`Technical Architect`, `Technical Admin`, `Scoped Contractor`) and below Business Master (`Operations Assistant`, `Client Coordinator`).
- **Design Directives:**
- Standard reasonable defaults with accompanying `.md` explanation notes for each role tier.
- Granular scoped permission model (allowing isolated, temporary delegation to solve a single issue/module, comparable to folder-level FTP isolation).
- Status: Design anticipated in architecture; no premature build-out until Phase 3/4.
- **Backlog Updated:** Formally queued as Task 1.3 in `rebuild-task-backlog.md`.
### [2026-09-05 20:04] Rule 7 Enforced: Option A Editor Group Isolation for FFC-Rebuild-26
- **Workflow Isolation Rule Recorded:**
- All `ffc-rebuild-26` files opened during collaborative sessions or from links stay isolated in their own dedicated Editor Group (Group 2 / Side Split).
- User's personal workflow remains strictly in their single standard group.
- Allows Ron to close all rebuild editors at any moment in 1 click (`Ctrl+K, Ctrl+W` or "Close All in Group") without affecting Obsidian vaults, research notes, or default-25 tabs.
- **Rule 7 Formally Recorded:** Added to `architecture-boundaries-and-rejections.md`.
### [2026-09-02 17:51] Task 1.2 Added: Architectural Mindmap & Gap Analysis Review
- **Backlog Updated:** Added Task 1.2 immediately following the migration command.
- **Industry Standard Mindmap Formats Supported:**
1. *Mermaid Mindmap (`mindmap` syntax):* Natively renders in VS Code / Antigravity Markdown previews, GitHub, Obsidian, and Mermaid Live Editor.
2. *OPML (Outline Processor Markup Language):* The universal export/import standard recognized by XMind, MindNode, FreeMind, and MindManager.
3. *Markdown Indented Trees:* Clean text outlines easily converted into any node-based mindmap tool.
- **System Mindmap Generated:** Created `system-architecture-mindmap.md` mapping all 9 primary architectural subsystems, roles, databases, media pipelines, and feature workflows.
### [2026-09-02 17:45] Data Migration Workflow & Laravel Cloud Staging Pipeline Registered
- **Immediate Next Action:** Placed explicit migration command at top of backlog:
`php artisan migrate:fresh --database=ffc_rebuild_26 --seed`
- **User-Directed Migration Sequence (Phase 2):**
1. *Column Reordering & Pruning:* Ron will manually edit `2026_09_01_000005_create_documents_table.php` to arrange commonly used columns in first visual view of graphical DB tools.
2. *Production-to-Local Sync:* Ron syncs production data to `ffc_default_25.documents` (agent creates supplementary sync scripts if needed).
3. *Divi Rendered Data Dump:* Ron brings up legacy WordPress server with Divi active; agent dumps fully rendered posts into staging tables in `ffc_rebuild_26`.
4. *Visual Content Diff Console:* Agent builds HTML/Laravel review tool allowing Ron to choose per-post: `[A] Overwrite`, `[B] Manual Edit`, `[C] Leave As-Is`.
5. *Exhaustive Image Search & Inode Relief:* Requires Ron to provide project-specific FTP/SFTP credentials for `images.fixfamilycourts.com` (reminder set). Unused images bundled to `.zip` after double verification; all `.php` files permanently protected.
- **Testing & Deployment Roadmap (Phase 3):**
- Formal Dev-User Testing across all 5 roles.
- Dedicated Staging Environment configuration on Laravel Cloud.
- Beginner-friendly Git / GitHub Actions CI/CD automation from Staging to Production.
### [2026-09-02 17:18] Database Isolation Policy Enforced (Rule 6)
- **Authorized Database Connections:**
- `ffc_rebuild_26` on local machine DB server: **Full Read/Write/Migration Access**.
- `ffc_default_25` on local machine DB server: **Strict Read-Only Access** (legacy source of truth).
- **Absolute Boundary:**
- **ZERO access** to any other database connection, host, or remote database under any circumstances, even if present in project configuration files.
- **Rule 6 Formally Recorded:** Documented in `architecture-boundaries-and-rejections.md`.
### [2026-09-02 17:10] Explicit Database Connection & Mandatory Migration Rule Enforced
- **Explicit Connection Defined (`ffc_rebuild_26`):**
- Updated `config/database.php` defining `ffc_rebuild_26` as the explicit primary connection.
- Updated `.env` setting `DB_CONNECTION=ffc_rebuild_26`.
- **Permanent Migration Safeguard Rule:**
- **MANDATORY INVARIANT:** All migration, fresh, rollback, or seeding commands suggested by the agent MUST explicitly include the named connection flag:
`php artisan migrate:fresh --database=ffc_rebuild_26 --seed`
- Generic / ambiguous migration commands are permanently prohibited.
### [2026-09-02 17:00] Tracks A, B, C, D, and F Infrastructure Completed
- **Track A (Upward Role Hierarchy):**
- Updated `UserRole` enum: `SUPER_ADMIN` (Ron) and `BUSINESS_ADMIN` (Sherry).
- Implemented Upward Inheritance Roll-Up: Super Admin and Business Master automatically inherit access to all lower panels (`admin`, `editor`, `client`, `customer`).
- Added 1-click test launchers for Super Admin (`admin@test.com`) and Business Master (`business@test.com`) on `/dashboard` and quick-fill badges on `/login`.
- **Track B (Digital Products & Laravel Cloud Storage):**
- Created `products` schema with configurable `download_token_expires_in_minutes` and `max_download_attempts`.
- Created `customer_entitlements` schema with Business Master overrides (`max_downloads_override`, `access_expires_override`, `is_comped`, `override_notes`).
- Created signed download route: `/customer/download/{product}`.
- **Track C (Client Upload Gatekeeper & Quotas):**
- Added `can_upload_files = false`, `upload_quota_count = 0`, and `upload_quota_mb = 0` to `users` table (zero liability default).
- Wired executive dashboard widget tracking upload privileges granted.
- **Track D (Media Engine & Inode Relief):**
- Configured `ionos` SFTP disk pointing to `images.fixfamilycourts.com` in `config/filesystems.php`.
- Implemented `ImageUsageTracker` with live classification (🟢 Live in Production, 🟡 Draft, ⚪ Unreferenced) and legacy filename ID convention parser (`2193_filename.webp` -> Doc #2193).
- Enforced permanent safety rule: all `.php` files on the subdomain are hard-protected against deletion.
- **Track F (Site-Wide Search Engine):**
- Implemented `/search` full-text search query across titles, excerpts, and content.
- Added category filtering (`resource`, `article`, `product`) and interactive search UI with responsive results cards.
- **Testing & Verification:**
- Expanded test suites across `PortalAuthenticationAndDashboardTest`, `FilamentMultiPanelSecurityTest`, and `PublicNavigationAndRoutingTest`.
### [2026-09-02 15:28] IONOS Inode Optimization & Configurable Token Expiry Recorded
- **Configurable Product Expiration:**
- Added `download_token_expires_in_minutes` to product schema and Filament product management, enabling customized link longevity per product (default 15 mins).
- **IONOS Inode Relief Protocol (Precursor to Migration):**
- High-priority operational constraint identified: IONOS file-count limits (inodes) exhausted by 15 years of WordPress thumbnail variants.
- Planned exhaustive database image search against `ffc-default-25.wp_posts`.
- Unused images will be bundled into a single `.zip` file on the subdomain.
- **Double-Verification Gate:** `.zip` integrity verified on IONOS and downloaded locally before deleting any individual files.
- **Permanent Safety Invariant:**
- **NEVER touch or delete any `.php` files on `images.fixfamilycourts.com`** (preserves custom human-friendly image navigation script).