diff --git a/src/web/public/session-ui.js b/src/web/public/session-ui.js
index d3cbec61..15628b33 100644
--- a/src/web/public/session-ui.js
+++ b/src/web/public/session-ui.js
@@ -161,17 +161,37 @@ Object.assign(CodemanApp.prototype, {
const selected = option.name === selectedName;
const id = `quickStartCaseOption-${index}`;
return `
-
+
+
+
+
+
+
+
`;
})
.join('');
@@ -238,6 +258,20 @@ Object.assign(CodemanApp.prototype, {
});
list.addEventListener('mousedown', event => event.preventDefault());
list.addEventListener('click', event => {
+ const action = event.target.closest?.('[data-case-action]');
+ if (action) {
+ event.preventDefault();
+ event.stopPropagation();
+ const caseName = action.closest('.case-combobox-row')?.dataset?.case;
+ if (!caseName) return;
+ if (action.dataset.caseAction === 'edit') {
+ this.editCaseFromPicker(caseName);
+ } else if (action.dataset.caseAction === 'delete') {
+ this.closeCasePicker();
+ this.deleteCase(caseName);
+ }
+ return;
+ }
const option = event.target.closest?.('.case-combobox-option');
if (option?.dataset?.case) {
this.selectQuickStartCase(option.dataset.case);
@@ -1637,6 +1671,23 @@ Object.assign(CodemanApp.prototype, {
if (desktopOpusCheckbox) desktopOpusCheckbox.checked = settings.opusContext1m;
},
+ editCaseFromPicker(caseName, mobile = false) {
+ this.selectQuickStartCase(caseName);
+ if (mobile) this.closeMobileCasePicker();
+
+ const popover = document.getElementById(
+ mobile ? 'caseSettingsPopoverMobile' : 'caseSettingsPopover'
+ );
+ // Force the existing toggle onto its open path even if another case's
+ // settings popover was already visible.
+ popover?.classList.add('hidden');
+ if (mobile) {
+ this.toggleCaseSettingsMobile();
+ } else {
+ this.toggleCaseSettings();
+ }
+ },
+
// ═══════════════════════════════════════════════════════════════
// Create Case Modal
// ═══════════════════════════════════════════════════════════════
@@ -2441,25 +2492,41 @@ Object.assign(CodemanApp.prototype, {
for (const c of allCases) {
const isSelected = c.name === currentCase;
html += `
-