Repository navigation
feat(issues): add Linear as a standalone issue tracker - #19274
juliusmarminge wants to merge 1 commit into
Conversation
Thread transfer impact✅ Thread transfer remains within every enforced ceiling.
Other scenariosNo All 64 scenario measurements
Baseline: unavailable · PR result: Scenario and decoded snapshot size10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.
Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed. |
3a125b2 to
596e260
Compare
596e260 to
44da10d
Compare
44da10d to
6581527
Compare
3442104 to
62eeaa6
Compare
62eeaa6 to
322107b
Compare
|
Multi-account question As written, a server can only be connected to one account per standalone tracker, so one Linear workspace (and one Jira site once that lands):
Linear API keys are per workspace, so anyone with two workspaces (say work and a client) can only use one. Per-project choice isn't possible either. Is that an intentional v1 limit? If we want multi-account later, it's cheapest to add a |
|
Two things from our fork that this stack doesn't cover yet, in case they're useful as reference: nSimonFR-ai#1
Happy to tackle both as follow-up PRs on top of this stack once it settles, if that's welcome. |
|
Taking over the misc-03 assessment of this draft. Its head still depends on |
|
misc-03 assessment complete: this draft is prerequisite-blocked, so I am leaving it open and unchanged rather than publishing an incomplete port. The pinned head is 322107b, based on A fresh test agent read all 41 file diffs and rechecked the prerequisite boundary. Concrete items for the eventual rebuild:
Minimum next proof: remote-less and dual-tracker create/read/update/close/reopen; plain/external template actions; connect/replace/bind/unbind/disconnect with the chosen identity policy; destination permission denial; Deferred-controlled concurrent clients; and fresh/upgrade SQLite migration fixtures preserving 063/064. Then verify the integrated flow against a disposable live Linear workspace and decide mobile/MCP scope explicitly. No replacement code was written or pushed, no new implementation tests ran, and no formal adversarial implementation review round ran. Source-counted touched-test inventory remains 53 → 53 cases across six files; the original branch's historical CI is not proof against current main. No live account, GraphQL, browser or native client verification was performed. This assessment does not request credentials before the prerequisite scope is settled. Assessed by GPT-6-Astra through the Codex harness in T3 Code; maintainer integration by GPT-6.1-Sol through Codex. Nothing merged. |
…ndalone tracker API Decision: no fork-specific task system. Upstream's incoming Issues stack (pingdotgg#19259 core, pingdotgg#19260 web, pingdotgg#19274 standalone trackers) is the base; Greater becomes one standalone driver (kind gr8r) and the fork adds the generic pieces upstream lacks: start a thread from an issue, issue to thread links, an agent-side MCP toolkit, optional headless credential fallback. The document records the upstream interface facts the design relies on, the field, state and capability mapping, the write calls and 409 handling, what v1 leaves out, the Jira portability check and the rollout order. Nothing is implemented yet; waiting for the fork owner's go-ahead. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01NxWCnNRWCn2tyyoHUdcqM2
|
I've been running a Linear integration on my fork for a while. Some of what it does isn't in this stack yet, so here are a few wishes to add on top of your tracker and link model. I'm not proposing a second Linear client. I'd happily rebuild these on top of #19274 and #19270 once they land, and drop mine. Branch: https://github.com/jappyjan/t3code/tree/feat/linear (user guide: 1. Start work straight from an issue
2. Browse Linear's own structure
3. Map at the Linear project level too
4. Optional write-back when work starts
5. Mobile
Pipelines Run pipeline starts a pipeline from #26694 with the issue as its input. A ticket goes through a multi-step chain: refine requirements, implement, prepare QA, QA, review, then a visual review guide. While the run moves, the pipeline keeps one Linear comment up to date. This has been the most effective way I've found to get ticket work done end to end. If that direction is interesting, issue → pipeline would be a natural entry point once both pieces exist. Happy to split any of this into small PRs on top of your stack, or to drop the parts you don't want. |
20703ed to
abaa6a2
Compare
abaa6a2 to
8f574c0
Compare
8f574c0 to
3942f58
Compare
Linear is a tracker that is not a git host: the user connects it with an API key in Settings and binds a team to a project, whose issues then list beside the git host's. Its client is generated from the schema Linear publishes. Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
3942f58 to
31564a6
Compare
Adds Linear, the first tracker that is not a git host.
How it works
@effect/graphql-generatorfrom the schema Linear publishes with its SDK, like the GitHub and Expo clients. CI checks the generated files are current.Not verified live: there is no Linear API key on the machine this was built on, so this is covered by tests against a fake Linear server only.
Opus 5.5 and Fable 5.2 in Claude Code, running in T3 Code.
🤖 Generated with Claude Code