{"record":{"id":"7ca85494f1e1a02b","repo":"jackwener/OpenCLI","slug":"no-tasks-on-disk","errorCode":null,"errorMessage":"No tasks on disk.","messagePattern":"No tasks on disk\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/trae-solo/task-fs.js","lineNumber":74,"sourceCode":"                .filter((n) => n.endsWith('.json') && !n.endsWith('-hooks.json') && !n.startsWith('boot') && !n.startsWith('ide_'))\n                .map((n) => n.replace(/\\.json$/, '')))\n            : new Set();\n        const all = [...new Set([...snapshotIds, ...configIds])];\n        const rows = all\n            .map((id) => {\n                const snapPath = path.join(TRAE_SNAPSHOT_DIR, id);\n                const configPath = path.join(TRAE_AGENTCONFIG_DIR, id + '.json');\n                const hasSnap = fs.existsSync(snapPath);\n                const hasCfg = fs.existsSync(configPath);\n                let mtime = 0;\n                if (hasSnap) mtime = Math.max(mtime, fs.statSync(snapPath).mtimeMs);\n                if (hasCfg) mtime = Math.max(mtime, fs.statSync(configPath).mtimeMs);\n                return { id, hasSnap, hasCfg, mtime };\n            })\n            .sort((a, b) => b.mtime - a.mtime);\n        const limit = Number.isInteger(args.limit) && args.limit > 0 ? args.limit : 100;\n        if (!rows.length) {\n            throw new EmptyResultError('trae-solo task-fs-list', 'No tasks on disk.');\n        }\n        return rows.slice(0, limit).map((r, i) => ({\n            Index: i + 1,\n            'Task Id': r.id,\n            'Has Snapshot': r.hasSnap ? 'yes' : 'no',\n            'Has Config': r.hasCfg ? 'yes' : 'no',\n            Modified: new Date(r.mtime).toISOString().replace('T', ' ').slice(0, 19),\n            Phase: '',\n            'Turn Id': '',\n            Commit: '',\n        }));\n    },\n});\n\n// -------- task-fs-turns --------\ncli({\n    site: 'trae-solo',\n    name: 'task-fs-turns',","sourceCodeStart":56,"sourceCodeEnd":92,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/trae-solo/task-fs.js#L56-L92","documentation":"An EmptyResultError from task-fs-list when the scan of Trae's task snapshot/config directories produced zero rows. It means no task directories exist on disk under the Trae session storage the command inspects.","triggerScenarios":"Running task-fs-list in an environment where Trae never created any tasks, the task storage root points to a wrong/empty path, or all candidate folders were filtered out (no snapshot and no config).","commonSituations":"Fresh Trae install with no chat/solo tasks; TRAE data dir env var misconfigured to an empty location; tasks cleaned by disk cleanup or after Trae cache reset.","solutions":["Create at least one task/conversation in Trae so snapshot/config folders appear, then retry.","Verify the tasks root path the CLI scans (ls it) and fix the configured TRAE data directory if empty.","Remove any filter that might be excluding all rows (e.g. restrictive --limit handling or directory checks)."],"exampleFix":"// before\nopencli trae-solo task-fs-list   # empty snapshot dir\n// after\nls ~/.trae/snapshot ~/.trae   # confirm data dir; create a task in Trae, then:\nopencli trae-solo task-fs-list","handlingStrategy":"validation","validationCode":"const fs = require('fs');\nif (!fs.existsSync(TASKS_ROOT)) throw new Error(`tasks dir missing: ${TASKS_ROOT} — no tasks created yet`);","typeGuard":null,"tryCatchPattern":"try {\n  return await taskFsList(args);\n} catch (e) {\n  if (/No tasks on disk/.test(e.message)) return []; // or surface a friendly hint\n  throw e;\n}","preventionTips":["Create at least one Trae task before running task-fs-list in automation","Verify the configured tasks/snapshot root path points at a real Trae data dir","Don't confuse an empty dir (valid) with a wrong path (config bug) — log the scanned root"],"tags":["empty-result","filesystem","cli"],"backgroundTag":"no-matching-results","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}