feat(agent): list Linear project-milestones for fuzzy tracker matching - #4693
Conversation
…g project milestones Added the listOpenMilestones method to the LinearAdapter, enabling retrieval of non-archived project milestones with pagination support. Updated the class documentation to reflect this new functionality and its integration with the existing project tracking system. Enhanced unit tests to cover various scenarios, including API error handling and pagination across multiple pages.
|
🚨 Contributor flagged. Click here for more info: Superagent Dashboard |
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #4693 +/- ##
=======================================
Coverage 94.14% 94.14%
=======================================
Files 437 437
Lines 38531 38542 +11
Branches 14049 14051 +2
=======================================
+ Hits 36274 36285 +11
Misses 1599 1599
Partials 658 658
🚀 New features to boost your workflow:
|
|
Tip 🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩🟩 ✅ Gittensory review result - approve/merge recommendedReview updated: 2026-07-10 20:34:21 UTC
✅ Suggested Action - Approve/Merge
Review summary Nits — 5 non-blocking
Flagged checks (non-blocking)
Review context
Contributor next steps
Signal definitions
🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by Gittensory, a quiet PR intelligence layer for OSS maintainers.
|
Summary
Completes the remaining #3186 gap:
LinearAdapter.listOpenMilestoneswas an inert stub, so Linear suggest-mode could only fuzzy-match projects (milestones only appeared via nativeattachmentsForURLlinks). This wires workspaceprojectMilestoneslisting (paginated,includeArchived: false) and fail-open fuzzy matching for both projects and milestones — same best-effort pattern as the GitHub path.Supersedes closed #4642 with a narrower diff: no unused factory/probe helpers, and no guarded
src/auth/**/ routes changes (those held/closed the prior attempt).Closes #3186
Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Validation
git diff --checknpm run actionlintnpm run typechecknpm run test:coveragelocally;codecov/patchrequires ≥99% coverage of the lines AND branches you changed (aim for 100% on your diff so CI variance does not fail near the threshold). Global coverage is a non-blocking trend with a loose 90% backstop, not the gate.npm run test:workersnpm run build:mcpnpm run test:mcp-packnpm run ui:openapi:checknpm run ui:lintnpm run ui:typechecknpm run ui:buildnpm audit --audit-level=moderateIf any required check was skipped, explain why:
npx vitest run test/unit/linear-adapter.test.ts test/unit/project-tracker-adapter.test.ts(67 pass) with v8 coverage at 100% stmts/branches onsrc/integrations/linear-adapter.ts+project-tracker-adapter.ts. Will run fullnpm run test:ci+ audit before push.Safety
UI Evidencesection below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. (N/A — no visible UI changes.)UI Evidence
N/A — no UI/frontend/docs changes in this PR.
Notes
{ suggested: false }instead of throwing, matching GitHub fail-open.