- Add discipline (business category) and rating (1-5 stars) fields to agent models
- Discipline dropdown on registration form (required) and edit modals (both user and admin)
- Interactive star rating widget with immediate save via PUT /api/agents/{id}/rating
- Discipline filter and rating sort on agent management dashboard
- Purple discipline badge and gold star badge on agent cards
- CSV export/import support for discipline, rating, and total_tokens
- Initialize total_tokens on manually-created agents for consistent CSV exports
- Search agents by discipline field
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add audit status filter (Audited/Not Audited) to agent management and admin dashboard
- Add token usage tracking: token_count per timeline entry, total_tokens on agents
- Token badge on agent cards, Total Tokens stat in usage modal, dual-axis chart
- Sort by Total Tokens option, total_tokens in CSV export
- Mailgun email notifications for high token usage (optional, non-blocking)
- Cooldown-based notification tracking in MongoDB token_notifications collection
- Add promote_admin.py utility script for user promotion
- Update CLAUDE.md documentation for all new features
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Move POST /api/admin/users before PUT /api/admin/users/{email}
to fix "Method Not Allowed" error when creating users.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Show both Microsoft SSO and local login options on login page
- Add admin user management: create local users with password
- Add admin password reset for local users only
- Add self-service password change on profile page for local users
- Display auth provider (Local/SSO) in admin user table
- New API endpoints: POST /api/admin/users, POST /api/admin/users/{email}/reset-password, POST /api/users/change-password
- SSO and local auth remain separate (no dual-auth)
- Minimum 8 character password requirement
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>