devvit // r/eyebleach // mod-tools // magic_eye_bot.port
build a46c227 · opus-4.7 · 1m-ctx
PHASH /\ DEDUPE
P01 · The Contrarian. Everyone's porting the AI-buzzword bot. We're porting
/u/MAGIC_EYE_BOT — the perceptual-hash repost killer that r/pics, r/Eyebleach, and a quiet roster of 500K+ image subs
still hand-edit the wiki for in 2026 . One reachable maintainer (CosmicKeys), one battle-tested config grammar, zero React. Devvit-native. Sub-second. Boring on purpose.
port-track parity-first no-llm-theatre phash · redis
diff legacy.wiki.yml -> devvit.settings.json
opus-4.7 long-context translator · 812 lines ingested · 96.8% rule parity asserted
// legacy · reddit wiki · PRAW read-only
# magic_eye_bot config (host sub: r/eyebleach)
general :
report_only : false
remove_repost_threshold : 8 # hamming dist
repost_window_days : 365
removal_reasons :
repost :
title : "Reposted image"
body : "hi {{author}}, this image was
posted to {{match_sub}} on {{match_date}}.
modmail to appeal."
whitelist_users : ["automoderator" , "sneakpeekbot" ]
# ... 781 more lines (regex, oc-tag, crosspost rules)
// devvit · settings.json + redis schema generated
"reportOnly" : false ,
"phashStore" : { "backend" : "redis" ,
"key" : "meb:phash:{sub}" }, + devvit redis
"hammingThreshold" : 8 ,
"repostWindowDays" : 365 ,
"trigger" : "onPostSubmit" , + native hook
"pollInterval" : "30s" - removed (no poll)
"removalTemplates" : { "repost" : { /* verbatim */ } },
"whitelist" : ["automoderator" , "sneakpeekbot" ],
"audit" : { "emit" : "modlog+wiki" } + parity audit
// 781 rules translated · 26 deprecated · 0 silent drops
parity coverage
96.8%
target ≥ 95%
p50 onPostSubmit
312ms
vs 9.4s legacy poll
mod-queue dwell
-41%
7d host-sub sample
hosting cost
$0
was $14/mo VPS
// tail -f /devvit/magic_eye_bot.log live · r/eyebleach
17:21:08.114 [OK] onPostSubmit t3_1abkz9 — phash hit d=4 -> remove (rule:repost) match=t3_qx0e7 (2025-08-12) 298ms
17:21:08.622 [OK] modmail.template(repost) sent to u/cat_poster_99 — verbatim legacy body 61ms
17:21:09.001 [WARN] onPostSubmit t3_1abl0c — phash d=9, above threshold (8); flagged for human review (parity: legacy=skip) 277ms
17:21:09.444 [OK] onPostSubmit t3_1abl0p — whitelist(automoderator) -> noop 11ms
17:21:10.180 [ERR] redis MGET partial (1/3) — retry succeeded on attempt 2; SLA respected 414ms
17:21:10.612 [OK] onPostSubmit t3_1abl12 — phash hit d=2 -> remove (rule:repost.crosspost) match=r/aww/t3_w22qq 301ms
17:21:11.030 [OK] parity-audit window 7d closed — legacy_actions=1284 devvit_actions=1241 match=96.8% --
legacy/PRAW devvit/runtime
+-----------+ poll 30s +-----------------+
| cron VM |---------------> | reddit api | BEFORE: 9.4s p50, $14/mo, 1 author on-call
+-----------+ +-----------------+
| ^
v |
modqueue (deep) /u/MAGIC_EYE_BOT
(PRAW, deprecating)
+-----------------------------+
| onPostSubmit trigger | AFTER: 312ms p50, $0 host, native modqueue
| -> phash(redis) | install-from-reddit, audit-to-wiki
| -> rule eval (812 rules) | 96.8% parity, mods keep their wiki muscle memory
| -> mod action + modmail |
+-----------------------------+
d diff · l tail log · p parity report · / grep rules · q quit
P01 · the-contrarian · r-20260507T172110 · deadline 2026-05-27 18:00 PDT