Add new /chat route with full-page chat interface featuring:
- Conversation list sidebar with delete functionality
- Newest-first message ordering
- Auto-scroll to latest message
- Starter prompt buttons
- Response details with confidence/citations/verification
- Feedback system (helpful/needs work)
LocalStorage persistence:
- Conversations sorted by updatedAt
- Max 50 conversations, 200 messages each
- Active conversation tracking
Frontend fixes:
- Messages display newest on top (reverse chronological)
- Auto-scroll to top when new messages arrive
- Template ref for scroll control
Related issue: Fix chat page UI/UX for natural conversation flow
Replace robotic system prompts with conversational responses for:
- Greetings (hi, hello, hey, etc.) - returns friendly varied responses
- Acknowledgments (thanks, ok, great) - returns polite follow-ups
- Default queries - 3 varied helpful options instead of canned text
Keeps specialized responses for identity/usage/capability queries.
Updated tests to check for conversational patterns instead of
specific robotic phrases.
Fixes issue where casual queries like "hi" would return
"I am Ghostfolio AI. I can help with..." style responses.
* fix(lib): resolve typescript errors
* feat(lib): migrate to takeUntilDestroyed
* fix(lib): resolve type errors
* feat(lib): implement output signal
* feat(lib): clean up variables
* fix(lib): resolve input is deprecated
* feat(lib): implement input signal on placeholder
* feat(lib): implement input signal on isLoading
* fix(lib): add type annotations for date adapter
* fix(lib): handle form value possibly null
* fix(lint): use arrow fn for validators
* fix(lib): accounts table typings
* fix(lib): remove unsubscribeSubject due to lack of observable
* fix(lib): remove validators variable
* feat(lib): implement inject functions
* feat(lib): make locale an input signal
* feat(lib): make showActions an input signal
* feat(lib): make accountId an input signal
* feat(lib): make accountCurrency an input signal
* feat(lib): make accountBalances an input signal
* feat(lib): make sort a viewChild signal
* feat(lib): implement isNil
* feat(lib): resolve ts errors
* feat(lib): make days protected and readonly
* feat(lib): create formatDay helper function
* fix(lib): remove unused eslint-disable
* feat(lib): change locale to input signal
* feat(lib): change defaultDateFormat to computed signal
* feat(lib): change deviceType to computed signal
* feat(lib): change marketData to input signal
* feat(lib): change historicalDataItems to computed signal
* feat(nx): run ui test
* feat(lib): update days to improve readability
* feat(nx): revert test changes
* fix(lib): change logic for locale
* fix(lib): disable mutating the injected readonly data
* fix(lib): implement takeUntilDestroyed
* fix(lib): implement takeUntilDestroyed
* fix(lib): organize imports