440 lines
18 KiB
JSON
440 lines
18 KiB
JSON
[
|
|
{
|
|
"id": 9001,
|
|
"node_id": "PR_kwDONovem84",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/issues/84",
|
|
"repository_url": "https://api.github.com/repos/kennethnym/novem",
|
|
"labels_url": "https://api.github.com/repos/kennethnym/novem/issues/84/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/kennethnym/novem/issues/84/comments",
|
|
"events_url": "https://api.github.com/repos/kennethnym/novem/issues/84/events",
|
|
"html_url": "https://github.com/kennethnym/novem/pull/84",
|
|
"number": 84,
|
|
"state": "open",
|
|
"state_reason": null,
|
|
"title": "feat(dashboard): hydrate issue pane from cached query state",
|
|
"body": "## Summary\n\nHydrates the dashboard issue pane from cached query state so selection and scroll position stay stable during refetches.\n\n### Changes\n- reuse the cached query result before the network request resolves\n- keep the selected issue id pinned across list refreshes\n- fall back to the first visible item when the cached selection disappears\n\n### Behavior matrix\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 for refetch during keyboard navigation",
|
|
"body_text": "Wires the dashboard issue list to the query store and keeps selection stable while refetching.",
|
|
"body_html": null,
|
|
"user": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 11001,
|
|
"node_id": "LA_kwDONovem_feature",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/labels/feature",
|
|
"name": "feature",
|
|
"description": "New product capability.",
|
|
"color": "0E8A16",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 11002,
|
|
"node_id": "LA_kwDONovem_dashboard",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/labels/dashboard",
|
|
"name": "dashboard",
|
|
"description": "Dashboard experience.",
|
|
"color": "1D76DB",
|
|
"default": false
|
|
}
|
|
],
|
|
"assignee": null,
|
|
"assignees": [],
|
|
"milestone": null,
|
|
"locked": false,
|
|
"active_lock_reason": null,
|
|
"comments": 3,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/kennethnym/novem/pulls/84",
|
|
"html_url": "https://github.com/kennethnym/novem/pull/84",
|
|
"diff_url": "https://github.com/kennethnym/novem/pull/84.diff",
|
|
"patch_url": "https://github.com/kennethnym/novem/pull/84.patch",
|
|
"merged_at": null
|
|
},
|
|
"closed_at": null,
|
|
"created_at": "2026-05-01T09:12:00Z",
|
|
"updated_at": "2026-05-05T02:40:00Z",
|
|
"closed_by": null,
|
|
"author_association": "OWNER",
|
|
"draft": false,
|
|
"timeline_url": "https://api.github.com/repos/kennethnym/novem/issues/84/timeline",
|
|
"repository": {
|
|
"id": 101,
|
|
"node_id": "R_kgDONovem",
|
|
"name": "novem",
|
|
"full_name": "kennethnym/novem",
|
|
"owner": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/kennethnym/novem",
|
|
"description": "Desktop workspace for triaging GitHub work.",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/kennethnym/novem"
|
|
},
|
|
"performed_via_github_app": null,
|
|
"reactions": null,
|
|
"pinned_comment": null,
|
|
"type": null,
|
|
"sub_issues_summary": null
|
|
},
|
|
{
|
|
"id": 9005,
|
|
"node_id": "PR_kwDOSprint62",
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner/issues/62",
|
|
"repository_url": "https://api.github.com/repos/kennethnym/sprint-planner",
|
|
"labels_url": "https://api.github.com/repos/kennethnym/sprint-planner/issues/62/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/kennethnym/sprint-planner/issues/62/comments",
|
|
"events_url": "https://api.github.com/repos/kennethnym/sprint-planner/issues/62/events",
|
|
"html_url": "https://github.com/kennethnym/sprint-planner/pull/62",
|
|
"number": 62,
|
|
"state": "closed",
|
|
"state_reason": "completed",
|
|
"title": "feat(calendar): ship release handoff checklist in weekly planner",
|
|
"body": "## Release handoff checklist\n\nAdds the release checklist views and closes the loop for the May rollout.\n\n### Included\n- launch readiness checklist for QA, docs, and release engineering\n- handoff status badges in the weekly planner\n- empty-state copy for weeks without a scheduled release\n\n| Stage | Owner | Status |\n| --- | --- | --- |\n| QA sign-off | `@mariahops` | Done |\n| Docs publish | `@rorycraft` | Done |\n| Release window confirm | `@kennethnym` | Done |\n\n### Verification\n1. Open a release week and confirm checklist sections render in order.\n2. Mark each handoff item complete and confirm the summary badge updates.\n3. Review the planner on a narrow viewport.\n\n```text\nrelease_week -> handoff_panel -> checklist_sections\n```",
|
|
"body_text": "Adds the release checklist views and marks the handoff flow complete for the May rollout.",
|
|
"body_html": null,
|
|
"user": {
|
|
"login": "rorycraft",
|
|
"id": 7171,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/7171?v=4",
|
|
"html_url": "https://github.com/rorycraft",
|
|
"name": "Rory Craft",
|
|
"email": "rory@example.com"
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 14001,
|
|
"node_id": "LA_kwDOSprint_release_blocker",
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner/labels/release-blocker",
|
|
"name": "release-blocker",
|
|
"description": "Required before the next release can ship.",
|
|
"color": "B60205",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 14002,
|
|
"node_id": "LA_kwDOSprint_planning",
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner/labels/planning",
|
|
"name": "planning",
|
|
"description": "Roadmap and planning workflow.",
|
|
"color": "0E8A16",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 14003,
|
|
"node_id": "LA_kwDOSprint_tests",
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner/labels/tests",
|
|
"name": "tests",
|
|
"description": "Verification and test coverage.",
|
|
"color": "FBCA04",
|
|
"default": false
|
|
}
|
|
],
|
|
"assignee": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
{
|
|
"login": "mariahops",
|
|
"id": 6161,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/6161?v=4",
|
|
"html_url": "https://github.com/mariahops",
|
|
"name": "Maria Hops",
|
|
"email": "maria@example.com"
|
|
}
|
|
],
|
|
"milestone": null,
|
|
"locked": false,
|
|
"active_lock_reason": null,
|
|
"comments": 12,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner/pulls/62",
|
|
"html_url": "https://github.com/kennethnym/sprint-planner/pull/62",
|
|
"diff_url": "https://github.com/kennethnym/sprint-planner/pull/62.diff",
|
|
"patch_url": "https://github.com/kennethnym/sprint-planner/pull/62.patch",
|
|
"merged_at": "2026-05-04T18:10:00Z"
|
|
},
|
|
"closed_at": "2026-05-04T18:15:00Z",
|
|
"created_at": "2026-04-28T10:20:00Z",
|
|
"updated_at": "2026-05-05T01:10:00Z",
|
|
"closed_by": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"author_association": "MEMBER",
|
|
"draft": false,
|
|
"timeline_url": "https://api.github.com/repos/kennethnym/sprint-planner/issues/62/timeline",
|
|
"repository": {
|
|
"id": 104,
|
|
"node_id": "R_kgDOSprint",
|
|
"name": "sprint-planner",
|
|
"full_name": "kennethnym/sprint-planner",
|
|
"owner": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/kennethnym/sprint-planner",
|
|
"description": "Weekly planning board and release calendar.",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/kennethnym/sprint-planner"
|
|
},
|
|
"performed_via_github_app": null,
|
|
"reactions": null,
|
|
"pinned_comment": null,
|
|
"type": null,
|
|
"sub_issues_summary": null
|
|
},
|
|
{
|
|
"id": 9004,
|
|
"node_id": "PR_kwDONovem85",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/issues/85",
|
|
"repository_url": "https://api.github.com/repos/kennethnym/novem",
|
|
"labels_url": "https://api.github.com/repos/kennethnym/novem/issues/85/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/kennethnym/novem/issues/85/comments",
|
|
"events_url": "https://api.github.com/repos/kennethnym/novem/issues/85/events",
|
|
"html_url": "https://github.com/kennethnym/novem/pull/85",
|
|
"number": 85,
|
|
"state": "open",
|
|
"state_reason": null,
|
|
"title": "feat(repo): add cached repository query for titlebar picker",
|
|
"body": "## Summary\n\nIntroduces a cached repository query so the titlebar picker can switch context without hitting GitHub on every open.\n\n### Why\n- reduces flicker while the picker opens\n- keeps recent repositories available during short reconnects\n- avoids duplicate requests when the titlebar rerenders\n\n### Notes\n- cache invalidates on explicit refresh\n- fresh network data still wins when available\n- follow up with eviction metrics\n\n**Fast path:** render the warm cache immediately.\n*Background refresh* still reconciles stale rows.\n~~Empty refreshes~~ should never clear visible repositories.\n\n### Cache paths\n| Cache path | Expected behavior |\n| --- | --- |\n| Warm cache | Render repositories before the refresh finishes |\n| Refresh success | Replace cached rows with fresh network data |\n| Empty response | Keep the previous warm cache intact |",
|
|
"body_text": "Introduces a repository list query so the titlebar can switch context without hitting GitHub repeatedly.",
|
|
"body_html": null,
|
|
"user": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 11003,
|
|
"node_id": "LA_kwDONovem_performance",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/labels/performance",
|
|
"name": "performance",
|
|
"description": "Performance-sensitive change.",
|
|
"color": "5319E7",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 11004,
|
|
"node_id": "LA_kwDONovem_cache",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/labels/cache",
|
|
"name": "cache",
|
|
"description": "Caching and persistence work.",
|
|
"color": "0052CC",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 11005,
|
|
"node_id": "LA_kwDONovem_needs_review",
|
|
"url": "https://api.github.com/repos/kennethnym/novem/labels/needs-review",
|
|
"name": "needs-review",
|
|
"description": "Awaiting reviewer attention.",
|
|
"color": "FBCA04",
|
|
"default": false
|
|
}
|
|
],
|
|
"assignee": {
|
|
"login": "leaferiksen",
|
|
"id": 5151,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/5151?v=4",
|
|
"html_url": "https://github.com/leaferiksen",
|
|
"name": "Leaf Eriksen",
|
|
"email": "leaf@example.com"
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "leaferiksen",
|
|
"id": 5151,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/5151?v=4",
|
|
"html_url": "https://github.com/leaferiksen",
|
|
"name": "Leaf Eriksen",
|
|
"email": "leaf@example.com"
|
|
}
|
|
],
|
|
"milestone": null,
|
|
"locked": false,
|
|
"active_lock_reason": null,
|
|
"comments": 2,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/kennethnym/novem/pulls/85",
|
|
"html_url": "https://github.com/kennethnym/novem/pull/85",
|
|
"diff_url": "https://github.com/kennethnym/novem/pull/85.diff",
|
|
"patch_url": "https://github.com/kennethnym/novem/pull/85.patch",
|
|
"merged_at": null
|
|
},
|
|
"closed_at": null,
|
|
"created_at": "2026-05-03T07:40:00Z",
|
|
"updated_at": "2026-05-05T00:15:00Z",
|
|
"closed_by": null,
|
|
"author_association": "OWNER",
|
|
"draft": false,
|
|
"timeline_url": "https://api.github.com/repos/kennethnym/novem/issues/85/timeline",
|
|
"repository": {
|
|
"id": 101,
|
|
"node_id": "R_kgDONovem",
|
|
"name": "novem",
|
|
"full_name": "kennethnym/novem",
|
|
"owner": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/kennethnym/novem",
|
|
"description": "Desktop workspace for triaging GitHub work.",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/kennethnym/novem"
|
|
},
|
|
"performed_via_github_app": null,
|
|
"reactions": null,
|
|
"pinned_comment": null,
|
|
"type": null,
|
|
"sub_issues_summary": null
|
|
},
|
|
{
|
|
"id": 9002,
|
|
"node_id": "PR_kwDOAgent47",
|
|
"url": "https://api.github.com/repos/kennethnym/agent-tooling/issues/47",
|
|
"repository_url": "https://api.github.com/repos/kennethnym/agent-tooling",
|
|
"labels_url": "https://api.github.com/repos/kennethnym/agent-tooling/issues/47/labels{/name}",
|
|
"comments_url": "https://api.github.com/repos/kennethnym/agent-tooling/issues/47/comments",
|
|
"events_url": "https://api.github.com/repos/kennethnym/agent-tooling/issues/47/events",
|
|
"html_url": "https://github.com/kennethnym/agent-tooling/pull/47",
|
|
"number": 47,
|
|
"state": "open",
|
|
"state_reason": null,
|
|
"title": "feat(prompts): split context loading from execution workers",
|
|
"body": "## Goal\n\nSeparates prompt packing from worker orchestration to make delegation easier to reason about.\n\n### What changed\n- `ContextLoader` now owns repository and file hydration\n- workers receive a normalized prompt payload\n- retry handling stays at the orchestration layer\n\n### Boundaries\n| Boundary | Responsibility |\n| --- | --- |\n| `ContextLoader` | Hydrate repository and file context |\n| `PromptAssembler` | Build compact worker payloads |\n| `WorkerRunner` | Apply retry policy and collect results |\n\n### Open questions\n- should prompt packing expose token counts in debug builds?\n- should draft workers emit a dry-run preview?\n\n> Keeps the worker boundary small enough to test in isolation.",
|
|
"body_text": "Separates prompt packing from worker orchestration to make delegation easier to reason about.",
|
|
"body_html": null,
|
|
"user": {
|
|
"login": "leaferiksen",
|
|
"id": 5151,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/5151?v=4",
|
|
"html_url": "https://github.com/leaferiksen",
|
|
"name": "Leaf Eriksen",
|
|
"email": "leaf@example.com"
|
|
},
|
|
"labels": [
|
|
{
|
|
"id": 12001,
|
|
"node_id": "LA_kwDOAgent_dx",
|
|
"url": "https://api.github.com/repos/kennethnym/agent-tooling/labels/developer-experience",
|
|
"name": "developer-experience",
|
|
"description": "Improves contributor ergonomics.",
|
|
"color": "7057FF",
|
|
"default": false
|
|
},
|
|
{
|
|
"id": 12002,
|
|
"node_id": "LA_kwDOAgent_prompts",
|
|
"url": "https://api.github.com/repos/kennethnym/agent-tooling/labels/prompts",
|
|
"name": "prompts",
|
|
"description": "Prompt and agent coordination.",
|
|
"color": "1D76DB",
|
|
"default": false
|
|
}
|
|
],
|
|
"assignee": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"assignees": [
|
|
{
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
}
|
|
],
|
|
"milestone": null,
|
|
"locked": false,
|
|
"active_lock_reason": null,
|
|
"comments": 1,
|
|
"pull_request": {
|
|
"url": "https://api.github.com/repos/kennethnym/agent-tooling/pulls/47",
|
|
"html_url": "https://github.com/kennethnym/agent-tooling/pull/47",
|
|
"diff_url": "https://github.com/kennethnym/agent-tooling/pull/47.diff",
|
|
"patch_url": "https://github.com/kennethnym/agent-tooling/pull/47.patch",
|
|
"merged_at": null
|
|
},
|
|
"closed_at": null,
|
|
"created_at": "2026-04-30T14:22:00Z",
|
|
"updated_at": "2026-05-04T23:10:00Z",
|
|
"closed_by": null,
|
|
"author_association": "COLLABORATOR",
|
|
"draft": true,
|
|
"timeline_url": "https://api.github.com/repos/kennethnym/agent-tooling/issues/47/timeline",
|
|
"repository": {
|
|
"id": 102,
|
|
"node_id": "R_kgDOAgent",
|
|
"name": "agent-tooling",
|
|
"full_name": "kennethnym/agent-tooling",
|
|
"owner": {
|
|
"login": "kennethnym",
|
|
"id": 4242,
|
|
"avatar_url": "https://avatars.githubusercontent.com/u/4242?v=4",
|
|
"html_url": "https://github.com/kennethnym",
|
|
"name": "Kenneth Ng",
|
|
"email": "kenneth@example.com"
|
|
},
|
|
"private": false,
|
|
"html_url": "https://github.com/kennethnym/agent-tooling",
|
|
"description": "Experiments for agent-driven developer workflows.",
|
|
"fork": false,
|
|
"url": "https://api.github.com/repos/kennethnym/agent-tooling"
|
|
},
|
|
"performed_via_github_app": null,
|
|
"reactions": null,
|
|
"pinned_comment": null,
|
|
"type": null,
|
|
"sub_issues_summary": null
|
|
}
|
|
]
|