{"slug": "diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not", "title": "Diagrid's Goose Announcement Is a Kubernetes Story. flisk.sh Is Not.", "summary": "Diagrid announced a Catalyst integration for Goose on 22 October 2026 that commits each step of a Goose recipe — every LLM call, extension tool call, and sub-recipe — so a long agent run resumes at the last committed step instead of replaying completed calls after a process or node failure. The integration plugs in through Goose's existing extension mechanism without forking Goose, and the same release adds LangChainGo and Mastra, bringing Diagrid's integration count past 15 across Python, TypeScript, Java, and C#. A developer writing on flisk.sh argued the durability layer belongs on Kubernetes agent runs, not on local dev tooling like `flisk up`, warning against bundling the API, Goose process, and database migrator into one container.", "body_md": "Diagrid announced a Catalyst integration for Goose on 22 October 2026. A Goose recipe can commit each step before the next one starts: every LLM call, extension tool call, and sub-recipe. If the process or the node dies, the run resumes at the last committed step instead of replaying completed calls. Catalyst plugs in through Goose's existing extension mechanism. Goose itself does not have to be forked. The same release adds LangChainGo and Mastra. Diagrid says this brings the integration count past 15, across Python, TypeScript, Java, and C#.\n\nThat is a real announcement. It is also the wrong layer to bolt onto `flisk up`.\n\n|  | Goose + Catalyst | flisk.sh | \n|---|---|---|\n| What dies | A long agent run: minutes, hours, days | A local container while you edit code | \n| What resumes | The recipe, at the last committed step | Tilt live-update, or a container restart | \n| Where it runs | Kubernetes, any cluster Catalyst supports, via Dapr | Your laptop. Docker + Tilt. No local cluster | \n| What you pay twice if you get this wrong | Tokens for repeated LLM calls | Nothing. You just rebuild an image | \n| What you must not do | Treat `flisk up` as the durability log | Put Catalyst inside the generated Dockerfile | \n\nYaron Schneider's line in the release is the useful one: Go and TypeScript agents on Kubernetes hit the same failure every long-running process hits. Something breaks, and the work starts over. Flisk's daily loop is the opposite problem. You want the API to restart when you save a file. You do not want a migration, a billing call, or a Goose recipe to restart because Tilt synced a directory.\n\nFlisk's own contract is narrow. `service.json` is the file you own. `flisk up <stack>` generates Dockerfiles, Traefik routes, and a Tiltfile, then starts that stack. `flisk up shop --dry-run` prints URLs and starts nothing. Dev ports bind to `127.0.0.1` unless you set `TDK_BIND_ADDRESS`. Production stays on Helm or whatever you already ship. A warm start of 14 tiny services was reported at 4.6 seconds on a 16 GB M1 after images existed. That number is a laptop boot, not a crash-recovery guarantee.\n\nThe bad design is one container that is the API, the Goose process, and the migrator.\n\n`goose up` again because someone thought the database migrator and the AI agent were the same word.`GET /health` goes green while step 4 of the recipe runs twice.\nSplit them.\n\n| Process | Owner | Restart | \n|---|---|---|\n| `orders-api` | `flisk resource orders-api --type backend --language go` | Yes, with Tilt | \n| Postgres | Flisk's local database for that stack | With the stack, data in a volume | \n| Schema job | pressly/goose, one-shot, exits | Never, except when you run the job | \n| Agent | Goose CLI or desktop, on the host or in its own service | Catalyst only if this run must survive a node death | \n\nThe agent may call `flisk doctor`, `flisk up shop --dry-run`, and `curl` the health URL Flisk prints. It should not be the process inside the API image. Catalyst's promise is \"do not pay for the same tokens twice.\" That promise is void if Flisk's file watcher kills the process between commits, and it is void if you never turned Catalyst on and assumed Flisk would remember the step.\n\nI am not pasting a Catalyst install. Diagrid says the integration is available through Catalyst, with a write-up at [diagrid.io/solutions](https://www.diagrid.io/solutions) and docs at [docs.diagrid.io](https://docs.diagrid.io/). Read those before you add an extension. The release does not say Flisk knows about Catalyst, and Flisk's docs do not list it.\n\nAlso unchanged today:\n\n`aaif-goose/goose`, not a Diagrid repo. Diagrid is an AAIF member. It did not take the project.`flisk resource --language go`. The Go provider is a `net/http` service scaffold. LangChainGo is a library you would put in a service you already own.\nUse Flisk when the question is \"how does this service start on my machine.\" Use Goose when the question is \"which commands is an agent allowed to run.\" Use Catalyst only when the question is \"this recipe must survive a dead node, and I am already on Kubernetes.\"\n\nIf the recipe's only job is `flisk doctor` and a health check, you do not need durable execution. You need a short recipe and a human reading the diff. Durable execution is for the run you cannot afford to replay. A laptop Tilt sync is not that run.\n\nSource: [Diagrid, 22 October 2026](https://www.businesswire.com/news/home/20261022693539/en/Diagrid-Brings-Agentic-Durable-Execution-to-Goose). Flisk behavior: [flisk.sh](https://flisk.sh/) and the 22 October walkthrough [flisk.sh is one service.json, then the laptop starts](https://dev.to/flisk/flisksh-is-one-servicejson-then-the-laptop-starts-5fel).", "url": "https://wpnews.pro/news/diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not", "canonical_source": "https://dev.to/flisk/diagrids-goose-announcement-is-a-kubernetes-story-flisksh-is-not-2n60", "published_at": "2026-10-22 21:33:27+00:00", "updated_at": "2026-10-22 21:40:55.729333+00:00", "lang": "en", "topics": ["ai-agents", "ai-infrastructure", "developer-tools", "ai-tools"], "entities": ["Diagrid", "Goose", "Catalyst", "LangChainGo", "Mastra", "Dapr", "Yaron Schneider"], "also_reported_by": [], "alternates": {"html": "https://wpnews.pro/news/diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not", "markdown": "https://wpnews.pro/news/diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not.md", "text": "https://wpnews.pro/news/diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not.txt", "jsonld": "https://wpnews.pro/news/diagrid-s-goose-announcement-is-a-kubernetes-story-flisk-sh-is-not.jsonld"}}