19 lines
1.6 KiB
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  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\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."
|
|
}
|