feat(project): add agent-python-strands-container template - #2201
Merged
Conversation
The TUI create wizard has no build question, so a Container build of the Strands agent was unreachable from it. The new preset is agent-python-strands with build Container, which keeps the Dockerfile and .dockerignore in the scaffold. The wizard's memory step now keys off the preset's framework rather than one hardcoded template name.
Contributor
|
Claude Security Review: no high-confidence findings. (run) |
Contributor
There was a problem hiding this comment.
AgentCore Harness Review
Verdict: Looks good
Small, contained change. The new template shortcut, wizard option, and tests all fit cleanly into the existing patterns, and resolveRuntimeTemplateShortcut already handles Container builds omitting runtimeVersion.
One thing worth double-checking (not a blocker):
screen.tsx—asksMemoryalso flipsa2a-python-strands. The old code gated the memory step onvalues.template === "agent-python-strands"; the newasksMemoryhelper returnstruefor any template withframework === "strands".a2a-python-strandsis inTEMPLATE_OPTIONSand hasframework: "strands", so the wizard will now show a memory step for it too (previously it silently used the template defaultlongAndShortTerm). This is probably an intentional consistency fix, but it's a user-visible change that isn't called out in the PR description. If it's intentional, a follow-up test covering the a2a flow (analogous to the new strands-container test) would lock it in; if not, gate onbuild/name explicitly.
Otherwise LGTM.
…emory test A --build CodeZip override on a Container preset now takes the runtime version from LANGUAGE_VERSION_DEFAULTS for the preset's language instead of always PYTHON_3_14. The container wizard test is parameterized to also cover a2a-python-strands, which gains the memory step from the framework-based gate.
Contributor
Author
|
Addressed in 57110ac: the CodeZip-override fallback now reads |
Contributor
|
Claude Security Review: no high-confidence findings. (run) |
Hweinstock
approved these changes
Sep 3, 2026
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
The TUI create wizard has no build question, so a Container build of the Strands agent was unreachable from it. This adds an
agent-python-strands-containertemplate preset:agent-python-strandswithbuild: Container, which keeps theDockerfileand.dockerignorein the scaffold.shortcuts.ts: the preset. The--templateenum is derived from the table, so the flag accepts it automatically.create/screen.tsx: the wizard option, placed after the recommended Strands entry. The three memory-step gates that hardcoded"agent-python-strands"are now oneasksMemoryhelper keyed on the preset's framework.On the CLI this is a second spelling of
--template agent-python-strands --build Container. The preset exists for the TUI, and the parameterized test asserts both spellings scaffold identically.Behavior change: because the memory gate keys off framework,
a2a-python-strandsnow also gets the memory question in the wizard. Its resolver supports memory and its preset already defaults to long and short-term, matching the flag path.Testing
bun test: 2854 pass.tsc --noEmitclean.dist/index.js, ranproject create --template agent-python-strands-container. Dockerfile and.dockerignorepresent, CMD rendered withopentelemetry-instrument, spec hasbuild: Containerand noruntimeVersion, memory with four strategies,uv.lockgenerated.project invoke runtimereturned the expected reply over the event stream. Torn down withproject remove all --yesthenproject deploy --yes. Stack and ECR repository gone.