{ "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.\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### 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." }