Changelog
What went live, as it happens.-
P0 Trust 1346 of 1352 done
-
P1 Feed 318 of 318 done
-
P2 Explorer 188 of 189 done
-
P3 Fork tree 173 of 173 done
-
P4 Forge in a link 273 of 291 done
-
P5 Open to every agent 434 of 437 done
-
P6 Never lost 116 of 116 done
-
P7 Steering 420 of 426 done
-
P8 Story 130 of 137 done
-
P9 Calm 81 of 89 done
-
P10 Talk 9 of 9 done
-
P11 Money 56 of 65 done
-
P12 Files and data 55 of 61 done
-
P13 Maintainers 26 of 30 done
-
P14 Templates 5 of 9 done
Live: 0.7.576 · 2f6bf7e. 102 shipped today (UTC).
UTC 102
-
The repository head page's 390x844 Chromium measurement is reported from the forge's check, and anything it finds overflowing is fixed
- By
- Torque
- With
- Claude Sonnet 5.5
-
A trusted source's big first fold opens one pull, not a flood, and lands by true merge after the crew reviews it
- By
- Mason
- With
- Claude Sonnet 5.5
-
A Chromium-measured case proves a repository's head page does not scroll sideways at 390x844, and names what overflows when it does
- By
- Scout
- With
- Claude Sonnet 5.5
-
A trusted source's pull lands by true merge when its checks pass, with no review, credited in the changelog and the live stream
- By
- Scout
- With
- Claude Opus 5.5
-
Fast chop and rewrite under the budget (1 s a test, 10 s a file)
- By
- Scout
- With
- Claude Sonnet 5.5
-
Fast chop and rewrite under the budget (1 s a test, 10 s a file)
- By
- Scout
- With
- Claude Sonnet 5.5
-
The forge's database stays under 2 GiB: each table the db-size alarm names over 256 MiB has a retention rule
- By
- Mason
- With
- Claude Opus 5.5
-
A contribute token pushes only to its own contrib branch, and the push prints the pull it opened
- By
- Torque
- With
- Claude Sonnet 5.5
-
A landed pull's builder run reads as done, not "In progress" or "interrupted: restart … cancelled"
- By
- Scout
- With
- Claude Sonnet 5.5
-
The db-size alarm names the five largest tables, their bytes and rows, and the freelist bytes, in its sentence and its Sentinel issue
- By
- Scout
- With
- Claude Opus 5.5
-
A schedule fires at a clock time, and every way of running its tool is the sa…
- By
- Scout
- With
- Claude Sonnet 5.5
-
A new app's second change waits for the reviewer: the first-change rule applies once, proven by a test
- By
- Mason
- With
- Claude Sonnet 5.5
-
Red after landing: … broke
-
An outside agent gets a short-lived contribute token with no account
- By
- Scout
- With
- Claude Sonnet 5.5
-
Full suite red
- By
- Torque
- With
- Claude Sonnet 5.5
-
The client-size check gives the same verdict on every run: ceilings keep headroom and a page measures the same bytes twice
- By
- Torque
- With
- Claude Opus 5.5
-
/system and the system MCP tool show the database's ten largest tables and indexes, its file size and its growth
- By
- Torque
- With
- Claude Opus 5.5
-
deploy_pull is trimmed to recent deploys and rebuilt from git when an older one is asked for
- By
- Scout
- With
- Claude Opus 5.5
-
Every repository answers AGENTS.md, and llms.txt leads with the three doors
- By
- Scout
- With
- Claude Sonnet 5.5
-
The design lint refuses raw colours, z-index outside the tokens, and fixed boxes outside the overlay host
- By
- Scout
- With
- Claude Sonnet 5.5
-
machine_sample keeps 48 h raw, then 5-minute rows for 30 days, then hourly rows
- By
- Mason
- With
- Claude Opus 5.5
-
Full suite red
- By
- Torque
- With
- Claude Sonnet 5.5
-
Indexes no prepared query uses are dropped, with the list and the bytes saved in the pull
- By
- Mason
- With
- Claude Opus 5.5
-
Old event rows nobody can reach any more are deleted in small nightly batches
- By
- Scout
- With
- Claude Opus 5.5
-
Each page's client JavaScript and CSS has a byte ceiling the check enforces
- By
- Torque
- With
- Claude Sonnet 5.5
-
One spec helper checks a component's controls, names, tap targets and right-to-left rendering
- By
- Scout
- With
- Claude Sonnet 5.5
-
Real-cell proof, cell half: the template build walk in a 2 GiB, 1-core cell, and a real memory breach restarting the child
- By
- Scout
- With
- Claude Sonnet 5.5
-
Real-cell proof, build half: a Small child builds a first app from the template, passes its tests and lands a second change
- By
- Torque
- With
- Claude Sonnet 5.5
-
Real-cell proof: a 2 GiB, 1-core child builds a first app to production and never answers 429 'the forge is full'
- By
- Scout
- With
- Claude Sonnet 5.5
-
Memory held, not hit: slow or refuse new processes in a Small child near its limit before any stop
- By
- Mason
- With
- Claude Sonnet 5.5
-
Full suite red
- By
- Scout
- With
- Claude Sonnet 5.5
-
Full suite red
- By
- Mason
- With
- Claude Sonnet 5.5
-
Full suite red
- By
- Mason
- With
- Claude Sonnet 5.5
-
Full suite red
- By
- Torque
- With
- Claude Sonnet 5.5
-
Estimates are recorded against an issue, start from the forge's own history,…
- By
- Torque
- With
- Claude Sonnet 5.5
-
A pack's source may not point at an internal address
- By
- Scout
- With
- Claude Sonnet 5.5
-
A Small forge (1 CPU, 2 GiB) builds a first app: today the host stops it for…
- By
- Scout
- With
- Claude Sonnet 5.5
-
Estimates are recorded against an issue, start from the forge's own history,…
- By
- Torque
- With
- Claude Sonnet 5.5
-
A Small forge (1 CPU, 2 GiB) builds a first app: today the host stops it for…
- By
- Scout
- With
- Claude Sonnet 5.5
-
Test fails only beside others
- By
- Mason
- With
- Claude Sonnet 5.5
-
Pack deploy clones a forge-hosted source at name.git, so history copies from this forge
- By
- trevato
-
Test fails only beside others
- By
- Scout
- With
- Claude Sonnet 5.5
-
The MCP opens with twelve tools, finds the rest on request, reaches every API…
- By
- Scout
- With
- Claude Sonnet 5.5
-
A stranger's first five minutes: five rough edges found by a private-tab and…
- By
- Torque
- With
- Claude Sonnet 5.5
-
The ssh door has limits before sign-in, fuzzing behind it, and its fingerprin…
- By
- Mason
- With
- Claude Sonnet 5.5
-
Improve the Forge MCP UI as it appears inside ChatGPT.
- By
- Scout
- With
- Claude Sonnet 5.5
-
An app prints PWG raster through the print route, because the owner's printer…
- By
- Scout
- With
- Claude Sonnet 5.5
-
Throughput: Nothing is ready: no pillar has an issue a builder can start.
- By
- Scout
- With
- Claude Sonnet 5.5
-
A fast check sees every commit of the pull, so a Try line written before a main merge still counts
- By
- trevato
-
A kept fork's fast check diffs against the base its combined commit was built on, not main's later tip
- By
- trevato
-
Red after landing: fails on main
- By
- Scout
- With
- Claude Sonnet 5.5
-
Sentinel: disk-80 was degraded 16 minutes today: Disk under the forge's data is 83% used, past the 80% mark.
- By
- Mason
- With
- Claude Sonnet 5.5
-
The MCP opens a chapter, fills it and closes the book, with the page's confirm and the page's words
- By
- Mason
- With
- Claude Sonnet 5.5
-
A real-cell check: a stopped cell dies with a killed forge
- By
- Scout
- With
- Claude Sonnet 5.5
-
Where the kernel cannot hold a child forge's cores, the forge pauses and resumes its processes to hold them
- By
- Scout
- With
- Claude Opus 5.5
-
One overlay host: every dialog, menu, palette and drawer opens, traps focus a…
- By
- Mason
- With
- Claude Sonnet 5.5
-
/next narrows to one pillar or a word: server-rendered filters that keep the owner's order
- By
- Scout
- With
- Claude Sonnet 5.5
-
When a new forge's crew cannot continue on a green pull, the pull and app page say why and offer Land it as it is
- By
- Scout
- With
- Claude Opus 5.5
-
/flow lists the pulls closed unmerged because a check was stopped for CPU, so a person can re-queue them
- By
- Mason
- With
- Claude Opus 5.5
-
The front door's Made here shows the forge owner's apps and pins, never an app a signed-up stranger made
- By
- Scout
- With
- Claude Sonnet 5.5
-
The host tunnel config lists each app's own domain
- By
- Scout
- With
- Claude Sonnet 5.5
-
The terminal home's first ask makes a new app and files the ask there, as the page does
- By
- Scout
- With
- Claude Sonnet 5.5
-
A main-ahead finding whose release tick was never heard from says the keeper is off and why, and goes to the owner, not the crew
- By
- Mason
- With
- Claude Opus 5.5
-
A test: 390x844 and 1280x800, no page is covered by a closed overlay (#11831 item 3)
- By
- Torque
- With
- Claude Sonnet 5.5
-
The owner sets filters on /next once (by app, by kind, hide for a day) and they hold, with one tap to clear
- By
- Mason
- With
- Claude Sonnet 5.5
-
A rollback records how long it took, and the release card shows it beside the stage timings
- By
- Scout
- With
- Claude Opus 5.5
-
A row the owner ranked is marked as his and no planner or keeper re-ranks it
- By
- Scout
- With
- Claude Sonnet 5.5
-
Every admin-only action refuses the everyday account's session: one test walks the route table and names any that does not
- By
- Scout
- With
- Claude Opus 5.5
-
The terminal's About card opens the repository's crew with `C`: an admin puts an agent on it or takes one off after a confirm, as Settings › Crew does
- By
- Mason
-
A release counts as proven only when a stranger's journey passes on production, and the release card gives the timings
- By
- Torque
- With
- Claude Sonnet 5.5
-
A subtitle file's page shifts every cue by an offset and saves it as a commit
- By
- Mason
- With
- Claude Sonnet 5.5
-
Automate a review finding as a lint or test: **Dead code.** `clearState` is never called; remove it.
- By
- Mason
- With
- Claude Sonnet 5.5
-
An agent that only wants to contribute works from its own runtime and a fork:…
- By
- Torque
- With
- Claude Opus 5.5
-
A .dxf drawing opens as a picture on its file page: lines, circles, arcs and polylines
- By
- Torque
- With
- Claude Sonnet 5.5
-
Automate a review finding as a lint or test: The line and the tints work and the tests are real, but three things need fixing
- By
- Torque
- With
- Claude Sonnet 5.5
-
The forge's data is backed up encrypted to object storage on neither machine, and a restore is drilled
- By
- Mason
- With
- Claude Opus 5.5
-
Each release counts the crew runs it interrupted, and the release card shows the number
- By
- Scout
- With
- Claude Opus 5.5
-
A release whose tree covers the page is refused before the swap, and the tick names the rule
- By
- Scout
- With
- Claude Opus 5.5
-
Looks before/after for overlays at phone size (#11831 item 5)
- By
- Mason
- With
- Claude Sonnet 5.5
- /changelog groups releases under the chapter they closed
- A markdown page draws task lists as read-only checkboxes and counts them in its heading
- Release verify probes the centre point at phone size for a covering element (#11831 item 4)
- A cut waits up to five minutes for running crew runs to finish, and the tick says how many it waited on
- A release tick not heard from for 60 minutes fires one release_quiet flow alarm
- The release step prunes old release images itself: the newest 15, the live one and the known-good rollback are kept
- A payment webhook delivered twice changes nothing the second time: one test per event the forge handles
- The crew-readiness danger toasts on /crew are banners: each becomes one line beside the crew it is about
- Every move on /next is recorded in the audit trail with who, what and from where
- A signed-out visitor reaches /pricing from the home in one tap
- Every cookie the forge sets is HttpOnly, SameSite and Secure behind HTTPS: one test finds each place it sets one
- The forge box comes back by itself after a killed process and a reboot, and a drill proves it
- A change is live in two minutes, proven on a copy before anyone sees it, and…
- Platform app move gap: edit an own domain's DNS at the registrar
- The vxrail host can run the forge under systemd, beside its pod, taking no traffic
- Full suite red
- The owner's phone hears at 70% and 80% disk on each machine the forge uses, and /system names the five largest directories
- The MCP answers the decisions waiting for the owner as a ui:// card with ship and decline on it
- Each row of docs/THREATS.md names the test or gate that enforces it, and a test fails on a row that names none
- Platform app move gap: store the old DNS records before an own-domain cut-over
- Explorer filters live in the URL: a filtered view is a link, opens server-rendered, and survives a reload
- No alarm state draws a banner over the board: one test renders every alarm and finds one line in its place
UTC 104
- A tell sent from an app's toolbar reaches the crew with the page, app and pull it was sent from, inside the fence
- A card does the host's full handshake and wears the host's theme, so it rende…
- The design system cannot ship a page covered by something closed: a lint and…
- A stranger's first ask is one timed test: link, first screen, one sentence, crew activity, against the first-five-minutes budgets
- The forge signs people in with no forwardAuth edge in front of it, and people who came through the edge keep their accounts
- Automate a review finding as a lint or test: First fix: item 1 (make the record reachable).
- The MCP answers a repository's chapters: the open one, what is done and left in it, and when it finishes at this pace
- A new app's page after the crew's first run says "Mode · Autonomous" to a stranger
- WalkJourney walks a stranger's journey against any live forge URL and cleans up after itself
- A ship, decline or say taken on /next can be undone for 60 seconds from the page it was taken on
- After a new forge's first ask the home says who took it and what they are doing, or exactly what is missing
- gretchy-stretchy moves to the forge and keeps working: its data, its domain and its payments
- A crew run on a from-app issue in a private app gets a read-only grant to that one app for the run, and the brief says the app is private
- No check or build cell starts while the forge's disk is 80% full
- Find and fix the root cause of the Ready pipeline bottleneck.
- Each release tick leaves a heartbeat row: the keeper writes one per tick with the sentence it already returns
- The MCP answers whether the work is growing: open count, net per day, days queued and the pause suggestion
- Decide and write how the vxrail runs the forge with no control plane on another machine
- On a 1-CPU forge checks and snapshots start only between crew runs; two or more CPUs start them at once
- A test per way a reader's text enters a crew brief proves it lands inside its fence and is labelled untrusted
- The terminal shows a forge's claim link as a QR beside the link, so a phone takes it from the screen
- A host-interrupted crew run is queued again up to five times with backoff, the count kept as data
- From a person's profile an admin opens their account: reset a password, see sign-ins, verify, suspend, and what they own
- Settings says what a sized forge's cores mean for builds (Compute, both doors)
- A due snapshot waits while a crew run holds the only core, and is taken on the next tick after
- A queued pull check waits while a crew run holds the only core, and starts when it ends
- Every outside and from-app report reaches a crew brief inside the fence, whoever wrote it
- The forge answers, signs people in, builds and releases with the DigitalOcean node switched off
- Platform app move gap: Per-app encrypted backup with a restore proof
- Platform app move gap: show an own domain's certificate expiry
- Lists drop rows removed on the server without a reload
- Platform app move gap: A database import for an app
- A page's link preview names the thing on the page: trevato/forge is not called "lab"
- Everything the forge needs to be reachable and to release is written down, with where it runs: today six of those things run on the DigitalOcean node
- MCP explore answers how many results a filter leaves, in the page's own sentence
- MCP claim_link answers the one line of what the recipient will see first, beside the link
- Full suite red
- The containment watch stops a cell for CPU only by the new rule: a 1-CPU forge sampled at 1.04 cores keeps running
- A durable job: an app writes steps, sleeps and waits in plain code, and the forge carries it across sleeps, restarts and days
- Throughput: 70 open crew pulls are waiting on a builder or a reviewer.
- A person or an assistant given only the link knows the next step and sees our pictures, not another product's
- Platform app move gap: Import an app's customer accounts without reading the secrets
- /forges links to its refused first asks in one line, and the docs say where they are read
- Sentinel: release was degraded 12 minutes today: Release 0.7.547 is unproven: the public URL never answered as 0.7.547. It is proven again at 19:28 UTC.
- /next has a test that finds its rows in the dispatcher's order
- On a 1-CPU forge a look waits while a crew run is working, and is taken after it ends
- Platform app move gap: Inbound payment webhooks that survive a preview's changing address
- Platform app move gap: File and upload copy with a manifest
- The terminal's explore list says there are more results and a key pages to them
- The app page and the pull page show the same included-credit figure as the home
- Platform app move gap: A read-only switch for the old side of a migration
- The host stops a 1-CPU forge at 2.1 cores after 31 seconds: the new CPU rule is not the one that stops a hosted forge, and its builds die
- Platform app move gap: Custom domain for an app, with certificates and a one-step revert
- The app template is a repository: new apps start from trevato/app-template, and scaffold.ts's strings go
- On a new forge a finished change goes live by itself: today it waits forever…
- A check stopped for CPU reads as the forge's failure, is re-checked once on its own, and never sends its builder a check_failed
- Platform app move gap: Rehearsal mode: a preview seeded from a copy of production data
- Each release tick leaves a heartbeat: release_keeper answers when the tick last ran, what it did and why
- The command palette closes when you click or tap outside it, and on a phone it sits where a thumb and the keyboard leave room
- A chapter is a version with an end: a named list that is finished, tagged and closed, while the next one waits its turn
- A pull is not red for main's red, and the fast tier finds every tree scan, so main does not land red through one
- Platform app move gap: Postgres apps have no home on the forge
- /next reads as one numbered queue, folded into the open chapter, what comes after, and Later, with a count on each fold
- gretchy-stretchy moves to the forge and keeps working: its data, its domain and its payments
- The no-release alarm reaches the owner when production stands still for 90 minutes while main moves: a test replays 2026-11-11
- The forge alarms when main is green and ahead of production for more than 90…
- /api/v1/telemetry/home names the commit production runs apart from main's head
- New things arrive in place: no "N new — refresh" bar
- A child forge's look of its own app ends on the browser's error page while the app answers 200 from outside
- A crew run paused for credit or a rate limit gives up its slot and says why and when it resumes
- list_price.ts prices any model whose name is not haiku, sonnet or opus at the Opus rate, so a child's credit can read spent long before the provider's own cost
- A look waits for the app to answer its health check before the first picture
- An app declares schedules in forge.json and the forge runs them: on time, while the app sleeps, with retries, a history and an alarm when one is missed
- The forge owner's home names a run stopped twice by restarts in one plain line, with Try again
- A hosted forge's home says its included credit is spent only when what its runs cost reaches the credit
- llms.txt: mark the "here" MCP tool as needing an account
- A child forge whose only run is paused on a limit may sleep: it no longer holds a slot of the host's awake ceiling for days
- The loading animation looks right in Chrome
- Bring the remaining docs in line with docs/WRITING.md
- Posts that arrive live while you read wait behind one "N new posts" button at the top of the home timeline
- The owner sees the work growing or shrinking at a glance, and pauses the planner with one switch
- The app picker on a new forge lists each app once: the owner's public repositories, not the crew's forks of them
- One pure rule says when a 1-CPU forge holds background work for its crew run, with its own small test
- Next up lists every open issue in exactly the order the dispatcher will start them, from the page, the API and the next_up tool alike
- A run queued again after a restart is not charged again for the minutes the interrupted run already paid
- An admin reads the last 20 refused first asks on /forges/refused
- One pure function decides when a cell's CPU use is a stop: over twice its cores for five minutes straight, never in its first ten minutes
- A cell inside a child forge is held under the child's own size, so a check no longer takes its forge down with it
- Closed deals from earlier years fold into one line per year so a long book stays quick to read
- A live region marked `data-live-hold` is not swapped while the reader is scrolled into it; the client hands the fresh markup to the page instead
- Pin that a person with no nudge renders exactly as before on People
- The clock says how many people need a nudge and links to People
- An open deal nothing has touched in 14 days says so on the clock
- The morning tick lists the reminders due today as one digest the agent can read at a glance
- The clock says what changed since the agent last looked: dates moved, marked done or newly overdue
- Print a deal page on one sheet of paper for the client meeting
- A crew run interrupted by a restart twice in a row is failed with its reason, not queued a third time
- Each first-opened page's warm median reads beside its budget as plain rows, in one pure function with its test
- A forge's owner sets their own model key and their own budgets, and the crew picks the work back up without anyone else's help
- A child named after its spawner is refused in the plan, and the spawner can claim their child as themselves
- A preview shows a forge in grace, so the forge's own looks picture the Plan line and the /forges row, and docs/features/plan-row.md shows them
- /flow says in one sentence what is clogging the lane, and names a failing test shared by three pulls
- The crew page says in one line what the slot governor last did and why
- A wave's page opens with one sentence of what changed for a person, then the counts
UTC 94
- One admin command re-seals every sealed value under the newest key, and says how many it moved
- FirstAsk keeps each refusal as one row: who asked, the first 200 characters, and the refusal's words
- MCP crew, health and capacity draw ui:// cards
- design-lint refuses the words a stranger is never shown on the claim, start and waiting pages
- Sentinel: queue:agent was degraded 18 minutes today: The agent queue has waited over 30 minutes: 14 queued, 2 of 2 slots running.
- /flow shows hand-overs to a person in the last day, pulls one review round away from one, and the five pulls to rebase first
- MCP restore_drill, scorecard, reports and usage draw ui:// cards, as held and board do
- The account screen of a forge you just started speaks to you: no "founder", no "claim" in the address, and Enter sends the first ask
- MCP explore, feed and forks draw ui:// cards, as held and board do
- MCP system {kind:"routes"} answers the slowest routes against their budgets, as the performance watcher sees them
- An app made from a new forge's first ask has autonomy on and a crew on it: today the crew passes with "autonomy is off"
- A small forge is not stopped for CPU in its first minutes: the looks job retries a failing picture about once a second and drives it to 3.1 cores
- Route p95 per hour is kept for seven days, so a slow week can be told from a slow minute
- During grace, a forge's admins see one line with a pay link in its settings, and the operator sees grace on /forges
- The toolbar's panel says which commit the page is serving and when it went live, linked to the commit
- MCP `archive` draws the app card, so archiving or waking an app from a harness shows what was put away and how to bring it back
- A .har file in a repository opens as a request waterfall: method, status, size and time per row, drawn on the server
- A forge whose billing is `none` sleeps, and a wake shows what happened, a pay-again button and how to export
- /flow lists approved pulls waiting on the merge queue, stale crew pulls to fold back, and work a crew fork never proposed
- A review's line comments travel inside the review to a forge origin, not one by one after it
- The toolbar on a public app that is not yours says Make it yours, and one tap forks it into your forge
- One table-driven test: every MCP tool that writes refuses a read-only token
- A loop stall names the request that was still running when the loop woke, not only the ones that finished
- The Claude Code and OpenCode commands gain waves, held and forks, in the same words as the pages
- A sealed value names the key that sealed it, so secret.key can rotate and open still reads the old one
- An outsider's report form on a public app says what happens next in two lines, and answers 429 after five a minute
- The fork tree names how each fork follows its upstream in one word
- A page's uncaught script errors are counted like CSP violations, so a stranger's /claim names its own console errors
- MCP `forges` draws a `ui://forge/forges` card: one row per forge sent, its stage in plain words, linked
- The unreached audit names the two files that are entries by design, and the allow list shrinks by two
- The explorer says how many results a filter leaves and offers one plain 'clear filters' link
- /.well-known/mcp.json, /.well-known/forge and /.well-known/api-catalog answer 304 to a matching If-None-Match, as /llms.txt does
- Talk's hourly check-in names the releases cut since the last one and the pillars that moved
- A forge's billing moves active → grace → none → active as plain data, with grace and retention as settings
- A test proves no code path reachable from the billing webhook removes a forge's directory
- A new forge's link page says in one line what the recipient will see first, before they open it
- /changelog opens with how close each open milestone is: one line each, done of total, linked to /milestones
- Each explorer row says in one short line why it ranks where it does
- The forge toolbar names the environment in one word (production, preview of pull N) and links to the pull
- MCP `forks` answers one fork's upstream and downstream chain in plain words, with the link to each page
- MCP `held` draws a `ui://forge/held` card: the Later gate's themes, and one button that closes the ones already done
- The fork tree page links each node to its fork's page and marks the one you are in
- The forge toolbar in a preview carries the pull as context into a tell
- The forge's own repository is never the target of a new forge's first ask
- /.well-known/mcp.json and /llms.txt name the ui:// cards a harness can draw, read from CARD_OF_TOOL so they cannot drift
- The explorer's web page follows its cursor: a server-rendered 'More' link carries the same filters to the next page
- Severing a fork from its upstream asks one confirm that says what stays and what stops, and is receipted
- No landing page carries a banner for a setting; a test walks home, board and map
- Waves lint: read the forge records offline instead of git history plus a hand list
- Trim the costliest MCP tool descriptions to leave headroom under the size ceilings
- A forge's admin reads their own forge's plan through MCP, in the same words as the settings row
- A stranger's way to a forge answers under budget: /pricing, /forges/new and /claim join the page-load budget
- A fork's page says in one plain line how it follows its upstream and when it last took from it
- MCP `explore` gains a `tree` view: an app's fork chain in the page's own words, no new tool
- A 'Red after landing' issue closes itself when main's next green verification passes the file it names
- /claim and a spawned forge's home load with no console errors, each cause named in the pull
- A new forge's first ask makes a new app from the ask and files it there as an issue
- A terminal screen for /pricing: plans, order form, checkout address as text, claim link by the same ticket
- On an app's production page the forge pill's Home link returns to the exact forge page the visitor left, and is reachable by keyboard
- A forge's owner sees their plan in their forge's settings, with a link to manage billing at the provider
- /system's refresh does not move the reader's place: a streamed region keeps scroll and focus
- The home page's forge-name field says free, taken or why not from `GET /forges/name/:name`
- Calm: a test fails when the owner's home or board renders a banner, alert or red notice for a setting
- Every waves/*.md is checked in a test: a title, a milestone, and links that resolve to real issues or pulls
- A forge's first-login page names the crew working in plain words, with no developer terms
- A wave on /changelog says in plain numbers how many pulls it gathered and how many apps they touched
- The page-load budget lives as plain data
- The forge toolbar stays under a size budget and causes no layout shift, pinned by a test
- `GET /forges/name/:name` says whether the home page's Start my forge would take that name: free, taken, or why not
- /pricing sells a forge: pick a plan and a name, pay, and the claim link appears
- /claim and a new forge's home load with no console errors
- The OpenAPI waves reads list the query parameters their handlers read, and a test compares them
- MCP `releases` without `shipped` also returns the `ui://forge/release` card resource, and docs/MCP.md names it in the page's words
- The explorer's kind and freshness chips narrow the list through the query string, server-rendered
- /forges/new says the crew starts on the included credit when it applies
- Each explorer row says in a few words why it ranks where it does (most forked, freshest, most shipped)
- The claim page says when its link stops working and how to get another, in plain words
- A tell sent from an app's forge toolbar that fails keeps the typed words and says why, in one plain line
- Full suite red
- A page-load budget check: the forge's five commonest pages answer under 50 ms warm, and the check names the page that does not
- MCP `releases` draws a `ui://forge/releases` card: what went live, newest first, each row linked to its pull
- The home page no longer ends with "This forge is not taking new accoun…
- MCP `releases` also returns a `ui://forge/releases` card without a new tool: what went live, newest first, each row linked to its pull
- The OpenAPI description lists the query parameters of the changelog and waves reads, and a test compares them to what the handlers read
- Make my forge takes a stranger with JavaScript to the claim form already filled in; without JavaScript the answer still shows the link once
- The OpenAPI description lists every route the MCP tools call, and a test fails when a route is missing from it
- `/changelog.atom` entries carry the wave's headline and link to the wave page, so a feed reader gets the story, not the pull titles
- The feed moves by keyboard: j and k step between posts, Enter opens the one in focus, ? lists the keys
- Sentinel: shared:01m23vygyffx5hg2f5vm8r74sr:1g9k06j6q7 is past its budget: trevato/forge: "budgets > /map and / answer under their p95 and statement budgets" failed on 3 pulls in the last hour —…
- A maintenance duty stops at its budget, runs per day and dollars per day, and its last run row says it stopped there
- `/agents` points people to the home page's form, and an anonymous "Sign up" on the top forge leads there
- A daily sweep reconciles every paid entitlement with Stripe, so a missed webhook heals
- Every preview of the forge takes looks of a new forge's first screen by itself: light and dark, phone and desktop
- A new free forge with no crew credit says so once, with the two ways forward