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.
| Merge branch 'worktree-agent-a8752162fea25f63f' into spend-guardrails | 1 | import type { RateLimitBinding, RunnerApi, ServiceBinding } from "@g1t/contracts"; |
| Device sign-in replaces registering and minting tokens over the API | 2 | |
| 3 | declare global { | |
| 4 | namespace Cloudflare { | |
| 5 | interface Env { | |
| 6 | IDENTITY: ServiceBinding; | |
| 7 | /** Also serves git over HTTPS through `fetch`. */ | |
| 8 | REPOS: ServiceBinding & { fetch(request: Request): Promise<Response> }; | |
| Packages, with a container registry on g1t.sh; workspaces deleted whole and kept 30 days; Members for every member | 9 | /** Also serves the container registry (`/v2/`) through `fetch`. */ |
| 10 | PACKAGES: ServiceBinding & { fetch(request: Request): Promise<Response> }; | |
| Work service in Rust, with RFC 3339 timestamps | 11 | WORK: ServiceBinding; |
| Device sign-in replaces registering and minting tokens over the API | 12 | RUNNER: RunnerApi; |
| Agents as a team: lifecycle, merge queue, billing and a new shell | 13 | BILLING: ServiceBinding; |
| What happened across an outcome, as a feed beside its graph | 14 | EVENTS: ServiceBinding; |
| Integrations: your own model provider, alerts that open issues, tickets agents read | 15 | INTEGRATIONS: ServiceBinding; |
| Webhooks: every event, to your own addresses, signed and retried | 16 | WEBHOOKS: ServiceBinding; |
| GitHub Actions on g1t, part three: .g1t/workflows, the pages, the docs | 17 | ACTIONS: ServiceBinding; |
| Deployments: a preview for every pull request, production on g1t.page | 18 | DEPLOYMENTS: ServiceBinding; |
| Projects: what a workspace builds and runs, first on every page | 19 | PROJECTS: ServiceBinding; |
| Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API | 20 | SECURITY: ServiceBinding; |
| 21 | /** The context hub: catalog, search and scorecards. */ | |
| 22 | CONTEXT: ServiceBinding; | |
| Search across all of g1t, Explore, and a command palette | 23 | /** Search across all of g1t, and Explore. */ |
| 24 | SEARCH: ServiceBinding; | |
| Chat and workspace agents: channels, DMs and named agents you talk to | 25 | /** |
| 26 | * Chat: channels, messages and read state over RPC, and the live | |
| 27 | * socket, forwarded as it is (app/lib/chat-live.server.ts). | |
| 28 | */ | |
| 29 | CHAT: ServiceBinding & { fetch(request: Request): Promise<Response> }; | |
| Docs: a workspace knowledge base people and agents write together | 30 | /** Docs (services/docs): RPC, each page's live socket, and files in pages. */ |
| 31 | DOCS: ServiceBinding & { fetch(request: Request | string, init?: RequestInit): Promise<Response> }; | |
| Chat and workspace agents: channels, DMs and named agents you talk to | 32 | /** The workspace's own agents: definitions, templates and desks. */ |
| 33 | AGENTS: ServiceBinding; | |
| Merge the workspace shell: navigation and phone shell, g1t as orchestrator, agents in roles with audience-checked reads, reactions and custom emoji, live notifications and browser push, the homepage tour (agents 0002, chat 0002) | 34 | /** |
| 35 | * Live notifications, counts and browser push (services/notify): RPC, | |
| 36 | * and each tab's feed socket, forwarded as it is (routes/notify/live.ts). | |
| 37 | * Absent where it is not deployed: pages work without it. | |
| 38 | */ | |
| 39 | NOTIFY?: ServiceBinding & { fetch(request: Request): Promise<Response> }; | |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 40 | /** Production screenshots, from the og service's `Screenshots` entrypoint. */ |
| 41 | SCREENSHOTS?: { | |
| Production thumbnails follow each deploy, not each commit, and old ones are cleared daily | 42 | image(input: { host: string; commit: string; since?: string }): Promise<{ |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 43 | body: ArrayBuffer; |
| 44 | contentType: string; | |
| 45 | commit: string; | |
| 46 | capturedAt: string; | |
| 47 | } | null>; | |
| 48 | }; | |
| Actions: workflow_run, workflow.completed, artifacts on the run page, Node 24 | 49 | BLOBS: KVNamespace; |
| Workspace names and icons, and a component kit for every control | 50 | /** Uploaded avatars by SHA-256, with `{ contentType }`; written by identity. */ |
| 51 | AVATARS: KVNamespace; | |
| Fast pages, required checks on the branch, self-hosted runners, honest incidents | 52 | /** The self-hosted runner's releases (scripts/runner-release.mjs). Absent when self-hosted. */ |
| 53 | DOWNLOADS?: R2Bucket; | |
| Merge branch 'worktree-agent-aaf03bdceac799c89' | 54 | /** The site's own origin. Unset on g1t.sh, which is https://g1t.sh (app/lib/addresses.server.ts). */ |
| 55 | SITE_URL?: string; | |
| 56 | /** The REST API's origin, which is also the OAuth issuer. Unset on g1t.sh. */ | |
| 57 | API_URL?: string; | |
| 58 | /** The MCP server's URL, as agents are told to add it. Unset on g1t.sh. */ | |
| 59 | MCP_URL?: string; | |
| 60 | /** The social-card image service; an empty string for none. Unset on g1t.sh. */ | |
| 61 | OG_URL?: string; | |
| Merge branch 'worktree-agent-a8752162fea25f63f' into spend-guardrails | 62 | /** The front door's rate limits (app/lib/front-door-limits.ts). Absent when self-hosted. */ |
| 63 | WEB_ANONYMOUS_LIMIT?: RateLimitBinding; | |
| 64 | WEB_HEAVY_LIMIT?: RateLimitBinding; | |
| 65 | WEB_SESSION_LIMIT?: RateLimitBinding; | |
| 66 | WEB_ADDRESS_LIMIT?: RateLimitBinding; | |
| 67 | GIT_ANONYMOUS_LIMIT?: RateLimitBinding; | |
| 68 | GIT_SIGNED_LIMIT?: RateLimitBinding; | |
| Merge g1tusercontent.com: registry answers run nothing in a browser, the site's pages run only their own scripts, repository files and avatars on their own origin, raw files rate limited per address | 69 | /** |
| 70 | * Where repository files and avatars are served (app/lib/usercontent.ts). | |
| 71 | * Unset on g1t.sh, which is https://g1tusercontent.com; unset on another | |
| 72 | * site, `<SITE_URL>/-/usercontent`. | |
| 73 | */ | |
| 74 | USERCONTENT_URL?: string; | |
| 75 | /** Signs the short-lived addresses of private repositories' files. A secret. */ | |
| 76 | USERCONTENT_KEY?: string; | |
| Device sign-in replaces registering and minting tokens over the API | 77 | } |
| 78 | } | |
| 79 | interface Env extends Cloudflare.Env {} | |
| 80 | } |
This file's history is long; its oldest lines are credited to the oldest commit read.