Andrew Kaszubski
bbd85c91b6
feat(dataflows): add benchmark data module with SPY, sector ETFs, RS, correlation, beta - Fixes #10
2025-12-26 16:14:57 +11:00
Andrew Kaszubski
19171a4b31
feat(dataflows): add multi-timeframe OHLCV aggregation - Fixes #9
2025-12-26 15:48:40 +11:00
Andrew Kaszubski
4d693fb331
feat(dataflows): add FRED API integration for economic data - Fixes #8
2025-12-26 15:25:54 +11:00
Andrew Kaszubski
1ea006e41f
feat(db): add Trade model with CGT tracking and Australian FY support ( #6 ) - TradeSide/TradeStatus/TradeOrderType enums, 50% discount for >12mo holdings, multi-currency FX, 87 tests
2025-12-26 14:46:06 +11:00
Andrew Kaszubski
1c6c2fadf1
feat(db): add Settings model with risk profiles and alert preferences ( #5 ) - Implements RiskProfile enum, risk parameters, JSON alert_preferences, one-to-one User relationship, CheckConstraints, cascade delete, 43 tests
2025-12-26 14:16:42 +11:00
Andrew Kaszubski
0d09f15bd6
feat(db): add Portfolio model with LIVE/PAPER/BACKTEST types - Fixes #4
2025-12-26 13:46:39 +11:00
Andrew Kaszubski
d3892b0da9
feat(db): add User model fields for tax, timezone, API key - Fixes #3
2025-12-26 13:15:37 +11:00
Andrew Kaszubski
9933a929df
feat(api): add FastAPI backend with JWT auth and strategies endpoint ( #48 )
...
- Add FastAPI application with async/await support (tradingagents/api/)
- Implement JWT authentication with Argon2 password hashing (PyJWT, pwdlib)
- Create /api/v1/auth/login endpoint for user authentication
- Create /api/v1/strategies CRUD endpoints (list, create, get, update, delete)
- Add SQLAlchemy 2.0 async models (User, Strategy) with PostgreSQL/SQLite
- Add Alembic migrations for database schema management
- Add comprehensive test suite (208 tests in tests/api/)
- Add Pydantic schemas for request/response validation
- Add CORS and error handling middleware
- Update documentation (CHANGELOG.md, README.md)
Security: Argon2 password hashing, JWT expiration, user isolation,
SQL injection prevention via SQLAlchemy ORM, no hardcoded secrets
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:50:03 +11:00
Andrew Kaszubski
b4653ca37b
feat(tests): add test fixtures directory with mock data - Fixes #51
...
- Created tests/fixtures/ with FixtureLoader class (14 loader methods)
- Added stock_data fixtures: US, CN (with Chinese columns), standardized OHLCV
- Added metadata fixtures: 5 analysis examples with datetime parsing
- Added report_sections fixtures: 7 complete analyst report sections
- Added api_responses fixtures: OpenAI embeddings and error responses
- Added configurations fixtures: vendor and LLM provider configs
- Created comprehensive README.md (595 lines) documenting fixture usage
- Updated docs/testing/writing-tests.md with fixture examples
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:23:29 +11:00
Andrew Kaszubski
5ea9e905c5
feat(tests): restructure tests into unit/integration/e2e directories - Fixes #50
...
- Moved 5 unit tests to tests/unit/ (exceptions, logging, report, docs, conftest)
- Moved 4 integration tests to tests/integration/ (openrouter, akshare, cli, deepseek)
- Created tests/e2e/ directory with README.md and conftest.py placeholder
- Added pytestmark = pytest.mark.unit/integration to all test files
- Updated pytest.ini with testpaths for new structure
- Updated docs/testing/README.md with new directory structure
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 11:04:20 +11:00
Andrew Kaszubski
36de8f0470
feat(tests): add pytest conftest.py hierarchy with shared fixtures - Fixes #49
...
- Created tests/conftest.py with 12 shared fixtures (environment mocks, LangChain/ChromaDB mocking, configuration)
- Created tests/unit/conftest.py with 6 unit-specific fixtures (data vendors, sample data)
- Created tests/integration/conftest.py with 2 integration fixtures (live ChromaDB, temp dirs)
- Added pytest.ini with 7 custom markers (unit, integration, e2e, llm, chromadb, slow, requires_api_key)
- Added tests/test_conftest_hierarchy.py with 83 tests validating fixture infrastructure
- Updated docs/testing/README.md and writing-tests.md with fixture usage documentation
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 10:40:30 +11:00
Andrew Kaszubski
c0dfb21c00
feat(docs): add comprehensive documentation structure - Fixes #52
...
- Add docs/ directory with 17 documentation files
- Architecture: multi-agent-system, data-flow, llm-integration
- API Reference: trading-graph, agents, dataflows
- Guides: adding-new-analyst, adding-llm-provider, adding-data-vendor, configuration
- Testing: README, running-tests, writing-tests
- Development: setup, contributing
- Update PROJECT.md with TESTING STRATEGY requirements
- Add test_documentation_structure.py for validation
🤖 Generated with Claude Code
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-26 10:18:50 +11:00
Andrew Kaszubski
436f6cc092
feat(reports): add report exporter with YAML frontmatter and JSON metadata (Issue #21 )
2025-12-26 10:11:42 +11:00
Andrew Kaszubski
bb0ea33100
feat(logging): add dual-output logging and rate limit error handling - Fixes #39
2025-12-26 09:54:07 +11:00
Andrew Kaszubski
9ee81be48b
fix(memory): use get_or_create_collection for idempotent ChromaDB init - Fixes #30
2025-12-26 09:20:04 +11:00
Andrew Kaszubski
5443aaa209
feat(llm): add OpenRouter API support with proper headers and API key handling
...
- Add explicit OPENROUTER_API_KEY environment variable handling
- Add HTTP-Referer and X-Title headers for OpenRouter attribution
- Fix case sensitivity for provider names (ollama now case-insensitive)
- Add embedding fallback to OpenAI when using OpenRouter (since OpenRouter lacks embedding API)
- Add comprehensive test suite (30 tests) for OpenRouter integration
- Update README.md and PROJECT.md with OpenRouter configuration docs
- Add CHANGELOG.md documenting the changes
Patterns borrowed from ~/.claude/lib/genai_validate.py for multi-provider support.
Closes #1
🤖 Generated with [Claude Code](https://claude.com/claude-code )
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-25 15:51:25 +11:00