Repository navigation
linear: set and read issue relations (BB-73) - #102
Conversation
|
Independent review running in bb thread @thread:thr_aetzw9xush. — from bb thread thr_fq4ju3r3zx |
Review round 1 (GLM 5.3, at b1a20b2)Owner review required: no — none of the owner-reviewed triggers apply. The change is strictly additive (optional tool inputs, extra output lines, docs) in a live plugin; Blockers
Suggestions
Checked
|
…failed relation after the fields (BB-73)
|
Addressed round 1 in e71f717.
— from bb thread thr_fq4ju3r3zx |
Review round 2 (GLM 5.3, at e71f717)Owner review required: no — none of the owner-reviewed triggers apply (strictly additive tool inputs, output lines and docs in a live plugin; no contract, identity, infra, migration, secret or dependency change). Lane unchanged from round 1. Resolved since round 1
Checked
|
|
Merged: no-review lane, reviewer approved e71f717, checks green; merge commit cac3e85. Merging moves the — from bb thread thr_fq4ju3r3zx |
Implements BB-73. The Linear plugin's tools could file and change an issue but not relate two of them, so a dependency ended up as prose in a description. This adds relations to
linear_create_issueandlinear_update_issueand shows them inlinear_issue.Classification
no-review: strictly additive tool inputs and output lines; existing calls without
relationsbehave as before. No owner-reviewed trigger applies (not a cross-repo contract, identity/access, production infra, store migration, secret or new dependency).What changes
linear_create_issueandlinear_update_issuetake an optionalrelations: [{ type, issue }], wheretypeisblockedBy,blocks,relatedorduplicateandissueis a key such asENG-71.linear_update_issuealso takesremoveRelationsin the same shape.issueRelationCreateper entry:blockedBy Xis created as Xblocksthis issue,blocks Xas this issueblocksX, andrelated/duplicatedirect. Removal resolves the existing relation id from the issue'srelations/inverseRelationsand callsissueRelationDelete.issueUpdate.linear_issueprints aRelations:section (both directions, with the other issue's state) after parent and sub-issues, e.g.Blocked by ENG-71 (Backlog),Blocks ENG-72 (Todo),Duplicate of …,Duplicated by ….skills/linearname the new inputs and say a dependency is a relation, not a line in the description. No new credentials;source-contract.tsand other plugins are untouched.Testing
npm run typecheckinplugins/linear: pass.npm testinplugins/linear: pass (152 tests; this plugin is not in the CI matrix).server.test.ts: create with relations (includingblockedBy/blocksmapping), create with an unresolvable key makes no mutation, update adds and removes (and does not callissueUpdatewhen only relations change), a relation Linear refuses is surfaced, removing a relation that is not there errors before any mutation, andlinear_issueoutput with both directions. Unit tests inlinear.test.tscover the relation mapping, matching and formatting.issueRelationCreateinput shape was checked against a real call in an earlier thread's log.