release: v0.51.32 — Release I (2-PR batch: #1943 lineage segment expand + #1965 kanban modal)#1971
Merged
Conversation
The Kanban sidebar panel's header '+' button (#kanbanNewTaskBtn) was wired straight to createKanbanTask(), which reads the inline #kanbanNewTaskTitle input and silently returns when empty. The inline input lives below five rows of filters (search, assignee, tenant, archived/mine toggles, stats, bulk-action bar) and is typically off-screen on first panel open, so the header button looked dead — clicking it with no title typed did nothing visible (no modal, no scroll, no focus shift, no toast). Now the header '+' opens #kanbanTaskModal — a centered overlay with the same .kanban-modal-overlay shell the existing create-board modal uses, so the two flows look and behave identically (centered card, dim backdrop, ESC closes, click-on-backdrop closes). The modal exposes the fields the backend already accepts at /api/kanban/tasks: Title, Description, Status (Triage/Todo/Ready), Priority, Assignee (datalist suggestions from the active board), Tenant (datalist). UX details: - Title is required; submit-with-empty shows a properly styled red error - Title field auto-focuses on open - ESC closes the modal; backdrop click closes; Enter on simple inputs submits, Enter in the description textarea inserts a newline - Submit POSTs only the fields the user filled in (no forced empty strings) and auto-opens the new task's detail view - Submit button disables while posting to prevent double-submit - Inline quick-add (Enter on #kanbanNewTaskTitle) is preserved as a power-user shortcut Side effect: .kanban-modal-error styling improved (proper red alert with border + tinted background) so the existing create-board modal benefits from the same polish for free. i18n: 11 new keys added across all 8 supported locales (en, ja, ru, es, de, zh, pt, ko). Tests: tests/test_kanban_ui_static.py::test_kanban_new_task_header_button_opens_modal covers the modal markup, button wiring, ESC/Enter handling, datalist population, submit behavior, and inline-quick-add fallthrough. Verified end-to-end in the browser on an isolated test env (port 8789): created a board from scratch, opened the modal via header '+', submitted with title/description/status/priority/assignee/tenant filled in, moved the task through statuses (Triage → Todo → Ready → Blocked → Archived), added a comment, verified Cancel + ESC + backdrop-click all close cleanly, verified validation error rendering, verified inline quick-add still works. Closes #1964
…modal (#1964) by @nesquena-hermes # Conflicts: # CHANGELOG.md
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Release I (v0.51.32) — 2-PR contributor batch + kanban modal
Stage-327 absorbs 2 ready-to-ship PRs, both with prior independent approvals:
What ships
Added (1 PR)
_lineage_segmentslist as expandable rows. Auto-expands when active session is one of the hidden segments. Backend-projected count-only rows still render as the passive badge (no behavior change). Frontend-only — no new endpoints. @aronprins APPROVED.Fixed (1 PR)
+button (#kanbanNewTaskBtn, "New task" tooltip) was wired tocreateKanbanTask()which silentlyreturns on empty title — making the obvious header button look completely dead. Now opens a centered modal (#kanbanTaskModal) with Title (required), Description, Status, Priority, Assignee (datalist), Tenant (datalist). ESC + backdrop close, Enter submits, autofocus on Title. The inline quick-add (Enteron#kanbanNewTaskTitle) is preserved. @nesquena APPROVED with full headless-Chrome harness verifying all 7 modal interactions.Pre-release verification
node -con 3 modified files)Opus advisor verdict — verbatim
Follow-up items filed (non-blocking)
Three small post-ship improvements Opus surfaced; will track as separate issues:
kanban_no_commentsandkanban_no_runswere already absent from the two zh-Hant locale blocks pre-fix(kanban): header '+' button opens create-task modal (#1964) #1965 (English fallback works). Worth a small PR to align.test_kanban_modal_locale_parity— analogous to feat: expand collapsed session lineage segments #1943'stest_lineage_segment_locale_keys_are_defined_for_sidebar_locales. Assertsi18n.count("kanban_title:") >= i18n.count("kanban_no_comments:")on master to catch future kanban-key locale drift..kanban-modal-overlay. Affects both the new task modal AND the existing create-board modal. A11y improvement.What's NOT in this release
hold,ux,ready-for-review. Maintainer requested screenshots Sat 18:56-18:57; no contributor response yet. Plus they're competing implementations of the same feature — maintainer call on which ships pending screenshots.hold,ux. Same screenshot request, no response yet.hold,upstream-change. Re-verified hermes-agent #18534 hasn't shipped (provider_model_ids("deepseek")still returns onlydeepseek-v4-pro+deepseek-v4-flash).maintainer-reviewapplied today. LM Studio integration itself is good (mirrors existingnouspattern), but the bundled "Configured" badge is a UX regression that pins ~107 entries for a 3-provider user. Split-requested; awaiting contributor response.Closes: #1964
🤖 Generated with Claude Code
Co-authored-by: dso2ng dso2ng@users.noreply.github.com