Commits
Tabbed administration and effective configuration
Tabbed administration with complete user management, and global configuration separated from each user's personal ChatGPT subscription.
Today's session was short, but one that leaves administration in a workable state.
Tabbed administration
The administration page was a long list and has become tabs. User management now includes search, role filtering, pagination, user creation, editing, and deletion with confirmation. The header, sidebar, and footer have returned to neutral tones while the rest of the screens are being designed: less color and more focus on what is being done.
Global configuration and personal subscription separated
The administration settings have been divided into sections: AI providers, models by function, offer source, and outgoing email. The underlying decision is that the ChatGPT subscription belongs to each individual user, not to the platform: the personal selection takes precedence over the global models and can be tested with an actual generation. The connection flow requires both the API and the browser to run on the same machine through loopback, and the credentials are stored encrypted.
The home page that shows the truth
The superadministrator home page no longer sticks to the default values: it retrieves a summary of the effective configuration without returning credentials. It distinguishes personal ChatGPT models from global ones and shows the Apify source, its budget, and the status of the email configuration and schedule. Display and recovery after an error were verified in the browser, with the configuration and dashboard tests in green and type checking passing.
The project now moves on to the remaining features from the open tickets.