Export & filtering - Replace /api/admin/agents/export/csv with /api/admin/agents/export/xlsx (openpyxl). Multi-line system prompts stay inside one cell instead of fragmenting into thousands of rows when opened in Excel. - Accept filter query params on export: status, discipline, audit, business_entity, agent_classification, autonomy_level, risks_only, search. - Move Export/Import CSV/Delete by CSV buttons into the Agents Management tab, drop the duplicate links from the top nav, and rebuild the cramped filter row as a wrappable two-row layout. - Add a Discipline dropdown to the Agents Management filter row to match the Prompt Audit tab. Completion-reminder emails (fix for the broken Complete-button links) - Add h:Reply-To header to every Mailgun send so users can reply to a real mailbox instead of noreply@. Default Nick.Viljoen@oliver.agency, overridable via NOTIFICATION_REPLY_TO env var. - send_completion_reminders now skips with an error log when AGENTHUB_PUBLIC_URL is unset instead of mailing relative links email clients can't follow. UI polish - Restrict the 5-second alert auto-hide to .alert-dismissible so the load-bearing 'unresolved owner' banner stays visible until acted on. - Move the orange brand gradient to a fixed body::before pseudo-element so it can't be covered by the white content card or scrolled out of view. - Lock the navbar to viewport top (position: fixed) and reserve body padding-top so content doesn't sit beneath it. Audit polish (carried over from previous WIP) - Add batch-state tracking to audit_analyzer for in-flight progress visibility. - Update PLAN-prompt-audit.md to match the shipped behaviour. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
43 lines
748 B
Text
43 lines
748 B
Text
annotated-types==0.7.0
|
|
anyio==4.10.0
|
|
bcrypt==4.0.1
|
|
beautifulsoup4==4.13.4
|
|
certifi==2025.8.3
|
|
charset-normalizer==3.4.3
|
|
click==8.2.1
|
|
dnspython==2.7.0
|
|
ecdsa==0.19.1
|
|
email_validator==2.2.0
|
|
fastapi==0.116.1
|
|
h11==0.16.0
|
|
httpcore==1.0.9
|
|
httpx==0.28.1
|
|
idna==3.10
|
|
Jinja2==3.1.2
|
|
MarkupSafe==3.0.2
|
|
motor==3.7.1
|
|
passlib==1.7.4
|
|
pyasn1==0.6.1
|
|
pydantic==2.11.7
|
|
pydantic_core==2.33.2
|
|
pymongo==4.14.0
|
|
python-dotenv==1.1.1
|
|
python-jose==3.5.0
|
|
python-multipart==0.0.6
|
|
requests==2.32.4
|
|
rsa==4.9.1
|
|
six==1.17.0
|
|
sniffio==1.3.1
|
|
soupsieve==2.7
|
|
SQLAlchemy==2.0.43
|
|
starlette==0.47.2
|
|
typing-inspection==0.4.1
|
|
typing_extensions==4.14.1
|
|
urllib3==2.5.0
|
|
uvicorn==0.35.0
|
|
msal==1.26.0
|
|
itsdangerous==2.2.0
|
|
cryptography==41.0.7
|
|
apscheduler>=3.10.0
|
|
google-genai>=1.0.0
|
|
openpyxl>=3.1,<4
|