Harden conversation replies and prioritize newest candidates
This commit is contained in:
1 parent
f98c5c732d
commit
b8e4a1bb88
23 files changed
+598
-113
No files matched your search
@@ -19,7 +19,7 @@ The product has five connected goals:
|
||||
- Candidate inventory follows near-term outbound capacity and the recent-post window; discovery pauses instead of accumulating an ever-older backlog when accounts cannot keep pace.
|
||||
- Discovery is global while authentication, rate limits, conversations, and content remain account-owned.
|
||||
- Recipient deduplication is case-insensitive, durable across restarts, and protected by a live reservation during sends.
|
||||
- Remote side effects are fail-closed: a send is recorded only after the chat service confirms it; interrupted reply claims reconcile against Matrix history before retrying.
|
||||
- Remote side effects are fail-closed: a send is recorded only after the chat service confirms it; interrupted reply claims reconcile against Matrix history before retrying. A queued reply refreshes Matrix immediately before sending and becomes an auditable superseded claim if a newer inbound event or terminal state appeared while it waited.
|
||||
- Dry-run prepares and records decisions but never sends.
|
||||
- Operators can see funnel stages, account state, rate limits, failures, handoffs, and recent activity rather than inferring success from a process-health check.
|
||||
|
||||
@@ -41,11 +41,11 @@ Each subreddit snapshots a policy into a conversation when automation first hand
|
||||
| Mode | Meaning |
|
||||
| --- | --- |
|
||||
| `manual` | Never auto-reply; surface a human handoff. |
|
||||
| `legacy` | A short, bounded media-request flow retained for existing behavior. |
|
||||
| `legacy` | At most one optional autonomous media request, counting a request already present in the opener, followed by human handoff. |
|
||||
| `r4r` | Bounded rapport-style replies with autonomous safety checks. |
|
||||
| `r4r-media` | Rapport first, one bounded media ask, then a handoff/terminal boundary. |
|
||||
|
||||
The snapshot matters: changing configuration later must not silently rewrite the rules for an active conversation. Automation stops for seller/upsell evidence, an image received, a detected boundary, unsafe content, an exhausted turn budget, or a manual policy.
|
||||
The snapshot matters: changing configuration later must not silently rewrite the rules for an active conversation. Automation stops for seller/upsell evidence, an image received, a detected boundary, unsafe content, an exhausted turn budget, a repeated media request, or a manual policy. Short refusals are interpreted in sequence: phrases such as “I’m good” become media boundaries only when they answer a media request.
|
||||
|
||||
## Success and analytics
|
||||
|
||||
@@ -56,6 +56,8 @@ Do not collapse all progress into “messages sent.” Useful states include:
|
||||
- replies, declined/boundary/upsell outcomes, and images received;
|
||||
- model usage, fallback behavior, strategy/sample size, and account ownership.
|
||||
|
||||
Learning examples mature only after the conversation policy is no longer active. Full recipient history is reclassified on sync; a later decline or boundary overrides earlier reciprocal activity and removes any previously promoted example.
|
||||
|
||||
Fetched listing size is not an eligibility count. Logs and UI should quantify rejection and deferral reasons so a dry funnel can be diagnosed without guessing.
|
||||
|
||||
## Operational authority
|
||||
|
||||
Reference in new issue
Block a user