Repository navigation
Use inline session section selector - #1649
Conversation
|
/kelos claude-review |
|
🤖 Kelos Task Status Task |
|
🤖 Kelos Claude Reviewer Agent @gjkim42 Review SummaryVerdict: APPROVE Findings Overview
FindingsCode quality
Suggestions (optional)
Key takeaways
|
f4c2796 to
6273ab6
Compare
There was a problem hiding this comment.
1 issue found and verified against the latest diff
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="internal/sessionserver/web/app.js">
<violation number="1" location="internal/sessionserver/web/app.js:3790">
P2: When a section update fails after polling refreshes the same selected Session, this renders the captured pre-request object and shows a stale section. Render `state.selected` instead so the inline selector reflects the current Session state.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| if (!session || state.sectionSaving) return; | ||
| if (section === (session.section || '')) { | ||
| elements.sectionDialog.close(); | ||
| renderSelectedSessionSection(session, false); |
There was a problem hiding this comment.
P2: When a section update fails after polling refreshes the same selected Session, this renders the captured pre-request object and shows a stale section. Render state.selected instead so the inline selector reflects the current Session state.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At internal/sessionserver/web/app.js, line 3790:
<comment>When a section update fails after polling refreshes the same selected Session, this renders the captured pre-request object and shows a stale section. Render `state.selected` instead so the inline selector reflects the current Session state.</comment>
<file context>
@@ -3751,77 +3744,89 @@ elements.displayNameForm.addEventListener('submit', async event => {
+ if (!session || state.sectionSaving) return;
if (section === (session.section || '')) {
- elements.sectionDialog.close();
+ renderSelectedSessionSection(session, false);
return;
}
</file context>
What type of PR is this?
/kind cleanup
What this PR does / why we need it:
Replaces the selected Session's section assignment dialog with an inline selector in the conversation header. Existing sections and Unsectioned apply immediately, while Create new section reveals an inline name field and Add action.
This keeps the section workflow in context and avoids opening a separate panel for a compact selection task. The removed dialog behavior, styles, tests, and documentation are rewritten around the inline interaction.
Which issue(s) this PR is related to:
N/A
Special notes for your reviewer:
Validated with:
make test TEST_FLAGS='-run TestApplicationSectionChooserBehavior\|TestSessionUISections -count=1'make verifyDoes this PR introduce a user-facing change?
Summary by cubic
Assigns a Session’s section from an inline selector in the header instead of a modal dialog. Previously a button opened a dialog; now changing the “Section” select applies immediately, and “Create new section…” reveals an inline name field and Add action. While saving, the form sets aria-busy and disables inputs; when no Session is selected, the control hides.
#session-section,#section-dialog,.close-section-dialog,.section-dialog,.session-section-button.#session-section-form,#session-section-choice(aria-label "Section"),#session-section-choice-custom,#save-session-section,.session-section-control.renderSelectedSessionSection,saveSelectedSessionSection,updateSelectedSectionField; integrated intorenderHeader.openSectionDialog,closeSectionDialog,handleSectionDialogCancel.Written for commit 6273ab6. Summary will update on new commits.