specs(automation): crm-sellers — every connected Telegram account is a CRM seller - #3599
Merged
Merged
Conversation
…a CRM seller Closes #3598 Module automation::crm_sellers states who the CRM of 999-multibots-telegraf works for: a row in tg_sessions for the caller's verified id (the owner is always admitted), the gate reads that table, the playbook goes to every seller, a self-offer is checked against the caller, the owner-only tool crm_sellers lists sellers without ever returning a session string, and the proactive sweep runs per seller with concurrency 1. Measured 2026-09-13: two rows (144022504, 435572800), 369 characters each; liveness not claimed. Host PR: gHashTag/999-multibots-telegraf#2359. docs/now entry; tools/published_figures.py test-blocks pin 12724 -> 12729.
Contributor
|
📓 NotebookLM Notebook linked to this PR
This notebook contains session context, decisions, and artifacts for this work. |
Contributor
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #3598
Why
Measured 2026-09-13 on the render's Postgres (
tg_sessions): two rows, 144022504 (@t27_dev, owner) and 435572800 (@Playom). The session lookup and every CRM table were already keyed by the caller; the CRM still refused @Playom becauserequireOwnercompared the caller to one env id. The spec fixes who a seller is so the host cannot drift back.What
specs/automation/crm-sellers.t27(moduleautomation::crm_sellers): a seller = a row in tg_sessions for the caller's verified id, owner always admitted; gate reads the table and the refusal names the fix; playbook for every seller; self-offer checked against the caller; owner-onlycrm_sellerslist tool that never returns a session string; per-seller sweep with concurrency 1. Five test blocks.docs/now/2026-09-13-crm-sellers-every-connected-telegram-account-is-a-seller.md.tools/published_figures.py: test-blocks pin 12724 -> 12729 (five in this spec); nopub const OP_*added.Checked
agents-from-specs.mjsoverpublic/t27/t27_compiler.wasm:typecheckOk: true, errors: 0, discarded: 0, hirOk: true; ASCII only.tools/published_figures.py --checkand--self-checkpass on this checkout.Not claimed
SESSIONS_PROBED = false): existence and length were measured, checkAuthorization was not run.CARRIER_BOT_STARTED_BY_EVERY_SELLER = false).