Files
novem/fixtures/github/issues.pull_request.PR_kwDONovem84.json

19 lines
1.6 KiB
JSON

{
"id": "PR_kwDONovem84",
"title": "feat(dashboard): hydrate issue pane from cached query state",
"state": "OPEN",
"is_draft": false,
"created_at": "2026-05-01T09:12:00Z",
"author": {
"login": "kennethnym",
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4"
},
"base_branch_name": "main",
"base_repo_slug": "kennethnym/novem",
"base_ref": "5e8745bfcc0c90c226d3c6af84226d6d4a5ec2d1",
"head_branch_name": "feat/cached-issue-pane",
"head_repo_slug": "kennethnym/novem",
"head_ref": "2bc41de7731b9ef48f7d64ee9f0d5f497dbe0a51",
"body": "## Summary\n\nHydrates the dashboard issue pane from cached query state so selection and scroll position stay stable during refetches. The active-row chip ![Selection stable badge](https://placehold.co/24x24.png?text=OK) stays visible beside the selected issue.\n\n### Rendering coverage\n- headings\n- bullet lists\n- inline code like `use_query`\n- tables\n\n### Implementation sketch\n```rust\nlet cached = query_store.read(key);\nlet selection = cached.and_then(|data| data.selected_issue_id.clone());\n```\n\n| Case | Expected behavior |\n| --- | --- |\n| Cache hit | Keep the current selection pinned |\n| Cache miss | Fall back to the first visible item |\n| Refetch in flight | Preserve scroll position |\n\n### Preview\n![Dashboard issue pane preserving selection during refetch](https://placehold.co/960x540.png?text=Dashboard+Issue+Pane)\n\n### Follow-up\n- mirror the same cache behavior in the pull request detail pane\n- add a smoke test around keyboard navigation during refetch\n\nSee also the [query store](src/query.rs) integration notes."
}