Shadow-classify with a self-hosted model; opt-in Jev training capture #33
No reviewers
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
backmeupplz/jev_antispam_bot!33
Loading…
Reference in a new issue
No description provided.
Delete branch "laya-shadow"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Agentboard #49.
SHADOW_URL/SHADOW_API_KEY/SHADOW_MODEL/SHADOW_TIMEOUT_MS): every message Jev classifies (incl. spam-cache hits) is also sent to a second Jev-compatible/v1/systemoneserver (e.g. self-hosted Laya). Logged asshadow_analyzedwith the primary decision; never deletes, never delays moderation.JEV_URL): switching to self-hosted is an env change (JEV_URL,TYPESAFE_API_KEY,JEV_MODEL).TRAINING_CAPTURE=true, needsDATABASE_URL): stores each successful Jev exchange — exact request (message/context/profile text), Jev's per-question answers, verdict, chat/message IDs, no sender IDs — intraining_samples, pruned afterTRAINING_CAPTURE_DAYS(30) and capped at 200k rows; bounded fire-and-forget writes. Used to distill Laya from Jev. README privacy text updated.scripts/compare-shadow.ts: agreement / Jev-only / shadow-only at several gates from logs.Tests:
bun run checkincl. PostgreSQL integration (new capture prune/retention test) passes locally and in CI.🤖 Generated with Claude Code