Interactively triage milestone review issues, chat with Morph, and re-run reviews
Code Review is where users can review the work the Morph Platform has done on a milestone. You open it from the Roadmap: once a milestone is complete, click Code Review to open this drawer.
What’s Inside
Interactive hub for milestone review issues. Every review issue surfaced for the milestone lives in Code Review, with filters for status, severity, tags, and resolution, and the option to group issues by severity, status, source, size, or tags.
Chat with Morph to take action. Ask Morph to resolve open issues, create new ones, re-run the review, or add your own review criteria — all from the chat panel on the right.
One view across every repo in the milestone. The Code Review drawer combines issues across all repositories in the milestone. When you want to inspect the underlying diff, use View Pull Requests to open the individual PRs externally.
Effort estimates at a glance. Issues the review agent has sized carry a T-shirt-size badge (XS–XL) on the card; hover it to see the estimated effort. Larger estimates use warmer colors.
Blocker issues from the run. If a run paused because it needed your help, its blocker issues appear in their own Execution Blockers group, with what was done for each.
Provide a secret when asked. If the agent needs a credential to make or verify a change (for example, an API key to run a test), it asks with a Provide Secret card rather than in the chat box. The value is encrypted immediately and is never shown to the agent or written into the transcript. See Providing secrets.
Common Actions
Resolve an open issue — ask Morph to fix it, or mark it resolved after a manual change.
Create a new issue — flag something the review missed. You can even drag-and-drop external documents to import issues in bulk.
Re-run the review — use the Re-run review button after code changes or new criteria. To repeat checks when no code changed, tick the Force re-run option for those checks in the dialog.
Tag an issue — click Tags on any issue card to open the tag picker. Toggle tags from your project’s catalog on or off, or type a new name and choose Create “<name>” to add it to the catalog and apply it in one step. Tags show as chips on the issue row and work with the tags filter and grouping in the toolbar.
Run the frontend tests — on projects with a frontend, ask the chat to run or re-run the milestone’s frontend (Playwright) test suite — for example, after it fixes a UI bug. The run takes a few minutes to build and boot the app; when it finishes, pass/fail results and screenshots refresh in the Validation tab and the milestone’s Functional Testing view — no reload needed.
Update project documents — ask the chat to edit the Project Spec, create, update or delete milestone plans (including adhoc milestones), and edit wiki pages, rules and acceptance criteria. It can also update the target lifecycle, and when a step fails only because a system package, tool or runtime is missing, it adds it to the project’s Dockerfile or dependencies so later runs have it too. Changes to the origin lifecycle, other Dockerfile or dependency changes, and the repositories in the project stay in Project Knowledge chat.
When the chat changes code, it asks before it commits and again before it pushes to the pull request.If another run is working on the milestone’s branch, Re-run review, Rebase and Retry show Can’t start that yet. Try again once it finishes. See Can’t start that yet.While the chat is replying, Merge all PRs is disabled so the reply’s changes land in the pull request. If you close the tab mid-reply, the button can stay disabled for up to 10 minutes. See Pull Requests.
The Validation tab
Alongside the issues list, the drawer’s Validation tab shows this review’s own test results, scoped to the exact run under review — API/CLI, UI Tests (Playwright), QA Agent (agent browsing captures), and Lifecycle. Each row has a Discuss action that pulls that result into the chat as context. See the Validation Hub for the project-wide view.
Collaboration
Multiple team members can review the same milestone simultaneously. Each reviewer gets their own independent review chat session, so conversations and issue triaging don’t collide.
How it works
When you open Code Review for a milestone, the Morph Platform creates (or resumes) a review session scoped to your user. Your teammate opening the same milestone gets their own session.
Each session has its own chat history and context. You can work through different issues at your own pace without blocking each other.
Session locking
Only one user can actively chat with the Morph Platform on a given milestone at a time. If a teammate is currently in an active chat session, you’ll see a message indicating who is using it. Once they finish (or their session times out after inactivity), the session unlocks and you can start yours.This ensures the agent isn’t receiving conflicting instructions from multiple users simultaneously while still allowing parallel review of issues and code.
Coordinate with your team on who is triaging which issues. Each reviewer can focus on different parts of the milestone — one person on backend logic, another on test coverage.
Starting Over
Use New chat (or Start over) in the chat panel to reset your review session. This clears the current chat history and creates a fresh session — useful when you want to re-approach the review from scratch or after significant code changes. The review issues themselves are not deleted; only the chat conversation resets.
Chat Retention
If you haven’t sent a message in a review chat for 30 days and no agent is running in it, opening Code Review starts a new, empty chat. The old conversation can’t be restored, but review issues, their resolutions and code changes are kept. Opening the page alone doesn’t count as activity.A review chat for a milestone that is already merged isn’t replaced. It becomes read-only when the milestone merges, and its earlier messages may no longer be shown once its workspace has been removed. The Final Code Delivery chat is the exception: it is replaced after 30 days without a message, like the chat of a milestone that isn’t merged yet.
To keep something from a long review conversation, copy it into a wiki page or a review issue.
Pool Capacity
Code Review chat is exempt from the daemon pool execution capacity gate. You can open a review chat session even when all workers in the pool are busy with milestone or ad-hoc executions.However, actions that trigger non-chat work — such as Re-run review or approving a milestone from within the review — are still subject to pool capacity. If all workers are busy, those actions are blocked until a worker frees up.
Final Code Delivery
When all milestones in a project are complete, the Morph Platform surfaces a Final Code Delivery review. This is a separate review surface that works on the project feature branch rather than an individual milestone branch. All milestone work is bundled into one pull request per repository, and any change you make in this chat shows up in those PRs right away.What you can do in Final Code Delivery:
Get a walkthrough of what changed across the whole modernization
Request a last-mile change (for example, updating the README to match the new build command)
Ask why a service still calls a legacy endpoint
Drag and drop a list of issues to be fixed
Use this chat for small, last-mile fixes. Larger refactors should go through an ad-hoc milestone so they get a proper plan, validation, and review.Merging: Final Code Delivery PRs must be merged on the external PR page (GitHub, GitLab, or Azure DevOps) — there is no in-app merge for final delivery.
Rebase After Sibling Merge
If you open Code Review for a milestone and see a Rebase Required state, a sibling milestone was merged and this milestone’s branch needs to incorporate those changes before it can proceed. You choose how much the rebase checks; see Choosing how much a rebase validates. See Milestone Shows “Rebase Required” for resolution steps.
Rebase Report
After a rebase completes, a Rebase Report tab appears in Code Review with a summary of what was brought in from the merged sibling milestone and how it was reconciled with this milestone’s work.It is worth a look before you merge. A rebase is the one point where code you already reviewed can change underneath you, and the report is where you see what moved — rather than inferring it from the diff.The report is also given to the review agent as context, so you can ask about it directly in chat.
{"docsConfig":{"theme":"mint","$schema":"https://mintlify.com/docs.json","name":"Modelcode","colors":{"primary":"#069bfa","light":"#3db4ff","dark":"#0070c9"},"logo":{"light":"https://mintcdn.com/modelcodeai/FvveHrl7MJeyooqL/logo/light.svg?fit=max\u0026auto=format\u0026n=FvveHrl7MJeyooqL\u0026q=85\u0026s=16f79135c593bd6abebaf54cceb4767e","dark":"https://mintcdn.com/modelcodeai/FvveHrl7MJeyooqL/logo/dark.svg?fit=max\u0026auto=format\u0026n=FvveHrl7MJeyooqL\u0026q=85\u0026s=3fb838182196b5e8fe22a20c1fecb8bd"},"favicon":"https://mintcdn.com/modelcodeai/gIHFr_f_bIsWGfde/favicon.svg?fit=max\u0026auto=format\u0026n=gIHFr_f_bIsWGfde\u0026q=85\u0026s=3d0e41c956e5e16277317ef7bcaa90a6","navbar":{"links":[{"href":"mailto:support@modelcode.ai","label":"Support"}],"primary":{"type":"button","label":"Get Started","href":"https://modelcode.ai"}},"footer":{"socials":{"github":"https://github.com/Modelcode-ai","linkedin":"https://www.linkedin.com/company/modelcode-ai"}},"contextual":{"options":["copy","view","chatgpt","claude","perplexity","mcp","cursor","vscode"],"display":"header"},"styling":{"latex":false},"navigation":{"pages":[]}},"deployment":{"deploymentMetadataValue":{"subdomain":"modelcodeai","hasAudioNarration":false,"actualSubdomain":"modelcodeai","customDomains":["docs.modelcode.ai"],"gitSource":{"type":"github","owner":"modelcode-ai","repo":"morph-docs","deployBranch":"main","contentDirectory":"","isPrivate":true,"mountPath":"","label":""},"entitlements":{"AI_CHAT":{"status":"ENABLED"},"WEB_MCP":{"status":"ENABLED"},"NARRATION":{"status":"ENABLED"}},"buildId":"6af3ca7cac217235f73144f0","clientVersion":"0.0.4142","searchFilterCounts":[{"language":"default","tag":"Project Setup","count":8},{"language":"default","tag":"Administration","count":7},{"language":"default","tag":"Running Your Migration","count":6},{"language":"default","tag":"Source Control","count":6},{"language":"default","tag":"Single Sign-On","count":5},{"language":"default","tag":"Getting Started","count":4},{"language":"default","tag":"Knowledge and Rules","count":4},{"language":"default","tag":"Code Review","count":4},{"language":"default","tag":"Support","count":4},{"language":"default","tag":"Claude Code Integration","count":3}]},"assistantConfig":{"enableAskAiButton":false,"enableStarterQuestions":false,"enableAskAiSearchBar":true},"basePath":"","hasChatPermissions":true,"hasWebMcpPermissions":true,"toggles":[{"name":"kill-isr","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-rbac-roles","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-mintlify-slack","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"agent-integrations-settings","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"rbac-expansion","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-pr-grouping","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"custom-prefix","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"analytics-v7","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"user-flows-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"no-publish-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-onboarding","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving-live","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"stripTemperatureMiddleware","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"support-platform-pylon-zendesk","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"snapshot-serving","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"instant-rollback","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications-server","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"granular-notifications","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automations-fable","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fixed-ai-action-pricing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"automation-resolve-merge-conflict","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"scoped-publishing","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"mintql","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"page-level-analytics","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-version-history-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"billing-page-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"full-page-search","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workspace-projects","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"assistant-v5","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"fork-pr-previews","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"revalidation-jwt","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-sso-scim","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"hobby-abuse-scan","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"dashboard-inbox","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-signup","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-dual-write","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"workos-enabled","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"approve-review-flow","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"editor-metadata","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"sso-setup-deadline-banner","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"turbopuffer-serve","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"live-agents","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false},{"name":"llms-txt-v2","enabled":true,"variant":{"name":"disabled","enabled":false,"feature_enabled":true},"impressionData":false}],"googleFontsInlined":false},"customCss":[],"page":{"pagePath":"migration/code-review-chat","slug":"/migration/code-review-chat","pageMetadata":{"title":"Code Review Chat","description":"Interactively triage milestone review issues, chat with Morph, and re-run reviews","href":"/migration/code-review-chat"},"description":{"compiledSource":"\"use strict\";\nconst {jsx: _jsx} = arguments[0];\nconst {useMDXComponents: _provideComponents} = arguments[0];\nfunction _createMdxContent(props) {\n const _components = {\n p: \"p\",\n ..._provideComponents(),\n ...props.components\n };\n return _jsx(_components.p, {\n children: \"Interactively triage milestone review issues, chat with Morph, and re-run reviews\"\n });\n}\nfunction MDXContent(props = {}) {\n const {wrapper: MDXLayout} = {\n ..._provideComponents(),\n ...props.components\n };\n return MDXLayout ? _jsx(MDXLayout, {\n ...props,\n children: _jsx(_createMdxContent, {\n ...props\n })\n }) : _createMdxContent(props);\n}\nreturn {\n default: MDXContent\n};\n","frontmatter":{},"scope":{}},"pageType":"default","mdx":{"mdxSource":{"compiledSource":"\"use strict\";const{Fragment:_Fragment,jsx:_jsx,jsxs:_jsxs}=arguments[0];const{useMDXComponents:_provideComponents}=arguments[0];const ProductName=`The Morph Platform`;const productName=`the Morph Platform`;function _createMdxContent(props){const _components={a:`a`,em:`em`,hr:`hr`,li:`li`,p:`p`,strong:`strong`,ul:`ul`,..._provideComponents(),...props.components},{Heading,OptimizedImage,Tip}=_components;if(!Heading)_missingMdxReference(`Heading`,true);if(!OptimizedImage)_missingMdxReference(`OptimizedImage`,true);if(!Tip)_missingMdxReference(`Tip`,true);return _jsxs(_Fragment,{children:[_jsx(OptimizedImage,{src:`https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=c9be705f5de91aa9f031172d304ea9a7`,alt:`Code Review drawer with issues list and chat panel`,\"data-og-width\":`4526`,width:`4526`,\"data-og-height\":`2610`,height:`2610`,\"data-path\":`migration/images/code-review-drawer.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=280\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=c2afcd3cd6dcf63ad6d220dbc6b873f1 280w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=560\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=f9893c7fa4811e4f1cdd16fecaf4b0df 560w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=840\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=d3f655a4d0401742dc992432b4e12fe8 840w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=ea8c07e2c4f33b7e1c7a5aa06a3c26aa 1100w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=caf5c4d4f7282195ca3e48ff17961787 1650w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/code-review-drawer.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=0b9d5a3af760d2afbe1604119a4fb06b 2500w`}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Code Review`}),` is where users can review the work `,productName,` has done on a milestone. You open it from the `,_jsx(_components.strong,{children:`Roadmap`}),`: once a milestone is complete, click `,_jsx(_components.strong,{children:`Code Review`}),` to open this drawer.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=14f407e194ad034f1fcd6acc88302464`,alt:`Milestone card on Roadmap with entrypoint to Code Review drawer`,\"data-og-width\":`2626`,width:`2626`,\"data-og-height\":`1268`,height:`1268`,\"data-path\":`migration/images/milestone-card.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=280\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=7b9697499cc7ea36e6ac52e3c8709e07 280w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=560\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=9c77d4e89491cef3402b21851802dbab 560w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=840\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=428e06a50cbe9d12501b15c021bf0cc0 840w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=1100\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=80fe34eb223246c3527ba2c4a7946e39 1100w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=1650\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=42b8a126754e3796b16a620e478f44a6 1650w, https://mintcdn.com/modelcodeai/ORvlG4Keyt4fjwIO/migration/images/milestone-card.png?w=2500\u0026fit=max\u0026auto=format\u0026n=ORvlG4Keyt4fjwIO\u0026q=85\u0026s=6547a39eba1844e0f6309835ef2aebbe 2500w`}),`\n`,_jsx(Heading,{level:`2`,id:`what’s-inside`,children:`What’s Inside`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Interactive hub for milestone review issues.`}),` Every review issue surfaced for the milestone lives in `,_jsx(_components.strong,{children:`Code Review`}),`, with filters for status, severity, tags, and resolution, and the option to group issues by severity, status, source, size, or tags.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Chat with Morph to take action.`}),` Ask Morph to resolve open issues, create new ones, re-run the review, or add your own review criteria — all from the chat panel on the right.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`One view across every repo in the milestone.`}),` The `,_jsx(_components.strong,{children:`Code Review`}),` drawer combines issues across all repositories in the milestone. When you want to inspect the underlying diff, use `,_jsx(_components.strong,{children:`View Pull Requests`}),` to open the individual PRs externally.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Effort estimates at a glance.`}),` Issues the review agent has sized carry a T-shirt-size badge (XS–XL) on the card; hover it to see the estimated effort. Larger estimates use warmer colors.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Blocker issues from the run.`}),` If a run paused because it `,_jsx(_components.a,{href:`/migration/run-needs-help`,children:`needed your help`}),`, its blocker issues appear in their own `,_jsx(_components.strong,{children:`Execution Blockers`}),` group, with what was done for each.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Provide a secret when asked.`}),` If the agent needs a credential to make or verify a change (for example, an API key to run a test), it asks with a `,_jsx(_components.strong,{children:`Provide Secret`}),` card rather than in the chat box. The value is encrypted immediately and is never shown to the agent or written into the transcript. See `,_jsx(_components.a,{href:`/setup/lifecycle-setup#providing-secrets`,children:`Providing secrets`}),`.`]}),`\n`]}),`\n`,_jsx(Heading,{level:`2`,id:`common-actions`,children:`Common Actions`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Resolve an open issue`}),` — ask Morph to fix it, or mark it resolved after a manual change.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Create a new issue`}),` — flag something the review missed. You can even drag-and-drop external documents to import issues in bulk.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Re-run the review`}),` — use the `,_jsx(_components.strong,{children:`Re-run review`}),` button after code changes or new criteria. To repeat checks when no code changed, tick the `,_jsx(_components.strong,{children:`Force re-run`}),` option for those checks in the dialog.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Tag an issue`}),` — click `,_jsx(_components.strong,{children:`Tags`}),` on any issue card to open the tag picker. Toggle tags from your project’s catalog on or off, or type a new name and choose `,_jsx(_components.strong,{children:`Create “\u003cname>”`}),` to add it to the catalog and apply it in one step. Tags show as chips on the issue row and work with the `,_jsx(_components.strong,{children:`tags`}),` filter and grouping in the toolbar.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Run the frontend tests`}),` — on projects with a frontend, ask the chat to run or re-run the milestone’s frontend (Playwright) test suite — for example, after it fixes a UI bug. The run takes a few minutes to build and boot the app; when it finishes, pass/fail results and screenshots refresh in the `,_jsx(_components.strong,{children:`Validation`}),` tab and the milestone’s `,_jsx(_components.a,{href:`/migration/validation-hub`,children:`Functional Testing`}),` view — no reload needed.`]}),`\n`,_jsxs(_components.li,{children:[_jsx(_components.strong,{children:`Update project documents`}),` — ask the chat to edit the Project Spec, create, update or delete milestone plans (including `,_jsx(_components.a,{href:`/migration/adhoc-milestones`,children:`adhoc milestones`}),`), and edit wiki pages, rules and acceptance criteria. It can also update the target lifecycle, and when a step fails only because a system package, tool or runtime is missing, it adds it to the project’s Dockerfile or dependencies so later runs have it too. Changes to the origin lifecycle, other Dockerfile or dependency changes, and the repositories in the project stay in `,_jsx(_components.a,{href:`/customization/project-knowledge`,children:`Project Knowledge`}),` chat.`]}),`\n`]}),`\n`,_jsx(_components.p,{children:`When the chat changes code, it asks before it commits and again before it pushes to the pull request.`}),`\n`,_jsxs(_components.p,{children:[`If another run is working on the milestone’s branch, `,_jsx(_components.strong,{children:`Re-run review`}),`, `,_jsx(_components.strong,{children:`Rebase`}),` and `,_jsx(_components.strong,{children:`Retry`}),` show `,_jsx(_components.strong,{children:`Can’t start that yet`}),`. Try again once it finishes. See `,_jsx(_components.a,{href:`/support/troubleshooting#cant-start-that-yet`,children:`Can’t start that yet`}),`.`]}),`\n`,_jsxs(_components.p,{children:[`While the chat is replying, `,_jsx(_components.strong,{children:`Merge all PRs`}),` is disabled so the reply’s changes land in the pull request. If you close the tab mid-reply, the button can stay disabled for up to 10 minutes. See `,_jsx(_components.a,{href:`/migration/pull-requests`,children:`Pull Requests`}),`.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`the-validation-tab`,children:`The Validation tab`}),`\n`,_jsxs(_components.p,{children:[`Alongside the issues list, the drawer’s `,_jsx(_components.strong,{children:`Validation`}),` tab shows this review’s own test results, scoped to the exact run under review — API/CLI, UI Tests (Playwright), QA Agent (agent browsing captures), and Lifecycle. Each row has a `,_jsx(_components.strong,{children:`Discuss`}),` action that pulls that result into the chat as context. See the `,_jsx(_components.a,{href:`/migration/validation-hub`,children:`Validation Hub`}),` for the project-wide view.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`collaboration`,children:`Collaboration`}),`\n`,_jsxs(_components.p,{children:[`Multiple team members can review the same milestone simultaneously. Each reviewer gets their own independent `,_jsx(_components.strong,{children:`review chat session`}),`, so conversations and issue triaging don’t collide.`]}),`\n`,_jsx(Heading,{level:`3`,id:`how-it-works`,children:`How it works`}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsxs(_components.li,{children:[`When you open `,_jsx(_components.strong,{children:`Code Review`}),` for a milestone, `,productName,` creates (or resumes) a review session scoped to your user. Your teammate opening the same milestone gets their own session.`]}),`\n`,_jsx(_components.li,{children:`Each session has its own chat history and context. You can work through different issues at your own pace without blocking each other.`}),`\n`]}),`\n`,_jsx(Heading,{level:`3`,id:`session-locking`,children:`Session locking`}),`\n`,_jsxs(_components.p,{children:[`Only one user can actively chat with `,productName,` on a given milestone at a time. If a teammate is currently in an active chat session, you’ll see a message indicating who is using it. Once they finish (or their session times out after inactivity), the session unlocks and you can start yours.`]}),`\n`,_jsx(OptimizedImage,{src:`https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=f8cf8c013a244b59af9ae92f4fd22e07`,alt:`Knowledge chat session locked by another user`,\"data-og-width\":`1024`,width:`1024`,\"data-og-height\":`207`,height:`207`,\"data-path\":`images/whats-new/july-2026-assets/knowledge-chat-session-lock.png`,\"data-optimize\":`true`,\"data-opv\":`3`,srcset:`https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=280\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=612f5900ea6ae81ef0c5c570e97eb47e 280w, https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=560\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=0dd6c417475d7ec3e18690fff0641159 560w, https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=840\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=d70094196368fe24e48803b24a8968b1 840w, https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=1100\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=5b1dfbc58f1dba9dc5d318d4cecb882a 1100w, https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=1650\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=dd86db7472e45a10d90ff969555cf6f6 1650w, https://mintcdn.com/modelcodeai/zElTHMiV0RDRmhv3/images/whats-new/july-2026-assets/knowledge-chat-session-lock.png?w=2500\u0026fit=max\u0026auto=format\u0026n=zElTHMiV0RDRmhv3\u0026q=85\u0026s=1f02768843b268d154423c13020b45b6 2500w`}),`\n`,_jsxs(_components.p,{children:[`This ensures the agent isn’t receiving conflicting instructions from multiple users simultaneously while still allowing parallel `,_jsx(_components.em,{children:`review`}),` of issues and code.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`Coordinate with your team on who is triaging which issues. Each reviewer can focus on different parts of the milestone — one person on backend logic, another on test coverage.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`starting-over`,children:`Starting Over`}),`\n`,_jsxs(_components.p,{children:[`Use `,_jsx(_components.strong,{children:`New chat`}),` (or `,_jsx(_components.strong,{children:`Start over`}),`) in the chat panel to reset your review session. This clears the current chat history and creates a fresh session — useful when you want to re-approach the review from scratch or after significant code changes. The review issues themselves are not deleted; only the chat conversation resets.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`chat-retention`,children:`Chat Retention`}),`\n`,_jsxs(_components.p,{children:[`If you haven’t sent a message in a review chat for 30 days and no agent is running in it, opening `,_jsx(_components.strong,{children:`Code Review`}),` starts a new, empty chat. The old conversation can’t be restored, but review issues, their resolutions and code changes are kept. Opening the page alone doesn’t count as activity.`]}),`\n`,_jsxs(_components.p,{children:[`A review chat for a milestone that is already merged isn’t replaced. It becomes read-only when the milestone merges, and its earlier messages may no longer be shown once its workspace has been removed. The `,_jsx(_components.strong,{children:`Final Code Delivery`}),` chat is the exception: it is replaced after 30 days without a message, like the chat of a milestone that isn’t merged yet.`]}),`\n`,_jsx(Tip,{children:_jsx(_components.p,{children:`To keep something from a long review conversation, copy it into a wiki page or a review issue.`})}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`pool-capacity`,children:`Pool Capacity`}),`\n`,_jsxs(_components.p,{children:[`Code Review chat is `,_jsx(_components.strong,{children:`exempt`}),` from the `,_jsx(_components.a,{href:`/setup/build-environment/self-hosted-daemon#pool-capacity`,children:`daemon pool`}),` execution capacity gate. You can open a review chat session even when all workers in the pool are busy with milestone or ad-hoc executions.`]}),`\n`,_jsxs(_components.p,{children:[`However, actions that trigger non-chat work — such as `,_jsx(_components.strong,{children:`Re-run review`}),` or approving a milestone from within the review — are still subject to pool capacity. If all workers are busy, those actions are blocked until a worker frees up.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`final-code-delivery`,children:`Final Code Delivery`}),`\n`,_jsxs(_components.p,{children:[`When all milestones in a project are complete, `,productName,` surfaces a `,_jsx(_components.strong,{children:`Final Code Delivery`}),` review. This is a separate review surface that works on the `,_jsx(_components.strong,{children:`project feature branch`}),` rather than an individual milestone branch. All milestone work is bundled into one pull request per repository, and any change you make in this chat shows up in those PRs right away.`]}),`\n`,_jsx(_components.p,{children:_jsx(_components.strong,{children:`What you can do in Final Code Delivery:`})}),`\n`,_jsxs(_components.ul,{children:[`\n`,_jsx(_components.li,{children:`Get a walkthrough of what changed across the whole modernization`}),`\n`,_jsx(_components.li,{children:`Request a last-mile change (for example, updating the README to match the new build command)`}),`\n`,_jsx(_components.li,{children:`Ask why a service still calls a legacy endpoint`}),`\n`,_jsx(_components.li,{children:`Drag and drop a list of issues to be fixed`}),`\n`]}),`\n`,_jsxs(_components.p,{children:[`Use this chat for small, last-mile fixes. Larger refactors should go through an `,_jsx(_components.a,{href:`/migration/adhoc-milestones`,children:`ad-hoc milestone`}),` so they get a proper plan, validation, and review.`]}),`\n`,_jsxs(_components.p,{children:[_jsx(_components.strong,{children:`Merging:`}),` Final Code Delivery PRs must be merged on the `,_jsx(_components.strong,{children:`external PR page`}),` (GitHub, GitLab, or Azure DevOps) — there is no in-app merge for final delivery.`]}),`\n`,_jsx(_components.hr,{}),`\n`,_jsx(Heading,{level:`2`,id:`rebase-after-sibling-merge`,children:`Rebase After Sibling Merge`}),`\n`,_jsxs(_components.p,{children:[`If you open Code Review for a milestone and see a `,_jsx(_components.strong,{children:`Rebase Required`}),` state, a sibling milestone was merged and this milestone’s branch needs to incorporate those changes before it can proceed. You choose how much the rebase checks; see `,_jsx(_components.a,{href:`/migration/milestones#choosing-how-much-a-rebase-validates`,children:`Choosing how much a rebase validates`}),`. See `,_jsx(_components.a,{href:`/support/troubleshooting#milestone-shows-rebase-required`,children:`Milestone Shows “Rebase Required”`}),` for resolution steps.`]}),`\n`,_jsx(Heading,{level:`3`,id:`rebase-report`,children:`Rebase Report`}),`\n`,_jsxs(_components.p,{children:[`After a rebase completes, a `,_jsx(_components.strong,{children:`Rebase Report`}),` tab appears in Code Review with a summary of what was brought in from the merged sibling milestone and how it was reconciled with this milestone’s work.`]}),`\n`,_jsx(_components.p,{children:`It is worth a look before you merge. A rebase is the one point where code you already reviewed can change underneath you, and the report is where you see what moved — rather than inferring it from the diff.`}),`\n`,_jsx(_components.p,{children:`The report is also given to the review agent as context, so you can ask about it directly in chat.`})]})}function MDXContent(props={}){const{wrapper:MDXLayout}={..._provideComponents(),...props.components};return MDXLayout?_jsx(MDXLayout,{...props,children:_jsx(_createMdxContent,{...props})}):_createMdxContent(props)}return{ProductName,productName,default:MDXContent};function _missingMdxReference(id,component){throw new Error(`Expected `+(component?`component`:`object`)+\" `\"+id+\"` to be defined: you likely forgot to import, pass, or provide it.\")}","frontmatter":{},"scope":{"config":{},"pageMetadata":{"title":"Code Review Chat","description":"Interactively triage milestone review issues, chat with Morph, and re-run reviews","href":"/migration/code-review-chat"}}},"mdxSourceWithNoJs":null,"noJsSplices":[[146,177,"undefined;const prod"],[2230,2241,"`the Morph Platform`"],[11133,11144,"`the Morph Platform`"],[11608,11619,"`the Morph Platform`"],[16648,16659,"`the Morph Platform`"]]},"mdxExtracts":{"tableOfContents":[{"title":"What’s Inside","slug":"what’s-inside","depth":2,"children":[]},{"title":"Common Actions","slug":"common-actions","depth":2,"children":[]},{"title":"The Validation tab","slug":"the-validation-tab","depth":2,"children":[]},{"title":"Collaboration","slug":"collaboration","depth":2,"children":[{"title":"How it works","slug":"how-it-works","depth":3,"children":[]},{"title":"Session locking","slug":"session-locking","depth":3,"children":[]}]},{"title":"Starting Over","slug":"starting-over","depth":2,"children":[]},{"title":"Chat Retention","slug":"chat-retention","depth":2,"children":[]},{"title":"Pool Capacity","slug":"pool-capacity","depth":2,"children":[]},{"title":"Final Code Delivery","slug":"final-code-delivery","depth":2,"children":[]},{"title":"Rebase After Sibling Merge","slug":"rebase-after-sibling-merge","depth":2,"children":[{"title":"Rebase Report","slug":"rebase-report","depth":3,"children":[]}]}],"codeExamples":{}},"jsLinks":[],"subdomain":"modelcodeai","siteName":"Modelcode","title":"Code Review Chat - Modelcode","navMaps":{"firstHrefInVersion":{},"firstHrefInLanguage":{}},"lastModified":"2026-11-11T01:53:06.161Z","originalFileLocation":"migration/code-review-chat.mdx"},"headHtml":"\u003cscript data-mint-head>(function(){var d=document.documentElement,p=null;if(!p){try{p=localStorage.getItem(\"isDarkMode\")}catch(e){}if(p==='true')p='dark';else if(p==='false')p='light';if(p!=='light'\u0026\u0026p!=='dark'\u0026\u0026p!=='system')p=\"system\"}var r=p==='system'?(matchMedia(\"(prefers-color-scheme: dark)\").matches?'dark':'light'):p;d.classList.remove(r==='dark'?'light':'dark');d.classList.add(r);d.setAttribute(\"data-theme-preference\",p)})();\u003c/script>\u003cmeta data-mint-head name=\"description\" content=\"Interactively triage milestone review issues, chat with Morph, and re-run reviews\">\u003cmeta data-mint-head name=\"application-name\" content=\"Modelcode\">\u003cmeta data-mint-head name=\"generator\" content=\"Mintlify\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/android-chrome-192x192.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"apple-touch-icon\" type=\"image/png\" sizes=\"180x180\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/apple-touch-icon.png\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/favicon-16x16.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/favicon-32x32.png\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/favicon.ico\" media=\"(prefers-color-scheme: light)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"192x192\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon-dark/android-chrome-192x192.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"16x16\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon-dark/favicon-16x16.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"icon\" type=\"image/png\" sizes=\"32x32\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon-dark/favicon-32x32.png\" media=\"(prefers-color-scheme: dark)\">\u003clink data-mint-head rel=\"shortcut icon\" type=\"image/x-icon\" href=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon-dark/favicon.ico\" media=\"(prefers-color-scheme: dark)\">\u003cmeta data-mint-head property=\"og:title\" content=\"Code Review Chat - Modelcode\">\u003cmeta data-mint-head property=\"og:description\" content=\"Interactively triage milestone review issues, chat with Morph, and re-run reviews\">\u003cmeta data-mint-head property=\"og:site_name\" content=\"Modelcode\">\u003cmeta data-mint-head property=\"og:url\" content=\"https://docs.modelcode.ai/migration/code-review-chat\">\u003cmeta data-mint-head property=\"og:type\" content=\"website\">\u003cmeta data-mint-head property=\"og:image\" content=\"https://modelcodeai.mintlify.site/_mintlify/api/og/v2?division=Code+Review\u0026amp;title=Code+Review+Chat\u0026amp;description=Interactively+triage+milestone+review+issues%2C+chat+with+Morph%2C+and+re-run+reviews\u0026amp;theme=07f614b49cd68aaef23f5a56\u0026amp;signature=3c404318f073cfb408dd9a4565a0d57c0a9c4d258dfde5a0c662af36d03f5651\">\u003cmeta data-mint-head property=\"og:image:width\" content=\"1200\">\u003cmeta data-mint-head property=\"og:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"twitter:card\" content=\"summary_large_image\">\u003cmeta data-mint-head name=\"twitter:title\" content=\"Code Review Chat - Modelcode\">\u003cmeta data-mint-head name=\"twitter:description\" content=\"Interactively triage milestone review issues, chat with Morph, and re-run reviews\">\u003cmeta data-mint-head name=\"twitter:image\" content=\"https://modelcodeai.mintlify.site/_mintlify/api/og/v2?division=Code+Review\u0026amp;title=Code+Review+Chat\u0026amp;description=Interactively+triage+milestone+review+issues%2C+chat+with+Morph%2C+and+re-run+reviews\u0026amp;theme=07f614b49cd68aaef23f5a56\u0026amp;signature=3c404318f073cfb408dd9a4565a0d57c0a9c4d258dfde5a0c662af36d03f5651\">\u003cmeta data-mint-head name=\"twitter:image:width\" content=\"1200\">\u003cmeta data-mint-head name=\"twitter:image:height\" content=\"630\">\u003cmeta data-mint-head name=\"msapplication-config\" content=\"/mintlify-assets/_mintlify/favicons/modelcodeai/H1hkunG9Mcy8ETVM/_generated/favicon/browserconfig.xml\">\u003cmeta data-mint-head name=\"apple-mobile-web-app-title\" content=\"Modelcode\">\u003cmeta data-mint-head name=\"msapplication-TileColor\" content=\"#069bfa\">\u003clink data-mint-head rel=\"canonical\" href=\"https://docs.modelcode.ai/migration/code-review-chat\">\u003clink data-mint-head rel=\"alternate\" type=\"application/xml\" href=\"/sitemap.xml\">\u003clink data-mint-head rel=\"alternate\" type=\"text/markdown\" href=\"/migration/code-review-chat.md\">\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https://docs.modelcode.ai/#organization\",\"name\":\"Modelcode\",\"url\":\"https://docs.modelcode.ai\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https://mintcdn.com/modelcodeai/FvveHrl7MJeyooqL/logo/light.svg?fit=max\u0026auto=format\u0026n=FvveHrl7MJeyooqL\u0026q=85\u0026s=16f79135c593bd6abebaf54cceb4767e\"}},{\"@type\":\"WebSite\",\"@id\":\"https://docs.modelcode.ai#website\",\"name\":\"Modelcode\",\"url\":\"https://docs.modelcode.ai\",\"publisher\":{\"@id\":\"https://docs.modelcode.ai/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https://docs.modelcode.ai/migration/code-review-chat#webpage\",\"url\":\"https://docs.modelcode.ai/migration/code-review-chat\",\"name\":\"Code Review Chat\",\"description\":\"Interactively triage milestone review issues, chat with Morph, and re-run reviews\",\"dateModified\":\"2026-11-11T01:53:06.161Z\",\"isPartOf\":{\"@id\":\"https://docs.modelcode.ai#website\"},\"breadcrumb\":{\"@id\":\"https://docs.modelcode.ai/migration/code-review-chat#breadcrumb\"}},{\"@type\":\"BreadcrumbList\",\"@id\":\"https://docs.modelcode.ai/migration/code-review-chat#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Code Review\",\"item\":\"https://docs.modelcode.ai/migration/pull-requests\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Code Review Chat\",\"item\":\"https://docs.modelcode.ai/migration/code-review-chat\"}]},{\"@type\":[\"Article\",\"TechArticle\"],\"@id\":\"https://docs.modelcode.ai/migration/code-review-chat#article\",\"headline\":\"Code Review Chat\",\"name\":\"Code Review Chat\",\"description\":\"Interactively triage milestone review issues, chat with Morph, and re-run reviews\",\"url\":\"https://docs.modelcode.ai/migration/code-review-chat\",\"mainEntityOfPage\":{\"@id\":\"https://docs.modelcode.ai/migration/code-review-chat#webpage\"},\"dateModified\":\"2026-11-11T01:53:06.161Z\",\"publisher\":{\"@id\":\"https://docs.modelcode.ai/#organization\"},\"isPartOf\":{\"@id\":\"https://docs.modelcode.ai#website\"}}]}\u003c/script>\u003cscript data-mint-head type=\"application/ld+json\">{\"@context\":\"https://schema.org\",\"@type\":\"WebSite\",\"name\":\"Modelcode\",\"publisher\":{\"@type\":\"Organization\",\"name\":\"Modelcode\"},\"provider\":{\"@type\":\"Organization\",\"name\":\"Mintlify\",\"url\":\"https://mintlify.com\"}}\u003c/script>","agentPointerHref":"/migration/code-review-chat.md","siteName":"Modelcode","nav":{"global":null,"groups":[{"group":"Getting Started","pages":[{"title":"Introduction","href":"/introduction"},{"title":"Quickstart","href":"/quickstart"},{"title":"Core Concepts","href":"/core-concepts"},{"title":"Supported Architectures","href":"/setup/supported-architectures"}]},{"group":"Source Control","pages":[{"title":"Source Control","sidebarTitle":"Overview","href":"/setup/source-control"},{"title":"GitHub Integration","sidebarTitle":"GitHub","href":"/setup/github-integration"},{"title":"GitLab Integration","sidebarTitle":"GitLab","href":"/setup/gitlab-integration"},{"title":"GitLab Self-Managed Integration","sidebarTitle":"GitLab Self-Managed","href":"/setup/gitlab-self-managed"},{"title":"Azure DevOps Integration","sidebarTitle":"Azure DevOps","href":"/setup/azure-devops-integration"},{"title":"Prerequisite Checks","sidebarTitle":"Prerequisite Checks","href":"/setup/prerequisite-checks"}]},{"group":"Build Environment","pages":[{"title":"Modelcode Hosted","href":"/setup/build-environment/modelcode-hosted"},{"title":"Self-Hosted Daemon","href":"/setup/build-environment/self-hosted-daemon"},{"title":"Switching Environments","href":"/setup/build-environment/switching-environment"}]},{"group":"Project Setup","pages":[{"title":"Modernization Goals","href":"/setup/modernization-goals"},{"title":"Project Spec","href":"/setup/reviewing-project-spec"},{"title":"Validation Level","href":"/setup/validation-level"},{"title":"Lifecycle Strategy","href":"/setup/lifecycle-strategy"},{"title":"Lifecycle Setup","href":"/setup/lifecycle-setup"},{"title":"Acceptance Criteria","href":"/setup/acceptance-criteria"},{"title":"Git Strategy and Branches","sidebarTitle":"Git Strategy","href":"/setup/git-strategy"},{"title":"Collaborative Onboarding","href":"/setup/collaborative-onboarding"}]},{"group":"Running Your Migration","pages":[{"title":"Roadmap","href":"/migration/roadmap"},{"title":"Milestones","href":"/migration/milestones"},{"title":"When a Run Needs Your Help","href":"/migration/run-needs-help"},{"title":"Editing Milestones","href":"/customization/editing-milestones"},{"title":"Ad-Hoc Milestones","href":"/migration/adhoc-milestones"},{"title":"Validation Hub","href":"/migration/validation-hub"}]},{"group":"Code Review","pages":[{"title":"Pull Requests","description":"How to review and merge milestone PRs effectively","href":"/migration/pull-requests"},{"title":"Code Review Chat","href":"/migration/code-review-chat"},{"title":"Review Assignments","description":"Assign code review issues to team members and track your assigned reviews in one place","href":"/migration/review-issue-assignment"},{"title":"PR Agent","href":"/migration/pr-agent"}]},{"group":"Claude Code Integration","pages":[{"title":"Overview","href":"/claude-code/overview"},{"title":"Set Up Claude Code","href":"/claude-code/setup"},{"title":"Use Cases","href":"/claude-code/use-cases"}]},{"group":"Knowledge and Rules","pages":[{"title":"Project Knowledge","href":"/customization/project-knowledge"},{"title":"Comments","href":"/customization/commenting"},{"title":"Organizational Knowledge","href":"/customization/organizational-knowledge"},{"title":"Rules","href":"/customization/rules"}]},{"group":"Administration","pages":[{"title":"Daemon Administration","href":"/setup/build-environment/daemon-administration"},{"title":"Billing and Credits","href":"/support/billing-and-credits"},{"group":"Single Sign-On","pages":[{"title":"Single Sign-On","href":"/setup/sso/single-sign-on"},{"title":"OpenID Connect (OIDC)","href":"/setup/sso/oidc"},{"title":"SAML 2.0","href":"/setup/sso/saml"},{"title":"Okta","href":"/setup/sso/okta"},{"title":"Amazon Cognito","href":"/setup/sso/cognito"}]}]},{"group":"Support","pages":[{"title":"Troubleshooting","href":"/support/troubleshooting"},{"title":"FAQ","href":"/support/faq"},{"title":"Videos","href":"/support/videos"},{"title":"What's New","href":"/support/whats-new"}]}]},"basePath":"","title":"Code Review Chat - Modelcode","buildId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","deploymentId":"dpl_G2Qd45vZZ7MkBiGF9yYx8ZsbbKXX","dynamics":["a74be98ba7"],"chunks":["zoom-image-lightbox-BLUesUNd.js","lightbox-handle-r17bVUz3.js"]}