Root Cause Found
The pre-beta-* images are built using Dockerfile.unified (the workspace restructure), NOT the standard per-variant Dockerfiles. The unified binary compiles from crates/openab-core/src/discord.rs which is missing the reaction_add handler.
Missing Features in Unified Build
| Feature |
File |
Status |
reaction_add (emoji mapping) |
crates/openab-core/src/discord.rs |
❌ Not ported |
archive_thread |
crates/openab-core/src/discord.rs |
❌ Not ported |
ctl.rs (openab set/get IPC) |
crates/openab-core/src/ |
❌ Missing module |
allow_list.rs (pluggable allow-list) |
crates/openab-core/src/ |
❌ Missing module |
Evidence
# Original (src/discord.rs) — has reaction_add:
grep "async fn reaction_add" src/discord.rs
→ async fn reaction_add(&self, ctx: Context, reaction: Reaction) {
# Unified (crates/openab-core/src/discord.rs) — missing:
grep "async fn reaction_add" crates/openab-core/src/discord.rs
→ (no output)
Fix
Port reaction_add and archive_thread from src/discord.rs to crates/openab-core/src/discord.rs. Also port ctl.rs and allow_list.rs modules.
Workaround
Use openab:0.8.5 (stable) or per-variant images (openab:beta) built from the standard Dockerfile instead of pre-beta-* unified images.
Root Cause Found
The
pre-beta-*images are built usingDockerfile.unified(the workspace restructure), NOT the standard per-variant Dockerfiles. The unified binary compiles fromcrates/openab-core/src/discord.rswhich is missing thereaction_addhandler.Missing Features in Unified Build
reaction_add(emoji mapping)crates/openab-core/src/discord.rsarchive_threadcrates/openab-core/src/discord.rsctl.rs(openab set/get IPC)crates/openab-core/src/allow_list.rs(pluggable allow-list)crates/openab-core/src/Evidence
Fix
Port
reaction_addandarchive_threadfromsrc/discord.rstocrates/openab-core/src/discord.rs. Also portctl.rsandallow_list.rsmodules.Workaround
Use
openab:0.8.5(stable) or per-variant images (openab:beta) built from the standard Dockerfile instead ofpre-beta-*unified images.