Commit graph

11 commits

Author SHA1 Message Date
Snider
633fbeb559 feat(actions): add ScheduleServiceProvider — wires DB-backed actions into scheduler
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:42:59 +00:00
Snider
d1598882bb feat(actions): add schedule:sync command — persists #[Scheduled] to database
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:41:17 +00:00
Snider
9ffb756969 feat(actions): add ScheduledActionScanner — discovers #[Scheduled] classes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:25:31 +00:00
Snider
ace48d57c2 feat(actions): add ScheduledAction model and migration
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:24:20 +00:00
Snider
8d0b2b64ec feat(actions): add #[Scheduled] attribute for Action classes
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-12 12:23:33 +00:00
Snider
7d7c489509 fix: add unsafe-eval to production CSP — Livewire uses eval()
Some checks failed
CI / PHP 8.3 (push) Failing after 1m52s
CI / PHP 8.4 (push) Failing after 1m58s
Alpine.js evaluates expressions via eval() at runtime.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-10 05:32:46 +00:00
Snider
87ae36ef22 fix: remove host_analytics from framework CSP config
Some checks failed
CI / PHP 8.3 (push) Failing after 1m53s
CI / PHP 8.4 (push) Failing after 1m49s
Website-specific CSP sources belong in app config, not framework.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-10 05:28:01 +00:00
Snider
95cd788bc9 fix: CSP defaults for Livewire — disable nonces, allow unsafe-inline
Some checks failed
CI / PHP 8.4 (push) Failing after 1m55s
CI / PHP 8.3 (push) Failing after 2m6s
Livewire and Alpine inject inline scripts/styles at runtime without
nonce attributes. Nonce-based CSP breaks all Livewire apps out of the
box. Change defaults:
- nonce_enabled: false (opt-in via SECURITY_CSP_NONCE_ENABLED=true)
- production env: add 'unsafe-inline' for script-src and style-src
- Add host_analytics external source (SECURITY_CSP_HOST_ANALYTICS)

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-10 05:25:57 +00:00
Snider
affedb3d46 refactor: extract Service + Client to standalone packages
Some checks failed
CI / PHP 8.4 (push) Failing after 1m51s
CI / PHP 8.3 (push) Failing after 1m59s
Core\Service → core/php-service (lthn/service)
Core\Website\Service → core/php-service (lthn/service)
Core\Front\Client → core/php-client (lthn/client)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 18:56:43 +00:00
Snider
25df6996e6 feat(plug): add contract interfaces and Registry::register() method
Some checks failed
CI / PHP 8.3 (push) Failing after 1m55s
CI / PHP 8.4 (push) Failing after 1m55s
Move 8 plug contract interfaces (Authenticable, Commentable, Deletable,
Listable, MediaUploadable, Postable, Readable, Refreshable) from the
Laravel app into the framework under Core\Plug\Contract namespace. Add
register() method to Registry so extracted packages can self-register
their providers without filesystem scanning.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-09 17:25:40 +00:00
Snider
28d004ff61 feat: replace Go CLI with PHP framework
Some checks failed
CI / PHP 8.4 (push) Failing after 1m54s
CI / PHP 8.3 (push) Failing after 1m58s
Go CLI commands moved to core/go-php. This repo now contains
the Laravel modular monolith framework (previously php-framework).

- Remove all Go files (now in core/go-php)
- Add PHP framework: event-driven module loading, lifecycle events
- Composer package: core/php
- core/php-framework remains as-is for backward compat

Co-Authored-By: Virgil <virgil@lethean.io>
2026-03-06 08:49:51 +00:00