Skip to content

feat: Language Threads — mutual-aid language sidecars#7

Open
daopunk wants to merge 3 commits into
mainfrom
feat/bam-tech-comms
Open

feat: Language Threads — mutual-aid language sidecars#7
daopunk wants to merge 3 commits into
mainfrom
feat/bam-tech-comms

Conversation

@daopunk

@daopunk daopunk commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator

Summary

Replaces the old per-user “translate my messages into the group” behavior with Language Threads: one Signal sidecar group per subscribed language, bridged to a bilingual main mutual-aid chat.

  • Main → sidecar: same language relays; otherwise translates via NEAR AI
  • Sidecar → main: relay only (main stays bilingual)
  • Sidecar → other sidecars: translate
  • Bot never relays its own messages (BotIdentity: phone + learned UUID)
  • Sidecar naming: Language Thread {Language} (e.g. Language Thread Spanish)
  • Alpha command surface slimmed: !translate-me-on / off, !list-langs, help/privacy/verify/set-lang (ask/chat/voice/translate-on kept in tree but unregistered)

Docs: docs/language-threads.md

Commits

  1. f4c6c22 — language sidecar bridge (!translate-me-on)
  2. e9e2ab4 — rename BAM → Language Thread + slim help
  3. cac6a81 — Language Threads overview doc

Notable code

Area Path
Subscribe + relay crates/signal-bot/src/commands/translate_me.rs
Bot skip crates/signal-bot/src/bot_identity.rs
Encrypted bridge store crates/signal-bot/src/group_preferences_store.rs (LanguageBridge)
Group REST crates/signal-clientcreate_group / add_members / remove_members
Envelope fields source_name / source_number on BotMessage
Handler registration crates/signal-bot/src/main.rs

Test plan

  • cargo test -p signal-client -p signal-bot --lib
  • Local Docker: rebuild signal-bot; !translate-me-on es creates/joins sidecar; invite accepted; main↔thread relay/translate works
  • Phala CVM deploy (paused): push image done (daopunk/signal-bot-tee:latest linux/amd64); deploy dstack-app-hqvaf on tdx.medium (4 GB) still pending
  • After TEE deploy: !help, !translate-me-on, bridge message, !verify; re-register Signal phone if volume is fresh
  • Confirm missing sourceNumber UX (DM bot once, then retry invite)
  • Loop check: bot-authored posts do not fan out again

Notes

  • Translation uses NEAR AI (near_ai_translate); same-language traffic is relay-only.
  • Bridge state persists in encrypted group prefs (TEE key on Phala; may not persist locally without dstack).
  • Phala pulls Docker images, not git — public image registry matters more than branch visibility for the CVM.

@daopunk

daopunk commented Jul 22, 2026

Copy link
Copy Markdown
Collaborator Author

Product follow-ups:

@daopunk
daopunk requested a review from RonTuretzky July 22, 2026 06:14
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