fix: Task completion result and null duration display bugs

1. task-worker.ts: Pass full result object to completeTask instead of
   non-existent result.data property (was causing {} to be stored)

2. WorkersDashboard.tsx: Handle null running_seconds in formatSecondsToTime
   (was displaying "nulls" due to JS type coercion)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Kelly
2025-12-14 12:02:05 -07:00
parent 60b221e7fb
commit b28a91fca5
2 changed files with 4 additions and 3 deletions

View File

@@ -2249,7 +2249,7 @@ export class TaskWorker {
if (result.success) {
// Layer 1: Verify DB completion was recorded
const dbVerified = await taskService.completeTask(task.id, { result: result.data });
const dbVerified = await taskService.completeTask(task.id, result);
if (!dbVerified) {
console.error(`[TaskWorker] ${this.friendlyName} task ${task.id} DB COMPLETION VERIFICATION FAILED`);
await taskService.failTask(task.id, 'DB completion verification failed');
@@ -2313,7 +2313,7 @@ export class TaskWorker {
if (result.success) {
// Use WorkerSession completion but also verify with taskService
await WorkerSession.completeTask(task.id, this.workerId, { result: result.data });
await WorkerSession.completeTask(task.id, this.workerId, result);
// Verify output exists for payload-creating tasks
const outputVerification = await taskService.verifyTaskOutput(task);

View File

@@ -587,7 +587,8 @@ function StepBadge({ worker }: { worker: Worker }) {
}
// Format seconds to human readable duration
function formatSecondsToTime(seconds: number): string {
function formatSecondsToTime(seconds: number | null | undefined): string {
if (seconds === null || seconds === undefined) return '-';
if (seconds < 60) return `${seconds}s`;
const mins = Math.floor(seconds / 60);
const secs = seconds % 60;