Filament 3's Table doesn't have ::records(), so the v5
->records(fn () => ...->all()) path threw "Method
Filament\Tables\Table::records does not exist" on every
/admin/issues page load in TM mode on a v3 host.
Two-part fix:
1. IssueResource::ticketmateTable() now feature-detects ::records().
- v5: unchanged (uses ->records).
- v3: returns a stub Eloquent table (->query(... whereRaw('1=0')))
so anything else that touches table() (badges, etc) doesn't blow
up. The actual list is rendered by step 2.
2. ListIssues::getView() switches to a custom Blade
(d3vnz-issuetracker::filament.list-issues-ticketmate-v3) when
TM is enabled AND we're on Filament 3. The Blade renders the
cached issues directly via a tidy HTML table — kind/status badges,
AI summary, age, plus Open in TicketMate / Open on GitHub links
per row — and exposes a "Refresh from TicketMate" button that
busts the cache via wire:click="refreshTicketmate".
v5 hosts continue to render via Filament's native table (records
API), unchanged.