Skip to main content

Attribution states: unlinked, inferred, and linked

What the Unlinked, Inferred, and Linked session attribution states mean, and how Inferred upgrades to Linked automatically.

Written by Alex C

Attribution states: unlinked, inferred, and linked

Every session on your Sessions page sits in exactly one of three attribution states — Unlinked, Inferred, or Linked. These same three words are both the state's name and its confidence word: ATTRIBUT shows them as the heading of the session's Attribution section, e.g. "Attribution · Linked". The state tells you how confidently ATTRIBUT connected that AI coding session to real, shipped code.

A "session" is one recorded run of an AI coding tool (for example, a Claude Code or Codex run) that ATTRIBUT ingests and tries to tie back to the commit or pull request it produced. "Attribution" is that connection, and the state reflects how strong the evidence for it is.

The three states, weakest evidence to strongest

Unlinked

No link found. ATTRIBUT could not match the session to any repository or commit at all.

Inferred

Repo and commit known, but no pull request yet. ATTRIBUT matched the session to a real commit, but no pull request has been matched to it yet.

Linked

Resolved to one or more pull requests through a verified link to your developer identity — the strongest evidence ATTRIBUT has.

Where to check a session's attribution state

Open Sessions and click into a session to open its detail panel. The "Attribution" section heading reads "Attribution · Linked", "Attribution · Inferred", or "Attribution · Unlinked" depending on the state, and the content beneath it differs by state, as described below.

Unlinked: no link found

The Attribution section reads "No linked work." ATTRIBUT has no repo or commit match for this session, so there is nothing to show. This does not mean the session produced no code — it means ATTRIBUT has not matched it to anything yet.

Inferred: repo and commit known, no PR yet

The Attribution section shows the repository name and, when available, the commit's short SHA (linking out to the commit on GitHub) and the first line of the commit message. ATTRIBUT has captured a real commit and knows which repo it belongs to, but no pull request has been matched to it yet.

Inferred is not a dead end. The state automatically upgrades to Linked once a pull request is matched to that commit — no action needed from you.

Linked: resolved to a pull request

The Attribution section lists every pull request the session's work resolved to: repository, PR number, and title, each linking out to the PR on GitHub. If a specific git commit is also known for the session, it appears underneath the PR list with its short SHA and message. Linked is the highest-confidence state — the work is tied to one or more pull requests through a verified link to your developer identity. (A linked pull request does not have to be merged; it just means a commit resolved to a PR.)

If a session stays Unlinked

Check that the tool the session ran on and the repository it committed to are both connected to ATTRIBUT — an Unlinked session usually means the underlying commit was never captured. See the Connectors articles for connecting your AI CLI tool and your GitHub account.

Did this answer your question?