SWEny, YAML workflows for AI agents I'm running in prod (triage, E2E)
v@sweny-ai/[email protected] BreakingThis release includes 5 breaking changes for platform teams planning a safe upgrade.
✓ No known CVEs patched in this version
Topics
+4 more
Affected surfaces
Summary
AI summaryRename triage interfaces, remove MCP adapters, and require reconfiguration via mcpServers in CodingAgentRunOptions.
Full changelog
Major Changes
-
2f1a424: Rename triage-specific issue tracking interfaces to generic equivalents:
TriageHistoryCapable→LabelHistoryCapableTriageHistoryEntry→IssueHistoryEntrylistTriageHistory()→searchIssuesByLabel()(signature:(projectId, labelId, opts?: { days? }))canListTriageHistory()→canSearchIssuesByLabel()- Remove
FingerprintCapableinterface andcanSearchByFingerprint()(dead code — never called from engine) - Make
Issue.branchNameoptional (Linear returns real names; Jira/GitHub Issues synthesize them)
-
ebbb5a7: Remove wrong-pattern MCP adapter providers (breaking change).
linearMCP,githubMCP, andslackMCPhave been removed. These adapters called MCP servers from recipe steps — the wrong architectural layer. MCP servers are agent tools accessed during reasoning, not recipe-step backends.Migration: Configure these MCP servers via
mcpServersinCodingAgentRunOptions(now supported in all three coding agents). The agent gets access to Linear, GitHub, and Slack MCP tools during its reasoning session with zero custom provider code.Also removed:
slack-mcpnotification provider option from CLI and GitHub Action (previously requiredSLACK_BOT_TOKEN,SLACK_TEAM_ID,SLACK_CHANNEL). Use theslackwebhook notification provider or configure the Slack MCP server for the agent directly.
Minor Changes
-
9313ff9: Add
mcpServersinjection to coding agent providers.CodingAgentRunOptionsnow acceptsmcpServers?: Record<string, MCPServerConfig>. When provided, all three coding agents (Claude Code, OpenAI Codex, Gemini) serialize the config to a temp JSON file and pass--mcp-config <path>to the agent CLI. The agent receives all configured MCP tools during its reasoning session. Temp file is cleaned up after the agent exits.MCPServerConfigextended to support both transports:type: "stdio"— local pre-installed binary (command,args,env)type: "http"— remote Streamable HTTP server (url,headers)
Type defaults to
"http"whenurlis set,"stdio"whencommandis set. -
556a53d: Add browser-safe
PROVIDER_CATALOG— a structured list of all available provider implementations with display names, categories, env var specs (key, description, required, secret, example), and import paths. Exported asPROVIDER_CATALOG,getProvidersForCategory(), andgetProviderById()from the main package entry. -
f33c74d: Add
GitProvider(local git operations) andRepoProvider(remote API operations) interfaces.
SourceControlProvideris now a type alias forGitProvider & RepoProvider— fully backward compatible.
Enables partial implementations for contexts without a local checkout (cloud workers, MCP servers). -
1df08e0: Task 03/04/05: wire slackMCP, add file providers to Action, shared factories.
providers (minor — new exports):
createObservabilityProvider(name, credentials, logger)— shared factory for all 8 observability providerscreateCodingAgentProvider(name, logger, opts)— shared factory for all 3 coding agents
cli (patch):
notification-provider: slack-mcpnow supported viaslackMCP()- CLI and Action provider switches for observability and coding agent replaced with shared factory calls
action (patch):
issue-tracker-provider: file,source-control-provider: file,notification-provider: filenow supportedslack-mcpnotification provider added- New
output-dirinput (default.github/sweny-output) for file-based providers slack-bot-token,slack-team-id,slack-channelinputs added toaction.yml
Patch Changes
-
68780d5: Fix
ERR_MODULE_NOT_FOUNDcrash on import when optional peer deps are not installed. S3 storage classes (S3SessionStore,S3MemoryStore,S3WorkspaceStore) andMCPClientnow lazy-load their peer dependencies (@aws-sdk/client-s3,@aws-sdk/s3-request-presigner,@modelcontextprotocol/sdk) on first use rather than at module load time. Also fixes a retry bug inMCPClientwhere a failedconnect()would leave a stale client reference that blocked subsequent reconnect attempts. -
207a317: Add index signature to
ToolResultto satisfy updated@anthropic-ai/claude-agent-sdktool callback type constraints. -
010b6d7: Code review fixes for MCP adapters and triage dedup step.
providers:
MCPClient: clearconnectPromiseon error to prevent stuck reconnections; use local variable beforecallToolto guard against concurrent disconnectlinearMCP: throw on emptyid/identifierintoIssue(); exposelimitoption insearchIssuesByLabel()(default 100)githubMCP: validaterepoconfig asowner/repoformat; guard against PRnumber=0; validatetargetRepoindispatchWorkflowslackMCP: clarifychannelconfig must be a Slack channel ID (e.g.C123456), not a nameLabelHistoryCapable: addlimit?: numbertosearchIssuesByLabelopts
engine:
dedup-checkstep: rename outcome from"notify"→"duplicate"so routing key is distinct from target node nametriage definition: updateon: { duplicate: "notify" }to match
Breaking Changes
- Renamed `TriageHistoryCapable` to `LabelHistoryCapable`, `TriageHistoryEntry` to `IssueHistoryEntry`, and changed method signatures accordingly.
- Removed deprecated interfaces `FingerprintCapable` and function `canSearchByFingerprint()` (dead code).
- Made `Issue.branchName` optional due to changes in upstream issue sources.
- Removed MCP adapter providers `linearMCP`, `githubMCP`, and `slackMCP`; they must now be configured via the new `mcpServers` field in `CodingAgentRunOptions`.
- Removed `slack-mcp` notification provider option from CLI and GitHub Action; use `slack` webhook or Slack MCP server configuration instead.
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
Track SWEny, YAML workflows for AI agents I'm running in prod (triage, E2E)
Get notified when new releases ship.
Sign up freeAbout SWEny, YAML workflows for AI agents I'm running in prod (triage, E2E)
All releases →Related context
Related tools
Beta — feedback welcome: [email protected]