Releases: openwalletvn/web
Releases · openwalletvn/web
v0.2.0
What's new
Owie Chat
- New AI assistant "Owie" (renamed from openwallet-chat)
- System prompt rewrite with persona rules and merchants list
- Context-aware rotating placeholders with double-click to fill
- Model selector with localStorage persistence
- Moving border animation on active composer
- Suggest curated pages after ranking/compare responses
- Bank list injected into system prompt at runtime
- Token usage tracking via Langfuse
New components
OwOwieFab- floating action button for Owie chatOwTrafficLights- macOS-style traffic light buttonsOpenOwieButton- inline button to open OwieMovingBorder- animated border effectModelSelector,ContextDisplay,Selectfor chat UI
Route restructuring
- Pages grouped into
(legal)/and(tools)/route groups /openwallet-chat→/owie-chat/openwallet-mcp→/mcp
Pages
ve-openwalletrewritten with Owie section- Contact form simplified to plain mailto
- MCP page: added mcp-inspector demo video
Style
- All em dashes replaced with hyphens/commas across codebase and blog posts
Infra
lib/chat/models.ts- model list as SSOTlib/chat/anonymous-user.ts- anonymous user trackinglib/chat/page-context.ts- page context injectionscripts/ow.ts- new CLI helper scriptscripts/tools/chatlog.ts- chat log tool
v1.2.1 — OwBadge fixes and OwFeeAmount enhancements
What's changed
Fixes
- Fix
OwBadgebuild errors: replace invalidsize="sm"withsmallprop (card-match-finder,ow-bank-row) - Fix intent hex colors for telecom, fashion, books, pets
- Fix Storybook stories: image paths, mock data alignment, autodocs
Features
OwBadge: metal variant, contactless variant, icon support for card-type, small propOwFeeAmount: percentage rate type, textOnly prop, primitive amount supportOwRankBadge: new rank badge componentOwCardCashbackRule: extracted from RuleCardOwBankImage/OwBankRow: new bank UI components- Banks page: grouped by category
- Cashback: handle expired rules in UI
- Typography: responsive heading scale, numeral classes
Refactors
- Unified badge system: replaced OwChip/OwCardBadge/OwIntentBadge with OwBadge
- Storybook: CF Pages deploy, brand theme, viewport switcher
- Card layouts: responsive improvements
v1.2.0 — Card Match persona + intent ranking
What's new
- Card Match finder — select a persona, then filter by specific intents (e.g. Shopee, siêu thị) nested as sub-chips
- Scope-aware cashback labels — catchall rules now show the correct scope: Online, Offline, quốc tế, nội địa instead of generic "Tất cả chi tiêu"
- Rate on intent chips — each intent badge shows its cashback rate (e.g. 🛍️ Shopee 5%)
- Ranking POST includes selected intents; falls back to persona default when none selected
Fixes
Persona.rank_intentsfield aligned with API snake_case responsegetIntents()path corrected to/api/v1/meta/intentsCashbackRuletype extended withscopefield (channel + geography)
v1.1.0 — Langfuse observability
What's new
- AI chat tracing — every conversation traced to Langfuse: model, tokens (input/output), latency, finish reason, tool call steps, prompt version
- Prompt management — system prompt managed in Langfuse UI, fetched at runtime with 60s cache and hardcoded fallback
- LLM-as-judge evaluator — auto-scores live
chattraces for hallucination detection via Langfuse Evaluators - Eval scores → Langfuse —
pnpm evalnow pushes judge scores and rule-pass results to Langfuse instead of GitHub JSONL;openwalletvn/evalsrepo deleted
Breaking changes
GITHUB_TOKEN/EVALS_REPOenv vars no longer used in eval harness- Requires
LANGFUSE_PUBLIC_KEY,LANGFUSE_SECRET_KEY,LANGFUSE_BASE_URLin.env.local
v1.0.0 — MVP Launch
MVP Launch
First production release of OpenWallet web.
Features
- Card comparison with floating compare bar and URL sync
- Card ranking table with spend selector and animated reorder
- Recommendation finder with multi-select intents
- /mcp and /wallet-chat landing pages
- Chat system (Groq streaming, MCP tools, eval harness) — UI hidden pending polish
- Evals system with SSE streaming, LLM judge, GitHub push
- Contact page with topic-picker and mail preview
Infrastructure
- API hardening via
apiFetch()with auto-injected auth header - Preview env banner + noindex
- Cal Sans fonts
- Turbopack config migration (Next.js 16)
- McpVersionBadge async server component
🤖 Generated with Claude Code