Commit 69d1898
committed
fix(linear): teach agent to detect save_issue silent no-ops
DEM-9 (2026-05-27) hit a real failure mode: the agent posted "π PR
opened" + "β
Task completed successfully" and claimed it transitioned
the issue to In Review, but the issue stayed in In Progress. Root
cause: the DEM team's workflow has no In Review state. When
`mcp__linear-server__save_issue` gets a state name that doesn't exist
on the team, it silently returns 200 with the issue body unchanged,
so it looks like the call succeeded.
Update the Linear-channel prompt to tell the agent to:
- cache `list_issue_statuses` once per task instead of looping;
- check the cached state names before each transition and pick the
closest available one if the requested name doesn't exist;
- verify the response `state.name` matches what was asked, and NOT
claim success when the state didn't actually move.
Also forbid embedding `uploads.linear.app/...` URLs in `save_comment`
bodies β Linear's CDN signed URLs don't render when re-embedded by a
bot, producing the broken-image icon you saw on the DEM-9 PR comment.
GitHub's image proxy caches the bytes so the same URL works in PRs;
agent should link to the PR instead.
(cherry picked from commit 2fd73a4)1 parent 44b3ac3 commit 69d1898
2 files changed
Lines changed: 76 additions & 11 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
162 | 162 | | |
163 | 163 | | |
164 | 164 | | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
165 | 188 | | |
166 | 189 | | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
174 | 196 | | |
175 | 197 | | |
176 | | - | |
177 | | - | |
178 | | - | |
179 | | - | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
180 | 203 | | |
181 | 204 | | |
182 | 205 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
603 | 603 | | |
604 | 604 | | |
605 | 605 | | |
| 606 | + | |
| 607 | + | |
| 608 | + | |
| 609 | + | |
| 610 | + | |
| 611 | + | |
| 612 | + | |
| 613 | + | |
| 614 | + | |
| 615 | + | |
| 616 | + | |
| 617 | + | |
| 618 | + | |
| 619 | + | |
| 620 | + | |
| 621 | + | |
| 622 | + | |
| 623 | + | |
| 624 | + | |
| 625 | + | |
| 626 | + | |
| 627 | + | |
| 628 | + | |
| 629 | + | |
| 630 | + | |
| 631 | + | |
| 632 | + | |
| 633 | + | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 637 | + | |
| 638 | + | |
| 639 | + | |
| 640 | + | |
| 641 | + | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 645 | + | |
| 646 | + | |
| 647 | + | |
0 commit comments