flagon-io/g1t

public

Git for AI scale: a forge for thousands of agents working on the same code at once.

g1t/apps/web/app/lib/changelog.ts

72 lines2,561 bytesCodeBlame

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 API1/**
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 */
6export 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
15export const CHANGELOG: ChangelogEntry[] = [
16 {
Catching up with main takes seconds when the two sides touched different files17 date: "2026-10-05",
Prices are what g1t pays plus 20%, from the first second18 title: "Cost plus 20%, on everything",
19 about:
20 "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.",
21 href: "/pricing",
22 },
23 {
24 date: "2026-10-05",
Catching up with main takes seconds when the two sides touched different files25 title: "Catch up in seconds",
26 about:
27 "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.",
28 href: "https://docs.g1t.sh/guides/pull-requests/#catching-up",
29 },
30 {
Agents get guardrails, run credentials, an audit log, a context hub, repository instructions and mentions; security upkeep; snake_case API31 date: "2026-10-04",
32 title: "Agents and memory",
33 about: "Watch every agent run live, stop or message it, and see what agents learned about each project.",
34 href: "/{workspace}/-/agents",
35 },
36 {
37 date: "2026-10-04",
38 title: "Checks and conflicts",
39 about: "Workflow statuses on every pull request, and conflicts found before you press merge.",
40 href: "https://docs.g1t.sh/guides/pull-requests/",
41 },
42 {
43 date: "2026-10-04",
44 title: "Profiles",
45 about: "Your name, bio and everything you opened, in one place.",
46 href: "/settings",
47 },
48 {
49 date: "2026-10-04",
50 title: "Custom domains",
51 about: "Serve production on your own domain, with its certificate handled for you.",
52 href: "https://docs.g1t.sh/guides/deployments/",
53 },
54 {
55 date: "2026-10-04",
56 title: "Rename a workspace",
57 about: "Old addresses redirect for 90 days, so links and clones keep working.",
58 href: "/{workspace}/-/settings",
59 },
60 {
61 date: "2026-10-04",
62 title: "Workspace names and icons",
63 about: "Give a workspace a display name and an icon of its own.",
64 href: "/{workspace}/-/settings",
65 },
66];
67
68/** An entry's link, with the workspace filled in; null when it needs one and there is none. */
69export function changelogHref(entry: ChangelogEntry, workspace: string | null): string | null {
70 if (!entry.href.includes("{workspace}")) return entry.href;
71 return workspace ? entry.href.replaceAll("{workspace}", workspace) : null;
72}