Commit Graph

347 Commits

Author SHA1 Message Date
7d66f90810 feat: add main merge-and-validate entry point with error formatting 2025-11-01 17:11:56 -04:00
c220211c3a feat: add comprehensive config validation 2025-11-01 17:02:41 -04:00
7e95ce356b feat: add root-level config merging
Add merge_configs function that performs root-level merging of custom
config into default config. Custom config sections completely replace
default sections. Implementation does not mutate input dictionaries.

Includes comprehensive tests for:
- Empty custom config
- Section override behavior
- Adding new sections
- Non-mutating behavior

All 7 tests pass.
2025-11-01 16:59:02 -04:00
03f81b3b5c feat: add config file loading with error handling
Implement load_config() function with comprehensive error handling
- Loads and parses JSON config files
- Raises ConfigValidationError for missing files
- Raises ConfigValidationError for malformed JSON
- Includes 3 passing tests for all error cases

Test coverage:
- test_load_config_valid_json: Verifies successful JSON parsing
- test_load_config_file_not_found: Validates error on missing file
- test_load_config_invalid_json: Validates error on malformed JSON
2025-11-01 16:55:40 -04:00
ebc66481df docs: add config override system design
Add design document for layered configuration system that enables
per-deployment model customization while maintaining defaults.

Key features:
- Default config baked into image, user config via volume mount
- Root-level merge with user config taking precedence
- Fail-fast validation at container startup
- Clear error messages on validation failure

Addresses issue where mounted configs would overwrite default config
in image.
2025-11-01 14:02:55 -04:00
73c0fcd908 fix: ensure DEV mode warning appears in Docker logs on startup
- Add FastAPI @app.on_event("startup") handler to display warning
- Previously only appeared when running directly (not via uvicorn)
- Add DEPLOYMENT_MODE and PRESERVE_DEV_DATA to docker-compose.yml
- Update CHANGELOG.md with fix documentation

Fixes issue where dev mode banner wasn't visible in Docker logs
because uvicorn imports app without executing __main__ block.
v0.3.0-alpha.8
2025-11-01 13:40:15 -04:00
7aa93af6db feat: add resume mode and idempotent behavior to /simulate/trigger endpoint
BREAKING CHANGE: end_date is now required and cannot be null/empty

New Features:
- Resume mode: Set start_date to null to continue from last completed date per model
- Idempotent by default: Skip already-completed dates with replace_existing=false
- Per-model independence: Each model resumes from its own last completed date
- Cold start handling: If no data exists in resume mode, runs only end_date as single day

API Changes:
- start_date: Now optional (null enables resume mode)
- end_date: Now REQUIRED (cannot be null or empty string)
- replace_existing: New optional field (default: false for idempotent behavior)

Implementation:
- Added JobManager.get_last_completed_date_for_model() method
- Added JobManager.get_completed_model_dates() method
- Updated create_job() to support model_day_filter for selective task creation
- Fixed bug with start_date=None in price data checks

Documentation:
- Updated API_REFERENCE.md with complete examples and behavior matrix
- Updated QUICK_START.md with resume mode examples
- Updated docs/user-guide/using-the-api.md
- Added CHANGELOG_NEW_API.md with migration guide
- Updated all integration tests for new schema
- Updated client library examples (Python, TypeScript)

Migration:
- Old: {"start_date": "2025-01-16"}
- New: {"start_date": "2025-01-16", "end_date": "2025-01-16"}
- Resume: {"start_date": null, "end_date": "2025-01-31"}

See CHANGELOG_NEW_API.md for complete details.
v0.3.0-alpha.7
2025-11-01 13:34:20 -04: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
d656dac1d0 feat: add API authentication feature to roadmap
- Add v1.1.0 API Authentication & Security as next priority after v1.0.0
- Include comprehensive security features: API keys, RBAC, rate limiting, audit trail
- Add security warning to v1.0.0 noting lack of authentication
- Resequence all subsequent versions (v1.1-v1.6) to accommodate new feature
- Update version history to reflect new roadmap structure

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 12:52:22 -04:00
4ac89f1724 docs: restructure roadmap with v1.0 stability milestone and v1.x features
Major changes:
- Simplified v0.4.0 to focus on smart date-based simulation API with automatic resume
- Added v1.0.0 milestone for production stability, testing, and validation
- Reorganized post-1.0 features into manageable v1.x releases:
  - v1.1.0: Position history & analytics
  - v1.2.0: Performance metrics & analytics
  - v1.3.0: Data management API
  - v1.4.0: Web dashboard UI
  - v1.5.0: Advanced configuration & customization
- Moved quantitative modeling to v2.0.0 (major version bump)

Key improvements:
- v0.4.0 now has single /simulate/to-date endpoint with idempotent behavior
- Explicit force_resimulate flag prevents accidental re-simulation
- v1.0.0 includes comprehensive quality gates and production readiness checklist
- Each v1.x release focuses on specific domain for easier implementation
v0.3.0-alpha.6
2025-11-01 12:23:11 -04:00
0e739a9720 Merge rebrand from AI-Trader to AI-Trader-Server
Complete rebrand of project to reflect REST API service architecture:
- Updated all documentation (README, guides, API reference)
- Updated Docker configuration (compose, Dockerfile, images)
- Updated all repository URLs to Xe138/AI-Trader-Server
- Updated all Docker images to ghcr.io/xe138/ai-trader-server
- Added fork acknowledgment crediting HKUDS/AI-Trader
- Updated GitHub Actions workflows and shell scripts

All 4 phases completed with validation checkpoints.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 12:11:34 -04:00
85cfed2617 docs: add implementation plan and update roadmap 2025-11-01 12:11:27 -04:00
67454c4292 refactor: update shell scripts for AI-Trader-Server rebrand
Update all shell scripts to use the new AI-Trader-Server naming throughout.

Changes:
- main.sh: Update comments and echo statements
- entrypoint.sh: Update startup message
- scripts/validate_docker_build.sh: Update title, container name references,
  and docker image tag from ai-trader-test to ai-trader-server-test
- scripts/test_api_endpoints.sh: Update title and docker-compose command

Part of Phase 4: Internal Configuration & Metadata (Task 19)
2025-11-01 12:05:16 -04:00
123915647e refactor: update GitHub Actions workflow for AI-Trader-Server rebrand
Update Docker image references and repository URLs in the Docker release
workflow to reflect the rebrand from AI-Trader to AI-Trader-Server.

Changes:
- Workflow name: Build and Push AI-Trader-Server Docker Image
- Docker image tags: ai-trader → ai-trader-server
- Repository URLs: Xe138/AI-Trader → Xe138/AI-Trader-Server
- Release notes template updated with new image names

Part of Phase 4: Internal Configuration & Metadata (Task 18)
2025-11-01 12:03:43 -04:00
3f136ab014 docs: update maintainer docs for AI-Trader-Server rebrand
Update maintainer documentation files:
- docs/DOCKER.md: Update git clone URL, Docker image references
  (ghcr.io/hkuds/ai-trader to ghcr.io/xe138/ai-trader-server),
  container/service names, and backup filenames
- docs/RELEASING.md: Update GitHub Actions URLs, Docker registry
  paths, container package URLs, and all release examples

All maintainer docs now reference the correct repository and Docker
image paths.

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 12:00:22 -04:00
6cf7fe5afd docs: update reference docs for AI-Trader-Server rebrand
Update reference documentation:
- data-formats.md: Update description to reference AI-Trader-Server

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 11:58:30 -04:00
41a369a15e docs: update deployment docs for AI-Trader-Server rebrand
Update deployment documentation files:
- docker-deployment.md: Update git clone URL, Docker image references
  (ghcr.io/xe138/ai-trader to ghcr.io/xe138/ai-trader-server), and
  container/service names (ai-trader to ai-trader-server)
- monitoring.md: Update container names in all docker commands
- scaling.md: Update multi-instance service names and Docker image
  references

All deployment examples now use ai-trader-server naming.

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 11:58:04 -04:00
6f19c9dbe9 docs: update developer docs for AI-Trader-Server rebrand
Update developer documentation files:
- CONTRIBUTING.md: Update title to AI-Trader-Server
- development-setup.md: Update git clone URL from
  github.com/Xe138/AI-Trader to github.com/Xe138/AI-Trader-Server
- testing.md: Update title to reference AI-Trader-Server

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 11:56:58 -04:00
573264c49f docs: update user-guide docs for AI-Trader-Server rebrand
Update all user-guide documentation files:
- configuration.md: Update title and container name references
- using-the-api.md: Update title
- integration-examples.md: Update title, class names
  (AsyncAITraderServerClient), container names, DAG names, and log paths
- troubleshooting.md: Update title, container names (ai-trader to
  ai-trader-server), GitHub issues URL

All Docker commands and code examples now reference ai-trader-server
container name.

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 11:56:01 -04:00
400d57b6ac chore: add dev mode databases and data directories to gitignore
Added dev database files and dev_agent_data directory to gitignore
to prevent runtime dev data from being committed to the repository.

Patterns added:
- data/jobs_dev.db
- data/*_dev.db
- data/dev_agent_data/

This ensures dev mode runtime data remains local and doesn't pollute
version control.
2025-11-01 11:55:08 -04:00
5c840ac4c7 docs: add dev mode implementation plan and test config
Added comprehensive implementation plan for development mode feature
and test configuration used during verification.

Files:
- docs/plans/2025-11-01-dev-mode-mock-ai.md: Complete 12-task plan
- configs/test_dev_mode.json: Test configuration for dev mode

These files document the feature implementation process and provide
reference configurations for testing.
2025-11-01 11:54:39 -04:00
3012c162f9 fix: correct dev database path resolution in main.py
Fix critical bug where dev mode was initializing the production database
path instead of the dev database path. The initialize_dev_database() call
now correctly uses get_db_path() to resolve to data/jobs_dev.db.

Impact:
- Before: DEV mode would reset data/jobs.db (production database)
- After: DEV mode correctly resets data/jobs_dev.db (dev database)

Testing:
- Verified database isolation between dev and prod
- Confirmed PRESERVE_DEV_DATA flag works correctly
- Validated dev mode banner and deployment mode detection

Documentation:
- Added comprehensive manual verification results
- Documented all test cases and outcomes
- Recorded fix details for future reference

Task: Task 12 - Manual Verification and Final Testing
Plan: docs/plans/2025-11-01-dev-mode-mock-ai.md
2025-11-01 11:54:33 -04:00
2460f168ee docs: update CLAUDE.md for AI-Trader-Server rebrand
Update project overview and Docker commands to reflect AI-Trader-Server
naming:
- Change project description to emphasize REST API service
- Update Docker image references from ghcr.io/hkuds/ai-trader to
  ghcr.io/xe138/ai-trader-server
- Update container names from ai-trader to ai-trader-server
- Update GitHub Actions URL to Xe138/AI-Trader-Server repository

Part of Phase 3: Developer & Deployment Documentation
2025-11-01 11:53:10 -04:00
82bad45f3d refactor: update configs/README.md project name
Update project name from 'AI-Trader Bench' to 'AI-Trader-Server' in
configuration documentation

Part of Phase 2: Configuration Files rebrand
2025-11-01 11:49:28 -04:00
a95495f637 refactor: update .env.example header comment
Update main header comment from 'AI-Trader Environment Configuration' to
'AI-Trader-Server Environment Configuration'

Part of Phase 2: Configuration Files rebrand
2025-11-01 11:49:17 -04:00
db7a987d4e refactor: add Docker metadata labels with new project name
Add OCI-compliant metadata labels:
- Title: AI-Trader-Server
- Description: REST API service for autonomous AI trading competitions
- Source: https://github.com/Xe138/AI-Trader-Server

Part of Phase 2: Configuration Files rebrand
2025-11-01 11:48:59 -04:00
6a675bc811 refactor: update docker-compose.yml service and container names
Update service name from 'ai-trader' to 'ai-trader-server'
Update container name from 'ai-trader' to 'ai-trader-server'
Update Docker image reference to ghcr.io/xe138/ai-trader-server:latest

Part of Phase 2: Configuration Files rebrand
2025-11-01 11:48:45 -04:00
fcf832c7d6 test: add end-to-end integration tests for dev mode 2025-11-01 11:41:22 -04:00
6905a10f05 docs: add development mode documentation
Add comprehensive development mode documentation to README.md, API_REFERENCE.md, and CLAUDE.md:

README.md:
- New "Development Mode" section after Configuration
- Quick start guide with environment variables
- Explanation of DEV vs PROD mode behavior
- Mock AI behavior and stock rotation details
- Environment variables reference
- Use cases and limitations

API_REFERENCE.md:
- New "Deployment Mode" section after health check
- Response format with deployment_mode fields
- DEV mode behavior explanation
- Health check example with deployment fields
- Use cases for testing and CI/CD

CLAUDE.md:
- New "Development Mode" subsection in Important Implementation Details
- Deployment modes overview
- DEV mode characteristics
- Implementation details with file references
- Testing commands and mock behavior notes

All sections explain:
- DEPLOYMENT_MODE environment variable (PROD/DEV)
- PRESERVE_DEV_DATA flag for dev data persistence
- Mock AI provider with deterministic stock rotation
- Separate dev database and data paths
- Use cases for development and testing
2025-11-01 11:33:58 -04:00
163cc3c463 docs: rebrand CHANGELOG.md to AI-Trader-Server
Update CHANGELOG.md with AI-Trader-Server rebrand:
- Project name: AI-Trader → AI-Trader-Server
- Repository URLs: Xe138/AI-Trader → Xe138/AI-Trader-Server
- Docker images: ghcr.io/xe138/ai-trader → ghcr.io/xe138/ai-trader-server
- Docker service name: ai-trader → ai-trader-server
2025-11-01 11:32:14 -04:00
6e9c0b4971 feat: add deployment_mode flag to API responses 2025-11-01 11:31:49 -04:00
10d370a5bf feat: add dev mode initialization to main entry point 2025-11-01 11:29:35 -04:00
32b508fa61 docs: rebrand API reference to AI-Trader-Server
Update API_REFERENCE.md for the AI-Trader-Server rebrand:
- Change title from "AI-Trader API Reference" to "AI-Trader-Server API Reference"
- Update description to reference AI-Trader-Server
- Rename client class examples from AITraderClient to AITraderServerClient
- Update Python and TypeScript/JavaScript code examples

Part of Phase 1 rebrand (Task 3)
2025-11-01 11:29:33 -04:00
b706a48ee1 docs: rebrand QUICK_START.md to AI-Trader-Server
Updates Quick Start Guide with rebranded project name:
- Project name: AI-Trader → AI-Trader-Server
- Repository URL: github.com/Xe138/AI-Trader → github.com/Xe138/AI-Trader-Server
- Container name: ai-trader → ai-trader-server
- GitHub issues link updated to new repository

Part of Phase 1 core documentation rebrand.
2025-11-01 11:27:10 -04:00
b09e1b0b11 feat: integrate mock AI provider in BaseAgent for DEV mode
Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 11:25:49 -04:00
6fa2bec043 docs: rebrand README.md to AI-Trader-Server
Phase 1, Task 1 of rebrand implementation:

- Update title from "AI-Trader: Can AI Beat the Market?" to "AI-Trader-Server: REST API for AI Trading"
- Update "What is AI-Trader?" section to "What is AI-Trader-Server?"
- Update all repository URLs from github.com/Xe138/AI-Trader to github.com/Xe138/AI-Trader-Server
- Update Docker image references from ghcr.io/xe138/ai-trader to ghcr.io/xe138/ai-trader-server
- Update Python client class name from AITraderClient to AITraderServerClient
- Update docker exec container name from ai-trader to ai-trader-server
- Add fork acknowledgment section before License, crediting HKUDS/AI-Trader
- Update back-to-top link to reference new title anchor

All changes emphasize REST API service architecture and maintain consistency with new project naming conventions.
2025-11-01 11:22:35 -04:00
837962ceea feat: integrate deployment mode path resolution in database module 2025-11-01 11:22:03 -04:00
8fb2ead8ff feat: add dev database initialization and cleanup functions 2025-11-01 11:20:15 -04:00
2ed6580de4 feat: add deployment mode configuration utilities 2025-11-01 11:18:39 -04:00
528b3786b4 docs: add rebrand design document for AI-Trader-Server
Add comprehensive design document for rebranding project from AI-Trader
to AI-Trader-Server. Includes 4-phase approach with validation
checkpoints, naming conventions, and success criteria.

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 11:17:17 -04:00
ab085e5545 fix: suppress unused parameter warnings in mock LangChain model 2025-11-01 11:16:51 -04:00
9ffd42481a feat: add LangChain-compatible mock chat model wrapper
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-01 11:15:59 -04:00
b6867c9c16 feat: add mock AI provider for dev mode with stock rotation 2025-11-01 11:07:46 -04:00
f51c23c428 docs: add DEPLOYMENT_MODE configuration to env example 2025-11-01 11:03:51 -04:00
de5e3af582 fix: fixed buy me a coffee funding link 2025-11-01 11:03:24 -04:00
4020f51f92 chore: add GitHub funding configuration
Add sponsor links for GitHub Sponsors and Buy Me a Coffee.
2025-11-01 11:00:23 -04:00
6274883417 docs: remove reference to Chinese documentation
Remove link to README_CN.md as Chinese documentation is no longer maintained.
2025-11-01 10:45:27 -04:00
b3debc125f docs: restructure documentation for improved clarity and navigation
Reorganize documentation into user-focused, developer-focused, and deployment-focused sections.

**New structure:**
- Root: README.md (streamlined), QUICK_START.md, API_REFERENCE.md
- docs/user-guide/: configuration, API usage, integrations, troubleshooting
- docs/developer/: contributing, development setup, testing, architecture
- docs/deployment/: Docker deployment, production checklist, monitoring
- docs/reference/: environment variables, MCP tools, data formats

**Changes:**
- Streamline README.md from 831 to 469 lines
- Create QUICK_START.md for 5-minute onboarding
- Create API_REFERENCE.md as single source of truth for API
- Remove 9 outdated specification docs (v0.2.0 API design)
- Remove DOCKER_API.md (content consolidated into new structure)
- Remove docs/plans/ directory with old design documents
- Update CLAUDE.md with documentation structure guide
- Remove orchestration-specific references

**Benefits:**
- Clear entry points for different audiences
- No content duplication
- Better discoverability through logical hierarchy
- All content reflects current v0.3.0 API
2025-11-01 10:40:57 -04:00
c1ebdd4780 docs: remove config_path parameter from all API examples
Remove config_path from request examples throughout README.md as it is
not a per-request parameter. Config file path is set when initializing
the API server, not with each API call.

Changes:
- Remove config_path from all curl examples
- Remove config_path from TypeScript integration example
- Remove config_path from Python integration example
- Update parameter documentation to clarify config_path is server init only
- Add note that detail level control is not yet implemented in v0.3.0
- Clarify server configuration is set via CONFIG_PATH env var at startup

API Request Parameters (v0.3.0):
- start_date (required)
- end_date (optional, defaults to start_date)
- models (optional, defaults to all enabled models from config)

Server Configuration:
- Set via CONFIG_PATH environment variable or create_app() parameter
- Default: configs/default_config.json
- Contains model definitions and agent settings

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 19:10:32 -04:00
98d0f22b81 docs: fix integration examples to use complete API syntax
Correct all code examples in Integration Examples and Advanced API
Usage sections to use complete, valid JSON with all required fields.

Changes:
- TypeScript: Fix body type to 'any' and use proper property assignment
- Python: Fix variable overwriting, use unique names for examples
- On-Demand Downloads: Replace '...' with complete JSON examples
- Detail Levels: Add complete curl examples with all required fields
- Concurrent Job Prevention: Show complete API calls with proper JSON

All curl examples now include:
- Content-Type header
- Proper JSON formatting
- All required fields (config_path, start_date, models)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-31 19:07:00 -04:00