fix(KB-217): resolve planning mode hanging race condition

- Fix race condition causing planning mode to hang after submitting answers
- Keep SSE connection alive during response submission to prevent premature disconnect
- Add scrollable CSS styling for AI thinking output display in planning mode
- Add tests for race condition fix ensuring subsequent questions are received
- Include changeset for planning mode patch release
This commit is contained in:
gsxdsm
2026-03-30 18:12:49 -07:00
parent 7cfce83479
commit 2fa0b1bbfb
4 changed files with 152 additions and 47 deletions

View File

@@ -6918,6 +6918,56 @@ html .column.drag-over * {
color: var(--text-muted);
}
/* AI Thinking Output Display */
.planning-thinking-container {
display: flex;
flex-direction: column;
align-items: center;
gap: 12px;
width: 100%;
max-width: 600px;
}
.planning-thinking-toggle {
padding: 6px 12px;
font-size: 13px;
font-weight: 500;
color: var(--text-muted);
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius-md);
cursor: pointer;
transition: all 0.15s ease;
}
.planning-thinking-toggle:hover {
background: var(--card-hover);
color: var(--text);
}
.planning-thinking-output {
width: 100%;
max-height: 300px;
overflow-y: auto;
overflow-x: hidden;
background: var(--card);
border: 1px solid var(--border);
border-radius: var(--radius-lg);
padding: 16px;
text-align: left;
}
.planning-thinking-output pre {
margin: 0;
white-space: pre-wrap;
word-wrap: break-word;
overflow-wrap: break-word;
font-family: var(--font-mono);
font-size: 13px;
line-height: 1.6;
color: var(--text);
}
/* Responsive */
@media (max-width: 768px) {
.planning-modal {
@@ -6996,6 +7046,20 @@ html .column.drag-over * {
max-width: none;
}
/* Planning thinking output mobile adjustments */
.planning-thinking-container {
max-width: 100%;
}
.planning-thinking-output {
max-height: 200px;
padding: 12px;
}
.planning-thinking-output pre {
font-size: 12px;
}
/* Prevent mobile zoom on focus for planning text inputs (16px minimum) */
.planning-textarea {
font-size: 16px;