# Session Context ## Current State - Telegram connected via MTProto (DC 1) — working - WhatsApp Connection — using whatsapp-web.js (Puppeteer + Chrome) - Bot forwards WhatsApp messages to Telegram admin (when connected) - Bot responds to `/start`, `/toggle`, button presses from Telegram ## Key Fixes Applied 1. **`messages.getDialogs` → `updates.getDifference`**: Bots can't use `getDialogs` (BOT_METHOD_INVALID). Replaced with `getState` + `getDifference` polling every 15s. 2. **`defaultDcId` string bug**: Storage saves `defaultDcId` as string `"1"` but library expects number `1`. All `mtproto.call()` calls now pass `{ dcId: 1 }` explicitly. 3. **Keyboard format**: `replyKeyboardMarkup` requires `{ _: 'keyboardButtonRow', buttons: [...] }` format. Using `one_time` instead of `single_use` causes errors. 4. **Migrated from `@whiskeysockets/baileys` to `whatsapp-web.js`**: Uses Puppeteer + Chrome instead of raw WebSocket. Requires Chromium installed in Docker. 5. **Markdown parsing**: Custom `parseMarkdown()` converts `*bold*`, `_italic_`, `` `code` `` to Telegram message entities. 6. **QR auto-send**: QR image sent to Telegram via `upload.saveFilePart` + `messages.sendMedia` when generated. ## Pending Issues - wwebjs requires Chrome — Chrome must be installed in Docker (added to Dockerfile) - `/data/` storage for session persistence ## API Credentials - API_ID: 1344311 - API_HASH: 95778042101cb549a4ca6235d7cf87e1 - BOT_TOKEN: 903567266:AAFS-juBV5QYL_kKNkc7ovqp-i6eVwTOX-U - Fallback from env vars if set ## User Preferences - Arabic language - No automatic startup messages (removed "✅ البوت جاهز" and "✅ واتساب متصل وجاهز") - QR code sent to Telegram automatically when generated - Keyboard buttons preferred over text commands - No emojis in code - No comments in code unless asked