feat(site): move lifecycle settings to AI settings#26625
Conversation
|
/coder-agents-review |
|
Chat: Review posted | View chat Review historydeep-review v0.9.0 | Round 5 | Last posted: Round 5, 16 findings (1 P2, 13 P3, 2 Nit), APPROVE. Review Finding inventoryFindings
Round logRound 1Netero-only. 1 P2, 2 P3, 1 Nit (1 dropped). CRF-1 included in body (no reviewer line for file-level finding). Reviewed against a306311..57342b1. Round 2Panel (17 reviewers). CRF-1/2/3 verified fixed. 1 P2, 8 P3, 2 Nit new. 1 Nit dropped. Reviewed against a306311..6c11e3d. Round 3Panel (6 reviewers). CRF-5 through CRF-15 verified fixed. 3 P3, 1 Nit new (1 dropped). Reviewed against a306311..fb07fa6. Round 4CRF-17/18/19 verified fixed. All findings resolved. Reviewed against a306311..b3b2305. Round 5Panel (4 reviewers). Structural file move from AgentsPage to AISettingsPage/LifecyclePage. No new P3+ findings. All prior fixes intact. Reviewed against a306311..5b23c57. About deep-reviewCRF = Coder Review Finding (P0-P4, Nit, Note)
|
There was a problem hiding this comment.
First-pass review (Netero). This is a mechanical check only; the full review panel has not yet reviewed this PR.
The refactor cleanly deduplicates four near-identical settings components into LifecycleSettingLayout and DaysField, and the route move + redirect is correct. The behavioral change from immediate-mutation toggles to form-dirty-then-save is a good UX improvement.
3 findings: 1 P2, 2 P3. The panel will review after these are addressed.
"Story count dropped from 33 to 7" is a 79% reduction in test surface for code that still has the same number of behavioral paths.
P2 [CRF-1] AgentSettingsLifecyclePageView.stories.tsx: Story count dropped from 33 to 7. Error-state, validation-boundary, and most toggle-off stories were removed without replacement.
Removed coverage includes:
- Error state rendering (8 stories):
AutoArchiveSaveError,AutoArchiveLoadError,RetentionSaveError,RetentionLoadError,DebugRetentionSaveError,DebugRetentionLoadError,DefaultAutostopToggleFailure,DefaultAutostopToggleOffFailure. The error display code still exists in all four components, but zero stories exercise it. - Validation boundaries (6 stories):
DefaultAutostopExceedsMax,AutoArchiveExceedsMax,AutoArchiveBelowMin,RetentionExceedsMax,RetentionBelowMin,DebugRetentionExceedsMax,DebugRetentionBelowMin. OnlyInvalidRetentionDisablesSaveremains, covering one case for one setting. - Toggle-off behavior (4 stories): Only
DirtyAutostopToggletests toggle-off. Auto-archive, retention, and debug retention toggle-off paths are untested.
The behavioral model changed (toggle no longer fires immediate mutations), so old stories are not directly portable. But validation schemas, error display code, and toggle-off submit paths are unchanged and now lack coverage. (Netero)
🤖 This review was automatically generated with Coder Agents.
Restored focused coverage for the remaining lifecycle paths while keeping the story set smaller than the previous full matrix. The stories now cover error rendering, representative validation boundaries, and toggle-off dirty-save submit paths across the settings. |
|
/coder-agents-review |
There was a problem hiding this comment.
Panel review (round 2, 17 reviewers). Prior findings CRF-1/2/3 all verified fixed.
The LifecycleSettingLayout extraction is well done. Four near-identical settings components collapsed into a single 79-line shared layout. The behavioral shift from immediate-toggle-save to explicit-save-on-dirty simplifies state management by eliminating four independent useState + reset-handler pairs. Route move with redirect is correct.
12 new findings: 1 P2, 8 P3, 2 Nit, 1 dropped. The P2 is a real user-facing functional bug in WorkspaceAutostopSettings where unconditional validation blocks saving the disabled state.
Process observation: the hasError touched-check divergence in WorkspaceAutostopSettings (4 reviewers flagged it) is intentional; DurationField doesn't expose onBlur to Formik, so touched is never set. Adding the guard would suppress validation errors entirely. Consider adding a one-line comment to explain the divergence for future readers.
Mafuuu: "The user sees an active Save button for edits the submit handler will discard when the toggle is off."
site/src/pages/AgentsPage/components/ChatsSidebar/settings/SettingsPanel.tsx:219
P3 [CRF-9] Stale internal link to="/agents/settings/lifecycle" in the Chats sidebar. The redirect works for external bookmarks, but the codebase controls this link and should point directly to /ai/settings/lifecycle. The redirect hop is unnecessary for internal navigation.
(Kite)
🤖
🤖 This review was automatically generated with Coder Agents.
CRF-9 fixed in |
|
/coder-agents-review |
There was a problem hiding this comment.
Re-review (round 3, 6 reviewers). All 11 findings from round 2 verified fixed. The fix commit was thorough: generalized from specific findings rather than patching only the cited instances; story count went from 7 to 29 with systematic coverage across all four settings.
3 new P3 findings, none blocking.
Bisky: "The rewritten suite is genuinely good. 29 stories, every assertion targets real rendered output, no fakes, no mocks of mocks, no fragile timing."
🤖 This review was automatically generated with Coder Agents.
|
/coder-agents-review |
There was a problem hiding this comment.
All findings resolved across 4 rounds (20 findings: 2 P2, 12 P3, 3 Nit raised; 17 fixed, 3 dropped). CRF-17/18/19 fixes verified in b3b2305.
This PR started as a settings relocation with significant test coverage loss, grew through three fix rounds into a well-structured refactor with better test coverage (38.3% test density, up from 14.3% in the original submission), honest type contracts, consistent validation patterns, and complete sidebar navigation.
The author-agent responded to every finding, generalized fixes to siblings rather than patching only cited instances, and added regression stories for each behavioral fix. No open findings remain.
🤖 This review was automatically generated with Coder Agents.
|
/coder-agents-review |
There was a problem hiding this comment.
Round 5 panel (4 reviewers + Netero). No new findings. The structural file move from AgentsPage/components/ to AISettingsPage/LifecyclePage/components/ is clean: zero stale references, all imports updated, all 17 prior fixes intact across the move, redirect preserved.
5 rounds, 20 findings raised, all resolved. Test density grew from 14.3% to 46.1% (29 stories). Clean to merge.
Mafu-san: "Scope matched intent. PR title says 'move lifecycle settings to AI settings.' R5 commit is +37/-37 lines of import path updates and renames. No scope creep, no silent feature changes, no 'while I'm here' edits."
🤖 This review was automatically generated with Coder Agents.
Moves the Coder Agents lifecycle settings into AI Settings and keeps the legacy Agents settings lifecycle URL redirecting to the new location.
Updates the lifecycle forms to match the new AI Settings layout and only show Save for the individual dirty setting form.
Note
🤖 This PR was written by Coder Agent on behalf of Danielle Maywood