Skip to content

feat(ingestion): review UI — import, merchant merge, recurring, category correction#90

Merged
kayodebristol merged 4 commits intomainfrom
copilot/build-review-ui-for-imported-data
Mar 25, 2026
Merged

feat(ingestion): review UI — import, merchant merge, recurring, category correction#90
kayodebristol merged 4 commits intomainfrom
copilot/build-review-ui-for-imported-data

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented Mar 24, 2026

Builds the four ingestion review flows that make imported data actionable, plus fixes pre-existing CI failures blocking the branch.

CI Fixes

  • bind:value errors (24+)Input and Select components lacked value = $bindable() in their props interface; Svelte 5 requires explicit $bindable() declaration for two-way binding to work across component boundaries
  • ESLint crash@plures/eslint-plugin-design-dojo referenced src/index.js which didn't exist; created the plugin with no-local-primitives and prefer-design-dojo-imports rules
  • Unused parameter errorstransitions.ts node params prefixed _node (required by Svelte transition signature but unused in CSS-only implementations)
  • Vite 403 on workspace packages — added server.fs.allow: ['..'] so Vite can serve symlinked workspace packages under packages/

New design-dojo Components

Component Notes
Toggle role="switch", $bindable checked
Toast Auto-dismiss 4 s, info/success/warning/error
Dialog Escape + backdrop close, $bindable open, focus trap
Tooltip 4 positions, aria-describedby

Review State Store (src/lib/stores/review.ts)

Four typed writable stores with status lifecycle (pending → reviewed | skipped) and realistic seed data:

  • importReviewStore — rows with error/duplicate flags
  • merchantMergeStore — resolution candidates with high | medium | low confidence
  • recurringStore — detected recurring series with next-expected date
  • categoryCorrectionStore — category assignments with correction history

Review Routes

  • /review — Hub: summary cards per flow, aggregate pending badge
  • /review/import — Session-grouped table; fix via Dialog, skip/approve per row, error/duplicate row highlighting, Toast feedback
  • /review/merchants — Confidence Badge, inline Input for manual override, search filter, bulk-accept high-confidence items
  • /review/recurring — Card grid with type selector (subscription / bill / income), Toggle accept/reject
  • /review/categories — Bulk checkbox select, inline Select dropdown per row, sliding bulk-action toolbar, Toast on save
Original prompt

This section details on the original issue you should resolve

<issue_title>feat(ingestion): review UI — import, merchant merge, recurring, category correction</issue_title>
<issue_description>## Summary
Build the review UI that makes imported data usable. Without review, raw imports are just noise.

Four Review Flows

1. Import Review

  • Show imported transactions grouped by import session
  • Highlight parse errors, duplicates, unmapped accounts
  • Allow user to fix/skip/retry individual rows
  • Design-dojo components: Table, StatusBar, Dialog, Toast

2. Merchant Merge Review

  • Show resolution candidates: raw description → suggested merchant
  • Confidence indicator (high/medium/low)
  • Accept, reject, or manually set merchant
  • Merge duplicate merchants
  • Design-dojo components: Input (search), Toggle, Button

3. Recurring Detection Review

  • Show detected recurring series with pattern info
  • Accept as subscription/bill/income, reject, or adjust
  • Show next expected date and amount
  • Design-dojo components: Toggle, Text, Tooltip

4. Category Correction Review

  • Show categorized transactions
  • Allow re-categorization (single or bulk)
  • Learn from corrections (feed back to resolution)
  • Design-dojo components: Select, ContextMenu, Button

Acceptance

  • All four review flows functional with design-dojo components
  • User corrections persist and feed back to resolution engine
  • Review state tracked (pending/reviewed/skipped)</issue_description>

Comments on the Issue (you are @copilot in this section)

@kayodebristol @copilot Please implement this issue.

💬 Send tasks to Copilot coding agent from Slack and Teams to turn conversations into code. Copilot posts an update in your thread when it's finished.

@github-actions github-actions Bot marked this pull request as ready for review March 24, 2026 14:32
Copilot AI review requested due to automatic review settings March 24, 2026 14:32
Copilot AI review requested due to automatic review settings March 24, 2026 14:32
Copilot AI and others added 3 commits March 24, 2026 15:00
- Add 4 new design-dojo components: Toggle, Toast, Dialog, Tooltip
- Export new components from @plures/design-dojo index
- Add review store (src/lib/stores/review.ts) with 4 typed stores:
  importReviewStore, merchantMergeStore, recurringStore, categoryCorrectionStore
- Seed helpers for realistic demo data
- Create review route hub at /review with summary cards
- Create /review/import: table of imported rows with fix dialog, skip, approve
- Create /review/merchants: merchant merge table with search, bulk accept
- Create /review/recurring: card grid with Toggle accept/reject and type selector
- Create /review/categories: categorisation table with bulk-select and inline Select
- Add 'Ingestion Review' link to home page quick-nav

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
- Remove duplicate .card-done CSS rule in recurring/+page.svelte
- Use const (not let) for inputId in Input.svelte
- Use const (not let) for selectId in Select.svelte

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: kayodebristol <3579196+kayodebristol@users.noreply.github.com>
Agent-Logs-Url: https://github.com/plures/FinancialAdvisor/sessions/6ae52106-56a0-4cd4-899b-7d9366dabc8b
Copilot AI requested review from Copilot and removed request for Copilot March 24, 2026 15:11
Copilot AI changed the title [WIP] Build review UI for imported data usability feat(ingestion): review UI — import, merchant merge, recurring, category correction Mar 24, 2026
Copilot AI requested a review from kayodebristol March 24, 2026 15:12
@kayodebristol kayodebristol merged commit 0c8cea1 into main Mar 25, 2026
5 of 7 checks passed
@kayodebristol kayodebristol deleted the copilot/build-review-ui-for-imported-data branch March 25, 2026 04:37
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.

feat(ingestion): review UI — import, merchant merge, recurring, category correction

2 participants