feat(sdk): YAML helper verbs compile to effect steps (#345) - #349
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 |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using high effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit be01d64. Configure here.
maintainability lens — FAILMaintainability review — PR #349Blockers
Concerns
Notes
REVIEW_FAILED |
history lens — PASSBlockers: none under the three HISTORY criteria. The supplied diff does not show a previously removed pattern being restored or a new contradiction with a settled RFC decision. Commit Notes
Concerns, nonblocking for this lens The committed The refusal-enumeration assertion needs attention alongside the new The empty REVIEW_PASSED |
structure lens — MISSING |
|
🎯 review-swarm: FAILED (M:fail H:pass S:missing) Lens transcripts posted as sibling comments above. |
Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82
Adds a scenario producing a Slack helper step with `helper: () => false` so the refusal-kind walker covers the kind added in V. Restores the Set(refusalKinds).toEqual(Set(PREFLIGHT_FAILURE_KINDS)) invariant. Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82 Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82
CI runners have rustup installed but no default cargo configured, so `ops/cargo.sh metadata` fails with "rustup could not choose a version of cargo to run". The prebuilt kernel binary is already shipped to the test via RELAYFLOWD_BIN — the metadata query was only needed to LOCATE it when the env var was unset. Short-circuit on the env var (matching the pattern live-kernel.test.ts uses) so CI stops attempting the cargo call it can't satisfy. Refs #349 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82
72c68e8 to
e6d8ddf
Compare
Slice Y widened SlackPostMessage.text to string | SlackBlock[]; YAML dialect only surfaces string, so cast at the verb boundary. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> Session-Id: efeda5df-9b7c-48d4-b2ce-957f5bef0a82

Closes #345. Delivered via implement-slice.flow.ts (flows-driven dogfood, mixed codex/claude).
Note
Medium Risk
Changes compile-time lowering, preflight refusals, and shared provider writeback/effect completion paths used by workers and Slack helpers; mistakes could affect idempotency or external side effects without touching kernel step types.
Overview
Adds YAML helper verbs for Slack, GitHub, and Linear so flow steps can declare a single provider action (e.g.
slack.post) instead of hand-authored agent steps. DuringcompileSpec,expandYamlHelperslowers each helper step to a normalagentstep: a versionedrelayflows:helper:v1instruction,recoveryMode: reset, and an external surface (/slack,/github,/linear). Arguments are literal JSON only (AJV schemas per verb); unknown providers, verbs, or fields fail at compile time.Runtime reuses the existing journal effect election and receipt durability: new
yaml-helper-effectcentralizes dispatch (Slack still usesslackWriteback; GitHub/Linear use relayfilewriteJsonFile).AgentWorker, authored Slack effects, andflows checkall route throughcompleteHelperDispatch/helperReadyinstead of duplicating Slack-only completion logic.Preflight skips CLI resolution for helper steps and adds a
helper_mount_requiredrefusal when the provider directory is missing under the relayfile mount env vars (Slack can satisfy readiness viaRELAYFLOWS_SLACK_MOCK). Public typesYamlFlowSpec,YamlHelperStepSpec, andYamlHelperParamsare exported;docs/YAML-HELPERS.mddocuments authoring and local run. Unit tests cover expansion, invocation, effect recovery, and live CLI integration; spec-V evidence logs are added separately.Reviewed by Cursor Bugbot for commit 1e507e3. Bugbot is set up for automated code reviews on this repo. Configure here.