Commit Graph

60 Commits

Author SHA1 Message Date
160d922b8b fix: resolve remaining format and test failures
Co-authored-by: claw <stanislavkalishin+claw@gmail.com>
2026-03-30 16:01:06 +02:00
ed2fbac284 fix: address CI and PR review feedback
Co-authored-by: claw <stanislavkalishin+claw@gmail.com>
2026-03-30 15:58:58 +02:00
575a68b3bb feat(bot): add self-hosted scheduled dispatch support
Co-authored-by: claw <stanislavkalishin+claw@gmail.com>
2026-03-30 15:51:33 +02:00
7f836eeee2 refactor(bot): replace reminder polling with scheduled dispatches 2026-03-24 20:51:54 +04:00
a1acec5e60 fix(bot): refine reminder scheduling and topic routing 2026-03-24 15:04:42 +04:00
83ffd7df72 feat(bot): add observable notification management 2026-03-24 03:58:00 +04:00
cd4cebf2d9 fix(application): preserve exact payment guidance amounts 2026-03-24 01:49:04 +04:00
7218b55b1f feat(bot): add ad hoc reminder notifications 2026-03-24 01:28:26 +04:00
621bd75148 feat(miniapp): redesign admin payment management 2026-03-23 22:17:51 +04:00
5af14e101e feat(miniapp): carry overdue billing and admin role flows 2026-03-23 15:44:55 +04:00
7665af0268 feat(bot): quiet finance topics and support purchase payers 2026-03-22 20:27:43 +04:00
02c79ae629 feat: add payer control for purchases
- Add explicit payerMemberId field to purchase ledger entries
- Add 'Paid by' selector in mini app purchase add/edit forms
- Default payer to current user when creating new purchases
- Allow admins to change who made existing purchases
- Update backend handlers to accept and persist payerMemberId
- Add i18n translations for 'Paid by' label (EN/RU)

All quality gates pass: build, typecheck, lint, format, test

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-16 17:44:20 +04:00
d0475743f8 fix(finance): gracefully handle initial state without rent rules
Allow building the finance dashboard even if no rent rule is configured for the cycle.
Defaults to 0 rent in the cycle's currency. Added regression tests in application
service and miniapp dashboard handler.
2026-03-15 01:38:54 +04:00
488a488137 feat: add quick payment action and improve copy button UX
Mini App Home Screen:
- Add 'Record Payment' button to utilities and rent period cards
- Pre-fill payment amount with member's share (rentShare/utilityShare)
- Modal dialog with amount input and currency display
- Toast notifications for copy and payment success/failure feedback

Copy Button Improvements:
- Increase spacing between icon and text (4px → 8px)
- Add hover background and padding for better touch target
- Green background highlight when copied (in addition to icon color change)
- Toast notification appears when copying any value

Backend:
- Add /api/miniapp/payments/add endpoint for quick payments
- Payment notifications sent to 'reminders' topic in Telegram
- Include member name, payment type, amount, and period in notification

Files:
- New: apps/miniapp/src/components/ui/toast.tsx
- Modified: apps/miniapp/src/routes/home.tsx, apps/miniapp/src/index.css,
  apps/miniapp/src/theme.css, apps/miniapp/src/i18n.ts,
  apps/bot/src/miniapp-billing.ts, apps/bot/src/server.ts

Quality Gates:  format, lint, typecheck, build, test

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
2026-03-14 08:51:53 +04:00
1274cefc0f Stabilize purchase functionality: fix ID prefix, uniqueness, and split participant inclusion 2026-03-13 22:29:17 +04:00
588174fa52 Support rebalance and validate purchase splits
Add ParticipantShare type and client-side rebalance/validation helpers for purchase splits (rebalancePurchaseSplit, recalculatePercentages, calculateRemainingToAllocate, validatePurchaseDraft). Integrate rebalancing and validation into the miniapp ledger UI (auto-adjust shares, percentage<>amount syncing, remaining/error display, prefill participants on new purchase, disable save when invalid). On the backend, tighten input validation in finance-command-service for custom_amounts (require explicit shares and sum match) and make settlement-engine more lenient when reading legacy/malformed custom splits (ignore missing shares, accept explicit subset). Also add a test ensuring dashboard generation doesn't 500 on legacy malformed purchases.
2026-03-13 07:54:30 +04:00
ba99460a34 fix(feedback): normalize anonymous rate limit timestamps 2026-03-13 06:16:21 +04:00
94a5904f54 feat(miniapp): refine UI and add utility bill management
- Fix collapsible padding and button spacing
- Add subtotal to balance card
- Add utility bill management for admins
- Fix lints and type checks across the monorepo
- Implement rejectPendingHouseholdMember in repository and service
2026-03-13 05:52:34 +04:00
0d2065fd5e feat(miniapp): redesign balance and due-state flows 2026-03-12 14:08:55 +04:00
6053379f31 fix(miniapp): clarify cycle summary and balance sections 2026-03-12 13:12:39 +04:00
a50b826b40 feat(miniapp): improve billing settings controls 2026-03-12 11:37:57 +04:00
4c19ee798d feat(miniapp): add household general settings 2026-03-12 11:30:11 +04:00
4e7400e908 feat(bot): add configurable household assistant behavior 2026-03-12 03:22:43 +04:00
135a2301ca feat(miniapp): redesign member balance surfaces 2026-03-12 02:10:22 +04:00
0787847c19 feat(member): improve assistant roster awareness 2026-03-11 15:10:20 +04:00
79f96ba45b feat(payments): add transparent balance guidance 2026-03-11 14:52:09 +04:00
8401688032 feat(purchase): add per-purchase participant splits 2026-03-11 14:34:27 +04:00
98988159eb feat(member): add away billing policies 2026-03-11 14:05:52 +04:00
773abf2531 feat(member): add household lifecycle states 2026-03-11 13:44:38 +04:00
b6b6f9e1b8 feat(bot): add safe group unsetup flow 2026-03-11 06:08:34 +04:00
714d2a985d feat(bot): add conversational DM assistant flow 2026-03-11 01:41:58 +04:00
4dde04ca06 fix(finance): prefer open cycle in dashboard 2026-03-11 00:36:42 +04:00
753286a1f6 feat(finance): add billing correction APIs and cycle rollover 2026-03-10 22:03:30 +04:00
b7658164a8 feat(miniapp): improve mobile billing and utility controls 2026-03-10 18:50:19 +04:00
3168356431 feat(miniapp): show topic routing in admin settings 2026-03-10 17:18:53 +04:00
c292518760 feat(miniapp): show payment activity in dashboard 2026-03-10 17:16:16 +04:00
1988521931 feat(payments): track household payment confirmations 2026-03-10 17:00:45 +04:00
fb85219409 feat(finance): add settlement currency and cycle fx rates 2026-03-10 16:46:59 +04:00
4c0508f618 fix(miniapp): show original ledger currencies 2026-03-10 15:58:33 +04:00
4b4f7d46e5 feat(miniapp): add member rent weight controls 2026-03-10 02:48:12 +04:00
6a04b9d7f5 feat(finance): support weighted rent split 2026-03-10 02:47:58 +04:00
29563c24eb feat(miniapp): add cycle-level billing controls 2026-03-10 01:53:11 +04:00
565ac277c1 feat(miniapp): add admin billing settings foundation 2026-03-10 01:38:03 +04:00
16f9981fee feat(bot): add multi-household reminder delivery 2026-03-09 16:50:57 +04:00
9de6bcc31b feat(locale): persist household and member preferences 2026-03-09 13:17:25 +04:00
29f6d788e7 refactor(time): migrate runtime time handling to Temporal 2026-03-09 07:18:09 +04:00
b23208af26 fix(bot): restrict setup admin bootstrap 2026-03-09 06:35:23 +04:00
d5872ede57 feat(miniapp): add pending member admin approval 2026-03-09 06:29:23 +04:00
7c602900ee feat(bot): cut over multi-household member flows 2026-03-09 06:14:57 +04:00
fac2dc0e9d feat(bot): add household admin approval flow 2026-03-09 04:58:14 +04:00