Add cache panel and canvas display to the workflow editor
- Dominant language
- Scala
- Stars
- 314
- Forks
- 187
- Avg merge
- 1d 21h
- Merged PRs (30d)
- 214
Description
### Task Summary
Part of #5881 (design: #5880).
Show the cache to the user: a panel that lists cache entries, marks the ones the current run can use, and lets the user clear them; and canvas markings for operators that completed from the cache and ports that have a saved result.
**Scope**
- A Cache tab in the left panel listing the workflow's cache entries (operator, port, tuple count, source execution, last updated, short cache key), with a filter for entries the current run can use and a button to clear all.
- Services that subscribe to the cache websocket events and drive the panel and the per-port labels.
- Canvas: cached operators shown in a distinct color, cached output ports marked, an operator that completed from the cache shown in the new state, and worker count reading "from cache".
- Context-menu actions to clear the cache for a selected operator, or for it and the operators upstream of it.
- Validate-time invalidation: after the editor validates a workflow, entries whose cache key no longer matches are removed, with a toggle to turn that off and a notice.
- TypeScript types for the cache entry and the two websocket events.
**Why this is safe.** Additive. If the backend sends no cache events, the panel is empty and the canvas markings stay hidden, so a workflow that does not use the cache looks and behaves as today. The result location is never sent to the UI. The one shared-code touch is the canvas port markup, which also touches the connection-validation code used by every workflow.
**Depends on.** #5885 (the cache events and endpoints the UI reads).
**Out of scope.** Any backend behavior. Cost or eviction controls.
### Task Type
- [ ] Refactor / Cleanup
- [ ] DevOps / Deployment / CI
- [ ] Testing / QA
- [ ] Documentation
- [ ] Performance
- [x] Other
Contributor guide
Research direction
Start with the cache websocket events and endpoints from #5885, then trace the workflow editor's Cache tab, canvas port markup, and context-menu entry points. Done means the panel, cache-driven canvas states, clearing actions, validation-time invalidation toggle, notices, and TypeScript cache event types work without changing backend behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- frontend
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100