3 Commits

Author SHA1 Message Date
90b6ad400d fix: make get_db_path() idempotent to prevent recursive _dev suffix
Root Cause:
The get_db_path() function was being called multiple times in the
initialization chain, causing recursive suffix addition:
  data/jobs.db -> data/jobs_dev.db -> data/jobs_dev_dev.db

This resulted in tables being created in data/jobs_dev_dev.db while
the application tried to access data/jobs_dev.db (empty database).

Fix:
Added idempotency check in get_db_path() to detect and skip
transformation if path already contains "_dev.db" suffix.

Evidence from Diagnostics:
- alpha.20 logs showed: Input='data/jobs_dev.db', Resolved='data/jobs_dev_dev.db'
- Tables were created in jobs_dev_dev.db but accessed from jobs_dev.db
- This caused "no such table: jobs" errors despite successful initialization

All 28 integration tests pass with this fix.

Fixes #6
2025-11-02 15:52:25 -05:00
b9353e34e5 feat: add prominent startup warning for DEV mode
Add comprehensive warning display when server starts in development mode
to ensure users are aware of simulated AI calls and data handling.

Changes:
- Add log_dev_mode_startup_warning() function in deployment_config.py
- Display warning on main.py startup when DEPLOYMENT_MODE=DEV
- Display warning on API server startup (api/main.py)
- Warning shows AI simulation status and data persistence behavior
- Provides clear instructions for switching to PROD mode

The warning is highly visible and informs users that:
- AI API calls are simulated (no costs incurred)
- Data may be reset between runs (based on PRESERVE_DEV_DATA)
- System is using isolated dev database and paths

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 12:57:54 -04:00
2ed6580de4 feat: add deployment mode configuration utilities 2025-11-01 11:18:39 -04:00