docs(channels): record the CU-C findings from the first live Slack deploy - #6074
docs(channels): record the CU-C findings from the first live Slack deploy#6074mmabrouk wants to merge 2 commits into
Conversation
…ploy Thirteen entries, F69-F81, from deploying the branch on bighetzner against a real Slack workspace on 2026-08-14: the migration id collision, the connection create that could never succeed, the missing url_verification handshake, the top-level thread_ts crash, the unresolvable 'main' reference key, the empty-locator first post, the approval-surface trio, the pending-choice replay, dropped deliveries, lost turn-ended events, the space_kind pass-through gap, backfill concatenation, and the first-ever run of the written suites. Three carry fixes in review already: PR #6070 (F69), PR #6071 (F72), PR #6072 (F74). Three more run as local hotfixes on the test stack and need a design decision each (F70, F71, F73).
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
|
Important Review skippedAuto reviews are disabled on base/target branches other than the default branch. 🗂️ Base branches to auto review (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Repository YAML (base), Organization UI (inherited) Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Thirty findings from a full day driving the branch on a real Slack workspace, the agenta bench as a no-Slack control, and a real Telegram bridge. Two are fixed in PR #6079 (the bot-echo cascade, F82; the empty-answer delivery path, F85). One is a product decision rather than a defect (F86, the durable agent folder spanning every space and user). Eight came from building a bridge against the contract, F97 and F105-F109, and F97 corrects F63's premise: the create path does write delivery_url and delivery round-trips cleanly once capabilities exist, so the missing piece is the hello route alone. The rest span the trigger policy nobody reads, forwardfill's flood-or-amnesia key mismatch, two edit models that treat omitted fields as "reset" (one of which permanently bricks a connection), the ungated `ask` permission mode, and the approval surface that cannot work under per-message session scope.
Context
Deploying this branch against a real Slack workspace (the wave-6 "deploy" checkpoint, CU-C) surfaced defects the suites could not see, exactly as the wave document budgeted for. A second day extended the QA to DMs, multi-agent routing, grants, long answers, approvals, the agenta bench as a no-Slack control, and a real Telegram bridge. The branch keeps its cross-cutting record in
docs/design/channels-research/v2/review-findings.md; these results belong there rather than in a side channel.Changes
Forty-three entries, F69 to F111, appended to Open Findings in the ledger's own format (ID, Origin, Severity, Confidence, Status, Category, Summary, Evidence, Files, Suggested Fix). Every entry cites what was observed on the live stack, not what a suite reported.
F69–F81 —
wave-6 CU-C (live deploy, 2026-08-14). Three already have fixes in review: PR #6070 (F69, the migration collision), PR #6071 (F72, the top-level thread_ts crash), PR #6072 (F74, the empty-locator first post). Three more ran as local hotfixes on the test stack and each needs a design decision before it can be code: F70 (slug derivation and the mislabeled 409), F71 (the url_verification handshake), F73 (themainreference key).F82–F111 —
wave-6 CU-C (live QA, 2026-08-17). Two are fixed in PR #6079 and validated across a full day of live traffic: F82, the bot-echo cascade, where our own indicator edit came back as an authorless event and the bot answered itself four levels deep at a paid run every 14 seconds; and F85, the turn-ended event outrunning the record it describes, whose empty fold rendered a block Slack rejects and left the indicator on "Working…" forever.F86 is a decision rather than a defect: the durable agent folder is keyed per agent with a NULL session, so a fact told to the bot privately in a DM is read back by the same agent in a public channel, for every user. Nothing misbehaves; the design meets a context it was not written for, and the scoping call belongs to the Context Folders PRD.
Eight came from building a bridge against the contract (F97, F105–F109). F97 corrects F63's premise — the create path does write
delivery_url, and delivery round-trips cleanly once capabilities exist, so the missing piece is the unwired hello route alone; F63 should be rewritten rather than closed.The rest span the trigger policy that is computed and never read (F83, and F94 where a channel invite runs a paid turn), forwardfill's flood-or-amnesia key mismatch (F84), two edit models that treat omitted fields as "reset" (F91 on agents, F98 on connections — where a plain rename permanently bricks a connection), the ungated
askpermission mode (F100), the approval surface that cannot work under per-message session scope (F101), and F102, which records that fixing F79 breaks every grant written against today's mis-recorded space kind.Tests / notes
Documentation only; no code changes. The deployment that produced these findings is still running, so every entry can be re-verified live.