Skip to content

Diagnostics

This page is generated from public package documentation in capell-4/packages and the package manifest checked into the source repository.

FieldValue
Composer packagecapell-app/diagnostics
Package slugdiagnostics
Product groupCapell Operations
Tierpremium
Bundleoperations
Runtime contextsadmin, console
Capell version^4.0
Source repositorycapell-app/packages
Source pathpackages/diagnostics
Docs sourcepackages/diagnostics/docs
Manifestcapell.json

Diagnostics adds operational diagnostics for cache, configuration drift, migrations, packages, registries, queues, permissions, setup health, and Tailwind build status.

  • Package: capell-app/diagnostics
  • Namespace: Capell\Diagnostics\
  • Surfaces: Filament admin, database
  • Service providers: packages/diagnostics/src/Providers/AdminServiceProvider.php, packages/diagnostics/src/Providers/DiagnosticsServiceProvider.php
  • Capell dependencies: capell-app/admin, capell-app/core, capell-app/html-cache
  • Third-party dependencies: lorisleiva/laravel-actions, spatie/laravel-data
  • Gives developers and operators one admin surface for checking cache, config drift, migrations, packages, queues, permissions, setup health, and Tailwind status.
  • Shortens support loops because package health checks can be found from Capell instead of by reading logs first.
  • Provides extension points for command-palette style diagnostic actions with explicit ability and risk metadata.

Diagnostics adds operational diagnostics for cache, configuration drift, migrations, packages, registries, queues, permissions, setup health, and Tailwind build status.

  • Command palette admin page.
  • System health admin pages.
  • Developer tools dashboard page.
  • Permission audit report.
  • Queue health report.
  • Health widgets for cache, content, migrations, registry, setup, packages, and Tailwind.
  • Secure command palette discovery, execution, feedback, and audit logging for developer tools, system health, queue health, and trusted capell:* Artisan operations.

For developers: Keeps diagnostics in actions and data objects so admin pages can show health information without hard-coded checks in the UI.

For teams: Helps operators and agencies see setup problems before they become publishing or deployment issues.

This package makes its Composer dependencies visible because they are part of the value proposition, not just plumbing. When an upstream package has a public repository, its linked preview card points readers back to the maintainers so their work gets proper credit.

Capell packages used here

Open-source packages used here

  • Laravel Actions - single-purpose action classes that keep package workflows out of controllers and Filament resources.
  • Spatie Laravel Data - typed data objects for package boundaries, form state, settings, and structured results.

Linked package previews

Laravel Actions GitHub preview

Spatie Laravel Data GitHub preview

Screenshots are generated from docs/screenshots.json during package deployment.

  • Developer tools dashboard.
  • Command palette page.
  • System health page.
  • Permission audit page.
  • Queue health page.
  • Health widgets on the admin dashboard.
  • DiagnosticsServiceProvider and AdminServiceProvider register admin pages and widgets.
  • AdminServiceProvider registers palette command providers through the capell.diagnostics.command-palette-provider container tag.
  • Command palette actions discover providers dynamically, authorize commands, validate parameters, execute navigation or Artisan commands, and record audit runs.
  • Actions build each health report.
  • Data objects describe report rows and dashboard state.
  • FailedJob model supports queue reporting.
  • CommandPaletteRun model records command palette execution history.
AreaPathPurpose
Actionspackages/diagnostics/src/ActionsDomain operations. Test these directly where possible.
Datapackages/diagnostics/src/DataStructured payloads, form state, view models, and integration data.
Enumspackages/diagnostics/src/EnumsPersisted states and Filament option values.
Modelspackages/diagnostics/src/ModelsEloquent records owned by the package.
Filamentpackages/diagnostics/src/FilamentAdmin resources, pages, widgets, and settings UI.
Providerspackages/diagnostics/src/ProvidersRegistration, extension hooks, routes, migrations, and resources.
Resourcespackages/diagnostics/resourcesViews, translations, assets, and package resources.
Databasepackages/diagnostics/databaseMigrations, seeders, and settings migrations.
Testspackages/diagnostics/testsPackage-level Pest coverage.
  • Pages: CommandPalettePage, DiagnosticsPage, PermissionAuditPage, PermissionAuditTable, QueueHealthPage, QueueHealthTable, SystemHealthPage.
  • Widgets: AlertsWidgetAbstract, CacheHealthWidgetAbstract, ConfigDriftWidgetAbstract, ContentGraphHealthWidgetAbstract, ContentHealthWidgetAbstract, MigrationsHealthWidgetAbstract, PackagesInstalledWidgetAbstract, RegistryHealthWidgetAbstract, SetupHealthWidgetAbstract, SiteHealthWidgetAbstract, TailwindBuildStatusWidgetAbstract.
  • This package owns the command_palette_runs table for command palette audit history.

  • It reads existing Laravel and Capell state such as config, migrations, failed jobs, permissions, packages, registries, and Tailwind outputs.

  • Models: CommandPaletteRun, FailedJob.

  • Migrations: 2026_05_10_190846_01_create_command_palette_runs_table.php.

  • Data objects live in src/Data/; use them for payloads, form state, and view models.

  • Contracts: CommandPaletteProvider.
  • Register Capell extension points, routes, migrations, settings, render hooks, and resources from service providers.
  • Adds admin pages for developer diagnostics.
  • Adds dashboard widgets.
  • Adds the command_palette_runs audit table.
  • No public routes are registered by this package.
  • Install with composer require capell-app/diagnostics in the host Capell application.
  • Run migrations through the host application package install flow.
  • In this repository, verify package changes with vendor/bin/pest; do not use php artisan.
  • DiagnosticsPage (packages/diagnostics/src/Filament/Pages/DiagnosticsPage.php, slug diagnostics)

  • CommandPalettePage (packages/diagnostics/src/Filament/Pages/CommandPalettePage.php, slug diagnostics/command-palette)

  • PermissionAuditPage (packages/diagnostics/src/Filament/Pages/PermissionAuditPage.php, slug dashboard-dashboard_reports/permission-audit)

  • QueueHealthPage (packages/diagnostics/src/Filament/Pages/QueueHealthPage.php, slug dashboard-dashboard_reports/queue-health)

  • SystemHealthPage (packages/diagnostics/src/Filament/Pages/SystemHealthPage.php, slug system-health)

  • Gate: CacheHealthWidgetAbstract: admin, super_admin

  • Gate: ConfigDriftWidgetAbstract: super_admin

  • Gate: ContentHealthWidgetAbstract: editor, admin, super_admin

  • Gate: DiagnosticsPage: Gate accessDiagnostics, viewDiagnostics

  • Gate: MigrationsHealthWidgetAbstract: super_admin

  • Gate: PackagesInstalledWidgetAbstract: super_admin

  • Gate: QueueHealthPage: Gate accessDiagnostics, viewDiagnostics

  • Gate: RegistryHealthWidgetAbstract: super_admin

  • Gate: SetupHealthWidgetAbstract: settings-gated only

  • Gate: SiteHealthWidgetAbstract: settings-gated only

  • Gate: TailwindBuildStatusWidgetAbstract: super_admin

  • Some checks depend on host-app conventions and may need configuration.
  • Queue health needs access to failed job data.
  • Permission audit output is only useful when permissions are registered.

Run package tests from the repository root:

Terminal window
vendor/bin/pest packages/diagnostics/tests --configuration=phpunit.xml
  • Put behaviour changes in src/Actions/; UI classes, commands, and controllers should call actions instead of owning domain logic.
  • Use package Data classes at boundaries instead of passing anonymous arrays between layers.
  • Use backed enums for persisted values and enum labels for Filament options.