Upgrade CheckIP to GP247 Core 2.0 and harden IP resolution
- Migrate admin UI to TailAdmin/Livewire: add Livewire/AdminLivewire.php
and Views/livewire.blade.php (reactive add/edit/delete, allow/deny lists),
route the main admin path to it with a class_exists-guarded legacy fallback. - gp247.json -> requireCore ["2.0"]; drop the removed gp247-core::layout in
Views/Admin.blade.php (now a static TailAdmin fallback stub, no jQuery). - Legacy AdminController index/edit collapsed to the Livewire screen; remove
jQuery/pjax/SweetAlert; delete now uses Livewire wire:confirm. - Security: CheckIP middleware no longer trusts raw X-Forwarded-For /
CF-Connecting-IP headers. Resolve the client IP via request()->ips(), which
honours config/trustedproxy.php, closing a spoofing bypass (e.g. sending
"X-Forwarded-For: 127.0.0.1" previously matched the localhost allow branch). - Docs: refresh readme.md / readme_vi.md (Core 2.0, Livewire UI, trusted-proxy
guidance, lockout warning) with a bilingual language switcher.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com