feat(tracker): bind GitHub intake to user and labels#2527
Open
anirudh5harma wants to merge 7 commits into
Open
feat(tracker): bind GitHub intake to user and labels#2527anirudh5harma wants to merge 7 commits into
anirudh5harma wants to merge 7 commits into
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GitHub issue intake is now bound to the authenticated GitHub account, supports repository-native label filters, and previews the number of issues that match before settings are saved. This removes the broad
*assignee mode and makes intake scope visible and trustable without moving GitHub logic into Electron.Related: #2325
What this adds
Backend
GET /userendpoint and uses it for every intake poll; the user is no longer configurable in project state.GET /repos/{owner}/{repo}/labels, including pagination, names, colors, and descriptions.TrackerIntakeConfig; no SQLite migration is required. Multiple labels use AND semantics, while an empty selection means all eligible open issues assigned to the authenticated user.Frontend
Design notes
assigneeJSON field is ignored, and enabled intake binds to the account currently authenticated with GitHub.Validation
npm run frontend:typechecknpm --prefix frontend test— 49 files, 475 tests passedcd frontend && npx vite build --config vite.renderer.config.tscd backend && GOTOOLCHAIN=go1.25.7 go build ./... && GOTOOLCHAIN=go1.25.7 go vet ./...npm run apiwith no generated OpenAPI or TypeScript schema driftgolangci-lint v2.12.2— 0 issuesnpm run lintreaches the unchangedkilocodeinteractive-shell test and times out atTestAuthStatusUnknownWhenKeyOnlyComesFromInteractiveShell; all intake packages pass, and the linter was run separately above.Post-Deploy Monitoring & Validation
tracker intake: resolve authenticated user failed,tracker intake: list issues failed,GITHUB_LABELS_FAILED, andGITHUB_PREVIEW_FAILED.gh auth, repository labels load or revalidate without exhausting rate limits, preview counts match the observer's eligible set, and repeated polls do not create duplicate sessions.trackerIntake.enabledfor the affected project; roll back if the behavior reproduces across repositories.