From 608668d8a6ebfcd7df8c9ccb54e9c2a3d0105cd6 Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Tue, 5 May 2026 10:48:01 +0000 Subject: [PATCH] =?UTF-8?q?fix(dashboard):=20replace=20broken=20Ruleaz?= =?UTF-8?q?=C4=83=20Ralph=20on=20idle=20cards=20with=20Propose?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The idle-state action called /api/projects/approve, which 404'd because idle workspace dirs have no approved-tasks.json entry to mutate. Now the button opens the Propose modal pre-filled with the workspace slug so the user actually has a path forward. Co-Authored-By: Claude Opus 4.7 (1M context) --- dashboard/workspace.html | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/dashboard/workspace.html b/dashboard/workspace.html index d910102..2838b30 100644 --- a/dashboard/workspace.html +++ b/dashboard/workspace.html @@ -1331,8 +1331,8 @@ ]; case 'idle': return [ - { label: 'Rulează Ralph', type: 'secondary', action: () => approveProject(slug) }, - { label: 'Șterge', type: 'ghost', action: () => confirmDeleteIdle(slug) }, + { label: 'Propune feature', type: 'secondary', action: () => openProposeModal(slug) }, + { label: 'Șterge', type: 'ghost', action: () => confirmDeleteIdle(slug) }, ]; default: return []; @@ -1655,12 +1655,13 @@ proposeDesc.classList.remove('is-invalid'); } - function openProposeModal() { + function openProposeModal(prefilledSlug) { clearProposeErrors(); - proposeSlug.value = ''; + proposeSlug.value = prefilledSlug || ''; proposeDesc.value = ''; proposeWithPlanning.checked = true; - openModal(proposeModal, { focusSelector: '#proposeSlug' }); + const focusSel = prefilledSlug ? '#proposeDesc' : '#proposeSlug'; + openModal(proposeModal, { focusSelector: focusSel }); } function requestCloseProposeModal() {