Skip to content

v2.3.0

Choose a tag to compare

@github-actions github-actions released this 09 Jul 16:26
· 185 commits to main since this release
Immutable release. Only release title and notes can be modified.
a8ef50a

Added

  • AI content-authoring agents (#170, #171, #172, #173, #174, #175) — Five new agents built on the artisanpack-ui/ai v1.0 foundation:

    • PostTitleSuggestionAgent (cms.post_title) — generate 3–5 title variants from a draft body.
    • ExcerptGenerationAgent (cms.excerpt) — generate a natural excerpt (default ≤200 chars) from full post content.
    • TagSuggestionAgent (cms.suggest_tags) — pick tags from an existing taxonomy, optionally propose new ones.
    • CategorySuggestionAgent (cms.suggest_category) — pick one category (slash-delimited path) from a hierarchical tree.
    • SlugSuggestionAgent (cms.suggest_slug) — produce an SEO-friendly kebab-case slug from a title, delegating ASCII folding to Str::slug().

    Every agent honors the artisanpack.ai.features.<key>.enabled toggle and is auto-discovered via CMSFrameworkServiceProvider::aiFeatures().

  • AI trigger surfaces — two consumer surfaces expose the same five agents:

    • Livewire component ap-cms-ai-tools (ArtisanPackUI\CMSFramework\Livewire\Ai\AiTools) — dispatch ap-cms-ai:{action} browser events, receive results on ap-cms-ai:{featureKey}:{status}.
    • REST controller mounted at /api/v1/cms/ai/* (ArtisanPackUI\CMSFramework\Http\Controllers\Ai\AiController) — framework-agnostic path for React, Vue, or any HTTP client. Endpoints are guarded by auth:sanctum so bearer-token SPAs can authenticate. Adding a new CMS AI feature never requires touching the @artisanpack-ui/react or @artisanpack-ui/vue packages.
  • AI_FEATURE_KEYS constant on CMSFrameworkServiceProvider — canonical list of the five cms.* feature keys, consumed by both trigger surfaces.

Changed

  • Minimum PHP raised to 8.3 (#175) — the artisanpack-ui/ai foundation this release depends on requires PHP 8.3+, and running a Composer resolution across the two constraints is not possible on PHP 8.2. Hosts still on PHP 8.2 should stay on the 2.2.x line until they can upgrade the runtime. No API changes; the codebase itself does not yet require 8.3-only syntax.
  • Dependenciesartisanpack-ui/ai ^1.0 added as suggest + require-dev. Without it the AI Livewire component and REST routes stay unregistered and the framework boots normally.