Skip to content

Commit 770ec2a

Browse files
committed
rewrite how it works with redundant architecture, iMessage routing, escalation
1 parent 7683d6e commit 770ec2a

1 file changed

Lines changed: 46 additions & 12 deletions

File tree

‎d/a7x9k2m/index.html‎

Lines changed: 46 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -763,34 +763,68 @@ <h3>Technology</h3>
763763
<div class="subtab-content active" id="subtab-overview">
764764

765765
<section class="section">
766-
<div class="section-heading">The Pipeline</div>
766+
<div class="section-heading">How It Works</div>
767767

768+
<p>The system is redundant by design. Two independent collectors watch the same channels. As long as one of them sees the message, it makes it into the database.</p>
769+
770+
<h3>1. Intake (redundant)</h3>
771+
<p>A dedicated Observer WhatsApp account sits in all 70 channels. On the Mac running the monitoring stack, two collectors watch it simultaneously:</p>
772+
<div class="rules">
773+
<div class="rule">
774+
<span class="rule-n">A</span>
775+
<div class="rule-body">
776+
<strong>Native notifications</strong>
777+
<span>macOS desktop notifications from WhatsApp. Fast wake-up signal. Can truncate long messages.</span>
778+
</div>
779+
</div>
780+
<div class="rule">
781+
<span class="rule-n">B</span>
782+
<div class="rule-body">
783+
<strong>Baileys (linked device)</strong>
784+
<span>Direct WhatsApp protocol connection. Richer data — full message text, sender identity, group metadata. Stronger evidence.</span>
785+
</div>
786+
</div>
787+
</div>
788+
<p>Both feed into the same local SQLite database. The merge layer reconciles them — if one catches something the other missed, it backfills. If both catch it, it confirms.</p>
789+
790+
<h3>2. Classify</h3>
791+
<p>Every message gets checked against your three rules. The AI reads the message, evaluates it, and if there's a violation, drafts a custom moderation response appropriate to the tone and context of the conversation.</p>
792+
793+
<h3>3. Route & Alert</h3>
794+
<p>This version is set up on a Mac, so it uses iMessage to send the alert. When a violation is flagged, the system looks at who's supposed to be on coverage at that time — based on schedule, time of day, whatever routing rules you set — and sends them a text with the flagged message plus the suggested response.</p>
795+
<p>If the person doesn't acknowledge it within a set window, it can re-send or escalate to a second person. The routing logic is configurable.</p>
796+
797+
<div class="aside">
798+
<p><strong>It never posts back into WhatsApp automatically.</strong> That's what breaks. The system watches, classifies, drafts, and alerts. A human reviews and posts the response themselves. The only time anyone should touch the Observer account directly is once a week or so — just open WhatsApp on the phone briefly to keep the session alive. It won't log out often, but it's good hygiene.</p>
799+
</div>
800+
801+
<h3>4. The Pipeline</h3>
768802
<div class="pipeline">
769803
<div class="pipeline-step">
770804
<div class="pipeline-icon">&#128229;</div>
771-
<div class="pipeline-label">Extract</div>
772-
<div class="pipeline-desc">All 70 channels pulled into a local database, every message searchable</div>
773-
</div>
774-
<div class="pipeline-step">
775-
<div class="pipeline-icon">&#9889;</div>
776-
<div class="pipeline-label">Trigger</div>
777-
<div class="pipeline-desc">Webhook fires in real-time on every new message</div>
805+
<div class="pipeline-label">Intake</div>
806+
<div class="pipeline-desc">Notifications + Baileys capture every message into a local database</div>
778807
</div>
779808
<div class="pipeline-step">
780809
<div class="pipeline-icon">&#129504;</div>
781810
<div class="pipeline-label">Classify</div>
782-
<div class="pipeline-desc">AI checks against your three rules, drafts a moderation response</div>
811+
<div class="pipeline-desc">AI checks against your 3 rules, drafts a response if needed</div>
812+
</div>
813+
<div class="pipeline-step">
814+
<div class="pipeline-icon">&#128172;</div>
815+
<div class="pipeline-label">Route</div>
816+
<div class="pipeline-desc">Sends alert via iMessage to whoever is on coverage at that time</div>
783817
</div>
784818
<div class="pipeline-step">
785819
<div class="pipeline-icon">&#128241;</div>
786-
<div class="pipeline-label">Alert</div>
787-
<div class="pipeline-desc">You get a text with the flagged message and suggested reply. You decide.</div>
820+
<div class="pipeline-label">Respond</div>
821+
<div class="pipeline-desc">Human reviews the alert, posts the response into WhatsApp themselves</div>
788822
</div>
789823
<div class="pipeline-flow"></div>
790824
</div>
791825

792826
<div class="aside">
793-
<p><strong>Key point:</strong> The AI watches and drafts. A human reviews the flagged message and the suggested response, then posts it themselves. Nothing gets sent automatically into WhatsApp -- that's what breaks.</p>
827+
<p><strong>Mac-first, PC-portable:</strong> I happen to have this running on a Mac, which is why it uses iMessage for alerts and macOS notifications as one of the intake paths. It would work on a PC but needs some retooling on the notification and alert sides. We can talk through what makes sense for your setup on Friday.</p>
794828
</div>
795829
</section>
796830

0 commit comments

Comments
 (0)