AI module standardization release — see PR #9 plus post-merge review fixes.
Added
- Manual sort mode on the endpoints list — picking "Manual" turns rows + cards into a drag-to-reorder
SortableGridtarget;reorder_endpoints/2rewritessort_ordervia the sharedPhoenixKit.Utils.Reorder.reorder/4two-phase primitive - Reorder mutations log a single
endpoint.reordered/prompt.reorderedactivity row with count metadata - Optional Provider Settings (HTTP-Referer / X-Title) default from
PhoenixKit.Settings(site_url/project_title) viaget_setting_cached/1; per-endpoint fields act as pure overrides
Changed
- Minimum
phoenix_kitis now 1.7.112 — this release usesPhoenixKit.Utils.{Reorder,Values,Format}and the<.form_section>/:sort_barcore components - Endpoints + Prompts admin tables adopt
<.table_default toggleable>(card + table views); sort UI moved to the core:sort_barslot - Endpoint form, Prompt form, Playground migrated to
<.form_section>/<.form_actions>/ core inputs — drops ~500 lines of hand-rolled form boilerplate - Recent Requests table migrated to
<.table_default>; columns tiered by importance against the admin sidebar breakpoint - AI pages expand to full width on large screens
parse_sort_*and actor-resolution helpers extracted toPhoenixKitAI.Web.{SortHelpers,AuthHelpers}(~75 lines of duplication removed)reorder_prompts/2migrated to the sharedReorder.reorder/4primitive; takes[uuid]instead of[{uuid, sort_order}]- i18n: 14+ raw English strings wrapped in
gettext/1
Fixed
- Stable
:uuidtiebreaker on every endpoint/prompt sort branch — tied sort-field values no longer reshuffle between pages/refreshes - Replaced the bogus
{:id, "ID"}endpoint sort option with{:inserted_at, "Created"} - Endpoint "Enabled" toggle now submits a hidden
falsecompanion so unchecking actually persists PromptFormgained ahandle_info/2catch-all- Quality sweep: all credo
--strictfindings closed;mix precommitgreen end to end
📦 hex.pm/packages/phoenix_kit_ai/0.3.0 · 📖 hexdocs.pm/phoenix_kit_ai/0.3.0