feat: close issues and continue Today session (#391)
CI / lint (pull_request) Successful in 42s
CI / build-release (pull_request) Successful in 5s
CI / release-candidate (pull_request) Has been skipped

This commit is contained in:
timmy committed 2026-08-09 10:12:55 +00:00
1 parent bf4ce3adad
commit 6dea5fd1ef
2 files changed
+29 -4

No files matched your search

+11 -4
View File
@@ -981,7 +981,7 @@
);
}
function refreshMyWorkView() {
function refreshMyWorkView({ reconcileSession = true } = {}) {
lastDrafts = listDrafts();
const partitioned = laterWork.partition(lastMyWork, {
pruneMissing: !Object.values(workPagination).some(page => page?.has_more),
@@ -1040,7 +1040,7 @@
'No assigned work, review requests, or unread updates.';
updateWorkPaginationControls();
renderMyWork();
if (workSession.active()) workSession.reconcile();
if (reconcileSession && workSession.active()) workSession.reconcile();
}
function activeWorkStreams() {
@@ -1528,6 +1528,7 @@
qs('#issue-edit-form').hidden = true;
qs('#issue-edit-status').textContent = '';
qs('#close-issue').disabled = false;
qs('#close-issue').textContent = workSession.active() ? 'Close & next' : 'Close issue';
qs('#close-issue-sheet').focus();
try {
const detail = offlineDetail || await issueController.load(item);
@@ -3139,8 +3140,14 @@
lastMyWork = lastMyWork.filter(item =>
!(item.kind === 'issue' && item.repository === closing.repository && item.number === closing.number)
);
refreshMyWorkView();
qs('#my-work-action-status').textContent = closing.key + ' closed.';
refreshMyWorkView({ reconcileSession:false });
const continuingSession = workSession.active();
if (workSession.active()) workSession.complete();
if (continuingSession && workSession.active()) {
qs('#my-work-action-status').textContent = closing.key + ' closed. Next work item opened.';
} else if (!continuingSession) {
qs('#my-work-action-status').textContent = closing.key + ' closed.';
}
} catch (error) {
qs('#issue-sheet-status').textContent = error.message + ' The issue remains in My Work; retry.';
button.disabled = false;