feat(projects): GLOOK-25 home page project drill-down — Jiras/PRs/Commits tabs#57
Conversation
… context, linked stats, _v:3 Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
…ect cards Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
… type so fields flow to ProjectsCard
…ject key Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
Code Review — New Commits (review-loop × 2 personas + Smartling fullstack)
🟡 Important — Fix before mergeI1 ·
|
| # | Issue | Why deferred |
|---|---|---|
| D1 | Shared activeTab across project rows |
Architecturally fragile for multi-expand but fully correct today — each expand resets to firstTab |
| D2 | noJiraData filter changed (commits-with-no-Jira → commits-with-no-PR) + inflightBlock sent without LLM instruction |
Behavioral change worth validating empirically; not a correctness bug |
| D3 | otherDetails arrays unbounded before caching to DB |
Performance concern at scale, not a current blocker |
| D4 | IIFEs in JSX for PRs/Commits tabs | Non-idiomatic but not incorrect; extract to named components in a follow-up |
| D5 | showAll state not cleared on project collapse |
Minor UX inconsistency on re-expand |
| D6 | No unit tests for new enrichment logic (enrichKey, commitsByJiraKey, dedup) |
Acknowledged in the plan doc; worth adding in a follow-up |
| D7 | commitBySha silently drops 7-char SHA prefix collisions |
Extremely rare in practice; log a warning when detected |
| D8 | LLM context size guard missing | Acceptable at current data scale; add a cap/alert if report scope grows |
Assessment: Not ready to merge as-is. I1 (SHA key collision) and I2 (regex single-match) are silent correctness bugs that affect drill-down data accuracy. I3 is a quick type-safety fix. S1–S2 are trivial. All four are straightforward changes.
Deferred: Missing tests for new enrichment logicThe existing test suite in The enrichment logic is non-trivial and contains the two correctness bugs flagged in I1/I2 above — both of which would have been caught by tests. Suggested coverage:
Not blocking merge, but worth adding before the next iteration on this route. |
…ls, import order, otherTab reset
Summary
Clicking any project card on the home page opens an inline drill-down panel showing exactly what the LLM attributed to that project.
What changed
LLM now sees all data: The project-insights route sends all 733 commits + 303 PRs + 362 Jiras. The LLM uses commit messages to correlate PRs and commits to projects — producing richer, more accurate clustering.
LLM enumerates what it attributed: Each project returns jira_keys, groups (epic themes), pr_numbers, and commit_shas. The backend enriches these with full DB details.
Inline drill-down on project cards:
Other row also expandable: Unattributed Jiras and PRs show Jiras and PRs tabs when clicked.
Cache version bumped to _v:3 — stale rows regenerate transparently on next load.
Test plan
🤖 Generated with Claude Code