Alan Garber
5d0ff6d58b
Add streaming responses, switch to Haiku, user feedback, and startup data gathering
- Switch LLM from Claude Sonnet to Claude Haiku 3.5 (claude-haiku-4-5-20251001),
reducing avg eval latency from ~7s to 3.8s with 100% pass rate (55/55)
- Add streaming endpoint (POST /ai/agent/stream) using Vercel AI SDK streamText()
with SSE, so tokens render progressively in the chat UI
- Update Angular chat component to consume SSE via fetch + ReadableStream reader
- Add user feedback (thumbs up/down) buttons on assistant messages that POST to
new /ai/feedback endpoint and log scores to Langfuse via REST API
- Add delayed loadCurrencies() call on startup to ensure exchange rates are
populated after data-gathering queue processes on fresh deployments
- Fix eval suite dotenv loading so LLM-as-judge can read ANTHROPIC_API_KEY
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
21047b68ed
EARLY_DEMO_SCRIPT.md
1 month ago
Alan Garber
2e661fbe6b
Add Langfuse observability, verification layer, and 55-case eval suite
- Langfuse: OpenTelemetry tracing via @langfuse/otel , initialized at
app startup, traces all generateText() calls with tool usage and
token counts
- Verification layer (3 checks): financial disclaimer injection,
data-backed claims (hallucination detection), portfolio scope
validation. Runs post-generation on every agent response.
- Eval suite v2: 55 test cases across 4 categories (20 happy path,
12 edge cases, 12 adversarial, 11 multi-step). Includes latency
checks, LLM-as-judge scoring, and JSON results export.
Current pass rate: 94.5%
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
563f7a9857
Fix period performance using getHistoricalRaw for start prices
The period performance tool was falling back to cost basis when the
local MarketData table lacked historical prices at the period start,
making YTD numbers identical to all-time. Now uses
DataProviderService.getHistoricalRaw() to fetch prices directly from
Yahoo Finance with a 7-day lookback window, ensuring accurate
start-of-period valuations regardless of local DB state.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
4d8487dc91
Add current date to agent system prompt
The LLM now knows the current date so it can correctly interpret
relative time references like "this year" or "this month".
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
c2ec810085
Add date-range filtering to portfolio performance tool
The agent can now answer period-specific performance questions (YTD,
MTD, 1Y, etc.) instead of always returning all-time data. Uses
historical MarketData prices to compute start-of-period valuations
and calculates period gain adjusted for cash flows.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
32db897bc4
Fix portfolio performance tool and auto-gather on startup
- Rewrite performance tool to compute returns directly from orders +
live quotes, bypassing broken portfolio snapshot calculator
- Add OnApplicationBootstrap hook to CronService to trigger data
gathering (gather7Days) automatically when the server starts
- Update eval results (10/10 pass)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 month ago
Alan Garber
2711e5f897
Add AI financial agent with chat UI and demo mode
1 month ago
Thomas Kaul
3eb9d53220
Bugfix/validation of valuables ( #6372 )
* Fix validation of valuables
* Update changelog
1 month ago
Thomas Kaul
b888005144
Task/refresh cryptocurrencies list 20260216 ( #6342 )
* Update cryptocurrencies.json
* Update changelog
1 month ago
David Requeno
117a938bad
Feature/add new market data preset ( #6346 )
* Add new market data preset (no activities)
* Update changelog
1 month ago
Thomas Kaul
0d67478cc3
Task/harmonize validation for create activity endpoint with existing import activity logic ( #6349 )
* Harmonize validation
* Update changelog
1 month ago
Thomas Kaul
8c88ce918f
Feature/add support for custom cryptocurrencies defined in database ( #6344 )
* Add support for custom cryptocurrencies defined in database
* Update changelog
1 month ago
Thomas Kaul
75d3494fa4
Task/add support for cryptocurrency Sky ( #6338 )
* Add support for Sky
* Update changelog
1 month ago
Thomas Kaul
e59421f008
Feature/add static portfolio analysis fee ratio rule based on total investment volume ( #6332 )
* Add fee ratio rule based on total investment volume
* Update changelog
2 months ago
Thomas Kaul
f38a2d7ff1
Bugfix/investment value in portfolio summary ( #6329 )
* Include currency effects in investment value of portfolio summary
* Update changelog
2 months ago
Thomas Kaul
299bca2780
Task/extend error messages in scraper configuration ( #6322 )
* Improve error handling
* Update changelog
2 months ago
Thomas Kaul
8a98c0a3f0
Task/ignore nested ETFs when fetching top holdings in Yahoo Finance service ( #6319 )
* Ignore nested ETFs in top holdings
* Update changelog
2 months ago
Varun Chawla
c489a1cc00
Bugfix/integrate missing valueInBaseCurrency in import activities response ( #6294 )
* Integrate missing valueInBaseCurrency in import activities response
* Update changelog
2 months ago
Neeraj Bachani
373a4857ac
Bugfix/reset buy tracking variables when position closes ( #6298 )
* Reset buy tracking variables when position closes
* Update changelog
---------
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
2 months ago
Thomas Kaul
e361f09398
Bugfix/expand date range to cover full day in exchange rate calculation ( #6311 )
* Expand date range (start to end of day)
* Update changelog
2 months ago
Anurag Choudhury
d7349cd621
Bugfix/adapt accounts and tags of assistant in impersonation mode ( #6231 )
* Adapt accounts and tags of assistant in impersonation mode
* Update changelog
---------
Co-authored-by: Thomas Kaul <4159106+dtslvr@users.noreply.github.com>
2 months ago
Thomas Kaul
f57726972e
Task/refresh cryptocurrencies list 20260207 ( #6289 )
* Update cryptocurrencies.json
* Update changelog
2 months ago
Thomas Kaul
63e75942a8
Task/remove deprecated transaction count in portfolio calculator and service ( #6288 )
* Remove deprecated transactionCount in portfolio calculator and service
* Update changelog
2 months ago
Thomas Kaul
348ee5de8d
Task/add missing transform data source interceptors in market data controller ( #6287 )
* Add missing transform data source interceptors
2 months ago
Thomas Kaul
5adacda88f
Task/remove deprecated session id from create stripe checkout session response ( #6280 )
* Remove deprecated sessionId
2 months ago
Thomas Kaul
4ff372f020
Task/remove deprecated transaction count in get admin endpoint ( #6281 )
* Remove deprecated transaction count
* Update changelog
2 months ago
Thomas Kaul
eb6177d2e5
Bugfix/fix exception when fetching top holdings in Yahoo Finance service ( #6279 )
* Add missing guard
* Update changelog
2 months ago
Thomas Kaul
0365b9b614
Task/upgrade stripe to version 20.3.0 ( #6273 )
* Upgrade stripe to version 20.3.0
* Update changelog
2 months ago
Thomas Kaul
0034ed0adf
Feature/introduce fast-redact in value redaction interceptor ( #6269 )
* Introduce fast-redact
* Update changelog
---------
Co-authored-by: Valentin Zickner <valentin@coderworks.de>
2 months ago
Thomas Kaul
9c4638c185
Feature/add impersonation mode in get account balances endpoint ( #6272 )
* Add impersonation mode
* Update changelog
2 months ago
Thomas Kaul
eae2c20dfe
Task/deprecate transactionCount in GET api/v1/admin endpoint ( #6265 )
* Deprecate transactionCount in favor of activitiesCount
* Update changelog
2 months ago
Kenrick Tandrian
7dbacdbf0f
Feature/extract top holdings from Yahoo Finance for ETF and mutual funds ( #6254 )
* Extract top holdings from Yahoo Finance for ETF and mutual funds
* Update changelog
2 months ago
Thomas Kaul
418e8bc843
Task/remove deprecated first buy date in portfolio calculator ( #6244 )
* Remove deprecated firstBuyDate
* Update changelog
2 months ago
Thomas Kaul
30be7589b6
Task/refactor getDividends() from async to sync ( #6222 )
* Refactor from async to sync
2 months ago
Thomas Kaul
f364874e27
Task/extend portfolio calculator tests with investments by year ( #6240 )
* Extend tests with investmentsByYear
2 months ago
Thomas Kaul
f03b8f097e
Task/refresh cryptocurrencies list 20260123 ( #6236 )
* Update cryptocurrencies.json
* Update changelog
2 months ago
Thomas Kaul
13031aaad3
Task/deprecate firstBuyDate in portfolio calculator ( #6239 )
* Deprecate firstBuyDate in favor of dateOfFirstActivity
* Update changelog
2 months ago
Thomas Kaul
71902e39d1
Task/deprecate transactionCount in portfolio calculator and service ( #6228 )
* Deprecate transactionCount in favor of activitiesCount
* Update changelog
2 months ago
Thomas Kaul
18f09e88d9
Task/remove deprecated firstBuyDate from portfolio holding response ( #6220 )
* Remove deprecated firstBuyDate
* Update changelog
2 months ago
Thomas Kaul
4cfb785499
Task/deprecate firstBuyDate in portfolio holding response ( #6208 )
* Deprecate firstBuyDate
* Update changelog
2 months ago
Thomas Kaul
d9a4d261e4
Bugfix/total fee calculation related to activities in custom currency (part 2) ( #6199 )
* Fix total fee calculation related to activities in custom currency
* Update changelog
2 months ago
Thomas Kaul
3359ea1d20
Bugfix/numeric parsing error in X-ray page ( #6198 )
* Fix numeric parsing error related to cash positions
* Update changelog
2 months ago
Thomas Kaul
f19e417068
Task/remove deprecated activities from portfolio holding response ( #6157 )
* Remove deprecated activities
* Update changelog
2 months ago
Thomas Kaul
aa41cb404b
Task/remove deprecated platforms from info service ( #6137 )
* Remove platforms from info service
* Update changelog
3 months ago
Thomas Kaul
6727fb2b74
Bugfix/total fee calculation related to activities in custom currency ( #6191 )
* Fix total fee calculation related to activities in custom currency
* Update changelog
3 months ago
Thomas Kaul
723e154e65
Feature/restore support for specific calendar year date ranges in holdings ( #6186 )
* Restore specific calendar year date ranges
* Update changelog
3 months ago
Kenrick Tandrian
645e8ee303
Bugfix/prevent double counting of cash in net worth ( #6171 )
* Prevent double counting of cash in net worth
* Update changelog
3 months ago
Thomas Kaul
4539367bc5
Task/refresh cryptocurrencies list 20260105 ( #6172 )
* Update cryptocurrencies.json
* Update changelog
3 months ago
Thomas Kaul
ac67a6e190
Task/extend portfolio calculator cash test ( #6162 )
* Extend test
3 months ago