16 files+208−950/16 viewed
| 41 | 41 | - `#12` and `owner/repo#12` in descriptions, comments and commit messages | |
| 42 | 42 | written before still link to that issue's work item. | |
| 43 | 43 | - `Closes #12` in history still points at the right work item. | |
| 44 | − | - A repository's old **Work** page, its claims and sessions, is now its | |
| 45 | − | **Sessions** page, with the sessions recorded on its pull requests, and | |
| 46 | − | the old address redirects there. A session's page is | |
| 47 | − | `g1t.sh/<owner>/<repo>/sessions/<id>`; an old address with a pull | |
| 48 | − | request's number in place of the id goes to that pull request's | |
| 49 | − | session. | |
| 44 | + | - A repository has no **Work** or **Sessions** page of its own, and | |
| 45 | + | `g1t.sh/<owner>/<repo>/work` and `…/sessions` are not found. Its claims | |
| 46 | + | and sessions are on the workspace's | |
| 47 | + | [Sessions](/guides/sessions/#the-sessions-page), filtered to it: | |
| 48 | + | `g1t.sh/<workspace>/-/sessions?repo=<name>`. A session's page is | |
| 49 | + | `g1t.sh/<workspace>/-/sessions/<id>`, and a pull request's recorded | |
| 50 | + | session is its **Session** tab, `…/pull/<number>/session`. | |
| 50 | 51 | ||
| 51 | 52 | ## Labels and milestones | |
| 52 | 53 |
| 221 | 221 | the `session` tool or `g1t session`. A session is recorded in the repository it | |
| 222 | 222 | is checked out in, and tied to the work item it claimed and the pull | |
| 223 | 223 | request it opened. People read it on the pull request's **Session** tab, | |
| 224 | − | on the work item, and on the repository's **Sessions** page, which shows | |
| 225 | − | who is working on what right now. See | |
| 224 | + | on the work item, and on the workspace's **Sessions**, in the rail after | |
| 225 | + | **Work**, which shows who is working on what right now across its | |
| 226 | + | repositories. See | |
| 226 | 227 | [sessions, claims and dependencies](/guides/sessions/). | |
| 227 | 228 | ||
| 228 | 229 | Each entry is tied to the commit that was the head when it was recorded, |
| 165 | 165 | your own skills, settings and subagents. | |
| 166 | 166 | ||
| 167 | 167 | Either way the session is tied to the work item: it shows on the work | |
| 168 | − | item, on the repository's Sessions page and on its own session page, with | |
| 168 | + | item, on the workspace's [Sessions](/guides/sessions/#the-sessions-page) | |
| 169 | + | and on its own session page, with | |
| 169 | 170 | its subagents, and Ask can tell you where it stands. If a session already | |
| 170 | 171 | holds the work item, Ask | |
| 171 | 172 | links it rather than proposing another. |
| 127 | 127 | Most of what an agent is asked starts without a work item, and a question, | |
| 128 | 128 | a look around or a trivial fix never needs one. Record the session | |
| 129 | 129 | anyway (`session` with `start`), with a `title` saying what it is for: the | |
| 130 | − | team sees it in **Live now** on the project's overview and **Sessions** page, | |
| 131 | − | under its pull request or branch. When the work becomes a change others | |
| 130 | + | team sees it in **Live now** on the project's overview, under its pull | |
| 131 | + | request or branch, and on the workspace's | |
| 132 | + | [Sessions](/guides/sessions/#the-sessions-page). When the work becomes a change others | |
| 132 | 133 | should know about (a branch to push, a pull request), look for its work | |
| 133 | 134 | item (`work_item` with `list` or `list_claims`) and claim it. If there is | |
| 134 | 135 | none, `work_item` with `claim`, a `title` and no `number` opens one, with |
| 88 | 88 | whose remote is on g1t, and this folder had none when the session | |
| 89 | 89 | started. Start Claude Code again with `claude --continue`: the | |
| 90 | 90 | conversation carries on, and from then on the session is recorded, shows | |
| 91 | − | in **Live now** on the project's **Sessions** page, and is tied to the | |
| 91 | + | in **Live now** on the workspace's **Sessions**, and is tied to the | |
| 92 | 92 | commits and pull requests it makes. To record it all, create the | |
| 93 | 93 | repository first yourself, `g1t repo create acme/my-app --clone`, and | |
| 94 | 94 | start Claude Code in the clone. |
| 186 | 186 | other work items or pull requests, when it is named again as it ends. | |
| 187 | 187 | Rename a session on its page to pin your own title: g1t and Claude never | |
| 188 | 188 | replace it. See [Session titles](/guides/sessions/#session-titles). | |
| 189 | − | 2. **It shows to the team.** The project's overview and its **Sessions** page | |
| 190 | − | list it in **Live now** under its pull request, else its branch, else | |
| 191 | − | under **No branch yet**, with who it is for, Claude Code, its state, | |
| 192 | − | when it was last heard from and its branch. | |
| 189 | + | 2. **It shows to the team.** The project's overview lists it in **Live | |
| 190 | + | now** under its pull request, else its branch, else under **No branch | |
| 191 | + | yet**, with who it is for, Claude Code, its state, when it was last | |
| 192 | + | heard from and its branch; the workspace's | |
| 193 | + | [Sessions](/guides/sessions/#the-sessions-page) lists it with the rest. | |
| 193 | 194 | 3. **It gets a work item when it becomes a change** others should know | |
| 194 | 195 | about: a branch to push, a pull request. Claude is told to look for a | |
| 195 | 196 | work item first (`g1t work list`) and claim it with `g1t work claim N`, | |
| ⋯ | |||
| 315 | 316 | ``` | |
| 316 | 317 | ||
| 317 | 318 | A recorded session can be read on its own page, linked from the work item, the | |
| 318 | − | pull request's **Session** tab and the repository's **Sessions** page: who ran | |
| 319 | + | pull request's **Session** tab and the workspace's | |
| 320 | + | [Sessions](/guides/sessions/#the-sessions-page): who ran | |
| 319 | 321 | it, its subagents as a tree, the skills used, what it touched, and the | |
| 320 | 322 | work items and pull requests it worked on. | |
| 321 | 323 | ||
| 465 | 465 | | `g1t session updates [ID]` | What other sessions did that concerns this one (claims, overlaps, dependency changes, decisions, merge queue results), oldest first, up to 100. Reading never clears them. It first says which files the working copy changed, so overlapping edits are noticed (`G1T_TOUCH=0` turns that off). | | |
| 466 | 466 | | `g1t session acknowledge ID... --note TEXT` | Records your decision about those updates (what changes in your plan, or why nothing does) and clears exactly the IDs given, for this session only; `--session` names another of yours. Saying the same again does nothing. | | |
| 467 | 467 | | `g1t session end` | Ends it, with an optional `--reason` and `--result` (what it reported; `-` reads it from stdin), and forgets it. Its subagents still going end with it. | | |
| 468 | − | | `g1t session list` | The repository's sessions; `--state active`, `--item`, `--pull` (any session tied to it), `--path` (those that touched a file, or a folder ending in `/`), `--subagents` to list subagents under the sessions that started them. | | |
| 468 | + | | `g1t session list` | The repository's sessions; `--state active`, `--item`, `--pull` (any session tied to it), `--path` (those that touched a file, or a folder ending in `/`), `--subagents` to list subagents under the sessions that started them. `--workspace` (this repository's workspace) or `--workspace SLUG` lists the sessions of every repository of a workspace instead, narrowed by `--harness`, `--person`, `--in NAME` (a repository of it), `--state`, `--item` and `--subagents`; see [the Sessions page](/guides/sessions/#the-sessions-page). | | |
| 469 | 469 | | `g1t session view [ID]` | A session and what it recorded, its subagents and their results, the work items and pull requests it worked on, and the skills used; the current one without an id. | | |
| 470 | 470 | ||
| 471 | 471 | The id is kept in `.git/g1t/session`, in the working copy's own git |
| 286 | 286 | passes in the queue or merges: the pull requests tested together, with the | |
| 287 | 287 | one that answers for it marked, the check that failed (linked to its run), | |
| 288 | 288 | what it fails with, and the fix once one is recorded. Its work item shows the | |
| 289 | − | same under its pull requests, and the repository's | |
| 290 | − | [Sessions page](/guides/sessions/#on-the-site) lists it among what happened. | |
| 289 | + | same under its pull requests, and the workspace's | |
| 290 | + | [Sessions](/guides/sessions/#the-sessions-page) lists it under **What | |
| 291 | + | happened**. | |
| 291 | 292 | ||
| 292 | 293 | ### Getting back in the queue | |
| 293 | 294 |
| 51 | 51 | | Tab | What is on it | | |
| 52 | 52 | | --- | --- | | |
| 53 | 53 | | **Home** | Coming. Opens Home on the site meanwhile. | | |
| 54 | − | | **Work** | The workspace's work items, for every member, Code access or not. See [Work](#work). | | |
| 54 | + | | **Work** | The workspace's work items and their Board, for every member, Code access or not. **Sessions** opens from the icon in its header. See [Work](#work). | | |
| 55 | 55 | | **Chat** | Your starred conversations, channels and direct messages, with what is unread, moving live. See [Chat](#chat). | | |
| 56 | 56 | | **Notifications** | Coming. Opens your notifications on the site meanwhile; messages to you already arrive [on the phone](#notifications). | | |
| 57 | − | | **More** | **Code**, for members with Code access; whether this phone gets notifications, your workspaces, how you signed in, and **Sign out**. | | |
| 57 | + | | **More** | **Sessions** first (see [Sessions](#sessions)), then **Code**, for members with Code access; whether this phone gets notifications, your workspaces, how you signed in, and **Sign out**. | | |
| 58 | 58 | ||
| 59 | 59 | **Code**, under **More**, is the workspace's repositories, each with its | |
| 60 | 60 | pull requests and its **Work**: the work items linked to it. A pull | |
| ⋯ | |||
| 64 | 64 | ## Work | |
| 65 | 65 | ||
| 66 | 66 | Work on the phone is the site's [Work](/guides/work-items/), laid out for | |
| 67 | − | one hand. | |
| 67 | + | one hand. A switch at its top, **Items | Board**, chooses between the | |
| 68 | + | list and the Board. | |
| 68 | 69 | ||
| 69 | 70 | - **The list** shows the workspace's open work items, newest first: each | |
| 70 | 71 | with its number, title, state, labels and the repositories it is linked | |
| ⋯ | |||
| 86 | 87 | - **New work item** (the **+** on Work) takes a title, a description, | |
| 87 | 88 | labels and the repositories it should land in; none is fine. Opened from | |
| 88 | 89 | a repository's Work, that repository is its origin. | |
| 90 | + | - **The Board** is the site's [Board](/guides/work-items/#the-board): | |
| 91 | + | **Backlog**, **In progress**, **In review**, **Landing** and **Done**, | |
| 92 | + | each card a work item with who or which session is on it. Tap a card to | |
| 93 | + | open the work item. | |
| 94 | + | ||
| 95 | + | ## Sessions | |
| 89 | 96 | ||
| 97 | + | **Sessions** is the site's [Sessions](/guides/sessions/#the-sessions-page): | |
| 98 | + | the sessions at work across the workspace. Open it from the icon in | |
| 99 | + | Work's header, or first in **More**. | |
| 100 | + | ||
| 101 | + | - **Everything**, **Live** and **Recent** at the top choose what it | |
| 102 | + | lists. Pull down to read it again. | |
| 103 | + | - **Filters** are in a sheet: **Started by me**, and a repository. | |
| 104 | + | - **A session** shows its facts (who, harness, repository, branch, state, | |
| 105 | + | when it was last heard from), what it is working on (its work item and | |
| 106 | + | pull request), its subagents as a tree, the files it touched, and its | |
| 107 | + | timeline. | |
| 108 | + | ||
| 90 | 109 | ## Chat | |
| 91 | 110 | ||
| 92 | 111 | Chat on the phone is the site's Chat: the same conversations, as they | |
| ⋯ | |||
| 163 | 182 | | `g1t://<workspace>/-/work`, with the list's filters (`?repo=web&label=bug`) | Work, filtered as the link says | | |
| 164 | 183 | | `g1t://<workspace>/-/work/<number>` | The work item | | |
| 165 | 184 | | `g1t://<workspace>/-/work/new` | A new work item | | |
| 185 | + | | `g1t://<workspace>/-/work/board` | Work, on the Board | | |
| 186 | + | | `g1t://<workspace>/-/sessions` | Sessions | | |
| 187 | + | | `g1t://<workspace>/-/sessions/<id>` | The session | | |
| 166 | 188 | | `g1t://<workspace>/-/chat`, `…/-/chat/<channel>`, `…/-/chat/dm/<id>` | Chat, or the conversation, in that workspace | | |
| 167 | 189 | | `g1t://<owner>/<repo>` | The repository | | |
| 168 | 190 | | `g1t://<owner>/<repo>/pull/<number>` | The pull request | | |
| 169 | 191 | | `g1t://<owner>/<repo>/issues/<number>` | What that old issue number names in the repository: the work item the issue became, or a pull request. The app asks g1t, as the site does. `…/issues` and `…/issues/new` open Work filtered to the repository, and a new work item from it. | | |
| 170 | 192 | ||
| 171 | 193 | The same paths as `https://g1t.sh/…` links, such as | |
| 172 | − | `https://g1t.sh/<workspace>/-/work/<number>`, open these screens once | |
| 194 | + | `https://g1t.sh/<workspace>/-/work/<number>` or | |
| 195 | + | `https://g1t.sh/<workspace>/-/sessions/<id>`, open these screens once | |
| 173 | 196 | g1t.sh publishes the files Android and iOS check first (see | |
| 174 | 197 | [below](#whats-not-there-yet)). The workspace's labels and milestones open | |
| 175 | 198 | on the site. | |
| 206 | 206 | | **Branches** | A branch is pushed, created, renamed or deleted. | | |
| 207 | 207 | | **Tags** | A tag is pushed or deleted, or a release is published. | | |
| 208 | 208 | | **Pull requests** | One is opened, updated, reviewed, commented on, checked, merged or closed. | | |
| 209 | − | | **Work**, and a repository's **Work** tab | Any of the workspace's work items is opened, changed, labeled, linked, claimed, commented on, closed or reopened. | | |
| 209 | + | | **Work**, filtered or not, and its **Board** | Any of the workspace's work items is opened, changed, labeled, linked, claimed, commented on, closed or reopened. | | |
| 210 | + | | **Sessions** | A session in one of the workspace's repositories starts, records or ends. | | |
| 210 | 211 | | A **pull request** | Commits are pushed to it, its checks report, someone reviews or comments, or it is merged or closed. New items join its timeline where you are reading; if you are at the end of the page, it follows them down. | | |
| 211 | 212 | | A **work item** | Someone comments on it or changes it, links a repository, claims it, or a pull request for it lands. If you are at the end of the page, it follows new items down. | | |
| 212 | 213 | | **Actions** and a **run** | A run starts, one of its jobs starts or finishes, or the run finishes. A running job's log streams on its own. | |
| 38 | 38 | | **Overview** | `g1t.sh/<workspace>/<project>` | What it is and its links; production wherever it is deployed, or for a library its packages; what is in progress, active branches, the latest commits, and its About. See [the overview](#the-overview). | | |
| 39 | 39 | | **Code** | `…/code` | The repository's files, commits and branches. | | |
| 40 | 40 | | **Work** | `g1t.sh/<workspace>/-/work?repo=<name>` | The workspace's [work items](/guides/work-items/) linked to the repository. | | |
| 41 | − | | **Pull requests**, **Merge queue** | `…/pulls` and so on | As they always were. | | |
| 41 | + | | **Pull requests**, **Merge queue** | `…/pulls` and so on | As they always were. A pull request's **Session** tab is at `…/pull/<number>/session`. | | |
| 42 | + | | **Sessions** | `g1t.sh/<workspace>/-/sessions?repo=<name>` | The workspace's [sessions](/guides/sessions/#the-sessions-page) in the repository. | | |
| 42 | 43 | | **Actions** | `…/actions` | [GitHub Actions workflows](/guides/actions/). | | |
| 43 | 44 | | **Deployments** | `…/deployments` | What is up now and every build. | | |
| 44 | 45 | | **Settings** | `…/settings` | See below. | | |
| ⋯ | |||
| 72 | 73 | | **Facts** | Under production: its latest release (or, where the card does not already say it, production's state), how often checks pass, and either how many changes pass on the first try and what is open, or, for people with a role when [Observability](/guides/observability/) has data, requests and the error rate over the last day with how many errors are open. | | |
| 73 | 74 | | **Code** | One line to the repository: its name, default branch and when it was last pushed to, linking to **Code**. | | |
| 74 | 75 | | **Needs you** | For someone signed in: what is waiting on them, such as a failed production build or a pull request to merge or review. | | |
| 75 | − | | **Live now** | The people and coding agents working on it: each work item with its [claims and sessions](/guides/sessions/), the harness each came from and who it acts for, and sessions on no work item yet. **Sessions** has everything. With nobody working, people with a role see how to [connect a coding agent](/guides/bring-your-own-agent/). | | |
| 76 | + | | **Live now** | The people and coding agents working on it: each work item with its [claims and sessions](/guides/sessions/), the harness each came from and who it acts for, and sessions on no work item yet. The workspace's [Sessions](/guides/sessions/#the-sessions-page), filtered to the repository (`g1t.sh/<workspace>/-/sessions?repo=<name>`), has everything. With nobody working, people with a role see how to [connect a coding agent](/guides/bring-your-own-agent/). | | |
| 76 | 77 | | **Previews** | For people with a role: the pull requests' previews that are up. | | |
| 77 | 78 | | **Deployments** | Each environment's latest deployment and when. | | |
| 78 | 79 | | **Observability** | For people with a role, when there is data: the last day's requests, an hour a bar, latency, and the newest open errors. | | |
| 1 | 1 | --- | |
| 2 | 2 | title: Sessions, claims and dependencies | |
| 3 | − | description: How agents and people on one repository see who is working on what, with sessions of their own harnesses, advisory claims on work items, what a work item is blocked by, and the one call that loads a work item's whole context. | |
| 3 | + | description: How agents and people see who is working on what, in a repository and across the workspace on Sessions, with sessions of their own harnesses, advisory claims on work items, what a work item is blocked by, and the one call that loads a work item's whole context. | |
| 4 | 4 | --- | |
| 5 | 5 | ||
| 6 | 6 | When several agents and people work on one repository at once, each needs | |
| ⋯ | |||
| 29 | 29 | What git and g1t record (commits, pull requests, checks, merges) is the | |
| 30 | 30 | truth; sessions are the account of how it got there. | |
| 31 | 31 | ||
| 32 | − | ## On the site | |
| 32 | + | ## The Sessions page | |
| 33 | + | ||
| 34 | + | **Sessions** is in the left rail, directly after **Work**, at | |
| 35 | + | `g1t.sh/<workspace>/-/sessions`. It shows what is cooking across the | |
| 36 | + | workspace: the sessions in every one of its repositories you can read, | |
| 37 | + | as they happen, without reloading. | |
| 38 | + | ||
| 39 | + | - **Live now**: the active and idle sessions, the most recently heard | |
| 40 | + | from first. Each card shows the session's title, who it acts for, its | |
| 41 | + | harness, its repository and branch, the work item and pull request it | |
| 42 | + | is on, when it was last heard from, how many subagents it has, and | |
| 43 | + | whether it is live or idle. A session with no title is named by what | |
| 44 | + | its first prompt was for, else **Session on** its branch, else | |
| 45 | + | **Untitled session**. A title that is only a tag, such as | |
| 46 | + | `<pasted_content id="5c50">`, counts as no title. | |
| 47 | + | - **Merge queue**: each repository's merge queue that has something | |
| 48 | + | waiting, as on its [Merge queue](/guides/merge-queue/#the-merge-queue-page) | |
| 49 | + | page. | |
| 50 | + | - **Just landed**: the pull requests merged lately, across the | |
| 51 | + | repositories, each with a link to the session behind it. | |
| 52 | + | - **What happened**: the latest coordination events across the | |
| 53 | + | repositories: claims, sessions starting and ending, overlaps, and what | |
| 54 | + | the merge queue found when it combined changes. | |
| 55 | + | - **Recent**: the sessions that ended lately. | |
| 56 | + | ||
| 57 | + | With nothing going on, choose your client in the | |
| 58 | + | [connection instructions](/guides/bring-your-own-agent/), or run | |
| 59 | + | `g1t work claim <number>` from any harness. | |
| 60 | + | ||
| 61 | + | Narrow it by repository (`?repo=web`), person (`?person=<username>`), | |
| 62 | + | harness (`?harness=codex`), kind (`?kind=hosted`) and state. The address | |
| 63 | + | keeps the filters, so a filtered view can be shared. A repository's | |
| 64 | + | sessions are Sessions filtered to it, | |
| 65 | + | `g1t.sh/<workspace>/-/sessions?repo=<name>`: a repository has no | |
| 66 | + | Sessions page of its own. | |
| 67 | + | ||
| 68 | + | Every kind of session is listed in this one place: | |
| 69 | + | ||
| 70 | + | | Kind | Is | | |
| 71 | + | | --- | --- | | |
| 72 | + | | `harness` | A run of someone's own harness (Claude Code, Codex, Cursor, Copilot or another), with its [subagents](#subagents) under it. | | |
| 73 | + | | `hosted` | A session started on g1t, from a work item or the web, on the workspace's Anthropic provider: harness `claude_managed_agents`. See [Start a session on your Anthropic account](#start-a-session-on-your-anthropic-account). | | |
| 74 | + | | `agent` | g1t's own agent at work on a pull request. Only the workspace's members see these. | | |
| 75 | + | | `recorded` | A session recorded on a pull request with no session of its own. It opens on the pull request's **Session** tab, `g1t.sh/<owner>/<repo>/pull/<number>/session`. | | |
| 76 | + | ||
| 77 | + | **A session's page** is `g1t.sh/<workspace>/-/sessions/<id>` (the | |
| 78 | + | `ses_…` id), opened from Sessions or from anywhere the session is listed: | |
| 79 | + | who ran it, in which harness and on which model, how long it has run, its | |
| 80 | + | repository, the work items and pull requests it and its subagents worked | |
| 81 | + | on (each says how it was tied), its subagents as a tree you open one at a | |
| 82 | + | time (each with its kind, the task it was given, what it touched and what | |
| 83 | + | it reported), the skills used, what was touched (files, commits, branches, | |
| 84 | + | pull requests), and everything it recorded, as it records it: its prompt | |
| 85 | + | folded, its messages formatted as they were written, and the tool calls | |
| 86 | + | between them a line each (a command as code, a file by its path, a g1t | |
| 87 | + | tool by what it did, such as *work item · claim*), more than three in a | |
| 88 | + | row folded into one line that opens to them; a long command and what a | |
| 89 | + | tool gave back open under its line. A subagent's own page links back to | |
| 90 | + | the session that started it. | |
| 91 | + | ||
| 92 | + | The same list is in the API, MCP and the CLI: | |
| 93 | + | [`GET /workspaces/{workspace}/sessions`](/reference/api/sessions/list-workspace-sessions/) | |
| 94 | + | by `state` (`live`, `recent` or `ended`), `kind` (`harness`, `hosted`, | |
| 95 | + | `agent` or `recorded`), `harness`, `person`, `repo`, `item`, `subagents` | |
| 96 | + | and `limit`, which returns the `sessions`, each repository's `queue`, what | |
| 97 | + | `landed` and the `repos` it covers; | |
| 98 | + | [`GET /workspaces/{workspace}/sessions/{id}`](/reference/api/sessions/get-workspace-session/) | |
| 99 | + | for one session, with its `repo`. Over MCP, the `session` tool's `list` | |
| 100 | + | takes `workspace` instead of `repo`, and `get` takes `workspace` and `id`. | |
| 101 | + | From the CLI: | |
| 102 | + | ||
| 103 | + | ```sh | |
| 104 | + | g1t session list --workspace # this repository's workspace | |
| 105 | + | g1t session list --workspace acme --in web # one repository of it | |
| 106 | + | g1t session list --workspace --harness codex --state active | |
| 107 | + | ``` | |
| 108 | + | ||
| 109 | + | `--workspace` takes a slug, or none for the current repository's | |
| 110 | + | workspace; `--harness`, `--person`, `--in NAME` (a repository of it), | |
| 111 | + | `--state` (active or idle: what is going now; ended), `--item` and `--subagents` narrow it. | |
| 33 | 112 | ||
| 34 | − | Everything here shows on g1t.sh as it happens, without reloading. | |
| 113 | + | ## On the site | |
| 35 | 114 | ||
| 36 | − | - **The Sessions page**, `g1t.sh/<owner>/<repo>/sessions`, a tab beside | |
| 37 | − | **Pull requests** and **Merge queue** (it used to be the repository's | |
| 38 | − | **Work** page, and the old address redirects here): | |
| 39 | − | - **Live now**: the active claims and the active and idle sessions, | |
| 40 | − | grouped by the work item they are on, the most recently active first. | |
| 41 | − | A work item with more than one claim is marked. Sessions on no work | |
| 42 | − | item yet follow, grouped by their pull request, else by their branch (when it | |
| 43 | − | is not the default branch), the most recently heard from first; those | |
| 44 | − | on neither are last, under **No branch yet**. Each session shows its | |
| 45 | − | title, who it acts for, its harness, its state, when it was last heard | |
| 46 | − | from and its branch. A provisional title (what its first prompt asked | |
| 47 | − | for, until g1t settles one) shows muted. A session with no title is | |
| 48 | − | named by what its first prompt was for, else **Session on** its branch, | |
| 49 | − | else **Untitled session**. A title that is only a tag, such as | |
| 50 | − | `<pasted_content id="5c50">`, counts as no title. | |
| 51 | − | - **Merge queue**: what is waiting to land and what is being tested, | |
| 52 | − | as on the [Merge queue](/guides/merge-queue/#the-merge-queue-page) page. | |
| 53 | − | - **What happened**: the latest 30 coordination events, from claims to | |
| 54 | − | what the merge queue found when it combined changes. | |
| 55 | − | - **Just landed**: the latest merges, each with a link to the session | |
| 56 | − | behind it. | |
| 57 | − | - **Recorded on pull requests**: the latest sessions recorded on its pull | |
| 58 | − | requests, each opening that pull request's session. | |
| 115 | + | Besides **Sessions**, sessions and claims show where the work is, as it | |
| 116 | + | happens, without reloading. | |
| 59 | 117 | ||
| 60 | − | With nothing going on, choose your client in the | |
| 61 | − | [connection instructions](/guides/bring-your-own-agent/), or run | |
| 62 | − | `g1t work claim <number>` from any harness. | |
| 63 | 118 | - **A work item's Work panel**, at the top of its sidebar: its claims | |
| 64 | 119 | (who, from which harness, since when and when each lapses; ones | |
| 65 | 120 | released, expired or handed off lately are shown dimmed), the sessions on | |
| ⋯ | |||
| 70 | 125 | the latest combination that failed in the merge queue, and its | |
| 71 | 126 | [decision records](/guides/why-blame/#decision-records), each marked | |
| 72 | 127 | **Claimed**, **Tested** or **Approved**. | |
| 73 | − | - **A session's page**, `g1t.sh/<owner>/<repo>/sessions/<id>` (the | |
| 74 | − | `ses_…` id; a pull request's number there goes to that pull request's | |
| 75 | − | recorded session, `…/pull/<number>/session`), opened from any of these: who ran it, in which harness and on which | |
| 76 | − | model, how long it has run, the work items and pull requests it and its | |
| 77 | − | subagents worked on (each says how it was tied), its subagents as a tree | |
| 78 | − | you open one at a time (each with its kind, the task it was given, what | |
| 79 | − | it touched and what it reported), the skills used, what was touched | |
| 80 | − | (files, commits, branches, pull requests), and everything it recorded, | |
| 81 | − | as it records it: its prompt folded, its messages formatted as they were | |
| 82 | − | written, and the tool calls between them a line each (a command as code, | |
| 83 | − | a file by its path, a g1t tool by what it did, such as *work item · claim*), | |
| 84 | − | more than three in a row folded into one line that opens to them; a | |
| 85 | − | long command and what a tool gave back open under its line. A | |
| 86 | − | subagent's own page links back to the session that started it. | |
| 87 | 128 | - **A work item's and a pull request's sessions**: every session tied to | |
| 88 | 129 | it in any way, in any of the workspace's repositories, with its | |
| 89 | − | subagents under it. | |
| 130 | + | subagents under it. A pull request's **Session** tab, | |
| 131 | + | `g1t.sh/<owner>/<repo>/pull/<number>/session`, is what was recorded on | |
| 132 | + | it. | |
| 133 | + | - **A project's overview**: **Live now**, the people and coding agents | |
| 134 | + | working on that repository, grouped by work item, then by pull request | |
| 135 | + | or branch. See [the overview](/guides/projects/#the-overview). | |
| 90 | 136 | - **Start a session** on a work item, for members of a workspace with an | |
| 91 | 137 | Anthropic AI provider: see | |
| 92 | 138 | [Start a session on your Anthropic account](#start-a-session-on-your-anthropic-account). | |
| ⋯ | |||
| 202 | 248 | ||
| 203 | 249 | A session its harness left behind, killed or never told to end, can be | |
| 204 | 250 | ended by hand: **End session** in its menu under Live now (on the | |
| 205 | − | project's overview and the Sessions page), or on its page. Whoever runs a | |
| 251 | + | project's overview and on **Sessions**), or on its page. Whoever runs a | |
| 206 | 252 | session can end it, and so can anyone with write access to the | |
| 207 | 253 | repository; nobody else sees the action. It ends with `end_reason` | |
| 208 | 254 | `ended by hand by @name`, its subagents still going end with it, and its | |
| ⋯ | |||
| 231 | 277 | listed too with `subagents=true`. A session in the list with no `title` | |
| 232 | 278 | carries `first_prompt`: the first 300 characters of the first prompt it | |
| 233 | 279 | recorded. Read one with its entries, subagents, links, skills and what it | |
| 234 | − | touched with `session` `get`. | |
| 280 | + | touched with `session` `get`. For the sessions of every repository of a | |
| 281 | + | workspace, see [The Sessions page](#the-sessions-page). | |
| 235 | 282 | ||
| 236 | 283 | ## Work with no work item yet | |
| 237 | 284 | ||
| 238 | 285 | Not every session starts from a work item, and most should not end with | |
| 239 | 286 | one: a question, a look around or a quick fix needs no work item. The | |
| 240 | − | session is the record of that work, and the team sees it in **Live now** | |
| 241 | − | while it goes: | |
| 287 | + | session is the record of that work, and the team sees it in **Live now**, | |
| 288 | + | on **Sessions** and on the project's overview, while it goes: | |
| 242 | 289 | ||
| 243 | 290 | 1. **It says what it is for.** Give it a `title` when you start it, or | |
| 244 | 291 | later with `session` `update`. The | |
| ⋯ | |||
| 249 | 296 | title to the next prompt. It never replaces a title the session | |
| 250 | 297 | already has. | |
| 251 | 298 | 2. **It shows where it works.** Attach its `branch` and, once there is | |
| 252 | − | one, its `pull`: **Live now** groups sessions on no work item by pull | |
| 253 | − | request, then by branch. | |
| 299 | + | one, its `pull`: the project's **Live now** groups sessions on no work | |
| 300 | + | item by pull request, then by branch. | |
| 254 | 301 | 3. **It opens or claims a work item when it becomes a change** others | |
| 255 | 302 | should know about: a branch to push, a pull request. Look for one first | |
| 256 | 303 | (`work_item` `list`, `work_item` `list_claims`); if one covers the work, | |
| ⋯ | |||
| 606 | 653 | | To | You need | | |
| 607 | 654 | | --- | --- | | |
| 608 | 655 | | Read sessions and claims | To be able to read the repository. Public repositories need no token. What a session shows depends on who you are: see [Who sees what](#who-sees-what). | | |
| 656 | + | | Read a workspace's **Sessions** | It lists the sessions of the workspace's repositories you can read; g1t's own agent's sessions only for members. | | |
| 609 | 657 | | Read a work item's context | To be able to see the work item: see [Who sees a work item](/guides/work-items/#who-sees-a-work-item). | | |
| 610 | 658 | | Start a session, claim a work item, open one by claiming it | A confirmed email address and a role that may open work items; the repository must not be archived. | | |
| 611 | 659 | | Update, record in or end a session | To be the person whose token started it. | | |
| 10 | 10 | ||
| 11 | 11 | **Work** is in the left rail, directly after **Home**, at | |
| 12 | 12 | `g1t.sh/<workspace>/-/work`. A work item's page is | |
| 13 | − | `g1t.sh/<workspace>/-/work/<number>`. | |
| 13 | + | `g1t.sh/<workspace>/-/work/<number>`. Work is the work items: the | |
| 14 | + | [list](#the-work-list), the [Board](#the-board), **New work item**, | |
| 15 | + | **Labels** and **Milestones**. The sessions working on them are in | |
| 16 | + | [Sessions](/guides/sessions/#the-sessions-page), right after Work in the | |
| 17 | + | rail. | |
| 14 | 18 | ||
| 15 | 19 | Work items used to be issues, one repository's each. [Issues became work | |
| 16 | 20 | items](/about/issues-became-work-items/) says what changed for the ones you | |
| ⋯ | |||
| 126 | 130 | **Work** lists the workspace's work items, open first, newest first. | |
| 127 | 131 | Filter it by state, label, milestone, assignee, repository and role (for | |
| 128 | 132 | example the items a repository is a target of). The address keeps the | |
| 129 | − | filters, so a filtered list can be shared. | |
| 133 | + | filters, so a filtered list can be shared. The work items of one | |
| 134 | + | repository are the list filtered to it: | |
| 135 | + | `g1t.sh/<workspace>/-/work?repo=<name>`. | |
| 136 | + | ||
| 137 | + | Above the list, **Cooking now** is a strip of the sessions live in the | |
| 138 | + | workspace right now; it links to [Sessions](/guides/sessions/#the-sessions-page), | |
| 139 | + | which has them all. | |
| 130 | 140 | ||
| 131 | 141 | Work's sidebar has **Open**, **Assigned to you** and **Closed**, then | |
| 132 | − | **New work item**, **Labels** and **Milestones**. On a phone, the bar | |
| 133 | − | along the bottom is **Home**, **Work**, **Chat**, **Notifications** and | |
| 134 | − | **More**, with **Work** there for every member, Code access or not, and | |
| 135 | − | **Code** first in **More**. Tapping **Work** again opens that sidebar. | |
| 142 | + | **Board**, **New work item**, **Labels** and **Milestones**. On a phone, | |
| 143 | + | the bar along the bottom is **Home**, **Work**, **Chat**, | |
| 144 | + | **Notifications** and **More**, with **Work** there for every member, | |
| 145 | + | Code access or not. **More** starts with **Sessions**, then **Code**. | |
| 146 | + | Tapping **Work** again opens its menu: **Open**, **Assigned to you**, | |
| 147 | + | **Closed**, **Board**, **Sessions**, **New work item**, **Labels** and | |
| 148 | + | **Milestones**. | |
| 136 | 149 | ||
| 137 | − | A repository's **Work** tab is the same list, filtered to the work items | |
| 138 | − | linked to that repository: `g1t.sh/<workspace>/-/work?repo=<name>`. | |
| 150 | + | ## The Board | |
| 151 | + | ||
| 152 | + | **Board**, at `g1t.sh/<workspace>/-/work/board`, is the backlog as it | |
| 153 | + | moves. Its columns come from what is true of each work item, so there is | |
| 154 | + | nothing to drag: | |
| 155 | + | ||
| 156 | + | | Column | Holds the work items | | |
| 157 | + | | --- | --- | | |
| 158 | + | | **Backlog** | Open, with nobody on it. | | |
| 159 | + | | **In progress** | Claimed or assigned, with a live session on it, or with a draft pull request. | | |
| 160 | + | | **In review** | With an open pull request. | | |
| 161 | + | | **Landing** | Landed in some of its target repositories, still missing in others. | | |
| 162 | + | | **Done** | Closed in the last 14 days. | | |
| 139 | 163 | ||
| 164 | + | A work item goes in the first column that holds for it, in the order | |
| 165 | + | **Done**, **Landing**, **In review**, **In progress**, **Backlog**. Each | |
| 166 | + | card links to its work item and shows who, or which session, is on it. | |
| 167 | + | Filter it by repository with `?repo=<name>`. On a phone the Board shows | |
| 168 | + | one column at a time, with a switcher for the column. | |
| 169 | + | ||
| 140 | 170 | ## Open a work item | |
| 141 | 171 | ||
| 142 | 172 | On **Work**, choose **New work item**. Give it a title and a description, | |
| 143 | 173 | and pick the repositories it should land in, as targets: none, one or | |
| 144 | − | several. Opened from a repository's **Work** tab, that repository is its | |
| 145 | − | origin. | |
| 174 | + | several. Opened from the list filtered to a repository, that repository | |
| 175 | + | is its origin. | |
| 146 | 176 | ||
| 147 | 177 | From the CLI, `g1t work new` opens one in the current repository's | |
| 148 | 178 | workspace, with the repository as its origin: | |
| ⋯ | |||
| 162 | 192 | agents work on a work item at once without getting in each other's way; | |
| 163 | 193 | see [sessions, claims and dependencies](/guides/sessions/). A session is | |
| 164 | 194 | recorded in the repository it is checked out in, and the work item it | |
| 165 | − | works on is the workspace's. | |
| 195 | + | works on is the workspace's. A work item's page lists the sessions on | |
| 196 | + | it; **Sessions**, in the rail, lists every session in the workspace. | |
| 166 | 197 | ||
| 167 | 198 | To open a pull request for a work item, use `g1t pr create --item 12`, or | |
| 168 | 199 | the `pull_request` tool's `create` with `item: 12`. The pull request's | |
| 696 | 696 | ||
| 697 | 697 | | Part | Where | What it holds | | |
| 698 | 698 | | --- | --- | --- | | |
| 699 | − | | **The rail** | A narrow column of icons down the left edge | g1t's mark, which goes to [Home](/guides/home/); the built-in apps, with **Explore** after **Work**; the apps you pinned; and at its foot **Apps**, **People**, **Workspace** and your account. Hold the pointer over an icon for its name. | | |
| 699 | + | | **The rail** | A narrow column of icons down the left edge | g1t's mark, which goes to [Home](/guides/home/); the built-in apps, with **Explore** after **Work** and **Sessions**; the apps you pinned; and at its foot **Apps**, **People**, **Workspace** and your account. Hold the pointer over an icon for its name. | | |
| 700 | 700 | | **The sidebar** | Flush against the rail | The workspace and its switcher at the top, **Search or jump to**, then the lists of the app you are in, in named groups. Home has none. | | |
| 701 | 701 | | **The page** | The rest of the window, flat against the sidebar | Its header: the button that shows or hides the sidebar, where you are, **Search or jump to** (<kbd>Ctrl</kbd> <kbd>K</kbd>, or <kbd>⌘</kbd> <kbd>K</kbd> on a Mac) when the sidebar is hidden or has a search of its own, the [notifications](/guides/notifications/) bell and **Create new**. Then the page itself. | | |
| 702 | 702 | ||
| ⋯ | |||
| 708 | 708 | | App | Opens | | |
| 709 | 709 | | --- | --- | | |
| 710 | 710 | | **Home** | Where you're needed across the workspace, and what happened while you were away. See [Home](/guides/home/). | | |
| 711 | − | | **Work** | The workspace's work items, with its labels and milestones, at `g1t.sh/<workspace>/-/work`. Every member has it, with Code access or not. See [work items](/guides/work-items/). | | |
| 711 | + | | **Work** | The workspace's work items, their [Board](/guides/work-items/#the-board), and its labels and milestones, at `g1t.sh/<workspace>/-/work`. Every member has it, with Code access or not. See [work items](/guides/work-items/). | | |
| 712 | + | | **Sessions** | What is cooking across the workspace: the sessions live now in every repository you can read, the merge queues, what just landed and what happened, at `g1t.sh/<workspace>/-/sessions`. See [the Sessions page](/guides/sessions/#the-sessions-page). | | |
| 712 | 713 | | **Explore** | g1t beyond your workspaces: public projects, people and other workspaces. | | |
| 713 | 714 | | **Chat** | Channels and messages. See [Chat](/guides/chat/). | | |
| 714 | 715 | | **Code** | Projects, pull requests and checks. Not shown to a member without Code access. | | |
| ⋯ | |||
| 878 | 879 | | | What it does | | |
| 879 | 880 | | --- | --- | | |
| 880 | 881 | | **The bar along the bottom** | **Home**, **Work**, **Chat** and **Notifications**, each with what is unread, and **More**. Work is there for every member, with Code access or not. It runs flat along the bottom edge, as the rail stands beside the page on a computer, and the page fills the screen above it. The app you are in is marked as on the rail. It steps aside while the keyboard is up and inside a conversation. | | |
| 881 | − | | **More** | A panel above the bar with **Code** first (for members with Code access), **All apps** and the apps you pinned, **Artifacts**, **Routines**, **People**, **Workspace**, **Explore**, and **You and help**: your status, profile and settings, [appearance](#appearance), the documentation, support, status, the keyboard's shortcuts and signing out. | | |
| 882 | + | | **More** | A panel above the bar with **Sessions** first, then **Code** (for members with Code access), **All apps** and the apps you pinned, **Artifacts**, **Routines**, **People**, **Workspace**, **Explore**, and **You and help**: your status, profile and settings, [appearance](#appearance), the documentation, support, status, the keyboard's shortcuts and signing out. | | |
| 882 | 883 | | **The sidebar button**, at the left of the page's header | Opens the sidebar of the app you are in from the left, most of the screen wide: the same lists and links as on a computer. Tap outside it, or open a page, and it closes. | | |
| 883 | − | | **The tab you are already on** | Tap it again to open that app's sidebar too: for **Work**, **Open**, **Assigned to you**, **Closed**, **New work item**, **Labels** and **Milestones**. | | |
| 884 | + | | **The tab you are already on** | Tap it again to open that app's sidebar too: for **Work**, **Open**, **Assigned to you**, **Closed**, **Board**, **Sessions**, **New work item**, **Labels** and **Milestones**. | | |
| 884 | 885 | | **The workspace's name** in the page's header | Switches workspace, or opens your profile or settings. | | |
| 885 | 886 | ||
| 886 | 887 | Inside a [project](/guides/projects/), its pages (**Overview**, **Code**, | |
| 90 | 90 | ||
| 91 | 91 | 4. **Open a work item** | |
| 92 | 92 | ||
| 93 | − | On the repository's **Work** tab, choose **New work item**, or: | |
| 93 | + | On **Work**, in the left rail, choose **New work item** and pick the | |
| 94 | + | repository as its target, or: | |
| 94 | 95 | ||
| 95 | 96 | ```sh | |
| 96 | 97 | g1t work new --title "Greeting should name the caller" --body "Take a name from the first argument." |
| 433 | 433 | | [`update`](/reference/api/sessions/update-session/) | A heartbeat, and renews the session's claims; with fields, attaches an `item` or `pull`, or sets `branch`, `head_commit`, `title`, or a subagent's `task`, `prompt`, `model` or `result`. | `repo`, `id` | `pull_requests:write` | | |
| 434 | 434 | | [`record`](/reference/api/sessions/record-session-entries/) | Record up to 200 `entries`, each with `kind` and `text` (`skill` for a skill used, by name), `tool` for tools, and a `key` that makes recording it again a no-op; and `touched`, what it touched (`file`, `commit`, `branch`, `pull`, `item`), which ties it to pull requests and work items and tells sessions on the same files of each other. | `repo`, `id` | `pull_requests:write` | | |
| 435 | 435 | | [`end`](/reference/api/sessions/end-session/) | End it, with an optional `reason` and `result` (what it reported). Its subagents still going end with it. | `repo`, `id` | `pull_requests:write` | | |
| 436 | − | | [`get`](/reference/api/sessions/get-session/) | A session and its entries (`after` pages through them), its subagents (`children`), what they touched, the work items and pull requests they worked on (`links`) and the skills used. | `repo`, `id` | `pull_requests:read` | | |
| 437 | − | | [`list`](/reference/api/sessions/list-sessions/) | A repository's sessions, most recently heard from first, by `state` (`active`, `idle`, `ended`), `item` or `pull` (any session tied to it), or `path` (a file touched); `subagents` lists each tree whole. | `repo` | `pull_requests:read` | | |
| 436 | + | | [`get`](/reference/api/sessions/get-session/) | A session and its entries (`after` pages through them), its subagents (`children`), what they touched, the work items and pull requests they worked on (`links`) and the skills used. With [`workspace`](/reference/api/sessions/get-workspace-session/) and `id` instead of `repo`, a session of any of the workspace's repositories, with its `repo`. | `repo` or `workspace`, `id` | `pull_requests:read` | | |
| 437 | + | | [`list`](/reference/api/sessions/list-sessions/) | A repository's sessions, most recently heard from first, by `state` (`active`, `idle`, `ended`), `item` or `pull` (any session tied to it), or `path` (a file touched); `subagents` lists each tree whole. With [`workspace`](/reference/api/sessions/list-workspace-sessions/) instead of `repo`, the sessions of every repository of the workspace you can read, as [Sessions](/guides/sessions/#the-sessions-page) shows them: by `state` (`live`, `recent`, `ended`), `kind` (`harness`, `hosted`, `agent`, `recorded`), `harness`, `person`, `repo`, `item`, `subagents` and `limit`, with each repository's merge `queue`, what `landed` and the `repos` covered. | `repo` or `workspace` | `pull_requests:read` | | |
| 438 | 438 | | [`dispatch`](/reference/api/sessions/start-agent-session/) | Start work on an `item` (or a new work item from `title` and `body`) in a session on the person's own Claude: a Claude Managed Agents session on the workspace's Anthropic account, recorded here, or with `handoff` a Claude Code command line to run. `mode` is `plan`, `implement` or `review`; `instruction` adds to it. | `repo` | `pull_requests:write` | | |
| 439 | 439 | ||
| 440 | 440 | ## `workflow` |
Comments
Sign in to comment.