Repository navigation
feat(ui): entities viewer and detail panel - #564
Conversation
Co-authored-by: Codex <codex@openai.com>
Co-authored-by: Codex <codex@openai.com>
Auto-load a long-entities Gantt under each leaf resource (injected synthetic row in QueryResourceTree), filtered by the same getLongEntitiesThreshold cutoff the timelines use. Remove the entity marks overlay from the resource timelines (and the now-dead "Hide tasks" toggle / hideTasks atom), and stop requesting long_fsms in the timeline bulk/single fetches.
… and state to body
Use the shared three-argument builder API after moving elapsed-time normalization earlier in the stack.
Keep the tooltip and row files compliant with the repository copyright hook.
…olbar while no settings
…have same fsm states as timeline; portal tooltip to new re-usable component
…ss jumping around when zooming/panning
…ity values, revised header
| } | ||
|
|
||
| function parseOptionalNumber(value: string): number | null { | ||
| if (value.trim() === '') return null; |
There was a problem hiding this comment.
You'll need to merge in main and run lint:fix, since main will enforce the brackets rule now
cmatzenbach
left a comment
There was a problem hiding this comment.
Commenting for now, as I haven't gotten a chance to do a thorough UI test
johallar
left a comment
There was a problem hiding this comment.
Changes look great! One organizational comment and one thought on the duration slider:
The duration slider should probably not have max of the whole range, but should be the longest entity (maybe query for a single entity sorted by longest duration to get the max of this slider?)
johanpel
left a comment
There was a problem hiding this comment.
Rust changes LGTM. Very nice feature, thanks!
Agree - fixed. I ended up using the top entity's end timestamp, since that gives us an absolute time range. EDIT: On second thought, we may want to revisit this in the future. The problem is, there are a decent amount of entities with very short ranges above that max. So setting the slider's max at the max of the longest entity automatically excludes these values. They can be restored by clicking the "Reset" button, but that behavior may not be desired - a point for discussion later on. For now how it works is, on page load all the entities are shown. If you drag the top end of the slider, it will treat the proposed max as the range of the slider. Thus, if you drag it back to the full range, you will be looking at a filtered result set - it does show one active filter, so hitting Reset will clear this filter and get you back to showing all the entities, but the user has to realize that. |
|
/merge |
Fair enough re collapsing the dag panel. It may be nice to add more detail here (like we I'd like to do for the resources dropdown) so you can see associated parent plans or workers, etc |


Description
This brings in the Entities table originally mocked out by @johanpel, with numerous UI/UX improvements. In addition, it adds an entities detail tab, which can be accessed either by clicking on a row in the entities table or by clicking on an entity in the timeline section.
Entities table changes:
QueryToolbarto the top of the view, so that current filters can be seen/cleared/etcEntities Detail tab:
Testing
Screenshots
entities-table.mp4
entity-detail-panel.mp4