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.
| Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API | 1 | /** |
| 2 | * What is new on g1t, newest first, for the corner of mission control that | |
| 3 | * says so. Short and specific: what changed, and where to see it. Add an | |
| 4 | * entry in the same change that ships the feature. | |
| 5 | */ | |
| 6 | export type ChangelogEntry = { | |
| 7 | /** `YYYY-MM-DD`. */ | |
| 8 | date: string; | |
| 9 | title: string; | |
| 10 | about: string; | |
| 11 | /** Docs, or a page on g1t; `{workspace}` and `{project}` are filled in where known. */ | |
| 12 | href: string; | |
| 13 | }; | |
| 14 | ||
| 15 | export const CHANGELOG: ChangelogEntry[] = [ | |
| 16 | { | |
| Catching up with main takes seconds when the two sides touched different files | 17 | date: "2026-10-05", |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 18 | title: "Invites", |
| 19 | about: | |
| 20 | "g1t is invite-only while we open it up. You have 5 invites: make one for anyone with the link or for one email address, copy it, and revoke it until it is used; an unused one comes back when it expires. Owners can invite an email address straight into a workspace, and it makes the account and joins in one step.", | |
| 21 | href: "/settings#invites", | |
| 22 | }, | |
| 23 | { | |
| 24 | date: "2026-10-05", | |
| 25 | title: "Status, security and policies", | |
| 26 | about: | |
| 27 | "g1t.sh/status checks every public part of g1t each minute and says plainly what it can't check yet; the dot beside Status in the footer and your account menu follows it. Security describes what protects your code and how to report a vulnerability, Support says who to write to, and Policies has the terms, privacy policy, acceptable use, refunds and subprocessors, with every change listed.", | |
| 28 | href: "/status", | |
| 29 | }, | |
| 30 | { | |
| 31 | date: "2026-10-05", | |
| 32 | title: "One plan, and limits you control", | |
| 33 | about: | |
| 34 | "The forge stays free. The g1t plan is $20 a month per workspace, with $10 of usage included and deployments part of it. Billing now has the $5 trial after a card check, your spend limit with how far you can raise it yourself, Raise my limit, Prepay, caps per run and per issue, and Keep going or Stop when spending spikes.", | |
| 35 | href: "/{workspace}/-/billing", | |
| 36 | }, | |
| 37 | { | |
| 38 | date: "2026-10-05", | |
| 39 | title: "A project overview that shows the way to production", | |
| 40 | about: | |
| 41 | "Production shows a screenshot of the live site, taken on each deploy. A checklist counts the steps to production, from first push to a first issue for g1t-agent, each linking to where it is done. Active branches show how far each has moved from main, with its pull request and preview.", | |
| 42 | href: "https://docs.g1t.sh/guides/projects/#the-overview", | |
| 43 | }, | |
| 44 | { | |
| 45 | date: "2026-10-05", | |
| 46 | title: "Setup for Claude Code, Codex, OpenCode and Cursor", | |
| Team plan, an open-source pool, monthly trials and honest metering; the sidebar for everyone; a workspace that stays put | 47 | about: |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 48 | "Wherever g1t shows how to connect your coding agent, pick yours: the command or config for it, with a copy button. Every block on the page follows your choice, and it is remembered.", |
| 49 | href: "https://docs.g1t.sh/guides/bring-your-own-agent/", | |
| Team plan, an open-source pool, monthly trials and honest metering; the sidebar for everyone; a workspace that stays put | 50 | }, |
| 51 | { | |
| 52 | date: "2026-10-05", | |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 53 | title: "Browse public projects in the sidebar", |
| Team plan, an open-source pool, monthly trials and honest metering; the sidebar for everyone; a workspace that stays put | 54 | about: |
| Invite-only launch: sign in with GitHub, repository access and lifecycle, many emails, a new look | 55 | "Public projects, Explore, Search and profiles use the sidebar whether you are signed in or not. A page you cannot see says so plainly, the same for private and missing, with a way to sign in or switch account.", |
| 56 | href: "https://docs.g1t.sh/guides/git/#browsing-without-an-account", | |
| Team plan, an open-source pool, monthly trials and honest metering; the sidebar for everyone; a workspace that stays put | 57 | }, |
| 58 | { | |
| 59 | date: "2026-10-05", | |
| Prices are what g1t pays plus 20%, from the first second | 60 | title: "Cost plus 20%, on everything", |
| 61 | about: | |
| 62 | "Sandbox time is charged at cost plus 20% from the first second, with no free minutes. Runs on your own model provider no longer carry a $0.10 fee: they pay only their sandbox time.", | |
| 63 | href: "/pricing", | |
| 64 | }, | |
| 65 | { | |
| 66 | date: "2026-10-05", | |
| Catching up with main takes seconds when the two sides touched different files | 67 | title: "Catch up in seconds", |
| 68 | about: | |
| 69 | "Catch up with main merges it in at once when the two changed different files. When they overlap, the merge box shows g1t-agent at work, step by step.", | |
| 70 | href: "https://docs.g1t.sh/guides/pull-requests/#catching-up", | |
| 71 | }, | |
| 72 | { | |
| Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API | 73 | date: "2026-10-04", |
| 74 | title: "Agents and memory", | |
| 75 | about: "Watch every agent run live, stop or message it, and see what agents learned about each project.", | |
| 76 | href: "/{workspace}/-/agents", | |
| 77 | }, | |
| 78 | { | |
| 79 | date: "2026-10-04", | |
| 80 | title: "Checks and conflicts", | |
| 81 | about: "Workflow statuses on every pull request, and conflicts found before you press merge.", | |
| 82 | href: "https://docs.g1t.sh/guides/pull-requests/", | |
| 83 | }, | |
| 84 | { | |
| 85 | date: "2026-10-04", | |
| 86 | title: "Profiles", | |
| 87 | about: "Your name, bio and everything you opened, in one place.", | |
| 88 | href: "/settings", | |
| 89 | }, | |
| 90 | { | |
| 91 | date: "2026-10-04", | |
| 92 | title: "Custom domains", | |
| 93 | about: "Serve production on your own domain, with its certificate handled for you.", | |
| 94 | href: "https://docs.g1t.sh/guides/deployments/", | |
| 95 | }, | |
| 96 | { | |
| 97 | date: "2026-10-04", | |
| 98 | title: "Rename a workspace", | |
| 99 | about: "Old addresses redirect for 90 days, so links and clones keep working.", | |
| 100 | href: "/{workspace}/-/settings", | |
| 101 | }, | |
| 102 | { | |
| 103 | date: "2026-10-04", | |
| 104 | title: "Workspace names and icons", | |
| 105 | about: "Give a workspace a display name and an icon of its own.", | |
| 106 | href: "/{workspace}/-/settings", | |
| 107 | }, | |
| 108 | ]; | |
| 109 | ||
| 110 | /** An entry's link, with the workspace filled in; null when it needs one and there is none. */ | |
| 111 | export function changelogHref(entry: ChangelogEntry, workspace: string | null): string | null { | |
| 112 | if (!entry.href.includes("{workspace}")) return entry.href; | |
| 113 | return workspace ? entry.href.replaceAll("{workspace}", workspace) : null; | |
| 114 | } |