Skip to content

Merge dev to main#1359

Merged
zbigniewsobiecki merged 3 commits into
mainfrom
dev
May 12, 2026
Merged

Merge dev to main#1359
zbigniewsobiecki merged 3 commits into
mainfrom
dev

Conversation

@zbigniewsobiecki
Copy link
Copy Markdown
Member

Routine dev → main promotion.

Commits

🤖 Generated with Claude Code

zbigniewsobiecki and others added 3 commits May 12, 2026 11:33
The visibility-poll added in commit fad4dda throws "Linear description
visibility timed out for issue X after 1000ms" whenever Linear's read
replica is slower than 1s — which is routine under load. Three planning
runs failed back-to-back on prod (2026-05-12) on this signal:

  MNG-741 run 44c1bc3f  11m  "no PM write recorded" (visibility throw
                              propagated up; CLI exited; sidecar never
                              written; gate failed)
  MNG-736 run 98ae7010  13m  same
  MNG-739 run 1534ab74  16m  same

The 1s wait was always advisory — it only guarded against in-process
consecutive `updateDescription` calls reading a stale GET between PUTs.
The new contract removes the wait entirely and adds an in-process
recent-description cache (60s TTL, keyed on issueId). After each
successful PUT, the cache stores the new description. The next
`updateDescription` call consults the cache before mutating — if GET
returned a stale pre-PUT value (Linear's eventual-consistency window),
the cached fresh value wins.

This gives the same in-process read-after-write guarantee the wait was
supposed to provide, without throwing on slow Linear days. The wait
never solved cross-process consistency (the existing
withDescriptionMutationLock is process-local too); the cache doesn't
either, but that scope was never claimed.

TDD test pins the worst case: Linear GET continues to return the stale
pre-PUT description forever; createChecklist + addChecklistItem must
still produce a correct PUT containing the appended item via the cache.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-authored-by: Cascade Bot <bot@cascade.dev>
…tion-visibility-advisory

fix(linear): replace visibility-poll with in-process cache (MNG-741)
@zbigniewsobiecki zbigniewsobiecki merged commit 491e079 into main May 12, 2026
8 checks passed
@codecov
Copy link
Copy Markdown

codecov Bot commented May 12, 2026

Codecov Report

❌ Patch coverage is 87.87879% with 12 lines in your changes missing coverage. Please review.

Files with missing lines Patch % Lines
src/pm/linear/adapter.ts 64.28% 9 Missing and 1 partial ⚠️
src/gadgets/shared/cli/params.ts 96.87% 2 Missing ⚠️

📢 Thoughts on this report? Let us know!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants