g1t
  1. Events service in Rust, with RFC 3339 times and accurate push events

    - events: rewritten in Rust; publishing queues, the queue consumer writes the log and fans out to each subscriber's own queue. Event times are RFC 3339 text, the last place Unix milliseconds were stored - repos and work publish over the same JSON RPC as every other call between services - git.push is published once per branch that moved, naming that branch, instead of always naming the default branch. The branches are read from the push's own commands and checked against the store before reporting - work: a push event updates the pull request for that branch directly

    Chase Pierce committed

    994ba91
  2. Pull requests from branches

    A pull request can now come from a branch pushed to the repository, the way engineers already work, as well as from a fork made for it, the way agents work. - repos: list branches by reading git's ref advertisement, since the storage binding does not list refs; compare a branch against the point where it left the default branch; land a branch with the same fast-forward and behind check as a fork - work: a pull request has a fork or a branch; one opened from a branch is ready for review at once, a branch has one open pull request at a time, and pushes to the branch move its head - api and mcp: create_pull_request takes branch and body - site: New pull request page with a branch picker; pull request pages show the branch - the work schema is still one migration; production was reset - docs, llms.txt, README and plan updated

    Chase Pierce committed

    94fe83b
  3. OAuth 2.1 sign-in for MCP clients and other applications

    Connecting an MCP client now needs only the server's address: the client is told to sign in, registers itself, and sends the person to a consent page on g1t. No token is pasted. - identity: authorization codes with PKCE (S256), grants with rotating refresh tokens, listing and revoking grants - client registration stores nothing: a client id encodes its own name and redirect addresses, so the open endpoint cannot be used to fill a database - api: authorization server and protected resource metadata, registration and token endpoints; the MCP server answers unauthenticated requests with 401 and a pointer to the metadata - site: consent page at /oauth/authorize, which never redirects to an address the client did not register; connected applications in Settings - docs, llms.txt, README and plan updated

    Chase Pierce committed

    0d8bd3a
  4. Issues and pull requests replace intents and attempts

    An issue is what should change; a pull request is a proposed change in its own fork. One issue can have any number of pull requests, and it is always clear which one was taken: merging closes the issue with resolvedBy set to that pull request, and closes the others still in progress for it as superseded. Merging with keepIssueOpen leaves both alone, for a pull request that is only part of the work. - work: issues with labels, acceptance checks and comments; pull requests (draft, open, merged, closed); one sequence of numbers per repository shared by both; migrations squashed into one schema - labels need no setup: five defaults, and any other name exists once used - api and mcp: GitHub-shaped names and paths, addressed by repo and number - site: Issues and Pull requests tabs, label filters, issue page listing its pull requests with the merged one marked, conversation tab on pull requests - runner: g1t agents open a pull request per agent; commits no longer carry the harness's co-author trailer - docs, llms.txt, README and plan rewritten for the model

    Chase Pierce committed

    edf69f0
  5. Workspaces own repositories

    There is no longer a namespace per user. A person creates a workspace, which may share their username, and repositories belong to it; a team is a workspace with more members. Authorization is by membership. - identity: workspaces, members and roles; every user resolved from credentials carries their memberships - repos: read, write, create and push-to-create check membership - site: create-workspace flow for new accounts, workspace pages with members, workspace choice when creating a repository - api: create_workspace; create_repo takes a workspace - docs and llms.txt updated

    Chase Pierce committed

    28dad98
  6. Work service in Rust, with RFC 3339 timestamps

    - services/work rewritten in Rust: intents, attempts, sessions, shipping, and the queue consumer that moves an attempt's head on a push - work database migrated to text timestamps - site, API and runner call it through a typed client - identity migration corrected so rebuilding tables cannot cascade-delete rows that reference the old users table

    Chase Pierce committed

    efd1509
  7. RFC 3339 timestamps in identity and repos

    Times are stored and returned as UTC text such as 2026-10-02T05:16:19.000Z instead of Unix integers. Both databases are migrated; the work and events services follow when they are ported.

    Chase Pierce committed

    82eeeb9
  8. Show the model behind each choice; toolchains in the sandbox

    - runner: model menu carries the public model name; each run's session opens with a note naming the model - sandbox image: Rust, Go, Python and build tools, so an agent can build and test what it changes

    Chase Pierce committed

    775f340
  9. Device sign-in replaces registering and minting tokens over the API

    A tool asks for a code, the person approves it in their browser (signing in or registering there), and the tool collects a token. Accounts are now created only on the website; no endpoint takes a password. - identity: device_start, device_lookup, device_resolve, device_claim - api: /v1/device/code and /v1/device/token; /v1/register and /v1/tokens removed - site: /device approval page; sign-in and registration return to where the person was going - llms.txt and docs rewritten around the new flow

    Chase Pierce committed

    9eeea66
  10. g1t agents: model menu and optional AI Gateway routing

    - runner: models offered are configured as Balanced, Deep and Fast, each mapped to a provider model server-side; AI_GATEWAY_ID routes model traffic through a Cloudflare AI Gateway - site: model choice when starting a run - docs: choosing a model, and how traffic is routed

    Chase Pierce committed

    ab28857
  11. Docs as their own app; shared theme package

    - apps/docs: Astro Starlight site deployed to docs.g1t.sh, with search, the API explorer, and a page on why attempts use forks and when a branch is the better choice - packages/theme: one set of design tokens and marks for every public site - site: docs removed; old /docs links redirect

    Chase Pierce committed

    ffd58d5
  12. docs.g1t.sh, generated OpenAPI with an interactive reference, full footer

    - api: /openapi.json generated from the operation list; CORS; attempt changes endpoint and MCP tool - site: docs served at docs.g1t.sh; grouped navigation with previous and next; guides for accounts and for g1t agents; API explorer; heading anchors; three-column footer

    Chase Pierce committed

    d12e500
  13. Diffs on attempts; hosted agent presented as the g1t agent

    - repos: compare, a tree walk that skips identical subtrees plus line diffs, against the commit a fork last shared with its source - work: records what main pointed to before an attempt landed - site: Session and Changes tabs on attempts with a pull-request style diff - the hosted agent is labelled g1t-agent; what runs behind it is g1t's choice

    Chase Pierce committed

    54c2401
  14. Hosted agents: sandboxes on Cloudflare Containers started from an intent

    - services/runner: starts one container per attempt running the g1t runner, limited to an allowlist of accounts; abandons the attempt if a sandbox dies without reporting - site: Run hosted agents panel on intents with live refresh; attempt summaries and agent messages render as markdown; GitHub-style clone box with HTTPS, SSH and Agent tabs

    Chase Pierce committed

    d19e4ce
  15. Account dropdown, llms.txt onboarding, hosted agent runner (not yet deployed)

    - site: shadcn-style dropdown for the account menu - llms.txt: lets an assistant register someone, wait for the confirmation email, create a token and connect; API gains /v1/register and /v1/tokens - identity: expiring access tokens for hosted attempts - crates/runner: runs Claude Code headless on an attempt, streams its events into the session, pushes and submits; secrets are redacted from everything it records and the git credential is never written to disk - services/runner/Dockerfile: the sandbox image

    Chase Pierce committed

    3e32c07
  16. Rust repos service with shipping; pull requests kept in the model

    - services/repos rewritten in Rust: registry, contents, forks, git over HTTPS, and landing an attempt on main by relaying a pack from the fork - landing refuses an attempt that is behind main, following every parent when checking ancestry - work: ship_attempt closes the intent; exposed in the API, MCP and site - kit: call Worker RPC stubs correctly from Rust - docs and marketing: shipping documented; intents framed as building on pull requests

    Chase Pierce committed

    9b0218a
  17. Email verification, password reset, and Git for AI scale positioning

    - identity: verification and reset tokens, emails through Cloudflare Email Sending; unverified accounts cannot create or change anything - site: verify, forgot and reset pages, and a banner for unconfirmed accounts - kit: helpers for JavaScript bindings without a typed Rust wrapper - marketing copy repositioned around scale

    Chase Pierce committed

    91f9980
  18. API and MCP server, Rust identity service, registration, site redesign

    - apps/api: REST at api.g1t.sh and MCP at mcp.g1t.sh over one set of operations - services/identity: rewritten in Rust (WebAssembly on Workers), with registration - crates/contracts, crates/kit: shared types and plumbing for Rust services - ids are now TypeIDs (prefix + UUIDv7), monotonic within a millisecond - site: GitHub-style header, marketing page with animated illustrations, sign-up, explore and search, profiles, commits, docs, markdown READMEs and syntax highlighting - git front end publishes push events itself - README and plan updates

    Chase Pierce committed

    030813a
  19. Initial g1t: services, event bus, intents and attempts

    A git forge for agents on Cloudflare Workers and Artifacts. - packages/contracts: service interfaces, event catalogue, shared types - services/identity: accounts, sessions, SSH keys, access tokens - services/repos: registry, contents, forks, git over HTTPS (Artifacts) - services/events: event bus with a durable log and per-subscriber queues - services/work: intents, attempts (a fork each), sessions - apps/web: server-rendered site on g1t.sh - crates/sshd: SSH-to-Artifacts bridge (not yet deployed)

    Chase Pierce committed

    1b0bfc8