From c1eecd2cea7bd9852ac5c62e8082b55639a128be Mon Sep 17 00:00:00 2001 From: pyob-bot Date: Mon, 9 Mar 2026 21:01:07 +0000 Subject: [PATCH] PyOB Evolution: Automated refactor of `src/pyob/pyob_dashboard.py` (Iteration 2) --- src/pyob/pyob_dashboard.py | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/src/pyob/pyob_dashboard.py b/src/pyob/pyob_dashboard.py index 95409a3..a8c1029 100644 --- a/src/pyob/pyob_dashboard.py +++ b/src/pyob/pyob_dashboard.py @@ -66,6 +66,10 @@
Architectural Analysis
Scanning structure...
+
+
Pending Patches
+
Loading pending patches...
+
Manual Override
@@ -94,7 +98,28 @@ document.getElementById('analysis').innerText = data.analysis || "Parsing..."; const queueDiv = document.getElementById('queue'); queueDiv.innerText = data.cascade_queue?.length > 0 ? data.cascade_queue.join('\\n') : "EMPTY"; - } catch (e) { document.getElementById('status-pill').innerText = "OFFLINE"; } + + // Fetch pending patches and render them + const patchesResponse = await fetch('/api/pending_patches'); + const patchesData = await patchesResponse.json(); + const pendingPatchesDiv = document.getElementById('pending-patches'); + if (patchesData.patches && patchesData.patches.length > 0) { + pendingPatchesDiv.innerHTML = patchesData.patches.map(patch => ` +
+
Patch ID: ${patch.id}
+
${patch.description || 'No description provided.'}
+ + +
+ `).join(''); + } else { + pendingPatchesDiv.innerText = "No pending patches."; + } + + } catch (e) { + console.error("Error updating stats:", e); + document.getElementById('status-pill').innerText = "OFFLINE"; + } } async function setManualTarget() { @@ -108,6 +133,15 @@ document.getElementById('manualTargetFile').value = ''; } + async function reviewPatch(patchId, action) { + await fetch('/api/review_patch', { + method: 'POST', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify({ patch_id: patchId, action: action }) + }); + updateStats(); // Refresh the dashboard after review + } + setInterval(updateStats, 3000); updateStats();