fix: WhatsApp auth improvements and LID translation for DMs
- Add pairing code auth with 515 reconnect handling (Baileys stream
error after pairing is now retried instead of failing)
- Use Browsers.macOS('Chrome') identifier for WhatsApp compatibility
- Fix LID-to-phone translation for DMs using signalRepository.getPNForLID
- Strip device suffix (:0) from resolved phone JIDs
- Update setup skill with three auth options (browser QR, pairing code,
terminal QR), DM channel type, and LID troubleshooting
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
32
.claude/skills/setup/qr-auth.html
Normal file
32
.claude/skills/setup/qr-auth.html
Normal file
@@ -0,0 +1,32 @@
|
||||
<!DOCTYPE html>
|
||||
<html><head><title>NanoClaw - WhatsApp Auth</title>
|
||||
<style>
|
||||
body { font-family: -apple-system, sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; margin: 0; background: #f5f5f5; }
|
||||
.card { background: white; border-radius: 16px; padding: 40px; box-shadow: 0 4px 24px rgba(0,0,0,0.1); text-align: center; max-width: 400px; }
|
||||
h2 { margin: 0 0 8px; }
|
||||
.timer { font-size: 18px; color: #666; margin: 12px 0; }
|
||||
.timer.urgent { color: #e74c3c; font-weight: bold; }
|
||||
.instructions { color: #666; font-size: 14px; margin-top: 16px; }
|
||||
svg { width: 280px; height: 280px; }
|
||||
</style></head><body>
|
||||
<div class="card">
|
||||
<h2>Scan with WhatsApp</h2>
|
||||
<div class="timer" id="timer">Expires in <span id="countdown">60</span>s</div>
|
||||
<div id="qr">{{QR_SVG}}</div>
|
||||
<div class="instructions">Settings → Linked Devices → Link a Device</div>
|
||||
</div>
|
||||
<script>
|
||||
let seconds = 60;
|
||||
const countdown = document.getElementById('countdown');
|
||||
const timer = document.getElementById('timer');
|
||||
const interval = setInterval(() => {
|
||||
seconds--;
|
||||
countdown.textContent = seconds;
|
||||
if (seconds <= 10) timer.classList.add('urgent');
|
||||
if (seconds <= 0) {
|
||||
clearInterval(interval);
|
||||
timer.textContent = 'QR code expired — re-run auth to get a new one';
|
||||
timer.classList.add('urgent');
|
||||
}
|
||||
}, 1000);
|
||||
</script></body></html>
|
||||
Reference in New Issue
Block a user