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.

g1t.sh
93 linesCodeBlameRaw

Pick any line to see why it is the way it is: the commit, the pull request and issue it came from, and what the agent was thinking.

Inbox: the events service tells people what needs them as events arrive1import { env } from "cloudflare:workers";
2
3import {
4 accountsClient,
5 actionsClient,
Merge remote-tracking branch 'origin/claude/cool-newton-7nm8r9' into claude/cool-newton-7nm8r96 advisoriesClient,
g1t coordinates the work and the person's own sessions do it: Ask g1t reads g1t with the same tools any agent gets, answers in one conversation shared with the @g1t direct message in Chat, and hands work to sessions in the person's own harness, whose subagents g1t records, ties to issues and pull requests, and lets see each other.7 agentSessionsClient,
Inbox: the events service tells people what needs them as events arrive8 agentsClient,
9 billingClient,
Chat and workspace agents: channels, DMs and named agents you talk to10 chatClient,
Inbox: the events service tells people what needs them as events arrive11 deploymentsClient,
Docs: a workspace knowledge base people and agents write together12 docsClient,
Artifacts is a mode in the rail, the shell and the phone's tab bar in place of Docs: its home lists everything you can open by day or as cards under All, Yours and Shared with you, with search, filters and tiles to start a doc (slides, designs and dashboards say they are coming soon), and its sidebar holds favorites, spaces, Private, Shared, projects' docs and the trash.13 foliosClient,
Inbox: the events service tells people what needs them as events arrive14 packagesClient,
15 projectsClient,
16 eventsClient,
17 guardrailsClient,
18 identityClient,
Inbox: a bell in the top bar opens it beside the page, and /inbox holds it all19 inboxClient,
Inbox: the events service tells people what needs them as events arrive20 integrationsClient,
21 reposClient,
22 searchClient,
23 securityClient,
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar24 securitySuiteClient,
Inbox: the events service tells people what needs them as events arrive25 webhooksClient,
26 workClient,
27} from "@g1t/contracts";
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.28import { telemetryClient } from "@g1t/contracts/telemetry";
Inbox: the events service tells people what needs them as events arrive29
30import { instrumented } from "./perf.server";
31
32/**
33 * Each binding the clients use, timed for `Server-Timing` and, for the
34 * services that read D1 with sessions, told where to read (lib/perf.ts).
35 */
36const IDENTITY = instrumented("identity", env.IDENTITY);
37const REPOS = instrumented("repos", env.REPOS);
38const WORK = instrumented("work", env.WORK);
39const BILLING = instrumented("billing", env.BILLING);
40const EVENTS = instrumented("events", env.EVENTS);
41const INTEGRATIONS = instrumented("integrations", env.INTEGRATIONS);
42const WEBHOOKS = instrumented("webhooks", env.WEBHOOKS);
43const ACTIONS = instrumented("actions", env.ACTIONS);
44const DEPLOYMENTS = instrumented("deployments", env.DEPLOYMENTS);
45const PROJECTS = instrumented("projects", env.PROJECTS);
46const SECURITY = instrumented("security", env.SECURITY);
47const SEARCH = instrumented("search", env.SEARCH);
48const PACKAGES = instrumented("packages", env.PACKAGES);
Chat and workspace agents: channels, DMs and named agents you talk to49const CHAT = instrumented("chat", env.CHAT);
The artifacts service is services/artifacts, the Worker g1t-artifacts, bound as ARTIFACTS by the API, the site and the agents; its live rooms move to it with a Durable Object transfer from g1t-docs-service, and its database, bucket, indexes and queue keep their names. The git store's binding and settings are GITSTORE, its ops scripts gitstore-*, and workflow run artifacts keep their compatible API under run_artifacts modules. The deploy tool puts a Worker that has never deployed before the Workers in its stage that bind to it, and the deploy guide gives the cutover runbook.50const ARTIFACTS = instrumented("artifacts", env.ARTIFACTS);
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.51const TELEMETRY = env.TELEMETRY ? instrumented("telemetry", env.TELEMETRY) : null;
Inbox: the events service tells people what needs them as events arrive52
53export const identity = identityClient(IDENTITY);
54/** A person's email addresses and account security: methods of identity. */
55export const accounts = accountsClient(IDENTITY);
56export const repos = reposClient(REPOS);
57export const work = workClient(WORK);
58export const billing = billingClient(BILLING);
59export const events = eventsClient(EVENTS);
Inbox: a bell in the top bar opens it beside the page, and /inbox holds it all60/** Each person's inbox, which the events service keeps. */
61export const inbox = inboxClient(EVENTS);
Inbox: the events service tells people what needs them as events arrive62export const integrations = integrationsClient(INTEGRATIONS);
g1t coordinates the work and the person's own sessions do it: Ask g1t reads g1t with the same tools any agent gets, answers in one conversation shared with the @g1t direct message in Chat, and hands work to sessions in the person's own harness, whose subagents g1t records, ties to issues and pull requests, and lets see each other.63/** Sessions on a workspace's own Anthropic account: the integrations service's agent_sessions.rs. */
64export const agentSessions = agentSessionsClient(INTEGRATIONS);
Inbox: the events service tells people what needs them as events arrive65export const webhooks = webhooksClient(WEBHOOKS);
66export const actions = actionsClient(ACTIONS);
67export const deployments = deploymentsClient(DEPLOYMENTS);
68export const projects = projectsClient(PROJECTS);
69export const security = securityClient(SECURITY);
Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar70/** The security suite: patterns, bypasses, code scanning, the dependency graph, settings. */
71export const securitySuite = securitySuiteClient(SECURITY);
Merge remote-tracking branch 'origin/claude/cool-newton-7nm8r9' into claude/cool-newton-7nm8r972/** Security advisories and private vulnerability reports: methods of the security service. */
73export const advisories = advisoriesClient(SECURITY);
Memory is gone: people's own harnesses keep their own memory (CLAUDE.md, AGENTS.md, auto-memory), so g1t's project and workspace notes that agents recalled and remembered only duplicated them. The recall and remember operations, their /repos/{owner}/{name}/memory routes, the memory MCP tool and its lines in the MCP instructions, the Memory section of the API reference and OpenAPI document (and the CLI's table generated from it) are removed, as are the work service's memory methods, the Memory pages of a project and of a workspace with their sidebar links, Home's Decisions card (which read decisions out of workspace memory), the Memory guide (its address and the old agent-memory, agents-and-memory and context-hub ones now lead to Connect a coding agent) and every mention in the docs, README, llms.txt, the landing page, the privacy policy and the Ask bench. Decision records, g1t why and g1t work stay as they were. memory:read and memory:write are retired as agents:run and the models scopes were: tokens and OAuth grants that hold them still parse and keep working for their other scopes, but no preset (the Agent preset and the OAuth default included), token form, mobile sign-in or hosted session hands them out and nothing needs them; looking up a ticket (search ticket, get_context), which needed memory:read, needs issues:read. The memories table stays in work's D1 untouched and is no longer read or written, except that purging a repository or deleting a workspace still deletes its old rows. Checked: cargo test for g1t-contracts (308), g1t-api (201), g1t (102 and 41), g1t-work (103) and g1t-integrations (65), cargo check of the workspace, the OpenAPI document and ops table regenerated, every workspace's typecheck, the site's 901 tests and a production build, the contracts' 48 tests, the phone app's 11, the deploy tool's 92, and the docs' tests and build.74/** Runs and pull request sessions: methods of the work service. */
Inbox: the events service tells people what needs them as events arrive75export const agents = agentsClient(WORK);
The site no longer has g1t's own agents. g1t is where the coding agents you already use do their work, so the Agents mode is gone from the rail, with every page under /<workspace>/-/agents: personas, faces, skills, abilities, routines, computers, sessions and agent spend. Customize (skills, connectors, plugins, marketplaces), the context hub, model providers, the AI Gateway page, the Spend page and pill, Ask g1t, and the repository's Agents, Plans and agent settings pages go too, and their addresses now answer 404.76/** The network a sandbox may reach: methods of the work service. */
Inbox: the events service tells people what needs them as events arrive77export const guardrails = guardrailsClient(WORK);
78/** Search across all of g1t, and Explore. */
79export const search = searchClient(SEARCH);
80/** The workspace's registries: container images, and more to come. */
81export const packages = packagesClient(PACKAGES);
The site no longer has g1t's own agents. g1t is where the coding agents you already use do their work, so the Agents mode is gone from the rail, with every page under /<workspace>/-/agents: personas, faces, skills, abilities, routines, computers, sessions and agent spend. Customize (skills, connectors, plugins, marketplaces), the context hub, model providers, the AI Gateway page, the Spend page and pill, Ask g1t, and the repository's Agents, Plans and agent settings pages go too, and their addresses now answer 404.82/** Channels, direct messages and threads, where people talk. */
Chat and workspace agents: channels, DMs and named agents you talk to83export const chat = chatClient(CHAT);
The artifacts service is services/artifacts, the Worker g1t-artifacts, bound as ARTIFACTS by the API, the site and the agents; its live rooms move to it with a Durable Object transfer from g1t-docs-service, and its database, bucket, indexes and queue keep their names. The git store's binding and settings are GITSTORE, its ops scripts gitstore-*, and workflow run artifacts keep their compatible API under run_artifacts modules. The deploy tool puts a Worker that has never deployed before the Workers in its stage that bind to it, and the deploy guide gives the cutover runbook.84/** The artifacts service's spaces (Artifacts' spaces) and projects' docs. Its old pages are no longer read. */
85export const docs = docsClient(ARTIFACTS);
86/** Artifacts (folios): docs, and later slides, designs and dashboards, kept by the artifacts service. */
87export const folios = foliosClient(ARTIFACTS);
Projects have Observability: their requests, logs, traces, metrics and errors, from apps on g1t.page with nothing to set up, and from software anywhere else over OpenTelemetry.88
89/**
90 * Observability (services/telemetry): a project's requests, logs, traces,
91 * metrics and errors. Null where it is not deployed; the pages say so.
92 */
93export const telemetry = TELEMETRY ? telemetryClient(TELEMETRY) : null;

This file's history is long; its oldest lines are credited to the oldest commit read.