Repository navigation
feat(server): keep issue links current with paced refreshes - #98
Merged
Merged
Conversation
Bil0000
marked this pull request as ready for review
October 4, 2026 16:13
Bil0000
added this pull request to stack #103
October 4, 2026 16:14
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.
Linked issues kept the title they had when saved and showed no open or closed state. The server now refreshes active thread links, saves the current title and state, and sends those changes to every connected client. It checks newly added links right away. Active open links refresh every 4–6 minutes; settled or closed links refresh every 24–36 minutes. The spread keeps host calls from arriving at the same time.
This layer builds on the issue auto-link rule above the original issue tracking PR. Its diff keeps issue metadata current and brings issue reads under the existing PR request safeguards.
Updates use the thread project, provider, and host. An atomic guard prevents a late host reply from overwriting a newer link, a removed link, or a link that was added again. Shared links use one host read per sweep. Sync does not change the thread activity time.
GitHub and Linear background updates read only the issue number, title, URL, and state. A 15-second shared cache combines repeated reads without clearing full issue details. Other providers keep their existing detail read.
GitHub issue reads now share the existing PR host/account pause and 10% GraphQL reserve. Linear honors HTTP 429 and GraphQL
RATELIMITEDresponses, retry headers, and request/complexity reset times. Its pauses stay scoped to the credential; an endpoint-only pause leaves other operations available. Sync resumes at the reported reset rather than applying the generic 30-minute failure delay.Verified with 189 focused CLI, provider, service, sync, rate-limit, and PR discovery tests, scoped server type checks, lint, and whitespace checks. Tests cover the four-read limit, separate host/account failures, spread polling, immediate edits, link races, narrow summary reads, the shared GitHub reserve, and Linear reset and endpoint isolation. This image shows actual thread metadata before and after a fake host issue changed. No real host API was called.
Archived and deleted threads are skipped. Successful edits, close, and reopen through T3 request an immediate refresh, including MCP calls. Host failures use per-issue or per-source retry delays. Changes made outside T3 can take up to 36 minutes to appear on closed or settled links. Issue-only metadata changes no longer trigger PR discovery.
The polling, retry, and refresh improvements build on @TonybynMp4’s #105, while keeping the guarded write path.
Model: GPT-6.1 Sol High. Harness: native Codex through T3 Code.