- 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>
33 lines
1.4 KiB
HTML
33 lines
1.4 KiB
HTML
<!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>
|