Commit graph

12 commits

Author SHA1 Message Date
Snider
4f09bfedd2 fix(csp): add nonce to all inline style and script tags
Some checks failed
Code Style / Laravel Pint (push) Has been cancelled
Code Style / PHP CodeSniffer (push) Has been cancelled
Static Analysis / PHPStan (push) Has been cancelled
Static Analysis / Psalm (push) Has been cancelled
Static Analysis / Security Audit (push) Has been cancelled
Static Analysis / PHP Syntax Check (push) Has been cancelled
Tests / PHP 8.2 - Laravel 11.* (push) Has been cancelled
Tests / PHP 8.3 - Laravel 11.* (push) Has been cancelled
Tests / PHP 8.4 - Laravel 11.* (push) Has been cancelled
Tests / PHP 8.3 - Laravel 12.* (push) Has been cancelled
Tests / PHP 8.4 - Laravel 12.* (push) Has been cancelled
Register CSP nonce with Vite::useCspNonce() so Livewire and Flux
inherit it automatically. Add @cspnonce directive to all inline
<style> and <script> blocks in layout templates to satisfy strict
style-src/script-src CSP in production.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-13 19:45:09 +00:00
Snider
feb47c8ea5 feat(menu): add agents group to AdminMenuRegistry
Top-level standalone group positioned right after dashboard,
giving the agentic system its own prominent section in the sidebar.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-02-08 20:10:22 +00:00
Snider
560c6aec4d fix: add return types to render() methods
Add \Illuminate\Contracts\View\View return type to 23 Livewire
and Blade component render() methods for better static analysis.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:12:35 +00:00
Snider
7e367803fc fix: resolve static analysis issues and bump PHPStan to level 1
- Replace \Log:: with proper Log facade imports in Channel.php and EncryptArrayObject.php
- Remove unnecessary null coalescing on $_GET/$_POST superglobals in Input.php
- Add @property annotations to SeoMetadata and ImageOptimization models
- Add @property-read annotations for Livewire computed properties in ConfigPanel and WorkspaceConfig
- Bump PHPStan level from 0 to 1
- Remove Log facade from Psalm suppressions (now properly imported)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 23:09:27 +00:00
Snider
1ab03b7c59 fix: resolve static analysis errors in PHPStan and Psalm
- Configure PHPStan at level 0 with suppressions for optional dependencies
- Configure Psalm at level 8 with issue handlers for:
  - Optional packages (Bunny, FFMpeg, Imagick, Intervention, Predis, Flux, Horizon)
  - Runtime class aliases (App\Support\*, App\Traits\*)
  - Cross-package dependencies (Core\Tenant\*, Core\Config\Workspace)
  - Laravel HasFactory template param and NoValue false positives
- Fix StorageMetrics::increment() accessibility by adding public wrapper
- Add autoload-dev mappings for test fixture namespaces

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:58:44 +00:00
Snider
8d2ace98cf fix: resolve all test failures
- Add ActivitylogServiceProvider to activity tests
- Configure spatie activitylog settings in test environment
- Use spatie's withoutLogs() for disabling activity logging
- Check if Livewire is available before registering components
- Add PSR-4 autoload mapping for test fixtures (Core\TestCore, App\Custom)
- Fix ModuleScannerTest to scan correct fixture path (Website not Mod)
- Fix ModuleRegistryTest assertion to check ['method'] key

All 197 tests now pass.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:42:19 +00:00
Snider
0eea8b5408 fix: resolve CI test failures
- Add activity log migration for tests
- Fix migration path in ActivityLogServiceTest and LogsActivityTraitTest
- Create tests/Unit directory with .gitkeep
- Fix code style (line endings) via Laravel Pint

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:33:41 +00:00
Snider
087d0ad557 refactor: update namespaces for L1 package convention
- Core\Mod\Tenant -> Core\Tenant
- Core\Mod\Agentic -> Core\Agentic

Part of namespace restructure to align with L1/L2 module conventions.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 17:34:38 +00:00
Snider
94cb8cc3fa feat: add webhook security validation rules
- SafeWebhookUrl: SSRF protection for webhook URLs (blocks private IPs, localhost, reserved ranges)
- SafeJsonPayload: validates JSON payload structure and size

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 13:10:11 +00:00
Snider
b05e3a0c13 feat(components): add new Blade components for Flux UI including icons, charts, and form elements 2026-01-26 21:21:53 +00:00
Snider
b26c430cd6 Add core components and initial setup for the PHP framework 2026-01-21 14:11:45 +00:00
Snider
392678e68a Initial release: Core PHP modular monolith framework
- Event-driven architecture with lazy module loading
- ModuleScanner, ModuleRegistry, LazyModuleListener for module discovery
- 7 lifecycle events: Web, Admin, API, Client, Console, MCP, FrameworkBooted
- AdminMenuProvider and ServiceDefinition contracts
- Artisan commands: make:mod, make:website, make:plug
- Module stubs for rapid scaffolding
- Comprehensive test suite with Orchestra Testbench
- GitHub Actions CI for PHP 8.2-8.4 / Laravel 11-12
- EUPL-1.2 license

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-20 17:02:28 +00:00