summaryrefslogtreecommitdiff
path: root/web/templates/index.html
diff options
context:
space:
mode:
authorPeter Stone <thepeterstone@gmail.com>2026-07-18 00:14:45 +0000
committerPeter Stone <thepeterstone@gmail.com>2026-07-18 00:14:45 +0000
commitf08f06bef47aac2c9effb4cec650d99c2deb2dd7 (patch)
treeae06bd2e140c678e67f2879f21b07a4114a41f73 /web/templates/index.html
parentbe4d606e9a1f5b068abcc21bbac58d1e4705ea1f (diff)
Rework Tasks tab: Chains section, checklist modal, project visibility
The flat Tasks-tab atom list was silently dumping every chain step (locked and unlocked) and dormant bucket-pool items in as ordinary undated cards, with no chain/project context and no protection against completing a locked step out of order. - CompleteNativeTask now rejects completing a locked chain task (ErrChainTaskLocked), mapped to 400 in both the widget and web complete-atom handlers. - Chain tasks and dormant bucket items are excluded from the flat atom list; a new "Chains" section shows one card per active/paused chain with the current step and N/M progress. - New chain checklist modal (GET /chains/{id}) lists every position in order with pause/resume/abandon -- the web view originally deferred as Android-only. - Fixed a real bug this surfaced: resuming a paused chain only flipped the status flag, never unlocking the deferred successor, so a chain paused right after a completion stayed stuck forever. SetChainStatus now catches up the deferred advancement on resume, idempotently. - Atom cards gained a project-name chip for general visibility. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01EZ7ikw2ukGJFTHE3bJS7zL
Diffstat (limited to 'web/templates/index.html')
-rw-r--r--web/templates/index.html17
1 files changed, 17 insertions, 0 deletions
diff --git a/web/templates/index.html b/web/templates/index.html
index 19f1c7e..7be2c52 100644
--- a/web/templates/index.html
+++ b/web/templates/index.html
@@ -262,11 +262,15 @@
if (e.key === 'Escape') {
closeActionModal();
closeTaskModal();
+ closeChainModal();
}
});
function closeTaskModal() {
document.getElementById('task-edit-modal').classList.add('hidden');
}
+ function closeChainModal() {
+ document.getElementById('chain-view-modal').classList.add('hidden');
+ }
</script>
<!-- Task Edit Modal -->
@@ -282,6 +286,19 @@
</div>
</div>
+ <!-- Chain Checklist Modal -->
+ <div id="chain-view-modal" class="hidden fixed inset-0 bg-modal-overlay flex items-center justify-center p-4 z-50">
+ <div class="bg-modal backdrop-blur-sm rounded-lg max-w-lg w-full max-h-[80vh] flex flex-col" style="box-shadow: 0 0 20px black;">
+ <div class="p-4 border-b border-white/10 flex justify-between items-center flex-shrink-0">
+ <h2 class="font-medium text-white">Chain</h2>
+ <button onclick="closeChainModal()" class="text-white/40 hover:text-white">✕</button>
+ </div>
+ <div id="chain-view-content" class="overflow-y-auto">
+ <p class="p-4 text-white/50 text-sm">Loading...</p>
+ </div>
+ </div>
+ </div>
+
<div class="fixed bottom-0 right-0 p-2 text-[10px] text-white/20 pointer-events-none">
{{.BuildVersion}}
</div>