Skip to content

feat: git project drill-down from Projects view#200

Merged
vakovalskii merged 1 commit intovakovalskii:mainfrom
NovakPAai:claude/jack-feat-project-drilldown
Apr 21, 2026
Merged

feat: git project drill-down from Projects view#200
vakovalskii merged 1 commit intovakovalskii:mainfrom
NovakPAai:claude/jack-feat-project-drilldown

Conversation

@NovakPAai
Copy link
Copy Markdown
Collaborator

Summary

Adds the ability to drill into a specific git project from the Projects view and see only its sessions — instead of scrolling through a flat list of all sessions.

UX flow

  1. Open Projects in the sidebar — see all repos with session count, message count, and estimated cost
  2. Click Open › next to any project (e.g. tasktime-mvp)
  3. Switch to Sessions view filtered to only that project's sessions
  4. A breadcrumb bar appears: Project: tasktime-mvp × Clear filter
  5. Click "Clear filter" → return to Projects view

Any sidebar navigation automatically clears the filter.

Technical notes

  • Grouping by key, not namerenderProjects now groups by full git_root path instead of directory name, preventing collision when two repos share the same folder name
  • Filter reset on drill-down — clears searchQuery, tagFilter, dateFrom, dateTo and their UI elements before filtering, so users don't land on an empty list due to a previously active date range
  • XSS hardening — project key/name passed via data-proj-key / data-proj-name attributes and read via this.dataset in onclick, instead of inlining JSON.stringify() into the HTML attribute string
  • groupingMode note — drill-down always uses getRepoInfo (git-root key); this is intentional and documented in a comment

Test plan

  • Open Projects → click "Open ›" on any project → only that project's sessions appear
  • Breadcrumb shows project name and "Clear filter" button
  • Click "Clear filter" → returns to Projects view
  • Click any sidebar item while filter is active → filter clears, full sessions shown
  • Set a date filter, then drill into a project → date filter is reset, all project sessions visible
  • Two repos with same directory name in different paths → each appears as separate entry in Projects

- Add 'Open ›' button to each project row in Projects view; clicking it
  filters Sessions view to show only that project's sessions
- Show breadcrumb bar with project name and 'Clear filter' button that
  returns to Projects view
- Group renderProjects by git-root key (not name) to correctly handle
  repos with identical directory names
- Clear all other active filters (search, date, tag) when drilling down
  to avoid silently empty results
- Clear gitProjectFilter on any sidebar navigation via setView()
- Use data-* attributes for project key/name in Open button to avoid
  JSON.stringify in inline onclick handlers (XSS hardening)
- Document that drill-down always uses git-root key independent of
  groupingMode
Copy link
Copy Markdown
Owner

@vakovalskii vakovalskii left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM — key-based grouping fixes name collision, breadcrumb + filter reset is nice UX, dataset-based XSS hardening is the right call. Note: overlaps cleanly with #199 changes now that #199 is merged.

@vakovalskii vakovalskii merged commit c0be1df into vakovalskii:main Apr 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants