Median

Issue trackers

Send signals to Linear or GitHub issues, keep their statuses in sync, and match commits to open signals.

Updated Oct 1, 20266 minute read

All three panels live under Signal → Integrations. Only admins and owners see the page, see Roles. Triage itself is on Signal.

PanelDoes
LinearAccepting a signal opens a Linear issue
GitHub issuesAccepting a signal opens a GitHub issue
CommitsReads pushes to your repositories and flags commits that look like fixes

Connect Linear, GitHub issues, or both. Accept opens an issue in every tracker that is connected.

Linear

Connect

Press Connect Linear and authorize Median on Linear's screen. Finish within 15 minutes.

Pick a team

Back in Median, the panel lists the workspace's teams under "Choose a team for new issues." Click the team new issues should go into.

Once connected, the panel shows the team as KEY · Team name and the workspace with who connected it.

ControlDoes
File issues automaticallyOn by default. Opens a Linear issue for every new signal from the agent, the feedback panel or a crash report, without waiting for Accept. Covers suggestions as well as bugs.
DisconnectRevokes Median's access to the workspace. Existing issues stay in Linear. Status sync with them stops.

The Median app creates the issues, not the person who connected it. Issues stay in Linear if that person leaves. Reconnecting the same workspace keeps the team you picked.

MessageFix
Linear connection was not authorized. Try connecting again.You declined on Linear's screen. Press Connect Linear again.
The connection did not finish. Try again.Press Connect Linear again.
This connection link has expired or was already used. Start again from Median.More than 15 minutes passed. Start again from Connect Linear.
Median cannot see any teams in that workspace.Connect a workspace with at least one team you can access.
Linear turned us away. Connect the workspace again.Access was revoked in Linear. Disconnect, then connect again.
Linear is not answering right now.Try again later.
Linear would not open that issue.Try Accept again.
Linear integration is unavailable. Contact Median support.Contact Median support.

GitHub issues

GitHub issues go through the Median GitHub App. The same app syncs repositories into Knowledge and reads commits for the Commits panel. It needs write access to issues on the repository.

Install the app

If no GitHub account is connected yet, press Connect GitHub. Install the app on GitHub and give it access to the repository.

Pick a repository

The panel reads "Choose a repository for new issues." Search the list, then press Connect on the repository. The account menu beside the search switches GitHub accounts, and Connect another account in that menu adds one.

One repository per organization. To use another, press Disconnect and pick again.

ControlDoes
File issues automaticallyOn by default. Same rule as Linear.
DisconnectStops new issues and stops Median updating existing ones. Existing issues stay on GitHub. Closing or reopening one of them on GitHub still moves its signal while the Median GitHub App can see the repository.

Each issue gets the label bug or suggestion.

MessageFix
No repositories available. Grant Median access on GitHub.Give the app access to the repository in your GitHub settings.
GitHub would not open an issue. The Median app needs write access to issues on that repository.Accept the app's permission to write issues in your GitHub settings.
That repository has issues turned off.Turn on Issues in the repository's settings.
GitHub could not find that repository. Check the app can still see it.Give the app access to the repository again.
GitHub would not open that issue.Try Accept again.

Where errors show

WhenWhere
Accept on a cardUnder Approvals on the Signal page. The signal still moves to Planned.
Accept on a signal's pageIn the sidebar of that page
Bulk Accept"N could not reach a tracker." in the bulk bar
Automatic filing, issue updates, status syncNo message on the signal. A failed Issue sync entry in Logs.

Commits

The Commits panel reads pushes to your repositories and flags commits that look like they fix an open signal. It needs the Median GitHub App on those repositories.

Pick a repository

Under Add a repository, press Choose on a repository. The form is open while no repository is watched. After that, press Add repository.

Pick a branch

Branch starts on the repository's default branch. Leave it to follow whatever the default branch is, or pick another one.

Confirm

Press Watch repository. The repository appears with "Watching the default branch" or "Watching" and the branch name.

The trash button on a row stops watching that repository.

LimitValue
Repositories10 per organization. The 11th fails with "Median watches 10 repositories at most."
Same repository twiceRefused with "That repository is already watched."
BranchOnly pushes to the watched branch are read
Commits per pushThe last 20. Only the first line of each message is read.
Signals comparedUp to 60 signals that are not Done or Declined, bugs and suggestions. Suggestions are read before bugs.

Matching runs on AI and uses credits, see Plans. A commit is claimed once per signal, even if GitHub delivers the push twice.

Confirm or dismiss a match

A match shows in three places.

  • A commit glyph with a count on the signal's row.
  • The Commits section on the signal's page, with the message, short SHA, author, the reason it looks like a fix, and a link to the commit.
  • The Fixes to confirm card on the Dashboard.
ButtonDoes
Confirm fixMoves the signal to Done. Reporters get their message.
Dismiss matchRemoves the claim. The status does not change.

Close signals automatically

Each watched repository has a Close signals automatically switch. It is off by default. When on, a matching commit moves the signal to Done at once and its reporters get their message, with nobody confirming. It applies to bugs and suggestions alike. The commit stays on the signal's page as the record of why it closed.

What an issue contains

PartContent
TitleThe signal's title
BodyThe signal's write-up
Reports (N)The 5 newest reports. Each has the name, the time in UTC, the quote, screenshots, page, viewport, app state, attached values, the last 5 browser log entries, and server check results. More reports are counted as "And N more reports, in Median."
FooterThe line Priority: medium · Reported through Median. and an Open it in Median link
Linear priorityUrgent, High, Medium or Low, matching the signal
GitHub labelbug or suggestion

Median rewrites the title and body whenever the signal's content changes. That covers an edit, a new report, a merge and a priority change. Edits made to the issue body in the tracker are replaced on the next update. Linear also gets the new priority.

Status sync

Median updates linked issues while their tracker is connected. Linear changes reach Median while Linear is connected. GitHub changes reach Median while the Median GitHub App can see the repository.

Signal moves toLinear issueGitHub issue
Open, PlannedAn unstarted state, such as TodoReopened
In progress, In reviewA started stateOpen
DoneA completed stateClosed as completed
DeclinedA canceled stateClosed as not planned
Linear issue moves toSignal
A completed stateDone
A canceled stateDeclined
A started stateIn progress. A signal already In review stays there.
Backlog, triage or unstartedNo change
GitHub issue isSignal
Closed as not plannedDeclined
Closed for any other reasonDone
ReopenedOpen, back in Approvals

A signal that reaches Done from a tracker messages its reporters like any other move to Done, see Telling reporters.

Still need help?

    Esc