Add Slack Team Grill workflow - #24
Open
pratikbuilds wants to merge 6 commits into
Open
Conversation
pvams
approved these changes
Aug 3, 2026
…flow' into agent/add-slack-team-grill
…flow' into agent/add-slack-team-grill
…d-slack-team-grill
…d-slack-team-grill
TheGreatAxios
left a comment
Contributor
There was a problem hiding this comment.
Self-review (agent)
Verdict: Approve (minors / test gaps — ship-ready for an example starter)
What this PR does
Pure additive starter/slack-team-grill: adaptive one-decision-at-a-time Slack flow via Corbits Tag cards/actions. Early report delivery posts as soon as the report step finishes, even if the local run has not fully settled. Includes session.test.ts + workflow.test.ts.
Interactive session correctness — looks solid
- First-click wins: status flips to
advancingand clears current question/message with noawaitbetween check and flip (no concurrent interleave on the event loop) - Stale/forged clicks rejected via sessionId + thread ownership + round +
actionIdFor(optionId) - One grill per thread via
byThreadbefore create - Adaptive rounds: each round is a separate workflow;
awaitSignalcompletes the question path; report path uses already-complete decisions whenneedsQuestion: false - Early delivery: race
reportReadyvsrun.complete, post with timeout + plain-text fallback,finishSession, then fire-and-forget cancel if report arrived first
Findings
| Severity | Finding |
|---|---|
| major (tests) | session.test.ts only covers early report + re-entry. Missing: question → select → lock → next round; concurrent double-click; already-running; stale round/wrong session; failure path; report plain-text fallback. Core interactive product path is untested. |
| minor | No timeout while status === "advancing" after click — if signal is lost or complete never settles, the thread stays blocked forever (alreadyRunning). |
| minor | No idle timeout while awaiting-choice — abandoned grills pin the thread until process restart (documented process-local demo limit). |
| minor | Tiny window after posting the question card before awaiting-choice: buttons are live in Slack but clicks are silently dropped. |
| minor | If currentMessage.edit(locked) fails, original buttons stay visually live (clicks no-op by validation) — confusing if a later question is also posted. |
| nit | Ignored clicks (duplicate/stale/advancing) give no user feedback. |
Test coverage notes
- workflow.test.ts — good: signal blocks completion; complete path routes generate→report
- session.test.ts — good for early delivery + cancel + map cleanup; expand for select/multi-round when convenient
Checks
- Full read of session/workflow/cards/tools/selection + tests
- Install/typecheck not re-run here (Tag submodule uninitialized in review worktree); author reports 3 tests passed
No blockers for an example starter. Expanding session tests for the interactive path would make this much more confidence-inspiring.
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.
Summary
Verification
bun install --frozen-lockfilebun run test— 3 passed, 0 failedbun run typecheckbun build src/cli.ts --target=bun --outdir /private/tmp/corbits-team-grill-pr23-buildbun run start --helpLive Slack verification was not repeated for this change.
Stack
This PR targets
slack-community-pulse-tag-workflow, the head branch of #23.