Repository: cppa-cursor-browser
Assignee: Brad @bradjin8
Points: 3
Severity: High
Problem
When the bubble-processing pipeline encounters a parse failure, it silently returns a truncated result set. The API response contains no signal that data was dropped — a response listing 8 conversations may have silently omitted 3 others that failed to parse. Consumers of both the web UI and the HTTP API have no way to know whether they are seeing a complete or partial result. In a domain where Cursor's schema changes without notice, format drift will cause parse failures, and the current design will produce silently incomplete results with no operator visibility.
Acceptance Criteria
Implementation Notes
Modify the service-layer functions in services/workspace_tabs.py and services/workspace_listing.py to return a result object or tuple that includes both the data and a list of errors/warnings, rather than just the data list. The API handlers in api/ can then include the warnings in the JSON response. For the web UI, the frontend JavaScript can check for the warnings field and display a notification banner. The SchemaError class already in the models layer provides a structured error pattern to follow — extend it or create a ParseWarning dataclass. This item depends on item 1 (replacing except-pass) — the logging and the signaling can be implemented together.
References
- Eval finding: Test 7 (Misuse Resistance / Least Surprise) — part of the "Silent Failure Chain" compound
- Related files:
services/workspace_tabs.py, services/workspace_listing.py, api/workspaces.py, api/search.py
Repository: cppa-cursor-browser
Assignee: Brad @bradjin8
Points: 3
Severity: High
Problem
When the bubble-processing pipeline encounters a parse failure, it silently returns a truncated result set. The API response contains no signal that data was dropped — a response listing 8 conversations may have silently omitted 3 others that failed to parse. Consumers of both the web UI and the HTTP API have no way to know whether they are seeing a complete or partial result. In a domain where Cursor's schema changes without notice, format drift will cause parse failures, and the current design will produce silently incomplete results with no operator visibility.
Acceptance Criteria
"warnings": [{"type": "parse_error", "count": N, "detail": "..."}]) or equivalent metadatawarningsare not broken)Implementation Notes
Modify the service-layer functions in
services/workspace_tabs.pyandservices/workspace_listing.pyto return a result object or tuple that includes both the data and a list of errors/warnings, rather than just the data list. The API handlers inapi/can then include the warnings in the JSON response. For the web UI, the frontend JavaScript can check for thewarningsfield and display a notification banner. TheSchemaErrorclass already in the models layer provides a structured error pattern to follow — extend it or create aParseWarningdataclass. This item depends on item 1 (replacing except-pass) — the logging and the signaling can be implemented together.References
services/workspace_tabs.py,services/workspace_listing.py,api/workspaces.py,api/search.py