feat(surface): Slack Block Kit typing on f.slack.post (#347) - #352
Conversation
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Advanced Run ID: 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 |
maintainability lens — PASSMaintainability review — PR #352 (Slack Block Kit slice)Blockers: none. Concerns
Notes
The diff is small, documented in-tree, and preserves the pass-through contract. Six months from now a reader can follow the trail README → schema JSON → generator → interface. REVIEW_PASSED |
history lens — PASSBlockers: none. PR #352 passes the HISTORY lens.
Concerns: Notes: REVIEW_PASSED |
structure lens — MISSING |
|
🎯 review-swarm: FAILED (M:pass H:pass S:missing) Lens transcripts posted as sibling comments above. |
Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82
The Block Kit test used a postfix .gate(callback) which the initial authored executor doesn't lower (per SURFACE §6 line 587-594). Await the step directly and assert the receipt shape — same coverage, no gate. Fixes CI failure on #352 (feat/spec-Y-slack-block-kit). Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82
be5bc41 to
204472d
Compare
Closes #347. Delivered via implement-slice.flow.ts (flows-driven dogfood, mixed codex/claude).
Note
Medium Risk
Changes Slack effect journaling and writeback payloads on a core integration path, but plain-text behavior is preserved and coverage is mostly unit-level; full daemon integration was not verified in the author’s environment.
Overview
f.slack.postnow accepts Block Kit–style payloads: a string, a structured message (text,blocks,attachments), or plain text withblocks/attachmentsin options (options win on overlap).replyTostill maps to the adapter’sparentRef. Plain-text posts keep the same receipt and body shape; interaction callbacks are not added.The surface adds
slackPostBody(also exported from@relayflows/surface/runtime) and OpenAPI-derivedSlackBlock/SlackAttachmenttypes viascripts/slack-message-schema.jsonand an updatedgenerate-helpers.mjs, because pinned@relayfile/relay-helpersonly types text-onlypost.SDK
slackWritebackbuilds the relayfile write body withslackPostBodyat the transport layer while still calling the ergonomic client with a string fallback, so journals and mock writebacks carry full structured content.SlackCalltyping follows the expanded surfacepostsignature. New unit and type tests cover normalization; an authored-flow test asserts journal snapshot immutability and delivery body.docs/evidence/spec-Y/README.mdrecords local verification (daemon/socket tests noted as environment-blocked).Reviewed by Cursor Bugbot for commit 204472d. Bugbot is set up for automated code reviews on this repo. Configure here.