@masslessai/push-todo 3.6.9 → 3.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/lib/daemon.js CHANGED
@@ -341,7 +341,7 @@ async function updateTaskStatus(displayNumber, status, extra = {}) {
341
341
  // Auto-generate execution event for timeline
342
342
  if (!payload.event) {
343
343
  const eventType = status === 'running' ? 'started'
344
- : status === 'completed' ? 'completed'
344
+ : status === 'session_finished' ? 'session_finished'
345
345
  : status === 'failed' ? 'failed'
346
346
  : null;
347
347
  if (eventType) {
@@ -940,7 +940,7 @@ function handleTaskCompletion(displayNumber, exitCode) {
940
940
  executionSummary += ` PR: ${prUrl}`;
941
941
  }
942
942
 
943
- updateTaskStatus(displayNumber, 'completed', {
943
+ updateTaskStatus(displayNumber, 'session_finished', {
944
944
  duration,
945
945
  sessionId,
946
946
  summary: executionSummary
@@ -960,7 +960,7 @@ function handleTaskCompletion(displayNumber, exitCode) {
960
960
  summary,
961
961
  completedAt: new Date().toISOString(),
962
962
  duration,
963
- status: 'completed',
963
+ status: 'session_finished',
964
964
  prUrl,
965
965
  sessionId
966
966
  });
@@ -58,6 +58,8 @@ export function formatTaskForDisplay(task) {
58
58
  statusPrefix = '🔄 '; // Running on Mac
59
59
  } else if (execStatus === 'queued') {
60
60
  statusPrefix = '⚡ '; // Queued for Mac
61
+ } else if (execStatus === 'session_finished') {
62
+ statusPrefix = '🏁 '; // Session finished on Mac
61
63
  } else if (execStatus === 'failed') {
62
64
  statusPrefix = '❌ '; // Failed
63
65
  } else if (execStatus === 'needs_clarification') {
@@ -135,6 +137,8 @@ export function formatTaskForDisplay(task) {
135
137
  lines.push('**Status:** 🔄 Running');
136
138
  } else if (execStatus === 'queued') {
137
139
  lines.push('**Status:** ⚡ Queued for Mac execution');
140
+ } else if (execStatus === 'session_finished') {
141
+ lines.push('**Status:** 🏁 Session finished');
138
142
  } else if (execStatus === 'failed') {
139
143
  const error = task.executionError || task.execution_error || 'Unknown error';
140
144
  lines.push(`**Status:** ❌ Failed: ${error}`);
@@ -223,6 +227,8 @@ export function formatTaskTable(tasks) {
223
227
  status = '🔄 Running';
224
228
  } else if (taskExecStatus === 'queued') {
225
229
  status = '⚡ Queued';
230
+ } else if (taskExecStatus === 'session_finished') {
231
+ status = '🏁 Finished';
226
232
  } else if (taskExecStatus === 'failed') {
227
233
  status = '❌ Failed';
228
234
  } else if (task.isBacklog || task.is_backlog) {
package/lib/watch.js CHANGED
@@ -50,7 +50,7 @@ function formatTaskLine(task) {
50
50
  statusIcon = '●';
51
51
  statusColor = codes.green;
52
52
  break;
53
- case 'completed':
53
+ case 'session_finished':
54
54
  statusIcon = '✓';
55
55
  statusColor = codes.green;
56
56
  break;
@@ -191,7 +191,7 @@ function formatUI(status) {
191
191
  lines.push('');
192
192
 
193
193
  for (const task of completedToday.slice(-3)) {
194
- lines.push(formatTaskLine({ ...task, status: 'completed' }));
194
+ lines.push(formatTaskLine({ ...task, status: 'session_finished' }));
195
195
  }
196
196
 
197
197
  if (completedToday.length > 3) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@masslessai/push-todo",
3
- "version": "3.6.9",
3
+ "version": "3.7.1",
4
4
  "description": "Voice tasks from Push iOS app for Claude Code",
5
5
  "type": "module",
6
6
  "bin": {