Suggestion Misses' "Promote Selected" now opens the same bulk-add modal
shape as Suggestions' "Create Many" (editable phrases textarea +
lang/intent), prefilled with the selected misses' own text/language, and
submits via batchCreateSuggestions() so edited/added lines are honored.
Once that succeeds, the selected misses are deleted via the new
batchDeleteSuggestionMisses() (DELETE /admin/suggestion-misses/batch) so
they don't linger in the list now that they're suggestions. This is
best-effort: a failed cleanup doesn't undo the promotion, just surfaces a
separate warning notification.
MarkdownEditor gives admins a proper toolbar/preview for FAQ content
instead of a plain textarea. File attachments are disabled since
bnfexpress's FAQ content has no attachment storage backing it.
- Modules\Shared\Bnfexpress\BnfexpressAdminClient: HMAC-signed HTTP client
for bnfexpress's admin API (EV FAQs, agent instructions, chat history),
with a bnfexpress:smoke-test command and full unit coverage.
- New ai-agent module: Filament pages to manage EV FAQs, publish/roll back
agent instruction versions, and browse EV chat history + transcripts.
- New manage_ai_agent permission (super_admin/admin).
- Recorded .ai/rules for the client's auth scheme and non-Resource
Filament page/table testing gotchas.