Skip to content

contacts + teractor + devenv#51

Merged
nickcomua merged 27 commits into
mainfrom
nicks-contacts-in-progress
May 27, 2026
Merged

contacts + teractor + devenv#51
nickcomua merged 27 commits into
mainfrom
nicks-contacts-in-progress

Conversation

@nickcomua

Copy link
Copy Markdown
Owner

No description provided.

…admin key reuse in devenv, and secretspec env defaults
… simplify devenv processes, and clean up Cargo deps
…ures, add secretspec default profile, and serialize workspace boot
…Trigger asChild doesn't turn it into type=button
…sn't silently drop the linkSender call on stale state
…tions for actual DOM order and scope-to-active-tabpanel
…g clients in DialogSync pendingWork, and remove .claude config
…ion and add cleanupUser to E2E download tests
…), add devenv workspace-new script with hardlink cloning, and E2E secretspec profiles
…ages, DownloadingMedia, Syncing) so worker restarts resume correctly
…lows config, and AbortOnDrop guard for progress reporters
…or handling

Backend:
- Add ttlPeriod and ttlSeconds fields to message schema for self-destructing messages
- Add workerMarkSessionError mutation to mark clients with session errors and disconnect them
- Update message seeding and upsert to persist TTL fields

Frontend:
- Add Timer icon to media renderer for self-destructing media display
- Update message bubble and merged timeline for TTL message support

Worker:
- Add session error handling in main job loop with workerMarkSessionError reporting
- Extract TTL metadata from Telegram messages via extract_ttl helper
- Skip expired self-destructing photos and documents in classify_media
- Propagate ttl_period and ttl_seconds through message sync and update listener

@sourcery-ai sourcery-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, we are unable to review this pull request

The GitHub API does not allow us to fetch diffs exceeding 20000 lines

@coderabbitai

coderabbitai Bot commented May 5, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 198 files, which is 48 over the limit of 150.

To get a review, narrow the scope:
• coderabbit review --type committed # exclude uncommitted changes
• coderabbit review --dir # limit to a subdirectory
• coderabbit review --base # compare against a closer base

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 21c6e522-d7d5-4d64-b7bd-faaf7c453c1f

📥 Commits

Reviewing files that changed from the base of the PR and between be3836d and 2bd5bdb.

⛔ Files ignored due to path filters (6)
  • Cargo.lock is excluded by !**/*.lock
  • bins/convex-backend/bun.lock is excluded by !**/*.lock
  • bins/convex-backend/convex/_generated/api.d.ts is excluded by !**/_generated/**
  • bins/crm-chat-web/bun.lock is excluded by !**/*.lock
  • bun.lock is excluded by !**/*.lock
  • flake.lock is excluded by !**/*.lock
📒 Files selected for processing (198)
  • .cargo/audit.toml
  • .claude/launch.json
  • .claude/settings.local.json
  • .env.example
  • .envrc
  • .github/workflows/check.yml
  • .github/workflows/docker.yml
  • .gitignore
  • .gitmodules
  • .mcp.json
  • .vscode/extensions.json
  • .zed/settings.json
  • Cargo.toml
  • README.md
  • bins/convex-backend/Cargo.toml
  • bins/convex-backend/biome.jsonc
  • bins/convex-backend/build.rs
  • bins/convex-backend/bun.nix
  • bins/convex-backend/convex/auth.config.ts
  • bins/convex-backend/convex/env.ts
  • bins/convex-backend/convex/functions.ts
  • bins/convex-backend/convex/helpers/result.ts
  • bins/convex-backend/convex/helpers/validators.ts
  • bins/convex-backend/convex/model/chatContactLinks.ts
  • bins/convex-backend/convex/model/chats.ts
  • bins/convex-backend/convex/model/clients.ts
  • bins/convex-backend/convex/model/contactPins.ts
  • bins/convex-backend/convex/model/contacts.ts
  • bins/convex-backend/convex/model/media.ts
  • bins/convex-backend/convex/model/messages.ts
  • bins/convex-backend/convex/model/notifications.ts
  • bins/convex-backend/convex/model/phoneAuth.ts
  • bins/convex-backend/convex/model/presence.ts
  • bins/convex-backend/convex/model/qrAuth.ts
  • bins/convex-backend/convex/schema.ts
  • bins/convex-backend/convex/testHelpers.ts
  • bins/convex-backend/convex/workerOps.ts
  • bins/convex-backend/eslint.config.js
  • bins/convex-backend/package.json
  • bins/convex-backend/tests/common/container.rs
  • bins/convex-backend/tests/common/deploy.rs
  • bins/crm-chat-web/.claude/settings.json
  • bins/crm-chat-web/.cursor/hooks.json
  • bins/crm-chat-web/biome.jsonc
  • bins/crm-chat-web/bun.nix
  • bins/crm-chat-web/components.json
  • bins/crm-chat-web/eslint.config.js
  • bins/crm-chat-web/flake.nix
  • bins/crm-chat-web/package.json
  • bins/crm-chat-web/playwright.config.ts
  • bins/crm-chat-web/src/components/attach-dialog-to-contact.tsx
  • bins/crm-chat-web/src/components/chat-list.tsx
  • bins/crm-chat-web/src/components/chats-page.tsx
  • bins/crm-chat-web/src/components/client-settings.tsx
  • bins/crm-chat-web/src/components/client/qr-auth.tsx
  • bins/crm-chat-web/src/components/contact-custom-fields.tsx
  • bins/crm-chat-web/src/components/contact-list.tsx
  • bins/crm-chat-web/src/components/contact-merged-timeline.tsx
  • bins/crm-chat-web/src/components/contact-pinned-messages.tsx
  • bins/crm-chat-web/src/components/contact-view.tsx
  • bins/crm-chat-web/src/components/contacts-page.tsx
  • bins/crm-chat-web/src/components/create-contact-dialog.tsx
  • bins/crm-chat-web/src/components/download-manager.tsx
  • bins/crm-chat-web/src/components/media-renderer.tsx
  • bins/crm-chat-web/src/components/media-types.ts
  • bins/crm-chat-web/src/components/merge-contacts-dialog.tsx
  • bins/crm-chat-web/src/components/message-bubble.tsx
  • bins/crm-chat-web/src/components/message-list.tsx
  • bins/crm-chat-web/src/components/notifications-panel.tsx
  • bins/crm-chat-web/src/components/right-sidebar.tsx
  • bins/crm-chat-web/src/components/search-dialog.tsx
  • bins/crm-chat-web/src/components/telegram-clients-manager.tsx
  • bins/crm-chat-web/src/components/theme-provider.tsx
  • bins/crm-chat-web/src/components/ui/avatar.tsx
  • bins/crm-chat-web/src/components/ui/badge.tsx
  • bins/crm-chat-web/src/components/ui/button.tsx
  • bins/crm-chat-web/src/components/ui/card.tsx
  • bins/crm-chat-web/src/components/ui/command.tsx
  • bins/crm-chat-web/src/components/ui/dialog.tsx
  • bins/crm-chat-web/src/components/ui/dropdown-menu.tsx
  • bins/crm-chat-web/src/components/ui/input.tsx
  • bins/crm-chat-web/src/components/ui/label.tsx
  • bins/crm-chat-web/src/components/ui/popover.tsx
  • bins/crm-chat-web/src/components/ui/scroll-area.tsx
  • bins/crm-chat-web/src/components/ui/separator.tsx
  • bins/crm-chat-web/src/components/ui/sheet.tsx
  • bins/crm-chat-web/src/components/ui/switch.tsx
  • bins/crm-chat-web/src/components/ui/tabs.tsx
  • bins/crm-chat-web/src/components/ui/textarea.tsx
  • bins/crm-chat-web/src/env.ts
  • bins/crm-chat-web/src/hooks/use-contact-for-chat.ts
  • bins/crm-chat-web/src/hooks/use-presence.ts
  • bins/crm-chat-web/src/hooks/use-qr-auth.ts
  • bins/crm-chat-web/src/hooks/use-theme.ts
  • bins/crm-chat-web/src/index.css
  • bins/crm-chat-web/src/lib/api/client.ts
  • bins/crm-chat-web/src/lib/api/schema.d.ts
  • bins/crm-chat-web/src/lib/convex.ts
  • bins/crm-chat-web/src/lib/sentry.ts
  • bins/crm-chat-web/src/lib/utils.ts
  • bins/crm-chat-web/src/main.tsx
  • bins/crm-chat-web/src/routeTree.gen.ts
  • bins/crm-chat-web/src/routes/__root.tsx
  • bins/crm-chat-web/src/routes/_auth.tsx
  • bins/crm-chat-web/src/routes/_auth/chats.$chatId.tsx
  • bins/crm-chat-web/src/routes/_auth/chats.tsx
  • bins/crm-chat-web/src/routes/_auth/client.$clientId.tsx
  • bins/crm-chat-web/src/routes/_auth/contacts.$contactId.tsx
  • bins/crm-chat-web/src/routes/_auth/contacts.tsx
  • bins/crm-chat-web/src/routes/_auth/downloads.tsx
  • bins/crm-chat-web/src/routes/_auth/settings.tsx
  • bins/crm-chat-web/src/routes/index.tsx
  • bins/crm-chat-web/src/routes/sign-in.tsx
  • bins/crm-chat-web/src/utils/display.ts
  • bins/crm-chat-web/src/utils/format.ts
  • bins/crm-chat-web/tests/README.md
  • bins/crm-chat-web/tests/auth.setup.ts
  • bins/crm-chat-web/tests/chat-list.spec.ts
  • bins/crm-chat-web/tests/client-deletion.spec.ts
  • bins/crm-chat-web/tests/contacts-create-from-dialog.spec.ts
  • bins/crm-chat-web/tests/contacts-custom-fields.spec.ts
  • bins/crm-chat-web/tests/contacts-delete-merge.spec.ts
  • bins/crm-chat-web/tests/contacts-group-chat.spec.ts
  • bins/crm-chat-web/tests/contacts-pins.spec.ts
  • bins/crm-chat-web/tests/contacts-relink-unlink.spec.ts
  • bins/crm-chat-web/tests/downloads.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/media-rendering.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/media-visual.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/qr-auth-real.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/qr-auth.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/replies-real.spec.ts
  • bins/crm-chat-web/tests/e2e-telegram/scan-chats.spec.ts
  • bins/crm-chat-web/tests/env.ts
  • bins/crm-chat-web/tests/find-ports.mjs
  • bins/crm-chat-web/tests/fixtures.ts
  • bins/crm-chat-web/tests/forwarded.spec.ts
  • bins/crm-chat-web/tests/global-setup.ts
  • bins/crm-chat-web/tests/global-teardown.ts
  • bins/crm-chat-web/tests/helpers.ts
  • bins/crm-chat-web/tests/navigation.spec.ts
  • bins/crm-chat-web/tests/notifications.spec.ts
  • bins/crm-chat-web/tests/reactions.spec.ts
  • bins/crm-chat-web/tests/replies.spec.ts
  • bins/crm-chat-web/tests/scroll-to-message.spec.ts
  • bins/crm-chat-web/tests/search.spec.ts
  • bins/crm-chat-web/tests/settings.spec.ts
  • bins/crm-chat-web/tsconfig.app.json
  • bins/crm-chat-web/tsconfig.json
  • bins/crm-chat-web/tsconfig.node.json
  • bins/crm-chat-web/vite.config.ts
  • bins/crm-worker/Cargo.toml
  • bins/crm-worker/src/config.rs
  • bins/crm-worker/src/job.rs
  • bins/crm-worker/src/jobs/chat_scanner.rs
  • bins/crm-worker/src/jobs/dialog_sync.rs
  • bins/crm-worker/src/jobs/media_downloader.rs
  • bins/crm-worker/src/jobs/mod.rs
  • bins/crm-worker/src/jobs/phone_auth.rs
  • bins/crm-worker/src/jobs/qr_auth.rs
  • bins/crm-worker/src/jobs/update_listener.rs
  • bins/crm-worker/src/main.rs
  • bins/crm-worker/src/ops/convex.rs
  • bins/crm-worker/src/ops/domain_watcher.rs
  • bins/crm-worker/src/ops/media.rs
  • bins/crm-worker/src/ops/mod.rs
  • bins/crm-worker/src/ops/telegram.rs
  • bins/crm-worker/src/runner.rs
  • bins/crm-worker/src/services/dialog_sync.rs
  • bins/crm-worker/src/services/media_downloader.rs
  • bins/crm-worker/src/services/mod.rs
  • bins/crm-worker/src/services/phone_auth.rs
  • bins/crm-worker/src/services/profile_photo_sync.rs
  • bins/crm-worker/src/services/qr_auth.rs
  • bins/crm-worker/src/services/reconciler.rs
  • bins/crm-worker/src/services/update_listener.rs
  • bins/crm-worker/src/session_manager.rs
  • biome.jsonc
  • deny.toml
  • docker-compose.yml
  • docs/ARCHITECTURE.md
  • docs/DEPLOYMENT.md
  • docs/ENVIRONMENT.md
  • docs/GETTING_STARTED.md
  • docs/LOCAL_SETUP.md
  • eslint.config.js
  • flake.nix
  • libs/hack/Cargo.toml
  • libs/messanger-interface/Cargo.toml
  • libs/messanger-interface/src/chat.rs
  • libs/messanger-interface/src/lib.rs
  • libs/messanger-interface/src/message.rs
  • libs/messanger-telegram/Cargo.toml
  • libs/messanger-telegram/src/lib.rs
  • libs/messanger-telegram/src/messenger.rs
  • package.json
  • secretspec.toml
  • tests/e2e-telegram/Cargo.toml
  • tombi.toml

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch nicks-contacts-in-progress

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@nickcomua
nickcomua force-pushed the nicks-contacts-in-progress branch 2 times, most recently from a57b8b7 to 6392aaa Compare May 6, 2026 07:49
@nickcomua
nickcomua force-pushed the nicks-contacts-in-progress branch 10 times, most recently from 7cdd05e to 6639b6d Compare May 6, 2026 16:46
@nickcomua
nickcomua force-pushed the nicks-contacts-in-progress branch 3 times, most recently from 9c428f9 to e051f9a Compare May 27, 2026 19:36
The pipelining = false config was written to .cargo/config.toml but
crane sets CARGO_HOME to .cargo-home, so cargo never read it. The
config must be appended to .cargo-home/config.toml.
@nickcomua
nickcomua force-pushed the nicks-contacts-in-progress branch from e051f9a to 2bd5bdb Compare May 27, 2026 20:27
@nickcomua
nickcomua merged commit 8d5ad6e into main May 27, 2026
4 checks passed
@nickcomua
nickcomua deleted the nicks-contacts-in-progress branch May 28, 2026 10:45
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