@@ -0,0 +1,61 @@
|
||||
# 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=true` and `dispatch_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:
|
||||
|
||||
```text
|
||||
~/.config/jwebot/conversation-shadow.json
|
||||
```
|
||||
|
||||
Example with placeholder values:
|
||||
|
||||
```json
|
||||
{
|
||||
"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
|
||||
|
||||
1. Keep production services unchanged.
|
||||
2. Run the recorder in a separate local test state directory.
|
||||
3. Select the allowlisted private conversation manually.
|
||||
4. Let the first capture establish a baseline.
|
||||
5. Send `/状态` or `JWeBot: 测试` from the other account.
|
||||
6. Inspect the local history for `shadow_only=true`.
|
||||
7. 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.
|
||||
Reference in New Issue
Block a user