Skip to content

specs(automation): crm-sellers — every connected Telegram account is a CRM seller - #3599

Merged
gHashTag merged 1 commit into
masterfrom
specs/crm-sellers
Sep 13, 2026
Merged

gHashTag merged 1 commit into
masterfrom
specs/crm-sellers

Conversation

@gHashTag

Copy link
Copy Markdown
Owner

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 because requireOwner compared 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 (module automation::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-only crm_sellers list 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); no pub const OP_* added.

Checked

  • trinity agents-from-specs.mjs over public/t27/t27_compiler.wasm: typecheckOk: true, errors: 0, discarded: 0, hirOk: true; ASCII only.
  • tools/published_figures.py --check and --self-check pass on this checkout.
  • Host PR: gHashTag/999-multibots-telegraf#2359 (render 1568 tests, bot services 327 tests green locally).

Not claimed

  • Session liveness (SESSIONS_PROBED = false): existence and length were measured, checkAuthorization was not run.
  • Whether @Playom has opened the carrier bot (CARRIER_BOT_STARTED_BY_EVERY_SELLER = false).

…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.
@github-actions

Copy link
Copy Markdown
Contributor

📓 NotebookLM Notebook linked to this PR

This notebook contains session context, decisions, and artifacts for this work.

@github-actions

Copy link
Copy Markdown
Contributor

PR Dashboard

Generated at: 2026-09-13 06:24:38 UTC

Summary

Status Count
Total Open PRs 16
PRs with Failing Checks 10
PRs with All Checks Green 6
READY 5
FAILING 10
PENDING 0
NO CHECKS YET 0

These columns do not partition: 5 + 10 + 0 + 0 = 15, and there are 16 open PRs. A PR is being counted twice or not at all.

Seal Status

  • ⚠️ STALE -- sha256(compiler.rs)=d4c5b22b471e != manifest seal=87e5cbd3ad94.
    The committed NMSE numbers were certified against an older compiler.rs.
    Run scripts/reseal-check.sh locally for the two-step reseal command (advisory; not a merge gate).

@gHashTag
gHashTag merged commit 6499094 into master Sep 13, 2026
30 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

specs(automation): crm-sellers — every connected Telegram account is a CRM seller

1 participant