- Introduced `openApiEnabled` configuration in the app settings.
- Implemented middleware to restrict access to API routes when OpenAPI is disabled.
- Updated API key creation logic to check OpenAPI status before proceeding.
- Added user feedback for disabled API access in the frontend.
- Created tests for OpenAPI functionality and response handling.
- Updated environment configuration to include `ENABLE_OPENAPI` variable.
- Changed localStorage keys from "aicentos_promo_shown" to "nbility_promo_shown" in ApiDocs.tsx and Home.tsx.
- Updated modal titles and promotional text to reflect the new branding for NBility.
- Modified URLs in the promotional content to point to "https://nbility.dev" instead of "https://www.aicentos.com".
- Updated the index.html to reference new JavaScript and CSS files.
- Added "Copy Markdown" translation to multiple languages in common.json files.
- Implemented a new feature in ApiDocs to copy API documentation in Markdown format to the clipboard.
- Enhanced the UI with a button to trigger the copy action and display a success message.
feat: add promotional modal for AICentOS integration in API docs
fix: adjust styling for Turnstile component in Home page
chore: clean up API response structure by removing yesterday's stats
build: update asset references in index.html
- Add API Key caching (5min) to reduce D1 queries
- Remove updateApiKeyLastUsed to reduce unnecessary writes
- Extend stats API cache from 30s to 5min
- Fix SiteStats growth rate calculation (total vs daily)
- Fix deploy.yml to handle empty PASSWORD and API_RATE_LIMIT_PER_MINUTE
- Add emails index (message_to, created_at) for faster queries
- Implement lightweight /api/emails/meta for smart polling
- Reduce frontend polling: check meta every 60s, fetch full list only on change
Align Home page promo copy and registration link casing for consistent brand presentation before integrating feature branch changes.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
Implement optional site password gating, optional Turnstile verification, daily stats growth snapshots, and environment-driven API key rate limiting with deployment guidance for AI-assisted rollout.
Generated with [Claude Code](https://claude.ai/code)
via [Happy](https://happy.engineering)
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Happy <yesreply@happy.engineering>
- Updated localization files for Japanese, Korean, Portuguese, Russian, Turkish, Traditional Chinese, and Simplified Chinese to include new API-related strings.
- Enhanced the Header component to support language switching with a dropdown menu.
- Modified the i18n configuration to improve language detection and added support for new languages.
- Updated the Footer component to reflect the correct copyright years.
- Adjusted the API documentation page to use localized strings for the title.