Commit Graph

248 Commits

Author SHA1 Message Date
ee8c53d89b feat(infra): add aws lambda pulumi deployment target 2026-03-23 13:56:15 +04:00
2688d66f33 fix(miniapp): hide paid rent reminders on home 2026-03-23 01:04:33 +04:00
7665af0268 feat(bot): quiet finance topics and support purchase payers 2026-03-22 20:27:43 +04:00
7d706eba07 fix(bot): use HTTPS for OIDC audience to match Cloud Scheduler 2026-03-17 13:51:10 +04:00
5196d8484a fix(miniapp): remove duplicate Your balance card from home screen 2026-03-17 02:37:49 +04:00
2c36802d6d fix(miniapp): translate Split By and Admin Access fields 2026-03-17 02:25:05 +04:00
a91bb00041 fix(miniapp): translate Exact amounts and Percentages split options 2026-03-17 02:21:30 +04:00
fcdd0f2aaf feat(bot): add /dashboard command and MINI_APP_URL config
- Add /dashboard command to BotFather registration alongside /app
- Add new MINI_APP_URL env var for dashboard URL (separate from CORS origins)
- Pass MINI_APP_URL and BOT_API_URL in CD workflow
- Update Terraform with new variable for future infrastructure deployments
2026-03-17 02:17:11 +04:00
58cf69b9b6 fix(miniapp): update balance summary titles to reflect actual values 2026-03-17 00:47:35 +04:00
b981c7cf80 fix(miniapp): use correct totals in balance summary (totalDue, purchase ledger, utility ledger) 2026-03-17 00:39:22 +04:00
748878e789 feat(miniapp): add purchase-only and utilities balance sections to balances view 2026-03-17 00:28:35 +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
64dc3a3813 refactor(ci): remove dev environment, build images in CD 2026-03-16 06:28:36 +04:00
da6bdc3813 fix(infra): grant GitHub deployer access to webhook secrets 2026-03-16 05:31:38 +04:00
3d15754936 fix(ci): push latest tag and reduce monitoring costs
- Add latest tag push alongside SHA tag for manual rollback/debugging
- Reduce log retention from 3 to 1 day
- Comment out bot_error_metrics and alerts to save ~$0.47/month
- Minor whitespace fix in cd.yml
2026-03-16 05:17:47 +04:00
224cdc2d45 chore(infra): add log exclusions and reduce retention to lower costs 2026-03-16 05:01:41 +04:00
c5c0b32f20 fix(cd): avoid deploying stale images and add cleanup policy 2026-03-16 04:56:42 +04:00
b71480e9f1 fix(miniapp): prevent focus loss in destinations form 2026-03-16 04:46:09 +04:00
77094baa2b fix(ci): disable provenance to fix image tagging 2026-03-16 04:36:38 +04:00
cc423053e9 fix(cd): simplify webhook secret loading and add error checking 2026-03-16 04:07:02 +04:00
21303de0ba fix(cd): properly set webhook secret and add verification step 2026-03-16 03:58:16 +04:00
74348c3ef5 fix(ci): build Docker images for linux/amd64 only to fix Cloud Run deploys 2026-03-16 03:43:02 +04:00
fcafdefa76 fix(db): properly set search_path via URL options for PgBouncer compatibility 2026-03-16 03:21:27 +04:00
543a6f90ef Use repo vars and streamline CI/CD workflows
Update GitHub Actions workflows to rely on repository variables and simplify build/deploy logic. cd.yml: switch secret/project lookups to vars, adjust workflow_run detection for auto-deploy, remove derived secret outputs, resolve Artifact Registry image tags from the triggering SHA, and use vars for Google Cloud auth and project references. ci.yml: add dev to PR branches, condense the quality matrix commands, rework the images job to authenticate and push only on branch pushes while doing build-only on PRs (with proper cache usage), add id-token permission, and introduce a final CI gate job that aggregates job results to block CD when CI fails. Also includes minor formatting and whitespace cleanups.
2026-03-16 00:39:35 +04:00
1cff14662e feat(cd): complete environment support for dev/prod deployments
- Add workflow_dispatch inputs for manual environment selection
- Add detect-environment job to centralize environment detection
- Support both auto-trigger (branch-based) and manual deployment
- Use environment-specific secrets (DATABASE_URL vs DATABASE_URL_TEST)
- Dynamic Cloud Run service names based on environment
- Update concurrency group to use environment for manual triggers
2026-03-15 22:01:17 +04:00
6b38e0898c chore(db): update migration checksums for 0020 migration 2026-03-15 21:08:43 +04:00
5c6427e3d2 fix(cd): add DB_SCHEMA env var to Cloud Run deployment 2026-03-15 21:03:10 +04:00
bb7900a614 ci: add dev branch to CI push triggers 2026-03-15 20:56:07 +04:00
0747973c8f feat(db): add rent_payment_destinations column and multi-schema support
- Add migration 0020 for rent_payment_destinations jsonb column
- Add DB_SCHEMA env var support for multi-schema deployments
- Create custom migrate.ts script with proper search_path handling
- Update drizzle.config.ts and client.ts to use DB_SCHEMA
- Add db_schema variable to Terraform with dev=test/prod=public defaults
- Update CD workflow to set DB_SCHEMA based on branch
2026-03-15 20:26:26 +04:00
f4fe4470f7 feat(infra): implement multi-environment deployment strategy
- Update CD workflow for branch-based environments (main -> Prod, dev -> Dev)
- Support Terraform workspaces for environment isolation
- Add manage_runtime_secrets flag to prevent accidental secret destruction
- Add infra management and secret setup utility scripts
- Prefix GitHub deployer identity with environment name
- Synchronize bot environment variables with latest runtime config
2026-03-15 19:11:18 +04:00
594c370677 refactor(miniapp): unify settings design with editable-list pattern 2026-03-15 03:48:40 +04:00
ce082b0a31 docs: add Conventional Commits specification to AGENTS.md 2026-03-15 03:24:52 +04:00
f8ab08a7cb fix(miniapp): use type import for JSX from solid-js 2026-03-15 03:22:07 +04:00
87f0ad0e8d feat(miniapp): restore utility categories CRUD in settings 2026-03-15 03:16:02 +04:00
25018a3c33 fix(miniapp): translate chat topic role in settings 2026-03-15 03:08:59 +04:00
07c5ffb82d Fix Bind Topic Error by making callback handling more robust
- Wrap answerCallbackQuery and editMessageText in try-catch to handle expired queries
- Answer callback queries as early as possible
- Add setup_tracking to allowed pending action types for better type safety
- Ignore 'query is too old' and 'message is not modified' errors gracefully
2026-03-15 02:50:32 +04:00
5e39cdf455 Fix setup command and refine payment clarification logic
- Fix BUTTON_TYPE_INVALID in non-private chats by using URL buttons for mini app links
- Localize clarification questions and processing messages
- Add language instructions to AI prompt
- Allow default payment amounts when not explicitly specified
2026-03-15 02:34:34 +04:00
afbda43c0e fix(bot): localize topic processor responses and allow optional payment amounts 2026-03-15 02:27:44 +04:00
3c53ab9e1a feat(bot): implement /app and /keyboard commands, add dashboard links 2026-03-15 02:13:32 +04:00
531e52b238 feat(bot): improve /setup UX and update checklist on /bind
- Enhance /setup message with a warmer greeting and binding instructions\n- Rename 'Setup' buttons to 'Create' for clarity\n- Track /setup message ID to enable automatic checklist updates when /bind is used\n- Refresh /setup checklist after successful topic binding\n- Update English and Russian translations
2026-03-15 01:44:13 +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
f4e5a49621 feat(bot): restore /bind command and improve /setup welcoming experience 2026-03-15 01:17:22 +04:00
b2e1e0f213 feat(bot): refactor /setup and add /bind command
- Simplify /setup message: remove chat ID, use emojis, compact layout
- Remove 'Bind' buttons from /setup
- Add /bind command for binding existing topics
- Remove old binding mode with 10-min timeout
- Update i18n translations for en and ru
2026-03-15 00:14:40 +04:00
e24c53dce2 feat(bot): replace /invite with /join_link command
- Remove /invite command and targeted invite flow
- Add /join_link command to generate shareable household join link
- Update i18n translations for en and ru
- Update command registration to include join_link in admin commands
2026-03-14 23:46:32 +04:00
0af8ea6f48 feat: add chat topic binding for casual conversation
Add ability to bind a dedicated chat topic where normal conversation
happens, separate from functional topics (purchases, payments, etc.)

- Add 'chat' to HOUSEHOLD_TOPIC_ROLES
- Add /bind_chat_topic command for admins
- Update i18n strings for en/ru
- Add command to admin scope in telegram-commands
2026-03-14 23:32:14 +04:00
290b18545e chore(bot): clean up topic processor log levels and add start log 2026-03-14 15:23:12 +04:00
b01a129466 fix(bot): include all schema properties in required array for OpenAI Structured Outputs 2026-03-14 15:04:13 +04:00
e77bae9426 test(adapters-db): increase integration test timeouts to 10s 2026-03-14 14:58:08 +04:00
8de8419028 feat(bot): enhance topic processor logging for diagnosis
Added comprehensive logging to topic-processor.ts to capture API errors, parsing failures, and silent decisions. Also added result logging to purchase and payment ingestion handlers to trace the processor's output.
2026-03-14 14:54:49 +04:00
572c21f621 feat(bot): add error logging to topic processor
Previously, the topic processor swallowed errors silently, making debugging impossible. This commit adds error logging to the topic processor catch block.
2026-03-14 14:43:32 +04:00