Repository navigation
Description
Parent and release target
Parent: #1372; coordination #48; Project #10; milestone v1.3.
The Human confirmed that Lark is the first tracer and ordinary pairing/roles must extend to Slack, Discord, QQ and WeChat. Existing #1046 owns Slack management pairing and native Allow once/Reject, not this ordinary-chat intake slice. Do not duplicate or take over #1046 or the existing Lark tasks.
One observable behavior
For one PersonaBot/current Slack App Binding, an unpaired intentional DM creates the existing metadata-only pending request without model work. The Owner approves that exact applicant with one existing primary behavior Role through the current pairing UI. Only a fresh DM then reaches the Bot Inbox and receives an own-app answer in the original Slack DM. Revocation rejects future intake and fresh re-pairing never restores old group memberships or person exceptions.
Acceptance
- Qualify actual Slack DM event intake and trusted workspace/account/user/conversation identity on the selected Provider. Never derive authority from a display name, copied text or a public-channel mention.
- Reuse Messaging's canonical ordinary pairing, Role, current Binding and revision checks, directory/permission queries and existing native Host/Client seam. No new receiver, permission store, natural-language ACL or global platform user directory.
- Existing Web People/Roles/Requests UI supports the Slack applicant, review, primary Role and revoke path with explicit Bot/App scope. Direct authenticated Web Human input remains unchanged.
- Pending/control/rejected traffic does not wake the model or replay blocked text; an approved person asks again. Disabled/replaced Binding, revoked pairing or unavailable Role fails closed at actual intake; a restart preserves current authority.
- Existing authorization-group resolver remains shared. This slice does not add a new native approval control, broaden management grants or claim multi-group approval E2E; Slack tracer: verified pairing and native Allow once / Reject #1046 and the later group parity tracer retain those gates.
- Prove real pending → Web review → fresh DM reply → revoke refusal → restart behavior with matched canonical Source Event/Admission/Outbox facts, focused regressions and GitHub-rendered light/dark/narrow/full-workflow evidence.
- Use an isolated task-owned Profile and an explicitly authorized exclusive Slack receiver window. No app-scope or production takeover is implied by this issue; obtain any missing native authorization separately.
- Update the relevant bilingual guide/ledger and pause after the first tracer PR for Human QA before group/open-conversation breadth. Do not merge or deploy automatically.
Dependencies and coordination
- Delivered baseline: Lark tracer: ordinary roles and reviewed automatic conversation pairing #1373 and IM tracer: continuous authorization groups and explicit person exceptions #1406. Keep both as native fulfilled dependencies.
- Coordinate, do not replace: Slack tracer: verified pairing and native Allow once / Reject #1046 (native management controls), Lark tracer: native Human questions answered from the paired DM #1031 (Lark questions), Bridge tracer: Lark file cards with download and safe open-with #1022 (Lark media), Proactive posts to any conversation the platform lets the app speak in #1115 (proactive posting).
- Remaining Discord/QQ/WeChat ordinary-pairing/group parity stays explicitly in Hub: Bot-scoped roles and conversation pairing #1372's release matrix; create each next bounded tracer after first-slice feedback rather than speculative parallel implementations.
Status: Completed. PR #1436 merged at 5c96145 after Human-accepted qualified native QA2 flow, full exact-head CI, Standards/Spec review and complete PR visual evidence. QA2 and the receiver-free screenshot Host are stopped. This closes the bounded ordinary Slack DM path and reusable local QA setup; Slack native management controls/groups remain with their existing tickets. See the final acceptance/outcome comments.
Metadata
Metadata
Assignees
Labels
Type
Projects
- StatusShow more project fieldsDone
- StatusShow more project fieldsDone
Activity
DoodleBears commentedon Oct 11, 2026
Agent work claim — Slack ordinary DM pairing
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session)codex/1415-slack-ordinary-pairingDoodleBears commentedon Oct 11, 2026
Agent work outcome — completed
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session).Earlier dated checkpoints — superseded by completed outcome
Current checkpoint — qualified native Slack slice, Human feedback pending
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76.61a8fb4a2b23019fbec828fba097b1a20ff38271; full exact-head CI passed: https://github.com/BotHarness/DeepSeekBot/actions/runs/38168159069 . No merge, deployment, schema or Provider pin promotion.im-56527daaa45905d4d6f0e5fa0623e95efb43224ff541017d18fb55e899112b03joined a handled/no-error Admission and provider-accepted Outboxec47283c-7d04-40bd-b251-9170e3d02ad3; receipt1791751409.319419matched the rendered native reply.im-8942eec0c28cf15410b04f0f158d3ed58b1236364bb4fe6321bc76fb7c52e229joined a handled/no-error Admission and provider-accepted Outbox65f00871-8f4a-4e81-a199-e82f3289417b; native receipt1791751708.374919matched.1bf52d8bd1e805d8703d0f4622087448d0d4fc03. They show runtime states on the candidate, not base/candidate comparison pairs.Historical recovery checkpoints (superseded by the current checkpoint above)
#1415 first Slack DM tracer — Draft review evidence
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; claim remains active.61a8fb4a2b23019fbec828fba097b1a20ff38271follows the CI-passed code/helper head.setup slacknow selects separate Slack QA1/QA2/QA3 App/Workspace metadata and a current idle window, captures tokens through hidden input, then checks Socket Mode/DM scopes/events/install/App Home. Existing Lark values/default selection and older loaders remain compatible. No GitHub secrets or receiver startup. Saved metadata is not verified platform identity or a perpetual lease.Native Slack checkpoint — incomplete, receiver stopped
Task:
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; Slack tracer: ordinary roles and reviewed chat pairing with current-authority intake #1415 claim remains active, PR Review ordinary Slack DM pairing through current Bot/App authority #1436 remains Draft.Human authorized QA2 exclusivity and separately adding only
im:readand reinstalling the designated App. The actual console change and reinstallation completed; live installed App/Workspace/DM/sender checks passed.A dedicated ordinary Role with no management capabilities and the existing restriction were configured through Web UI. The unknown native DM produced a fixed pending notice and a canonical metadata-only request. Web approval persisted and delivered the fixed ask-again notice. No Admission was added by the pending request or approval.
A fresh native DM visibly returned 9797, but current permissions returned unavailable and the test Host did not contain its Source Event/Admission. After Web revocation, another new native DM visibly returned 437 without a corresponding test-Host Admission. These replies are not qualified as this candidate's execution; the revoke acceptance failed. The Human reconfirmed other receivers are stopped; execution-source and Provider/lifecycle diagnosis continues without presuming a different receiver or changing its ownership.
The exact task-owned Host was stopped. No other Host was stopped, no Provider pin was promoted, no merge or deployment occurred. First-slice Human acceptance is not requested on this incomplete result.
The bilingual website guide now documents DM Bot scopes, App-level Socket Mode scope, message.im, App Home and reinstallation, with two actual scope screenshots plus verified native pending and Web review captures. Complete reply/revoke workflow evidence awaits qualification; earlier messaging evidence is not substituted.
Latest read-only isolation checks: task Provider configuration is external-consumer; the exact owned Host is stopped. No running DSH Node Host was found in either available WSL distribution. Other Windows Hosts were inventoried without modification; these checks do not establish the origin of the observed replies.
Native isolation diagnosis — current CI passed
61a8fb4a2b23019fbec828fba097b1a20ff38271passed the full lint/format/typecheck/test/build/docs CI: https://github.com/BotHarness/DeepSeekBot/actions/runs/38168159069 . Draft review remains skipped by CodeRabbit.Latest browser-restored QA2 retry — isolation still fails
isolation-c.mjsreadback matched that request/reply with the original task PID absent and review port unbound. The active outside execution condition is still present; no second QA2 receiver was started.eyesreaction from the selected App's verified bot user while this task Host was absent and the review port unbound. It had not produced a text reply at readback. The native browser and read-only history agree on the receipt reaction; the reaction-aware isolation check exits 1. A bounded explicit bridge identity query has not yielded a visible identity response. No receiver was started on this failed isolation precondition.QA2 recovery authorized — Human credential cutover pending
QA2 credential recovery completed — native pending path requalified
Authenticated review advanced; browser reopen unavailable
10 remaining items
Publish sanitized #1415 exact-head review explanation
Publish qualified #1415 native Slack QA captures for 61a8fb4
Merge current main into Slack pairing tracer
Document qualified Slack ordinary pairing and full native workflow
Publish actual #1415 UI comparison for 1710c42
Publish sanitized #1415 exact-head review explanation
DoodleBears commentedon Oct 11, 2026
Human acceptance and final merge gates
Task:
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76; original claim.The Human accepted this qualified #1415 Slack ordinary DM slice and explicitly authorized merging PR #1436. The recovered QA2 native flow matched pending → actual Web Role selection/Approve → fixed ask-again → fresh own-App answer/current Role and permissions/three directories → revoke refusal → restart. Earlier source-conflicted results remain excluded.
1710c42c3ce56e812bbd678633c2431ce87bfd24; base:184edf23b422a69b9f04bdfde29e35e40c88f3a0.DoodleBears commentedon Oct 11, 2026
Agent work outcome — completed
codex/local/01a12734-8226-7ae3-8d1b-db08bde64d76(not a DSH Session).Extend reviewed ordinary pairing to trusted Slack DMs (BotHarness#1436)