Releases: Shopify/roast
Release list
1.2.0
The @LasmarKhalifa Edition
Lots of QOL updates: better output display, more providers, and a pile of bugfixes.
What's Changed
- Make abort_on_failure the default, as it should be by @juniper-shopify in #864
- Fix stderr display description in README by @LasmarKhalifa in #865
- Fix minor tutorial docs mistakes by @LasmarKhalifa in #866
- Support tilde (~) expansion in template paths by @LasmarKhalifa in #871
- Add 'templates' as template search path by @LasmarKhalifa in #872
- fix use_default_model! to fall back to provider default by @LasmarKhalifa in #890
- Add Anthropic as a supported provider by @LasmarKhalifa in #873
- Clarify providers and env variables in docs by @LasmarKhalifa in #874
- Add perplexity as a supported provider by @LasmarKhalifa in #883
- Add subdir for comments-related internal documentation by @juniper-shopify in #867
- Add gemini as a supported provider by @LasmarKhalifa in #884
- Repeat log prefix on each line of multi-line output by @LasmarKhalifa in #893
- Add a block type event by @LasmarKhalifa in #898
- Use block events in claude by @LasmarKhalifa in #899
- Use block events in chat cogs by @LasmarKhalifa in #900
- Use block events in Pi agent cogs by @LasmarKhalifa in #901
- docs: clarify provider setup by @omribz156 in #888
- use block events for llm stats by @LasmarKhalifa in #902
- Tag log messages with originating stream by @LasmarKhalifa in #903
- Internal workflow to see docs impact from committed modifications by @LasmarKhalifa in #910
- Restructure test classes for better RubyMine compatibility by @juniper-shopify in #912
- Add custom cop to enforce no class reopening in tests by @juniper-shopify in #914
- Fix blank error message on failed Claude agent runs by @LasmarKhalifa in #947
- Add checksums to Gemfile.lock by @joshheinrichs-shopify in #961
- Fix valid_provider! raising ArgumentError instead of InvalidConfigError by @juniper-shopify in #964
- Add internal workflow to maintain up to date LLM model references by @LasmarKhalifa in #965
- Update deprecated model references with newer ones by @LasmarKhalifa in #967
- Fix model_finder references check to handle nil references by @LasmarKhalifa in #989
- add bash tool use formatter by @LasmarKhalifa in #933
- Centralize tool result error handling in format with error_line helper by @LasmarKhalifa in #948
- Add read tool use formatter by @LasmarKhalifa in #934
- add glob tool use formatter by @LasmarKhalifa in #935
- add grep tool use formatter by @LasmarKhalifa in #936
- add write tool use formatter by @LasmarKhalifa in #937
- add edit tool use formatter by @LasmarKhalifa in #938
- add todowrite tool use formatter by @LasmarKhalifa in #939
- add skill tool use formatter by @LasmarKhalifa in #940
- add task tool use formatter by @LasmarKhalifa in #941
- add bash tool result formatter by @LasmarKhalifa in #949
- add agent tool use formatter by @LasmarKhalifa in #942
- add read tool result formatter by @LasmarKhalifa in #951
- add glob tool result formatter by @LasmarKhalifa in #952
- add grep tool result formatter by @LasmarKhalifa in #953
- add taskupdate tool use formatter by @LasmarKhalifa in #943
- add taskcreate tool use formatter by @LasmarKhalifa in #944
- add write tool result formatter by @LasmarKhalifa in #954
- add taskoutput tool use formatter by @LasmarKhalifa in #945
- add edit tool result formatter by @LasmarKhalifa in #955
- add skill tool result formatter by @LasmarKhalifa in #956
- add todowrite tool result formatter by @LasmarKhalifa in #957
- add taskupdate tool result formatter by @LasmarKhalifa in #958
- add taskcreate tool result formatter by @LasmarKhalifa in #959
- add agent tool result formatter by @LasmarKhalifa in #962
- add task tool result formatter by @LasmarKhalifa in #963
- Detect and raise on max-token truncation in chat cog by @dersam in #990
- Add taskoutput tool result formatter by @LasmarKhalifa in #992
New Contributors
- @LasmarKhalifa made their first contribution in #865
- @omribz156 made their first contribution in #888
- @joshheinrichs-shopify made their first contribution in #961
Full Changelog: v1.1.0...1.2.0
1.1.0
What's Changed
- Upgrade Sorbet and Tapioca by @amomchilov in #839
- Use
not_nil!fromtype_toolkitgem by @amomchilov in #838 - Add Pi coding agent as an agent cog provider by @dersam in #841
- Clear log level env var in log tests by @juniper-shopify in #845
- Add multiple prompt support to agent cog by @juniper-shopify in #846
- Sum usage across multiple invocations within a single agent cog by @juniper-shopify in #847
- Move agent prompt and response printing into the provider by @juniper-shopify in #848
- Do not fork session on subsequent invocations in same agent cog by @juniper-shopify in #849
- Make command runner fixtures helper support multiple invocations by @juniper-shopify in #850
- Fix number parsing order by @juniper-shopify in #853
- Add an example of an agent cog with multiple prompts by @juniper-shopify in #851
- Remove remaining legacy docs by @juniper-shopify in #852
- Bump version from 1.0.2 to 1.1.0 by @dersam in #855
Full Changelog: v1.0.2...1.1.0
v1.0.2
CHANGELOG
- Fixed missing paths in some log output
- Switched unparsed Claude message warning to log at DEBUG level (since they're not actually anything to worry about)
- Added debug logging for Claude session IDs when they first appear, so it's possible to manually resume a Claude session that was in progress after aborting a Roast workflow
v1.0.1
CHANGELOG
- Improved log formatting
- All console output now directed through logger
v1.0.0
Announcing Roast 1.0 🔥
Roast 1.0 is a complete overhaul of the framework, rebuilt from the ground up around a new Ruby DSL for defining AI
workflows. Instead of YAML configuration, workflows are now pure Ruby — composable, expressive, and easy to test. Chain
together chat, cmd, agent, ruby, map, and repeat cogs to build anything from simple prompt
chains to sophisticated multi-agent automation pipelines.
The DSL brings several key benefits: outputs from any step are directly accessible by name in subsequent steps,
workflows can be broken into reusable named scopes via call, and collections can be processed in parallel with map.
Multiple LLM providers (OpenAI, Anthropic, Gemini) are supported out of the box, and the agent cog gives your
workflows full local filesystem access through Claude Code.
# review.rb — a toy three-step workflow
execute do
chat(:plan) { "List 3 things to check in a code review." }
cmd(:files) { "git diff --name-only HEAD~1" }
agent(:review) do
<<~PROMPT
Review these files: #{cmd!(:files).out}
Focus on: #{chat!(:plan).response}
PROMPT
end
endTo get started, check out the tutorial.
v0.5.2
⚠️ DEPRECATION WARNING: This is the final planned release before v1.0, in which all legacy Roast functionality will be removed and the new DSL will become official.
After this release, the main branch will begin tracking the v1.0 release candidate and legacy functionality will be removed. For any further development on Roast v0.x, use the develop-v0 branch.
v0.5.1
v0.5.0
v0.4.10
What's Changed
- fix 👮 rubocop complaints by @alexanderadam in #439
- Bump rack from 2.2.19 to 2.2.20 by @dependabot[bot] in #438
New Contributors
- @alexanderadam made their first contribution in #439
Full Changelog: v0.4.9...v0.4.10
v0.4.9
What's Changed
- Add test grading workflow example by @dersam in #404
- Roast Error internal error handling (#391) by @tungnt1203 in #408
- Fix README examples for input steps by @ric2b in #414
- Fix: add more detailed response for 500 errors by @mathiusj in #389
New Contributors
Full Changelog: v0.4.8...v0.4.9