Skip to content

Phase 7A: Financial Profile + Merchant Intelligence - #13

Merged
Evin009 merged 14 commits into
mainfrom
develop
Jun 24, 2026
Merged

Evin009 merged 14 commits into
mainfrom
develop

Conversation

@Evin009

@Evin009 Evin009 commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Profile endpoints — GET /profile/overview (spending by category, utilization, subscriptions), GET /profile/merchants (ranked by total spend + 30-day trend), GET /profile/merchants/{id} (heatmap, monthly trend, Argus insight)
  • Argus tools — get_profile_overview and get_merchant_history registered in tool registry so Argus can answer spending pattern questions in chat
  • Profile page — three-level drill: spending ring → category → per-merchant heatmap + trend + AI insight; empty state for users with no data
  • CORS fix — pure ASGI middleware intercepts Chrome Private Network Access preflights before Starlette's CORSMiddleware rejects them; dev localhost port range expanded to 3000–3099
  • React key fix — React.Fragment key on HeatmapGrid row map

Test plan

  • Link a bank account at /accounts — Plaid exchange completes without "Failed to fetch"
  • /profile loads spending ring and merchant rankings once transactions exist
  • Tapping a merchant shows heatmap + trend + Argus insight
  • Argus chat answers "what did I spend at Amazon?" using get_merchant_history tool
  • /profile shows empty state + "Connect a bank" CTA when no data

🤖 Generated with Claude Code

Evin009 and others added 13 commits June 23, 2026 17:43
… no-code rule in CLAUDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…ans, split from Phase 7

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- GET /profile/overview — spending by category, subscription summary, utilization
- GET /profile/merchants — all merchants ranked by total spend with 30-day trend
- GET /profile/merchants/{merchant_id} — heatmap, monthly trend, Argus insight
- profile engine: pure math for category aggregation, merchant rankings, detail

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Argus tools

- get_profile_overview: spending by category, subscription summary, utilization
- get_merchant_history: full merchant detail + trend, accepts merchant kwarg
- call_tool extended to support **kwargs for tools with extra parameters

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Level 1: spending ring by category, subscription summary, utilization gauge, merchant rankings
- Level 2: category drill-down — tap category to see merchants within it
- Level 3: merchant detail — heatmap, monthly trend sparkline, Argus insight per merchant
- Profile nav item added to sidebar

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Frontend dev server can bind to ports outside 3000-3009 (e.g. 3055).
Wider range covers all common Turbopack/Next.js dev ports.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…flights

BaseHTTPMiddleware doesn't intercept before Starlette's ASGI-level CORSMiddleware.
Replaced with a raw ASGI wrapper that catches OPTIONS+PNA preflights before CORS
sees them, returning 200 with Access-Control-Allow-Private-Network: true.
Fixed middleware registration order (CORS first, PNA second = PNA outermost).

Also adds empty state to profile page when no transaction data exists.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel

vercel Bot commented Jun 24, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
argus-ai-baqq Ready Ready Preview, Comment Jun 24, 2026 12:07am

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@Evin009
Evin009 merged commit 55cf088 into main Jun 24, 2026
4 checks passed
@Evin009
Evin009 deleted the develop branch June 24, 2026 00:08

This branch was successfully deployed

1 active deployment
Preview — 3bb064a7 Deployed Jun 24, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant