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.
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 1 | /** |
| 2 | * What a project will have and does not yet: the pages the project menu | |
| 3 | * shows as Soon, each with a page of its own saying what it will be. One | |
| 4 | * place, so the menu and those pages never disagree. | |
| 5 | * | |
| 6 | * Each entry says what it is for, what it will do, and what to use today, | |
| 7 | * so a Soon is a promise someone can read, not a greyed-out word. | |
| 8 | */ | |
| 9 | ||
| 10 | export type RoadmapItem = { | |
| 11 | /** In the address: `/<owner>/<project>/soon/<key>`. */ | |
| 12 | key: string; | |
| 13 | title: string; | |
| 14 | /** | |
| 15 | * Where it lives: a project page whose tabs it joins, or the workspace, | |
| Merge branch 'rm-boards' | 16 | * for what spans projects (Insights). |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 17 | */ |
| 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. | 18 | section: "Code" | "Issues" | "Deployments" | "Observability" | "Security" | "Insights" | "Workspace"; |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 19 | /** One line, for the menu's tooltip and the page's lead. */ |
| 20 | summary: string; | |
| 21 | /** Why it matters, in two or three sentences. */ | |
| 22 | why: string; | |
| 23 | /** What it will do. */ | |
| 24 | plans: string[]; | |
| 25 | /** What to use until it exists: a project page, by its path under the project. */ | |
| 26 | today?: { label: string; path: string }; | |
| 27 | }; | |
| 28 | ||
| 29 | export const ROADMAP: RoadmapItem[] = [ | |
| Merge branch 'rm-boards' | 30 | // --- Workspace ---------------------------------------------------------- |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 31 | { |
| Navigation: the workspace's own page with tabs, pins and recent in the sidebar | 32 | key: "insights", |
| 33 | title: "Insights", | |
| 34 | section: "Workspace", | |
| 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. | 35 | summary: "How the whole workspace delivers: lead time, reviews and what it costs, across every project.", |
| Navigation: the workspace's own page with tabs, pins and recent in the sidebar | 36 | why: "Each project will have its own numbers. The workspace's put them side by side, so you can see which projects ship steadily, where work waits, and where the money goes.", |
| 37 | plans: [ | |
| 38 | "Delivery metrics for every project, side by side", | |
| 39 | "Where work waits: review, the merge queue, checks", | |
| 40 | "Cost by project, by kind of work and per merged change", | |
| 41 | ], | |
| 42 | }, | |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 43 | // --- Code --------------------------------------------------------------- |
| Chat controls, public profiles, shadcn selects, and no Docs tab in a project | 44 | // Nothing: code is not docs. Docs is its own workspace mode, filterable |
| 45 | // by project there, and a project never gets a Docs tab. | |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 46 | |
| 47 | // --- Deployments ---------------------------------------------------------- | |
| 48 | { | |
| 49 | key: "environments", | |
| 50 | title: "Environments", | |
| 51 | section: "Deployments", | |
| 52 | summary: "Staging, production and others, with approvers and branch rules.", | |
| 53 | why: "Production and previews exist today. Environments add the rest: staging, QA, per-customer, each with its own variables, approvers and rules for what may deploy there.", | |
| 54 | plans: [ | |
| 55 | "Named environments with their own variables and secrets", | |
| 56 | "Required approvers before a deploy", | |
| 57 | "Branch rules: what may deploy where", | |
| 58 | "Promote a deployment from one environment to the next", | |
| 59 | ], | |
| 60 | today: { label: "Deployments", path: "deployments" }, | |
| 61 | }, | |
| 62 | { | |
| 63 | key: "flags", | |
| 64 | title: "Feature flags", | |
| 65 | section: "Deployments", | |
| 66 | summary: "Turn features on per environment or per user, without a deploy.", | |
| 67 | why: "Ship code dark and turn it on when ready, for some users first, at the edge, with no deploy.", | |
| 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. | 68 | plans: ["Flags read at the edge by deployed apps", "Rollouts by percentage, user or environment", "Reminders to clean up flags once fully on"], |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 69 | today: { label: "Deployments", path: "deployments" }, |
| 70 | }, | |
| 71 | ||
| 72 | // --- Security ------------------------------------------------------------- | |
| Teams and CODEOWNERS, labels and milestones, dependency updates, the security suite, and a clearer top bar | 73 | // The overview, secret scanning, code scanning, vulnerabilities and the |
| 74 | // dependency graph are built: see routes/repo/security-*.tsx. | |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 75 | { |
| 76 | key: "firewall", | |
| 77 | title: "Firewall", | |
| 78 | section: "Security", | |
| 79 | summary: "Rules for who may reach the project's deployed apps.", | |
| 80 | why: "Deployed apps run on Cloudflare. Rate limits, bot protection and IP rules, per app and environment.", | |
| 81 | plans: ["Rate limits and bot protection", "IP and country rules", "Password-protected previews"], | |
| 82 | today: { label: "Deployments", path: "deployments" }, | |
| 83 | }, | |
| 84 | ||
| 85 | // --- Observe ------------------------------------------------------------ | |
| 86 | { | |
| 87 | key: "uptime", | |
| 88 | title: "Uptime", | |
| 89 | section: "Observability", | |
| 90 | summary: "Checks that the app answers, from around the world.", | |
| 91 | why: "Know the app is down before your users tell you, and who was told.", | |
| 92 | plans: ["Checks from many places", "Alerts by email and webhook", "A public status page"], | |
| 93 | }, | |
| 94 | { | |
| 95 | key: "analytics", | |
| 96 | title: "Web analytics", | |
| 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. | 97 | section: "Insights", |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 98 | summary: "Who visits the deployed apps, without cookies.", |
| 99 | why: "Visits, pages and referrers for each app, private by design, from Cloudflare's own analytics.", | |
| 100 | plans: ["Visits, pages, referrers and countries", "No cookies, no personal data", "Per deployment and per preview"], | |
| 101 | }, | |
| 102 | ||
| 103 | // --- Insights ------------------------------------------------------------- | |
| 104 | { | |
| 105 | key: "delivery", | |
| 106 | title: "Delivery", | |
| 107 | section: "Insights", | |
| 108 | summary: "Lead time, deploy frequency, change failure rate and time to restore.", | |
| 109 | why: "The four numbers that say how well a team ships, measured from what actually happened in g1t.", | |
| 110 | plans: ["DORA metrics from merges and deployments", "Review and queue time", "Trends by week and by project"], | |
| 111 | }, | |
| 112 | { | |
| 113 | key: "costs", | |
| 114 | title: "Costs", | |
| 115 | section: "Insights", | |
| 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. | 116 | summary: "What the project costs, by workflow run, sandbox, build and app.", |
| Security: postcss-selector-parser 7.1.6 and basic-ftp 6.2.2, pinned by overrides | 117 | why: "Usage is charged by the workspace; here it is broken down for one project, so you can see what each part of the work costs.", |
| 118 | plans: ["Cost by kind of work and by issue", "Cost per merged change", "Budgets per project"], | |
| 119 | }, | |
| 120 | ]; | |
| 121 | ||
| 122 | export function roadmapItem(key: string): RoadmapItem | undefined { | |
| 123 | return ROADMAP.find((item) => item.key === key); | |
| 124 | } | |
| 125 | ||
| 126 | export function roadmapIn(section: RoadmapItem["section"]): RoadmapItem[] { | |
| 127 | return ROADMAP.filter((item) => item.section === section); | |
| 128 | } |
This file's history is long; its oldest lines are credited to the oldest commit read.