{"record":{"id":"c9a7ec92ca0ab8d8","repo":"jackwener/OpenCLI","slug":"no-projects-matched-kwargs-project-try-witho","errorCode":null,"errorMessage":"No projects matched \"${kwargs.project}\". Try without --project.","messagePattern":"No projects matched \"(.+?)\"\\. Try without --project\\.","errorType":"exception","errorClass":"EmptyResultError","httpStatus":null,"severity":"warning","filePath":"clis/trae-solo/history.js","lineNumber":45,"sourceCode":"          project: headerText,\n          tasks: taskRows.map((row) => (row.innerText || '').trim().split('\\\\n')[0] || '(untitled)'),\n        });\n      }\n      return out;\n    })()`);\n\n        const filter = (kwargs.project || '').toLowerCase();\n        const limit = Number.isInteger(kwargs.limit) && kwargs.limit > 0 ? kwargs.limit : 100;\n        const rows = [];\n        for (const p of projects || []) {\n            if (filter && !p.project.toLowerCase().includes(filter)) continue;\n            const tasks = p.tasks.slice(0, limit);\n            for (let i = 0; i < tasks.length; i++) {\n                rows.push({ Project: p.project, 'Task Index': i + 1, Task: tasks[i] });\n            }\n        }\n        if (!rows.length) {\n            throw new EmptyResultError(\n                'trae-solo history',\n                filter\n                    ? `No projects matched \"${kwargs.project}\". Try without --project.`\n                    : 'No projects visible. Make sure TRAE SOLO is on the project-list view and the sidebar is expanded.',\n            );\n        }\n        return rows;\n    },\n});\n","sourceCodeStart":27,"sourceCodeEnd":55,"githubUrl":"https://github.com/jackwener/OpenCLI/blob/49907e53dc3ade5c223ff0c4c2c2785687cec4e6/clis/trae-solo/history.js#L27-L55","documentation":"The history command aggregates recent projects and tasks scraped from the Trae SOLO project-list view; when a --project filter is applied and the resulting rows are empty, this EmptyResultError is thrown with a suggestion to retry without the filter. Without a filter, a different message fires indicating the view itself isn't showing projects.","triggerScenarios":"Calling history with --project <name> where no scraped project name matches the filter string (exact match against rendered titles).","commonSituations":"Typos or different casing in the project name; project not open/visible in Trae SOLO's project list; sidebar collapsed so projects aren't rendered; filter uses a path while the UI shows only the project display name.","solutions":["Re-run without --project to see all visible project names, then copy the exact name","Match the display name exactly as shown in Trae SOLO's sidebar (case/punctuation)","Make sure Trae SOLO is on the project-list view with the sidebar expanded","If the project is missing entirely, open it once in Trae SOLO so it appears in history"],"exampleFix":"// before\nawait traeSoloCli.history({ project: 'MyApp' }); // throws if none matched\n// after\nconst all = await traeSoloCli.history({});\nconst row = all.find(r => r.Project.toLowerCase().includes('myapp'));\nif (!row) throw new Error('project not visible in Trae');\nconst tasks = await traeSoloCli.history({ project: row.Project });","handlingStrategy":"validation","validationCode":"const all = await traeSoloCli.history({}); // no filter\nconst match = all.find(r => r.Project === wanted);\nif (!match) throw new Error(`\"${wanted}\" not in visible projects: ${[...new Set(all.map(r => r.Project))].join(', ')}`);","typeGuard":"function projectVisible(rows, name) {\n  return rows.some(r => typeof r.Project === 'string' && r.Project === name);\n}","tryCatchPattern":"try {\n  rows = await traeSoloCli.history({ project: name });\n} catch (e) {\n  if (e instanceof EmptyResultError && /No projects matched/.test(e.message)) {\n    console.error('Run history without --project to list exact names.');\n  } else throw e;\n}","preventionTips":["Fetch unfiltered history once and pick exact project names from it","Expand the Trae SOLO sidebar and stay on the project-list view","Match display names exactly (copy/paste) rather than retyping"],"tags":["empty-result","filter-mismatch","trae-solo"],"backgroundTag":"empty-result-set","analyzedSha":"49907e53dc3ade5c223ff0c4c2c2785687cec4e6","analyzedAt":"2026-08-29T08:14:47.543Z","schemaVersion":2},"datasetVersion":"2026-08-29T12:17:43.993Z"}