2.0 KiB
Private Conversation Shadow Testing
This prototype observes one manually selected private conversation without changing the production group workflow.
It is intentionally unable to switch conversations or send replies:
- The recorder never enqueues matching shadow events.
- Every observation carries
shadow_only=trueanddispatch_allowed=false. - JWeBot Edge ignores marked observations before routing or persistence.
- The shadow registry accepts private targets only. The main group cannot be added to it.
- No setting in the shadow registry can enable delivery.
Local Configuration
Keep the real file outside the repository:
~/.config/jwebot/conversation-shadow.json
Example with placeholder values:
{
"format_version": 1,
"enabled": true,
"targets": [
{
"key": "test-direct",
"kind": "direct",
"title_fingerprint": "<64 lowercase SHA-256 characters>",
"sender": "<local test label>"
}
]
}
Set JWEBOT_CONVERSATION_SHADOW_CONFIG to that absolute path only in a local
test process. Without the variable, the feature is not imported or enabled.
The title fingerprint is the SHA-256 value returned by
title_fingerprint(image) for a screenshot where the intended conversation is
selected. It is an opaque routing value, not a trusted contact identity.
Controlled Test
- Keep production services unchanged.
- Run the recorder in a separate local test state directory.
- Select the allowlisted private conversation manually.
- Let the first capture establish a baseline.
- Send
/状态orJWeBot: 测试from the other account. - Inspect the local history for
shadow_only=true. - Assert that the OCR queue remains empty and no outgoing bubble appears.
Ordinary private messages are observed but do not set mention_bot. Only slash
commands and the configured wake word are treated as potential triggers.
Do not point this prototype at production state paths and do not add the environment variable to a deployed runtime profile.