Skip to content

✨ agent driven migrations#267

Merged
djzager merged 4 commits into
konveyor:masterfrom
djzager:agentic-ide
May 15, 2026
Merged

✨ agent driven migrations#267
djzager merged 4 commits into
konveyor:masterfrom
djzager:agentic-ide

Conversation

@djzager

@djzager djzager commented Mar 31, 2026

Copy link
Copy Markdown
Member

Summary by CodeRabbit

  • Documentation
    • Added a comprehensive design for Agent-Driven Migration Assistance: autonomous agent orchestration with fallback to prior single-step behavior.
    • Described user-facing permission/autonomy model, streaming UI behaviors, tool-call review flows, and file-change tracking with batch/inline review.
    • Documented local bridge approach, migration intelligence package layout, configuration options, state-management guidance, testing plan, and upgrade/fallback semantics.

Signed-off-by: David Zager <david.j.zager@gmail.com>
@coderabbitai

coderabbitai Bot commented Mar 31, 2026

Copy link
Copy Markdown

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a new enhancement design doc proposing an Agent-Driven Migration Assistance architecture: a backend-agnostic AgentClient/AgentOrchestrator flow, event-driven tool interactions via an MCP stdio bridge, file-change tracking/router, unified permission model, config/state slices, testing plan, and upgrade/fallback semantics. (≤50 words)

Changes

Cohort / File(s) Summary
Agent-Driven Migration Architecture Documentation
enhancements/kai/agent-driven-migration/README.md
New comprehensive specification for an agent-driven migration workflow: defines AgentClient lifecycle/events, AgentOrchestrator (autonomous vs DirectLLM fallback), global and per-tool permission model, MCP stdio bridge for Konveyor analysis tools, AgentFileTracker and FileChangeRouter strategies, migration-intelligence package layout, UI streaming/permission UX, configuration/state (Zustand+Immer), testing plan, and upgrade/downgrade behavior.

Sequence Diagram(s)

sequenceDiagram
    participant UI as User/UI
    participant Orch as AgentOrchestrator
    participant Agent as AgentClient
    participant MCP as MCP Bridge
    participant Konv as Konveyor Analysis
    participant Backend as LLM/Backend

    UI->>Orch: submit migration request & config
    Orch-->>Orch: decide mode (agentMode + backend available ? autonomous : DirectLLM)
    Orch->>Agent: create session, provide tools, permissions, pre-cache files
    Agent->>MCP: invoke tool (e.g., run_analysis)
    MCP->>Konv: forward analysis request
    Konv-->>MCP: return results / incidents
    MCP-->>Agent: tool response with results/incidents
    Agent->>UI: stream text/thinking, tool-call events, permission requests
    UI-->>Agent: respond to permission prompts (allow/deny/once/always)
    Agent->>Backend: call LLM or other backend services
    Agent-->>Orch: session completion / errors
    Orch->>Agent: run post-completion file scan
    Orch->>UI: surface final diffs, file-change review / batch queue
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 I nudged a spec with whiskers bright,

Agents hum and MCP bridges light,
Files are tracked, permissions politely asked,
Orchestrator guides while tasks are unmasked,
A hop, a plan, migration done right ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'agent driven migrations' accurately describes the main change: a new enhancement specification for agent-driven migration assistance. The sparkles emoji adds visual emphasis but the core message is clear and specific.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🧹 Nitpick comments (4)
enhancements/kai/agent-driven-migration/README.md (4)

439-442: MCP bridge security posture is documented but carries risk.

The MCP bridge server security mitigation notes that authentication "could be added" in the future (line 441). While localhost binding provides some protection, other processes on the same machine can potentially access the bridge during an agent session.

This is an acceptable trade-off for the initial implementation, but consider:

  • Documenting this limitation in user-facing security documentation
  • Prioritizing authentication in the roadmap if agents will process sensitive codebases
  • Adding logging/monitoring to detect unexpected bridge access patterns
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 439 - 442,
Update the MCP bridge documentation to explicitly call out the limitation that
the bridge server binds to a random localhost port and is therefore accessible
to other local processes during agent sessions (refer to "MCP bridge", "bridge
server", and "localhost binding" wording), add a clear user-facing security note
recommending not to run agents on multi-tenant machines or to isolate hosts for
sensitive codebases, add an item under the roadmap stating that strong
authentication (e.g., authentication tokens) for the bridge server will be
prioritized, and document recommended logging/monitoring practices to detect
unexpected bridge access patterns.

172-212: Add language specifiers to fenced code blocks for better rendering.

The architecture diagram and other code blocks throughout the document (lines 172, 303, 331, 359) lack language specifiers. Consider adding appropriate identifiers (e.g., text, yaml, typescript) to improve markdown rendering and syntax highlighting.

📝 Example fix for the architecture diagram
-```
+```text
 ┌─────────────────────────────────────────────────────────────────────┐
 │ VS Code Extension Host                                              │

As per coding guidelines, static analysis flagged: "Fenced code blocks should have a language specified (MD040)".

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 172 - 212,
The fenced code blocks (notably the large architecture diagram and other
snippets referenced as the blocks at lines 172, 303, 331, 359) lack language
specifiers causing MD040 warnings; update each triple-backtick fence to include
an appropriate language tag (e.g., use "text" for ASCII diagrams, "yaml" for
YAML snippets, "typescript" for TS code) so the diagram and code blocks render
with proper highlighting—search for the architecture diagram block header "VS
Code Extension Host" and the other fenced blocks in the README and prepend the
chosen language identifier to each opening ``` fence.

478-498: Consider adding specific acceptance criteria to the test plan.

The test plan outlines test types and areas well but lacks specific acceptance criteria such as:

  • Coverage thresholds for new agent code
  • Performance benchmarks (e.g., agent startup time, response latency)
  • How CI handles agent backend unavailability (mocks vs skips)
  • Regression tests to ensure workflow mode maintains previous behavior

These details can be deferred until the enhancement moves from "provisional" to "implementable" status, but documenting them early will streamline implementation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 478 - 498,
Update the "Test Plan" section to include concrete acceptance criteria: under
the Test Plan heading add measurable targets such as coverage thresholds for the
new agent code (e.g., % lines/branches for ToolClassifier,
ToolPermissionHandler, FileChangeRouter), performance benchmarks (max agent
startup time, request/response latency targets for Agent lifecycle and MCP
bridge scenarios), CI handling rules for agent backend unavailability (mock vs
skip policy and required test markers), and explicit regression tests for
Workflow mode fallback that verify agentMode=false reproduces previous behavior;
reference the existing test items by name (ToolClassifier,
ToolPermissionHandler, FileChangeRouter, Agent lifecycle, Permission flow, File
change detection, MCP bridge, Workflow mode fallback) so reviewers can locate
where each acceptance criterion applies.

454-463: Consider consolidating setting prefixes for consistency.

The configuration settings use two different prefixes: genai.* (lines 457-459, 463) and experimentalChat.* (lines 460-462). This split may confuse users looking for agent-related settings.

If these settings belong to different feature modules, consider documenting the rationale. Otherwise, consolidating under a single prefix (e.g., genai.agent.* or experimentalChat.*) would improve discoverability.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 454 - 463,
The README table mixes two prefixes (genai.* and experimentalChat.*) which is
inconsistent; either consolidate these settings under a single prefix (for
example rename experimentalChat.agentBackend, experimentalChat.gooseBinaryPath,
and experimentalChat.opencodeBinaryPath to genai.agent.agentBackend /
genai.agent.gooseBinaryPath / genai.agent.opencodeBinaryPath or vice versa) and
update all occurrences and descriptions in the doc to the chosen namespace, or
add a brief rationale paragraph explaining why genai.batchReviewMode,
genai.agentMode, genai.autonomyLevel, genai.permissionOverrides remain under
genai.* while experimentalChat.agentBackend, experimentalChat.gooseBinaryPath,
experimentalChat.opencodeBinaryPath use experimentalChat.* so readers understand
the split; ensure you update the table headers and any inline references to the
unique keys (genai.agentMode, genai.autonomyLevel, genai.permissionOverrides,
experimentalChat.agentBackend, experimentalChat.gooseBinaryPath,
experimentalChat.opencodeBinaryPath, genai.batchReviewMode) accordingly.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 332-340: Add a short clarifying paragraph to the
ToolPermissionPolicy section that defines the "other" override: state that
"other" applies to any tool not explicitly listed in overrides (fallback for
unrecognized tools), enumerate examples (e.g., analytics, telemetry, third-party
integrations, experimental plugins), and clarify precedence rules (explicit
category overrides take priority and "other" is only used when no specific
override matches). Reference the ToolPermissionPolicy heading and the overrides
map (fileEditing, commandExecution, webAccess, mcpTools, other) so readers can
locate the definition.

---

Nitpick comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 439-442: Update the MCP bridge documentation to explicitly call
out the limitation that the bridge server binds to a random localhost port and
is therefore accessible to other local processes during agent sessions (refer to
"MCP bridge", "bridge server", and "localhost binding" wording), add a clear
user-facing security note recommending not to run agents on multi-tenant
machines or to isolate hosts for sensitive codebases, add an item under the
roadmap stating that strong authentication (e.g., authentication tokens) for the
bridge server will be prioritized, and document recommended logging/monitoring
practices to detect unexpected bridge access patterns.
- Around line 172-212: The fenced code blocks (notably the large architecture
diagram and other snippets referenced as the blocks at lines 172, 303, 331, 359)
lack language specifiers causing MD040 warnings; update each triple-backtick
fence to include an appropriate language tag (e.g., use "text" for ASCII
diagrams, "yaml" for YAML snippets, "typescript" for TS code) so the diagram and
code blocks render with proper highlighting—search for the architecture diagram
block header "VS Code Extension Host" and the other fenced blocks in the README
and prepend the chosen language identifier to each opening ``` fence.
- Around line 478-498: Update the "Test Plan" section to include concrete
acceptance criteria: under the Test Plan heading add measurable targets such as
coverage thresholds for the new agent code (e.g., % lines/branches for
ToolClassifier, ToolPermissionHandler, FileChangeRouter), performance benchmarks
(max agent startup time, request/response latency targets for Agent lifecycle
and MCP bridge scenarios), CI handling rules for agent backend unavailability
(mock vs skip policy and required test markers), and explicit regression tests
for Workflow mode fallback that verify agentMode=false reproduces previous
behavior; reference the existing test items by name (ToolClassifier,
ToolPermissionHandler, FileChangeRouter, Agent lifecycle, Permission flow, File
change detection, MCP bridge, Workflow mode fallback) so reviewers can locate
where each acceptance criterion applies.
- Around line 454-463: The README table mixes two prefixes (genai.* and
experimentalChat.*) which is inconsistent; either consolidate these settings
under a single prefix (for example rename experimentalChat.agentBackend,
experimentalChat.gooseBinaryPath, and experimentalChat.opencodeBinaryPath to
genai.agent.agentBackend / genai.agent.gooseBinaryPath /
genai.agent.opencodeBinaryPath or vice versa) and update all occurrences and
descriptions in the doc to the chosen namespace, or add a brief rationale
paragraph explaining why genai.batchReviewMode, genai.agentMode,
genai.autonomyLevel, genai.permissionOverrides remain under genai.* while
experimentalChat.agentBackend, experimentalChat.gooseBinaryPath,
experimentalChat.opencodeBinaryPath use experimentalChat.* so readers understand
the split; ensure you update the table headers and any inline references to the
unique keys (genai.agentMode, genai.autonomyLevel, genai.permissionOverrides,
experimentalChat.agentBackend, experimentalChat.gooseBinaryPath,
experimentalChat.opencodeBinaryPath, genai.batchReviewMode) accordingly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9bcb0d8d-d6d1-4c92-8714-f1cb0724ed9c

📥 Commits

Reviewing files that changed from the base of the PR and between 346df19 and 6d5f866.

📒 Files selected for processing (1)
  • enhancements/kai/agent-driven-migration/README.md

Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
@djzager

djzager commented Apr 1, 2026

Copy link
Copy Markdown
Member Author

@fabianvf fabianvf added this to Planning Apr 7, 2026
@github-project-automation github-project-automation Bot moved this to 🆕 New in Planning Apr 7, 2026
@fabianvf fabianvf moved this from 🆕 New to 🏗 In progress in Planning Apr 7, 2026
@djzager djzager self-assigned this Apr 7, 2026
Signed-off-by: David Zager <david.j.zager@gmail.com>

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 2

♻️ Duplicate comments (1)
enhancements/kai/agent-driven-migration/README.md (1)

333-350: ⚠️ Potential issue | 🟡 Minor

Clarify semantics of the other permission bucket.

other is listed in policy, but the doc still doesn’t define when it applies versus named categories. Please explicitly state fallback and precedence behavior.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 333 - 350,
Update the ToolPermissionPolicy docs to explicitly define the semantics and
precedence of the "other" permission bucket: state that "other" acts as a
fallback for any tool categories not listed in overrides (and for tools that
ToolClassifier cannot map), explain that explicit per-category overrides (e.g.,
fileEditing, commandExecution, webAccess, mcpTools) take precedence over
"other", and clarify that global autonomyLevel applies first, then per-category
overrides are applied, and finally "other" is consulted for unmapped tools;
reference ToolPermissionPolicy, overrides, ToolClassifier, and the "other" key
in the text so readers can locate and understand the behavior.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 582-584: Update the alternative title heading to use a hyphenated
compound modifier: change "Alternative 2: Single agent backend (Goose only)" to
"Alternative 2: Single-agent backend (Goose only)" so the heading uses
"Single-agent" consistently; locate the heading text in the README.md and
replace the phrase accordingly.
- Around line 173-213: The fenced code blocks in README.md (notably the ASCII
architecture diagram block containing "VS Code Extension Host ... Agent
Subprocess" and the other blocks showing "User clicks 'Get Solution'", the
"ToolPermissionPolicy" YAML, and "Agent subprocess") lack language identifiers,
causing markdownlint warnings and lower readability; update each triple-backtick
fence to include an appropriate language tag (e.g., ```text for ASCII/UI
diagrams, ```yaml for the ToolPermissionPolicy block, or ```typescript where
snippets are TypeScript) for the blocks around the shown diagram and the ranges
mentioned (173-213, 304-326, 332-341, 360-368) so that the fenced blocks
explicitly declare their language.

---

Duplicate comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 333-350: Update the ToolPermissionPolicy docs to explicitly define
the semantics and precedence of the "other" permission bucket: state that
"other" acts as a fallback for any tool categories not listed in overrides (and
for tools that ToolClassifier cannot map), explain that explicit per-category
overrides (e.g., fileEditing, commandExecution, webAccess, mcpTools) take
precedence over "other", and clarify that global autonomyLevel applies first,
then per-category overrides are applied, and finally "other" is consulted for
unmapped tools; reference ToolPermissionPolicy, overrides, ToolClassifier, and
the "other" key in the text so readers can locate and understand the behavior.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 9b6e80c8-b7bc-4ba7-b35e-6b58f95304c9

📥 Commits

Reviewing files that changed from the base of the PR and between 6d5f866 and 6e0f388.

📒 Files selected for processing (1)
  • enhancements/kai/agent-driven-migration/README.md

Comment thread enhancements/kai/agent-driven-migration/README.md
Comment thread enhancements/kai/agent-driven-migration/README.md
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md
Comment thread enhancements/kai/agent-driven-migration/README.md
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated

@shawn-hurley shawn-hurley 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 don't know if this is a blocker, but I wanted to bring it up.

I feel like there is a potential problem with session management for the backend agent.

When do we start a new session? What context would be in that session? If session A made changes, would session B know not to revert those changes?

Is there some tracking of the context window that a session is using?

If a user wants to stop a fix and redirect the agent, is that possible?

Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
- **User-controlled autonomy**: Granular permission policies that let users
decide which agent actions require approval

The architecture is backend-agnostic: a common `AgentClient` interface allows

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.

To confirm: to enable an agent backend, we need an AgentClient implementation we can use.

Would something be able to register a new implementation that is not shipped with the core project/extension?

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.

My guess is that's out of scope though I'd be ecstatic if someone wanted to. I think the backend agnosticism is for our benefit, so that we can integrate with a variety of tools and not get too tied to one, since the space is changing beneath us so quickly. Correct me if I'm wrong @djzager

@djzager djzager Apr 22, 2026

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

I updated the language of the document to reflect that our agentclient implementation is an internal one.

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Updated, we will support any ACP compatible backend.

[editor-extensions#1334](https://github.com/konveyor/editor-extensions/issues/1334).
Options under consideration:
- Agent-side credential refresh (requires upstream Goose changes to OpenAI provider)
- Long-lived API keys from Hub

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.

This is what we will do, and is covered in #265

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Fixed, now reference the other enhancement.

- **User-controlled autonomy**: Granular permission policies that let users
decide which agent actions require approval

The architecture is backend-agnostic: a common `AgentClient` interface allows

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.

My guess is that's out of scope though I'd be ecstatic if someone wanted to. I think the backend agnosticism is for our benefit, so that we can integrate with a variety of tools and not get too tied to one, since the space is changing beneath us so quickly. Correct me if I'm wrong @djzager

Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
understand project structure before proposing changes, leading to
higher-quality migration solutions.

3. **Tool integration via MCP**: Expose Konveyor's analysis capabilities

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.

You should link this to #259

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done.

1. **Building a new agent framework**: This enhancement integrates existing agent
tools (Goose, OpenCode), it does not create a new one.

2. **Replacing the analysis pipeline**: The analyzer, rulesets, and violation

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.

The way the MCP portion is phrased implies that implementation will be a part of this work, this non-goal explicitly says it isn't. We should correct the portion above to make it clear that this work has a dependency on the mcp proposal being implemented

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

done

│ │ │ │ │ │ │
│ │ │ └── AgentFileTracker │ │
│ │ │ │ │
│ │ ├── MCP Bridge Server (localhost HTTP) │ │

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.

We have had users report they are unable to open ports in their environments, we will likely need to at least support MCP over stdio (or some other transport) for those users. If the AgentClients don't support this it could be a partial blocker

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

Doc updated for this.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 65-75: The README uses two different setting names for agent mode
(genai.agentMode and enableAgentMode); standardize to a single canonical name
(use genai.agentMode as requested) across the document by replacing all
occurrences of enableAgentMode with genai.agentMode (including the descriptive
paragraphs around the Phase 1/Phase 2 behavior and the other occurrence at lines
~580-583), and ensure any examples, config snippets, and description headings
reference genai.agentMode consistently so implementers and users see one
authoritative key.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 00c45a9a-09ff-485b-ad4a-b7e130e6d721

📥 Commits

Reviewing files that changed from the base of the PR and between 6e0f388 and 106e2ba.

📒 Files selected for processing (1)
  • enhancements/kai/agent-driven-migration/README.md

Comment thread enhancements/kai/agent-driven-migration/README.md

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@enhancements/kai/agent-driven-migration/README.md`:
- Around line 193-194: Update the README section titled "Automated migration
without human review" to resolve the conflicting semantics by (a) explicitly
defining "pre-apply" (changes staged for user review before any disk write) and
"post-write detection" (changes written directly to disk then detected
afterward), (b) specifying rollback/undo behavior for each path (for pre-apply:
no-op until user confirms; for post-write: automatic snapshot/backup before
write and a documented rollback command to restore snapshot), and (c) clarifying
what "applied" means per tool path (for pre-apply: committed only after user
approval; for post-write: applied immediately upon successful write but
reversible via the snapshot/rollback). Reference the section header "Automated
migration without human review" and the phrases "pre-apply", "post-write
detection", and "applied" when making edits so readers can reconcile semantics
and find rollback instructions.
- Around line 181-183: The doc mixes two configuration keys: `agentMode` and
`genai.agentMode`; standardize them by replacing every plain `agentMode`
occurrence with the canonical `genai.agentMode` so examples, prose, and code
snippets consistently use `genai.agentMode` (ensure you update instances around
the current diff and the other referenced areas ~lines 342-343, 405-406, and
613-624), and verify any sample config blocks, YAML/JSON examples, and
explanatory text reflect the namespaced key exactly.
- Around line 561-565: Update the MCP bridge design to require and validate a
per-session authentication token/nonce for all bridge calls: describe generating
a cryptographically strong per-session nonce/token when the bridge server (MCP
bridge) starts, returning it only to the authorized client, requiring that token
be presented in each request (e.g., via an Authorization header or query param)
and adding server-side validation in the bridge call handler to reject requests
with missing/invalid tokens, and include token expiry/rotation and replay
protections in the baseline design.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 0e221d27-dd2f-41cc-a064-bbcf1561318f

📥 Commits

Reviewing files that changed from the base of the PR and between 106e2ba and efb5c60.

📒 Files selected for processing (1)
  • enhancements/kai/agent-driven-migration/README.md

Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md Outdated
Comment thread enhancements/kai/agent-driven-migration/README.md
Signed-off-by: David Zager <david.j.zager@gmail.com>

@coderabbitai coderabbitai Bot 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.

♻️ Duplicate comments (4)
enhancements/kai/agent-driven-migration/README.md (4)

213-259: ⚠️ Potential issue | 🟡 Minor

Add a language identifier to this fenced diagram block.

Line 213 starts a fenced block without a language tag, which triggers markdownlint MD040.

Proposed fix
-```
+```text
 ┌─────────────────────────────────────────────────────────────────────┐
 │ VS Code Extension Host                                              │
 ...
 └─────────────────────────────────────────────────────────────────────┘
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @enhancements/kai/agent-driven-migration/README.md around lines 213 - 259,
The fenced diagram block in README.md (the ASCII art block inside the Agent
Feature Module diagram) is missing a language identifier causing markdownlint
MD040; open the README, find the triple-backtick fence that begins the diagram
(the large ASCII box under the Agent Feature Module section), and add a language
tag after the opening backticks (e.g., ```text) so the block becomes a fenced
code block with a language identifier.


</details>

---

`406-428`: _⚠️ Potential issue_ | _🟡 Minor_

**Add language identifiers to both flow/architecture fenced blocks.**

Line 406 and Line 456 each open fenced blocks without language tags; both should be explicitly typed for lint/readability consistency.

 

<details>
<summary>Proposed fix</summary>

```diff
-```
+```text
 User clicks "Get Solution"
   → AgentOrchestrator.run(incidents, scope)
 ...
         3. Present per-file accept/reject via existing UI
 ```

-```
+```text
 Agent subprocess
   ↕ (stdio)
 Konveyor MCP Server (Node.js process)
 ...
 Konveyor analyzer / extension state
 ```
```
</details>


Also applies to: 456-464

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against the current code and only fix it if needed.

In @enhancements/kai/agent-driven-migration/README.md around lines 406 - 428,
The two fenced code blocks that document the flow/architecture (the block that
begins with "User clicks "Get Solution"" used by AgentOrchestrator.run and the
block describing the "Agent subprocess / Konveyor MCP Server" architecture) are
missing language identifiers; update both triple-backtick fences to include a
language tag (e.g., use ```text) so the blocks are explicitly typed for linter
and readability tools—locate the blocks by the content strings "User clicks
"Get Solution"" and "Agent subprocess" and add the language tag to their
opening fences.


</details>

---

`699-699`: _⚠️ Potential issue_ | _🟡 Minor_

**Use hyphenated compound modifier in the heading.**

Line 699 should use “Single-agent backend” for correct compound-modifier grammar.

 

<details>
<summary>Proposed fix</summary>

```diff
-### Alternative 2: Single agent backend (Goose only)
+### Alternative 2: Single-agent backend (Goose only)
```
</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` at line 699, The heading
"Single agent backend (Goose only)" at the top of the Alternative 2 section uses
incorrect compound-modifier grammar; update the heading text to "Single-agent
backend (Goose only)" so the compound modifier is hyphenated correctly (search
for the heading string "Single agent backend (Goose only)" and replace it with
"Single-agent backend (Goose only)").
```

</details>

---

`568-573`: _⚠️ Potential issue_ | _🟠 Major_

**Strengthen MCP bridge auth beyond localhost port isolation.**

Line 571–572’s mitigation is insufficient by itself. Add mandatory per-session token/nonce validation for bridge requests (plus expiry/rotation/replay protection) in the baseline design.

<details>
<summary>🤖 Prompt for AI Agents</summary>

```
Verify each finding against the current code and only fix it if needed.

In `@enhancements/kai/agent-driven-migration/README.md` around lines 568 - 573,
The current mitigation that the bridge "binds to a random localhost port" is
insufficient; update the MCP bridge design to require mandatory per-session
cryptographic tokens/nonces for all bridge requests and include expiry,
rotation, and replay-protection logic; explicitly add a session creation step
that issues a short-lived token (nonce) tied to a session ID, a token validation
middleware in the bridge request handler that rejects
missing/expired/nonce-reuse, and a token store/rotation strategy (and TTL) in
the baseline design so the bridge and Analyzer MCP perform token issuance,
validation, expiry/rotation, and replay detection rather than relying solely on
localhost binding.
```

</details>

</blockquote></details>

</blockquote></details>

<details>
<summary>🤖 Prompt for all review comments with AI agents</summary>

Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @enhancements/kai/agent-driven-migration/README.md:

  • Around line 213-259: The fenced diagram block in README.md (the ASCII art
    block inside the Agent Feature Module diagram) is missing a language identifier
    causing markdownlint MD040; open the README, find the triple-backtick fence that
    begins the diagram (the large ASCII box under the Agent Feature Module section),
    and add a language tag after the opening backticks (e.g., ```text) so the block
    becomes a fenced code block with a language identifier.
  • Around line 406-428: The two fenced code blocks that document the
    flow/architecture (the block that begins with "User clicks "Get Solution""
    used by AgentOrchestrator.run and the block describing the "Agent subprocess /
    Konveyor MCP Server" architecture) are missing language identifiers; update both
    triple-backtick fences to include a language tag (e.g., use ```text) so the
    blocks are explicitly typed for linter and readability tools—locate the blocks
    by the content strings "User clicks "Get Solution"" and "Agent subprocess" and
    add the language tag to their opening fences.
  • Line 699: The heading "Single agent backend (Goose only)" at the top of the
    Alternative 2 section uses incorrect compound-modifier grammar; update the
    heading text to "Single-agent backend (Goose only)" so the compound modifier is
    hyphenated correctly (search for the heading string "Single agent backend (Goose
    only)" and replace it with "Single-agent backend (Goose only)").
  • Around line 568-573: The current mitigation that the bridge "binds to a random
    localhost port" is insufficient; update the MCP bridge design to require
    mandatory per-session cryptographic tokens/nonces for all bridge requests and
    include expiry, rotation, and replay-protection logic; explicitly add a session
    creation step that issues a short-lived token (nonce) tied to a session ID, a
    token validation middleware in the bridge request handler that rejects
    missing/expired/nonce-reuse, and a token store/rotation strategy (and TTL) in
    the baseline design so the bridge and Analyzer MCP perform token issuance,
    validation, expiry/rotation, and replay detection rather than relying solely on
    localhost binding.

</details>

---

<details>
<summary>ℹ️ Review info</summary>

<details>
<summary>⚙️ Run configuration</summary>

**Configuration used**: defaults

**Review profile**: CHILL

**Plan**: Pro

**Run ID**: `31252157-e6bf-4904-ab4c-832fcf361bac`

</details>

<details>
<summary>📥 Commits</summary>

Reviewing files that changed from the base of the PR and between efb5c60a3b04722d55387bd85332762ca3c9e2a5 and d88ba30b66433098278b6c26a1d335c0c60fa3cb.

</details>

<details>
<summary>📒 Files selected for processing (1)</summary>

* `enhancements/kai/agent-driven-migration/README.md`

</details>

</details>

<!-- This is an auto-generated comment by CodeRabbit for review status -->

Signed-off-by: David Zager <david.j.zager@gmail.com>

@fabianvf fabianvf 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.

LGTM

@djzager
djzager merged commit 8fa3e7e into konveyor:master May 15, 2026
5 checks passed
@github-project-automation github-project-automation Bot moved this from 🏗 In progress to ✅ Done in Planning May 15, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

5 participants