Commit Graph

214 Commits

Author SHA1 Message Date
Bu5hm4nn
786953c403 docs: add verified Forgejo CI debugging guide to AGENTS.md
Verified:
- Web UI URL for viewing workflow runs
- SSH command to access runner logs
- Common failure patterns and fixes
2026-03-29 12:10:52 +02:00
Bu5hm4nn
9fed45ef9f fix(ci): add databento to CI dependencies for test and type-check
The test job runs tests that import DatabentoHistoricalPriceSource,
and type-check analyzes app/services/backtesting/databento_source.py.
Both need the databento package installed.
2026-03-29 12:05:22 +02:00
Bu5hm4nn
850be70fea fix(ci): add DATABENTO_API_KEY to deploy environment
- Add DATABENTO_API_KEY secret to deploy job environment
- Add DATABENTO_API_KEY to .env file creation in deploy script
- Matches DATABENTO_API_KEY in .env.example
2026-03-29 12:03:26 +02:00
Bu5hm4nn
b54bf9d228 docs: mark CONV-001 and DATA-DB-003 as done 2026-03-29 12:00:50 +02:00
Bu5hm4nn
dc4ee1f261 feat(CONV-001): add GLD launch date validation, feat(DATA-DB-003): add cache CLI
CONV-001:
- Add GLD_LAUNCH_DATE constant (November 18, 2004)
- Validate reference_date in gld_ounces_per_share()
- Raise ValueError for dates before GLD launch
- Update docstring with valid date range
- Add comprehensive test coverage for edge cases

DATA-DB-003:
- Create scripts/cache_cli.py with three commands:
  - vault-dash cache stats: Show cache statistics
  - vault-dash cache list: List cached entries
  - vault-dash cache clear: Clear all cache files
- Add Makefile targets: cache-stats, cache-list, cache-clear
- Integrate with DatabentoHistoricalPriceSource methods
2026-03-29 12:00:30 +02:00
Bu5hm4nn
ace6d67482 docs: mark DATA-DB-004 as done, update roadmap 2026-03-29 11:12:20 +02:00
Bu5hm4nn
9a3b835c95 feat(DATA-DB-004): add Databento settings UI and independent scenario config
- Updated backtests page with Data Source card
  - Data source selector (databento/yfinance/synthetic)
  - Dataset dropdown (XNAS.BASIC, GLBX.MDP3)
  - Resolution dropdown (ohlcv-1d, ohlcv-1h)
  - Cost estimate display (placeholder for now)

- Added Scenario Configuration card
  - Underlying symbol selector (GLD/GC/XAU)
  - Start/end date inputs
  - Start price input (0 = auto-derive)
  - Underlying units, loan amount, margin call LTV

- BacktestPageService updates:
  - get_historical_prices() with data_source parameter
  - get_cost_estimate() for Databento cost estimation
  - get_cache_stats() for cache status display
  - Support for injected custom provider identity
  - DataSourceInfo for provider metadata

- BacktestSettingsRepository integration:
  - Load/save settings per workspace
  - Default values from BacktestSettings.create_default()

- Test update: TLT validation message changed to reflect
  new multi-symbol support (GLD, GC, XAU)
2026-03-29 11:12:11 +02:00
Bu5hm4nn
52a0ed2d96 docs: mark DATA-DB-001 and DATA-DB-002 as done 2026-03-29 10:46:51 +02:00
Bu5hm4nn
43067bb275 feat(DATA-DB-002): add BacktestSettings model and repository
- BacktestSettings dataclass with all configuration fields
- BacktestSettingsRepository for persistence per workspace
- Settings independent of portfolio configuration
- Full validation for dates, symbols, LTV, etc.
- 16 comprehensive tests

Fields:
- settings_id, name: identification
- data_source: databento|yfinance|synthetic
- dataset, schema: Databento configuration
- start_date, end_date: date range
- underlying_symbol, start_price, underlying_units: position config
- loan_amount, margin_call_ltv: LTV analysis
- template_slugs: strategies to test
- cache_key, data_cost_usd: caching metadata
- provider_ref: provider configuration
2026-03-29 10:46:25 +02:00
Bu5hm4nn
f4c3cee91d docs: move DATA-DB-001 to in-progress, update roadmap 2026-03-29 09:58:11 +02:00
Bu5hm4nn
bf13ab5b46 feat(DATA-DB-001): add Databento historical price source for backtesting
- Add DatabentoHistoricalPriceSource implementing HistoricalPriceSource protocol
- Smart caching with Parquet storage and metadata tracking
- Auto symbol-to-dataset resolution (GLD→XNAS.BASIC, GC=F→GLBX.MDP3)
- Cache management with age threshold invalidation
- Cost estimation via metadata.get_cost()
- Add databento>=0.30.0 to requirements.txt
- Add DATABENTO_API_KEY to .env.example
- Full test coverage with 16 tests
2026-03-29 09:58:02 +02:00
Bu5hm4nn
c02159481d docs: add Databento integration plan and roadmap items 2026-03-29 09:52:06 +02:00
Bu5hm4nn
8079ca58e7 docs: mark PORTFOLIO-002 and PORTFOLIO-003 done, update roadmap 2026-03-28 23:54:05 +01:00
Bu5hm4nn
bb06fa7e80 feat(PORTFOLIO-003): add premium and spread for physical gold positions 2026-03-28 23:53:46 +01:00
Bu5hm4nn
0e972e9dd6 feat(PORTFOLIO-002): add position storage costs 2026-03-28 23:48:41 +01:00
Bu5hm4nn
e148d55cda docs: mark DISPLAY-001 and DISPLAY-002 done, update roadmap 2026-03-28 21:59:52 +01:00
Bu5hm4nn
63a8482753 feat(DISPLAY-002): GLD mode shows real share prices 2026-03-28 21:59:15 +01:00
Bu5hm4nn
dac0463d55 feat(DISPLAY-002): GLD mode shows real share prices 2026-03-28 21:45:00 +01:00
Bu5hm4nn
20f5086507 feat(DISPLAY-001): add underlying mode switching 2026-03-28 21:44:32 +01:00
Bu5hm4nn
24c74cacbd docs: mark PORTFOLIO-001 done, update roadmap 2026-03-28 21:30:02 +01:00
Bu5hm4nn
1a39956757 feat(PORTFOLIO-001): add position-level portfolio entries 2026-03-28 21:29:30 +01:00
Bu5hm4nn
447f4bbd0d docs: add PORTFOLIO and DISPLAY roadmap items for multi-position mode switching 2026-03-28 20:59:29 +01:00
Bu5hm4nn
fd51f1e204 docs: mark DATA-004 done, update roadmap 2026-03-28 16:40:59 +01:00
Bu5hm4nn
3b98ebae69 feat(DATA-004): add underlying instrument selector 2026-03-28 16:40:18 +01:00
Bu5hm4nn
cdd091a468 docs: mark PRICING-002 and PRICING-003 done, update roadmap 2026-03-28 09:18:53 +01:00
Bu5hm4nn
3bf3774191 Merge branch 'feature/PRICING-002-basis-display' 2026-03-28 09:18:29 +01:00
Bu5hm4nn
de789f591e Merge branch 'feature/PRICING-003-hedge-correction' 2026-03-28 09:18:29 +01:00
Bu5hm4nn
9d06313480 feat(PRICING-002): add GLD/GC=F basis display on overview 2026-03-28 09:18:26 +01:00
Bu5hm4nn
966cee7963 feat(PRICING-003): use true GLD backing for hedge contract count 2026-03-28 09:18:26 +01:00
Bu5hm4nn
b30cfd7470 docs: mark PRICING-001 done, update roadmap 2026-03-28 09:05:28 +01:00
Bu5hm4nn
894d88f72f feat(PRICING-001): add GLD expense ratio decay correction 2026-03-28 09:04:35 +01:00
Bu5hm4nn
ff251b5ace docs: add GLD pricing and underlying selector roadmap items 2026-03-28 08:53:02 +01:00
Bu5hm4nn
e70e677612 Add GLD vs gold futures basis research for dashboard implementation 2026-03-28 08:48:49 +01:00
Bu5hm4nn
4620234967 feat(EXEC-001): add hedge strategy builder 2026-03-27 22:33:20 +01:00
Bu5hm4nn
554a41a060 refactor(BT-001C): share historical fixture provider 2026-03-27 21:41:50 +01:00
Bu5hm4nn
477514f838 feat(BT-002): add historical snapshot provider 2026-03-27 18:31:28 +01:00
Bu5hm4nn
1a6760bee3 feat(PORT-003): add historical ltv charts 2026-03-27 16:39:33 +01:00
Bu5hm4nn
b3418eed2e docs(BT-003B): record completed drilldown validation 2026-03-27 11:12:18 +01:00
Bu5hm4nn
3c9ff201e1 feat(BT-003B): add event comparison drilldown 2026-03-26 22:05:31 +01:00
Bu5hm4nn
bdf56ecebe fix(CORE-001D): close boundary review gaps 2026-03-26 17:34:09 +01:00
Bu5hm4nn
94f3c1ef83 feat(CORE-001D): close remaining boundary cleanup slices 2026-03-26 17:27:44 +01:00
Bu5hm4nn
99d22302ee fix(CORE-001D3B): validate alert history entry types 2026-03-26 15:19:42 +01:00
Bu5hm4nn
65da5b8f1d fix(CORE-001D3B): reject malformed alert history entries 2026-03-26 15:16:21 +01:00
Bu5hm4nn
ff76e326b1 feat(CORE-001D3B): surface alert history degraded state 2026-03-26 15:12:04 +01:00
Bu5hm4nn
09e03f96a8 chore(settings): drop unused last-saved helper 2026-03-26 15:05:28 +01:00
Bu5hm4nn
38d244356c refactor(settings): separate preview validation from internal failures 2026-03-26 15:00:53 +01:00
Bu5hm4nn
e860c40567 fix(settings): reject fractional refresh intervals 2026-03-26 14:05:49 +01:00
Bu5hm4nn
2759d9a36f fix(settings): track dirty state across all inputs 2026-03-26 13:59:56 +01:00
Bu5hm4nn
cfa3cfcc08 fix(settings): clarify last-saved status state 2026-03-26 13:54:56 +01:00
Bu5hm4nn
f7c134a709 fix(settings): preserve whole-dollar loan formatting 2026-03-26 13:34:34 +01:00