Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

feat(cli): read stack outputs in one call and derive repo show's default geography

Open
#847 0 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
4/5
Estimated time
3-5 days
Newbie friendliness
68/100
Issue type
Feature
Clarity
Mostly clear
Activity status
Active
Tech stack
aws, typescript
Domain
cli, cloud

Research direction

Start with cli/src/stack-outputs.ts and its existing getStack internal, then trace callers in cli/src/platform-doctor.ts and cli/src/repo-display.ts. Verify how BedrockGeoRegion and other stack outputs are exposed, and inspect the existing repo onboard fallback. Done means one stack description serves the platform doctor reads and repo show derives its default geography from the stack, falling back when the output is absent.

Written by the indexing model from the issue text.

Description

cli enhancement v1
Component

Scripts / CLI (cli/src/stack-outputs.ts, cli/src/platform-doctor.ts, cli/src/repo-display.ts)

Describe the feature

Two related inefficiencies in how the CLI reads stack outputs.

1. One DescribeStacks call per output. getStackOutput issues a fresh DescribeStacksCommand each time and caches nothing:

// cli/src/stack-outputs.ts
const result = await cf.send(new DescribeStacksCommand({ StackName: stackName }));

runPlatformDoctor now reads nine outputs, so one bgagent platform doctor makes nine calls that each return the same full stack description. They run concurrently in a Promise.all, so the wall-clock cost is small, but it is nine API calls where one would do — and DescribeStacks is a throttled control-plane operation, so it is the kind of thing that degrades on a busy account rather than on a developer laptop.

2. repo show reports a hardcoded default geography. PLATFORM_REPO_DEFAULTS.model_id is a compile-time literal:

// cli/src/repo-display.ts
model_id: 'global.anthropic.claude-opus-5',

The effective default is <BedrockGeoRegion>.<PLATFORM_DEFAULT_MODEL_ID>, so on a deployment using any other geography repo show displays a model the stack does not grant for every repo that sets no override. Correct on the shipped default only.

Use case

The second is the user-visible one: an operator on a non-global deployment reads repo show, sees global.anthropic.claude-opus-5, and has been told the wrong thing about their own stack — the same class of "documented value diverges from deployed value" the geography work otherwise closes. The first is cheap hygiene that gets slightly worse each time a check is added.

Proposed solution
  • Fetch the stack once and read outputs from that result (either a describeStack-level helper that returns all outputs, or a short-lived per-invocation cache keyed by region+stack). getStackOutput already has a getStack internal that would be the natural seam.
  • Derive the displayed default from the stack's BedrockGeoRegion output when available, and fall back to the literal only when it is absent (the same degradation repo onboard --model already uses for older stacks).
Other information

Both raised during review of #806 and deliberately deferred: the PR's scope is making an unusable model fail early rather than at turn 0, and neither of these changes that behaviour. The BedrockGeoRegion / BedrockModelIds outputs that #806 adds are what make the second one implementable.

Dominant language
TypeScript
Stars
158
Forks
49
Avg merge
3d 23h
Merged PRs (30d)
21

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from aws-samples/sample-autonomous-cloud-coding-agents

All issues in aws-samples/sample-autonomous-cloud-coding-agents

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.