Skip to content

Where people and agents ship software together. The open-source git platform for the whole job: issues, agents, checks and deploys to the edge.

302 linesCodeBlameRaw
1---
2title: Home
3description: Your workspace's front page. Where you're needed now, what happened since you were last here, what is running, and the one item to start with. How every number is worked out.
4---
5
6**Home** is the first page of your workspace, at `/<workspace>/-/home`.
7It answers three questions, in this order:
8
91. **Where you're needed**: everything waiting on you, however long ago
10 it started, with the action beside each item.
112. **What happened while you were away**: what settled by itself and
12 what went live; what people did; what landed; deploys and spend,
13 since you were last here.
143. **What is running now**: workflow runs and builds still going.
15
16**Start here** picks the one item to do first.
17
18For a workspace's owners, Home also opens
19[Getting started](/guides/workspaces/#getting-started), the setup guide,
20until they finish or close it; `?setup=1` opens it again.
21
22Every number on the page comes from what g1t has recorded. Nothing is
23estimated. When a part of g1t does not answer, the section it feeds says
24so, and the rest of the page still shows.
25
26## Where you're needed
27
28This list has no time window: something that started waiting a week ago
29is here until you deal with it. Each row says what it is, what is at
30stake, how long it has waited, and has its action beside it.
31
32| Source | Rows |
33| --- | --- |
34| Code | A failed production build; your open pull request that can't land until you act (it conflicts, a required check fails, someone asked for changes, approvals are missing); your pull request that meets everything its branch asks for, ready for you to merge; a review asked of you by name; an invitation to a repository; a job waiting for a self-hosted runner |
35| Notifications | An unread notification in this workspace that is a warning (someone or something is waiting) or a failure. One whose cause is over, such as a workflow that has passed since or a pull request that merged, has [settled](/guides/notifications/#threads-that-settle-themselves) and is not here |
36| Chat | A conversation that mentions you, or a direct message you haven't read. Muted conversations are left out |
37
38A notification about something already on the list, such as a pull
39request whose row is there, is left out.
40
41Rows are ordered most pressing first, by tier, then by how long each has
42waited, longest first:
43
441. A failed production build.
452. Your pull request that can't land until you act on it.
463. Finished work that only waits for you: your pull request to merge, a
47 review, an invitation.
484. Something that may be stuck: a job without a runner.
495. Unread warnings and failures in your notifications.
506. Mentions and direct messages.
51
52The list shows the first eight rows; **Show more** opens the rest. The
53sentence under the page's heading starts with how many things need you.
54
55## Start here
56
57**Start here** is the first row of Where you're needed: the most pressing
58tier, and within it the row that has waited longest. g1t picks it with
59that rule, so the same rows always give the same pick.
60The card shows who is on it, the next action, how long it has waited, what
61is at stake, and why it was picked.
62
63## Since you were last here
64
65Home remembers when you were last on it, for each workspace, with your
66account, so it is the same on your laptop and your phone. The second half
67of the page covers what happened since then, and its heading says the span
68in words, such as **Since Tuesday evening · 2 days** or **Since 40
69minutes ago**.
70
71| Switch | What it covers |
72| --- | --- |
73| **Since last visit** | From the end of your last visit to now. The default. |
74| **Last 24 hours** | The 24 hours up to now. |
75| **Last 7 days** | The 7 days up to now. |
76
77The switch is part of the address (`?window=24h`, `?window=7d`), so you
78can bookmark a span.
79
80How a visit is counted:
81
82- A visit counts once the page has been in view for five seconds. A quick
83 refresh does not count, so it never wipes what you haven't looked at.
84- What it records is when the page loaded, so anything that happens while
85 you are reading shows next time.
86- Visits less than 30 minutes apart are one visit. Going to a pull request
87 and coming back, or refreshing, keeps the same span until you have been
88 away for half an hour.
89- With no visit on record, Home shows the last 24 hours and says so. After
90 more than 14 days away, it shows the last 14 days.
91
92The sentence under the heading sums it up, for example:
93
94> 8 things need you. Since Tuesday evening, 3 people pushed 41 commits and
95> merged 5 changes, and 12 changes landed.
96
97It says what people did first (the commits they pushed and the changes
98they merged; if neither, the messages they sent), then everything that
99[landed](#landed). When nothing at
100all was counted, it says so plainly:
101
102> Quiet since Tuesday evening: nothing pushed, merged, deployed or said.
103
104When Code and Chat both failed to answer, the sentence ends with "what
105people did couldn't be read" rather than reading as quiet.
106
107### While you were away
108
109The first card says what finished by itself in the span, and what is
110live. (Over **Last 24 hours** and **Last 7 days** it is called **Settled
111for you**.) Its first line counts:
112
113| Count | What it is |
114| --- | --- |
115| *4 notifications settled* | Your notifications in this workspace that [settled themselves](/guides/notifications/#threads-that-settle-themselves) in the span: a later run passed, the pull request merged, the deployment went out. One you marked done yourself is not counted |
116| *3 changes live*, *1 deploying*, *1 waiting to deploy*, *1 deploy failed* | The merges and pushes under [Landed](#landed), by whether each is [live](#live-after-merge) |
117| *2 things still need you* | The rows of [Where you're needed](#where-youre-needed); it takes you there |
118
119Under it, each notification that settled, newest first, with why it
120settled and who did it, such as **CI passed in run 330** or **Merged by
121@ana**. **Done** opens the notifications that are done.
122
123### People
124
125The second card, **People**, lists what people did in the span, one line
126per kind of thing with its count, and each line opens the place that lists
127them: a project's Activity tab for pushes, its pull requests or issues,
128Artifacts, Chat. Beside the heading are the faces of the five most active,
129and how many more there were.
130
131| Line | What counts | From |
132| --- | --- | --- |
133| *3 people pushed 41 commits to 4 projects* | Every push to a branch of one of the workspace's repositories (`git.push`; tags are not pushes). The commits are the ones each push brought to its branch, along the branch's first-parent line from where it is now back to where it was, at most 50, and one for a new branch. A push recorded before commits were counted counts as one commit. | Events |
134| *opened 2 pull requests, merged 5, closed 1 without merging* | `pull.opened`, `pull.merged`, `pull.closed` | Events |
135| *reviewed 3 pull requests* | A review is a comment with a verdict | Events |
136| *opened 4 issues, closed 6* | `issue.opened`, `issue.closed` | Events |
137| *left 9 comments* | `comment.created` without a verdict | Events |
138| *2 deploys went out, 1 failed* | `deployment.succeeded` and `deployment.failed`, by who set the build off | Events |
139| *published 1 release*, *published 2 package versions* | `release.published`, `package.published` | Events |
140| *created 1 doc, edited 7 docs* | Artifacts made (`folio.created`), and artifacts whose content changed (`folio.updated`): each artifact once, and everyone whose changes a version holds edited it. "Docs" when every one is a doc, else "artifacts". Counts only: Home never shows an artifact's title here. | Events |
141| *sent 120 messages in 5 conversations* | Text messages and thread replies that were not deleted, in the conversations you can read: every public channel, and the private channels and direct messages you are in. Conversations are those with at least one message. | Chat |
142
143A push an import made names nobody, so it is counted without a face.
144
145The card says when it has nothing to show, and names the part that didn't
146answer (Code or Chat) so an empty card never reads as a quiet day.
147
148### Landed
149
150Everything that landed in the span, newest first:
151
152| Row | What it is |
153| --- | --- |
154| A pull request merged | With who wrote it, and who merged it when that was someone else |
155| A push to a default branch | One row per push a person made straight to a default branch: its commit's first line when it brought one, else how many commits, and who pushed. For the ten projects pushed to most in the span; past those, one row per project with how many commits and pushes |
156| A production build that went live | A project's production build that built and was served (previews stay under Deploys) |
157| A release published | Its tag and name, and who released it |
158| A package version published | Its name and version, and who published it |
159
160The card's line counts them by kind. The first
161five show; **Show more** opens the rest. Over **Last 7 days** the rows are
162grouped by day (**Today**, **Yesterday**, **Sun, Oct 11**), five of each
163day showing.
164
165#### Live after merge
166
167Each merge and push says whether it is live yet, for a project that
168deploys to production. Landing on `main` is not shipping: a change is
169shipped once a production deployment that contains it succeeds.
170
171| Label | When |
172| --- | --- |
173| **Live 9 min after merge** | A production deployment that succeeded shipped it, this long after it landed. The label opens that deployment, or the workflow run that deployed it |
174| **Deploying** | A production deployment after it is under way |
175| **Deploy failed** | The production deployment after it failed, and none has shipped it since |
176| **Waiting to deploy** | Nothing has deployed it yet |
177
178How g1t knows: when a production deployment succeeds, a
179[g1t.page build](/guides/deployments/) or one a workflow or the API
180reported, g1t reads its commit's history back and writes down each
181commit no production deployment shipped before as shipped by this one.
182So a commit's first production deployment is the one that took it live,
183and a rollback to an older commit ships nothing new. Home reads only what
184was written down, so this costs nothing when the page loads. A change
185that landed before g1t began writing this down for its project goes live
186with the first production deployment that succeeded after it.
187
188#### Made with an agent
189
190A merge or push made in a harness session, such as Claude Code working
191for you, carries the agent marker beside its title; it opens the
192session. A pull request is marked when a session is tied to it (it
193pushed the branch, named the pull request, or a commit on it carries a
194`G1t-Session:` trailer); a push when one of its commits carries the
195trailer. The change is still yours, and stays in the same list. When one of its sources (pull
196requests, pushes and releases, deployments) didn't answer, the card says
197so under the list.
198
199### Deploys
200
201Every build that finished in the span, production and previews: **Went
202live** when it built and was served (it may have been replaced since), or
203**Failed**. Skipped builds are left out. A workspace whose projects did not
204build in the span has no Deploys card.
205
206### Spent
207
208What the workspace spent over the span, from its
209[statement](/guides/usage-and-billing/), with each line at its price: what
210was charged plus what your plan's included usage, a trial, a pool or a
211discount paid of it. The lines are the statement's kinds of charge, such
212as **Runner minutes, 2-core**, **Self-hosted runner time** and
213**Deployments**, most first. Payments, credits, refunds and tax
214are money in, not spend, and are left out. Under the total are the days
215counted and the month so far, at price.
216
217The statement keeps whole days, midnight to midnight UTC, so spend counts
218from the start of the UTC day the span began: a span since 3 p.m. UTC
219yesterday counts all of yesterday. Usage that g1t measures through the
220month, such as hosting requests and storage, shows on the day it is added
221to the statement.
222
223## Running now
224
225What is going right now, longest-going first:
226
227| Kind | What it is |
228| --- | --- |
229| Workflow run | A [workflow](/guides/actions/) run that is queued, waiting, running, or waiting for approval, in the ten projects pushed to most in the span (their newest 20 runs each) |
230| Build | A project's newest build, queued or building |
231
232## Without Code access
233
234A member whose membership does not include Code sees Home without anything
235from Code:
236
237- People shows what was said and the artifacts edited; nothing from
238 repositories.
239- Where you're needed has no rows from Code, and no notifications about a
240 repository.
241- Landed, Deploys and Running now are not shown.
242- Spent is the same for every member.
243
244## When something doesn't answer
245
246Each section reads its own part of g1t and shows as soon as it has it.
247When one does not answer:
248
249- Where you're needed and Running now name the parts that didn't answer,
250 so an empty list never reads as nothing waiting.
251- People counts what could be read, and names the part that is missing
252 (Code or Chat). If nothing could be read, the card says so, and the
253 sentence under the heading says what people did couldn't be read.
254- Landed, Deploys and Spent each say their part didn't answer. When
255 deployments or sessions can't be read, Landed shows its rows without
256 their live labels or agent markers.
257- While you were away says when your notifications can't be read.
258- If your last visit can't be read, the span is the last 24 hours and the
259 page says why.
260
261When a list g1t reads is longer than it reads at once (100 pull requests
262per project and state, 50 projects, builds
263of 20 projects, 5,000 events of the span), the page says that some work
264may be missing or some counts are low.
265
266## How it scales
267
268Every event in g1t is in one log, and its ids sort by time, so a span is a
269range of ids. Home asks the events service for one digest of the span: for
270each of the workspace's repositories (the first 50) and each kind of event
271it counts, that is one range scan of an index on repository, type and id,
272and the workspace's artifact events are the same range under no
273repository. A busy week of tens of repositories is a few thousand rows,
274read in one round trip; chat's count is one query over the conversations
275you can read. When a workspace has hundreds of repositories, the next step
276is a daily rollup per workspace that the digest reads instead of the log.
277It is not built yet.
278
279## For services: activity_digest and activity
280
281Home's counts come from two methods other services can call too.
282
283**`activity_digest`** on the events service (`repo_ids`, `workspace`,
284`from`, `until`; RFC 3339, `[from, until)`; the caller has checked the
285viewer may read each repository) returns, per repository that had any
286event: `pushes` (`count`, `commits`, `branches`, `by` with each actor's
287pushes and commits, and `default_branch` with the same for pushes straight
288to it and `last_at`), `pulls` (`opened`, `merged`, `closed`), `issues`
289(`opened`, `closed`), `reviews`, `comments`, `deployments` (`succeeded`,
290`failed`, `production`), `releases` and `packages` (newest first, at most
29150 each); and for the workspace named, `folios` (`created`, `edited` with
292each folio's authors, `edited_count`). Every count by actor is a list of
293`{ actor, count }`, where `actor` is a member key: `user:<id>` for an
294account (g1t is `user:usr_g1t_agent`), `agent:<id>` for an agent, or
295empty for nobody. `complete` is
296false when more than 5,000 events fell in the span, or more than 50
297repositories were named.
298
299**`activity`** on the chat service (`workspace`, `viewer`, `from`,
300`until`) returns `messages`, `channels` (conversations with at least one)
301and `authors` (`key`, `messages`; most first), over text messages and
302thread replies not deleted in the conversations the viewer can read.