fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Add copy buttons to all
 blocks\n(function() {\n function addCopyButtons() {\n document.querySelectorAll('pre code').forEach(function(codeBlock) {\n if (codeBlock.parentElement.hasAttribute('data-copy-added')) return;\n codeBlock.parentElement.setAttribute('data-copy-added', 'true');\n \n var btn = document.createElement('button');\n btn.textContent = 'Copy';\n btn.style.cssText = 'position:absolute;top:4px;right:4px;padding:2px 8px;font-size:11px;background:#4ecdc4;border:none;border-radius:4px;color:#1a1a2e;cursor:pointer;opacity:0.7;transition:opacity 0.2s;';\n btn.onmouseover = function() { this.style.opacity = '1'; };\n btn.onmouseout = function() { this.style.opacity = '0.7'; };\n btn.onclick = function() {\n navigator.clipboard.writeText(codeBlock.textContent).then(function() {\n btn.textContent = 'Copied!';\n setTimeout(function() { btn.textContent = 'Copy'; }, 1500);\n });\n };\n codeBlock.parentElement.style.position = 'relative';\n codeBlock.parentElement.appendChild(btn);\n });\n }\n \n addCopyButtons();\n \n // Re-run on dynamic content\n var observer = new MutationObserver(addCopyButtons);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Add Copy Buttons to Code Blocks");
}
} catch(__e) { console.warn('[Userscript:Add Copy Buttons to Code Blocks]', __e); }
})();
(function(){
try {
var __m = "github.com";
var __re = new RegExp('^' + "github\\.com" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Force GitHub README to respect dark mode\n(function() {\n var style = document.createElement('style');\n style.textContent = '\n .markdown-body {\n color-scheme: dark light;\n }\n .markdown-body pre { background: #161b22 !important; }\n .markdown-body code { background: rgba(110, 118, 129, 0.4) !important; }\n .markdown-body table th, .markdown-body table td { border-color: #30363d !important; }\n .markdown-body img { background: #0d1117; }\n .markdown-body blockquote { border-left-color: #8b949e; }\n .markdown-body hr { border-color: #30363d; }\n ';\n document.head.appendChild(style);\n})();", "GitHub Dark Mode README Fix"); } } catch(__e) { console.warn('[Userscript:GitHub Dark Mode README Fix]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Highlight search terms from Google/DuckDuckGo/Bing referrer\n(function() {\n var ref = document.referrer;\n var terms = [];\n \n if (ref.includes('google.com') || ref.includes('duckduckgo.com') || ref.includes('bing.com')) {\n var url = new URL(ref);\n var q = url.searchParams.get('q') || url.searchParams.get('p');\n if (q) {\n terms = q.split(/\\s+/).filter(function(t) { return t.length > 2; });\n }\n }\n \n if (terms.length === 0) return;\n \n var style = document.createElement('style');\n style.textContent = '.userscript-highlight { background: #fbbf24; color: #1a1a2e; padding: 1px 3px; border-radius: 2px; }';\n document.head.appendChild(style);\n \n function highlight(node) {\n if (node.nodeType === 3) { // text node\n var text = node.textContent;\n var found = false;\n terms.forEach(function(term) {\n var regex = new RegExp('(' + term.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\') + ')', 'gi');\n if (regex.test(text)) {\n found = true;\n var frag = document.createDocumentFragment();\n var parts = text.split(regex);\n parts.forEach(function(part, i) {\n if (i % 2 === 0) {\n frag.appendChild(document.createTextNode(part));\n } else {\n var span = document.createElement('span');\n span.className = 'userscript-highlight';\n span.textContent = part;\n frag.appendChild(span);\n }\n });\n node.parentNode.replaceChild(frag, node);\n }\n });\n } else if (node.nodeType === 1 && node.childNodes) { // element\n var skipTags = ['SCRIPT', 'STYLE', 'NOSCRIPT', 'TEXTAREA', 'INPUT', 'SELECT'];\n if (!skipTags.includes(node.tagName)) {\n Array.from(node.childNodes).forEach(highlight);\n }\n }\n }\n \n highlight(document.body);\n \n // Re-highlight on dynamic content\n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1 || node.nodeType === 3) highlight(node);\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Highlight Search Terms"); } } catch(__e) { console.warn('[Userscript:Highlight Search Terms]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Strip utm_, fbclid, gclid, etc. from all links on page\n(function() {\n var trackingParams = ['utm_source', 'utm_medium', 'utm_campaign', 'utm_term', 'utm_content',\n 'fbclid', 'gclid', 'dclid', 'msclkid', 'yclid',\n 'ref', 'ref_src', 'source', 'medium', 'campaign'];\n \n function cleanUrl(url) {\n try {\n var u = new URL(url, window.location.origin);\n var changed = false;\n trackingParams.forEach(function(p) {\n if (u.searchParams.has(p)) {\n u.searchParams.delete(p);\n changed = true;\n }\n });\n return changed ? u.toString() : url;\n } catch (e) {\n return url;\n }\n }\n \n function cleanLinks() {\n document.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n \n cleanLinks();\n \n var observer = new MutationObserver(function(mutations) {\n mutations.forEach(function(m) {\n m.addedNodes.forEach(function(node) {\n if (node.nodeType === 1) {\n if (node.tagName === 'A') cleanLinks();\n node.querySelectorAll('a[href]').forEach(function(a) {\n var clean = cleanUrl(a.href);\n if (clean !== a.href) a.href = clean;\n });\n }\n });\n });\n });\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "Remove Tracking Parameters from Links"); } } catch(__e) { console.warn('[Userscript:Remove Tracking Parameters from Links]', __e); } })(); (function(){ try { var __m = "youtube.com"; var __re = new RegExp('^' + "youtube\\.com" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Auto-enable theater mode on YouTube\n(function() {\n function tryTheater() {\n var btn = document.querySelector('button[aria-label=\"Theater mode\"], ytd-player #player button[title=\"Theater mode\"]');\n if (btn && !btn.classList.contains('activated')) {\n btn.click();\n }\n }\n \n // Try immediately\n tryTheater();\n \n // Try after navigation (SPA)\n var lastUrl = location.href;\n setInterval(function() {\n if (location.href !== lastUrl) {\n lastUrl = location.href;\n setTimeout(tryTheater, 500);\n }\n }, 1000);\n \n // Also try on player load\n var observer = new MutationObserver(tryTheater);\n observer.observe(document.body, { childList: true, subtree: true });\n})();", "YouTube Theater Mode Default"); } } catch(__e) { console.warn('[Userscript:YouTube Theater Mode Default]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Remove or un-stick sticky/fixed headers that block content\n(function() {\n function unstick() {\n document.querySelectorAll('header, nav, [role=\"banner\"], .header, .navbar, .sticky, .fixed-top, [style*=\"position: fixed\"], [style*=\"position:sticky\"]').forEach(function(el) {\n if (el.style.position === 'fixed' || el.style.position === 'sticky' || \n getComputedStyle(el).position === 'fixed' || getComputedStyle(el).position === 'sticky') {\n el.style.position = 'static';\n el.style.top = 'auto';\n el.style.zIndex = 'auto';\n }\n });\n }\n \n unstick();\n \n var observer = new MutationObserver(unstick);\n observer.observe(document.body, { childList: true, subtree: true, attributes: true, attributeFilter: ['style', 'class'] });\n})();", "Kill Sticky Headers"); } } catch(__e) { console.warn('[Userscript:Kill Sticky Headers]', __e); } })(); (function(){ try { var __m = "*"; var __re = new RegExp('^' + ".*" + '
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation
, 'i'); if (__m === '*' || __re.test(location.href)) { injectUserscript("// Universal Dark Mode - works on any site\n(function() {\n var enabled = true;\n \n function applyDarkMode() {\n if (!enabled) return;\n \n // Create style element if it doesn't exist\n var style = document.getElementById('universal-dark-mode-style');\n if (!style) {\n style = document.createElement('style');\n style.id = 'universal-dark-mode-style';\n document.head.appendChild(style);\n }\n \n // Dark mode CSS - inverts colors but preserves images/video\n style.textContent = '\n /* Invert everything except media */\n html {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #1a1a2e !important;\n }\n \n /* Restore images, videos, iframes, canvas */\n img, video, iframe, canvas, svg, picture, [style*=\"background-image\"] {\n filter: invert(1) hue-rotate(180deg) !important;\n }\n \n /* Preserve specific elements that should not be inverted */\n .no-dark-mode, .no-dark-mode *,\n [data-theme=\"light\"], [data-theme=\"light\"],\n .ace_editor, .ace_editor *,\n .CodeMirror, .CodeMirror *,\n .monaco-editor, .monaco-editor *,\n .markdown-body pre, .markdown-body pre *,\n .highlight, .highlight *,\n pre code, pre code * {\n filter: none !important;\n }\n \n /* Fix common UI elements */\n .modal, .popup, .dropdown-menu, .tooltip, .popover {\n filter: invert(1) hue-rotate(180deg) !important;\n background: #2d2d44 !important;\n border-color: #444 !important;\n }\n \n /* Scrollbars */\n ::-webkit-scrollbar { background: #1a1a2e !important; }\n ::-webkit-scrollbar-thumb { background: #444 !important; }\n ::-webkit-scrollbar-thumb:hover { background: #555 !important; }\n \n /* Selection */\n ::selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ::-moz-selection { background: #4ecdc4 !important; color: #1a1a2e !important; }\n ';\n }\n \n function removeDarkMode() {\n var style = document.getElementById('universal-dark-mode-style');\n if (style) style.remove();\n }\n \n // Toggle with Alt+Shift+D\n document.addEventListener('keydown', function(e) {\n if (e.altKey && e.shiftKey && e.key === 'D') {\n e.preventDefault();\n enabled = !enabled;\n if (enabled) {\n applyDarkMode();\n console.log('[Universal Dark Mode] Enabled');\n } else {\n removeDarkMode();\n console.log('[Universal Dark Mode] Disabled');\n }\n }\n });\n \n // Apply on load\n applyDarkMode();\n \n // Re-apply on dynamic content\n var observer = new MutationObserver(function(mutations) {\n if (enabled && !document.getElementById('universal-dark-mode-style')) {\n applyDarkMode();\n }\n });\n observer.observe(document.head, { childList: true });\n \n console.log('[Universal Dark Mode] Loaded - Press Alt+Shift+D to toggle');\n})();", "Universal Dark Mode"); } } catch(__e) { console.warn('[Userscript:Universal Dark Mode]', __e); } })(); })();
Skip to content

fix(run-insights): TUI wizard state, inline name validation, job history - #1602

Merged
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui
Jun 29, 2026
Merged

fix(run-insights): TUI wizard state, inline name validation, job history#1602
jariy17 merged 2 commits into
aws:mainfrom
notgitika:fix/run-insights-tui

Conversation

@notgitika

@notgitikanotgitika commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Four fixes to the agentcore run insights interactive wizard, from the Lens-in-CLI bug bash:

  • Single-agent flow leaves Confirm blank. When the project has exactly one agent, the wizard skipped the agent step but never populated config.agent, so the Confirm screen showed an empty Agent: line. The default config now pre-populates the sole agent so it threads through to confirm and the API call.

  • Inline name validation. The Name step accepted spaces / hyphens / leading digits and only blew up after submit with a service 400. We now validate inline using the service-side BatchEvaluationName shape (^[a-zA-Z][a-zA-Z0-9_]{0,47}$) from AgentCoreEvaluationCommonModel. Lookback days also validate inline (1-90, integer only) instead of silently coercing 0 → 7.

  • Preserve config on error. Hitting "Go back" from a launch error reset the entire wizard. The failed config is now stashed in flow state and the wizard re-opens at the Name step with all prior selections intact.

  • Post-launch "No insights runs found". The wizard wrote to the job-engine store, but the post-launch "View Insights Jobs" screen reads from the legacy .cli/insights/*.json store. We now mirror successful starts to the legacy store after launch so the new job appears immediately.

…inline, surface job in history
Multiple fixes to the `agentcore run insights` interactive wizard:
- **Single-agent flow** (#4): when the project has exactly one agent, the
wizard skipped the agent step but never set `config.agent`, so the
Confirm screen showed a blank "Agent:" line. Pre-populate the sole
agent in the default config so it's threaded through to confirm and
the API call.
- **Inline name validation** (aws#6): the Name step accepted invalid values
(spaces, hyphens, leading digits) and only failed at submit time when
the API returned a 400. Validate inline against the service-side
`BatchEvaluationName` pattern (`^[a-zA-Z][a-zA-Z0-9_]{0,47}$`).
Lookback days now also validate inline (1-90, integer only) instead of
silently coercing 0 to 7.
- **Preserve config on error** (aws#16): when the launch failed, hitting
"Go back" reset the wizard to the Source step and discarded all
selections. Now the failed config is stashed in flow state and the
wizard re-opens at the Name step with everything pre-populated.
- **Post-launch history** (aws#17): the wizard wrote to the job-engine store
but `view insights` reads from the legacy `.cli/insights/*.json`
store, so the brand-new job rendered as "No insights runs found".
Mirror successful starts to the legacy store after launch.
Bug bash items #4, aws#6, aws#16, aws#17 (mix of P1/P2).
@notgitika
notgitika requested a review from a teamJune 22, 2026 03:06
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 22, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026
@github-actionsgithub-actionsBot added the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Package Tarball

aws-agentcore-0.20.2.tgz

How to install

gh release download pr-1602-tarball --repo aws/agentcore-cli --pattern "*.tgz" --dir /tmp/pr-tarball
npm install -g /tmp/pr-tarball/aws-agentcore-0.20.2.tgz

@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 22, 2026

@agentcore-cli-automationagentcore-cli-automation left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice, focused fixes for the bug bash items. Two things I'd like addressed before merge:

  1. The new forwardRef / useImperativeHandle / jumpToStep surface on RunInsightsScreen appears to be dead code — nothing in the tree passes a ref, and resume-on-error works entirely through the new initialConfig / initialStep props (the screen re-mounts when RunInsightsFlow transitions from error back to wizard). Either wire it up to a caller or drop it; otherwise it adds an API contract that's unused, untested, and (in React 19) unnecessary.
  2. The two new pure validators are good candidates for a small unit test. There are no tests under src/cli/tui/screens/run-insights/ at all, and three of the four fixes here (single-agent default, inline name validation, resume-on-error) are reachable via the wizard hook + pure helpers without any TUI rendering. A small validateJobName / validateLookbackInput / useRunInsightsWizard test file would lock these in cheaply.

One smaller suggestion inline about the silent catch in persistToLegacyStore.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsScreen.tsx Outdated
Comment threadsrc/cli/tui/screens/run-insights/useRunInsightsWizard.ts Outdated
Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
@github-actionsgithub-actionsBot removed the agentcore-harness-reviewing AgentCore Harness review in progress label Jun 22, 2026

@jariy17jariy17 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have one blocking comment.

Comment threadsrc/cli/tui/screens/run-insights/RunInsightsFlow.tsx Outdated
…gine store
Addresses review feedback:
- Remove unused forwardRef, useImperativeHandle, RunInsightsScreenHandle,
and jumpToStep — resume-on-error works through initialConfig/initialStep.
- Replace persistToLegacyStore workaround: InsightsJobsScreen now reads
directly from the job engine store (listRecords), eliminating the
two-source-of-truth problem.
@github-actionsgithub-actionsBot removed the size/m PR size: M label Jun 29, 2026
@github-actionsgithub-actionsBot added the size/m PR size: M label Jun 29, 2026
@agentcore-devx-automationagentcore-devx-automationBot added the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@agentcore-devx-automation

Copy link
Copy Markdown
Contributor

Claude Security Review: no high-confidence findings. (run)

@agentcore-devx-automationagentcore-devx-automationBot removed the claude-security-reviewing Claude Code /security-review in progress label Jun 29, 2026
@jariy17
jariy17 merged commit 3874af6 into aws:mainJun 29, 2026
32 of 33 checks passed
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size/mPR size: M

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@notgitika@jariy17@agentcore-cli-automation