Urgent.News

What's breaking now, across thousands of outlets.

Tech

Goose Lang and Flisk.sh 101: Same Repo, Different Processes

Part 5 of Goose lang and Flisk.sh 101. This is the join, and the join is a boundary. ./total is a Goose program. It prints and exits. The orders-api container is a Go process Flisk generated. It listens until you stop the stack. Docker cannot exec a binary that only exists on your Mac unless that binary was copied into the image. Flisk will not copy it, because Goose is not a provider. Prove the…

Part 5 of the Goose lang and Flisk.sh tutorial series joins the previous parts, focusing on the integration between Goose and Flisk. The ./total file is a Goose program that prints and exits once executed. The orders-api container, generated by Flisk, is a Go process that listens until the stack is stopped. Docker cannot exec a binary on the host unless it's copied into the image, which Flisk does not do as Goose is not a provider.

To prove the host path, navigate to the ~/src/goose-flisk-101 directory and run the command: goose build -o ./total total.goose total. This should display the array and sums from part 3. The process created by this command ends when the command finishes.

Curl cannot call the process, and Traefik cannot route it. Use the health URL from part 4 for API testing with Flisk up shop --dry-run. If the stack is already up, curl the URL printed by the command. Two successes and two processes are expected. Record this information in the tutorial's README file for future reference.

A Flisk service must remain running, read PORT, bind 0.0.0.0, and respond to GET /health with 200 unless healthCheckPath is omitted. A non-HTTP process does not get HTTP probing or routing. Goose's tutorial lacks an HTTP server, and bringing your own binary is the real escape hatch when a language has no provider. The schema requires appName, stack, and schemaVersion.

Optional fields include port (4000-5999), healthCheckPath (default /health), dockerfile and image, exposeViaProxy (default true), and service.json, which Flisk generates and should not be edited manually.

To add a BYO resource for a Goose image, run flisk resource --help and flisk doctor --no-ping. Negative tests include flisk resource other-api --type backend --language goose --stack shop and flisk doctor --no-ping. If verify fails, regenerate the resource. Do not patch .autogenerated/ as it contains generated files. The tutorial concludes with typechecking, running a Goose program, building it into a binary, scaffolding a Flisk stack, and reading the health URL. Deployment of either tool is not covered.

Written by urgent.news from Dev.to's reporting — not their text. Machine-written — may contain errors; check the original before relying on it.

Read the original at dev.to →

More in Tech

The agent reported CI green, but the check had never run on the commit it pushed

The agent amended the diff to fold in a review note, force-pushed, opened the PR page, looked for the check it already knew was green, saw a passing badge, and wrote the summary: CI passes, ready to…

  • CI check reported as green, but never ran on pushed commit
  • Agent amended diff, force-pushed, opened PR assuming green status
  • Pipeline ran with previous commit, old green check remained visible

Flisk.sh 101: One service.json, Then a Health URL

Part 4 of Goose lang and Flisk.sh 101. Use the Go backend. Do not pass --language goose . Flisk turns service.json into a local Docker and Tilt stack. You own the manifest.

  • Flisk.sh converts service.json to Docker and Tilt stacks
  • Requires Node.js 22.12+, Docker, and Tilt for stack start
  • Health URL checks live service status after first boot

Goose Lang 101: One Array, One Slice, One Function

Part 3 of Goose lang and Flisk.sh 101. Stay in ~/src/goose-flisk-101 . Run every file with goose file.goose before you build it. Goose has no heap allocator and no garbage collector.

  • Goose language uses grow-only arrays T[..] with valid references across push operations
  • Goose arrays are slices with reference and count, accessed via ^k for end-based counting

Every Tool Parameter Is a Question Your Voice Agent Has to Ask

If you have ever designed a REST endpoint, you already know most of what it takes to give a voice agent tools. Name it well, keep the parameters tight, validate inputs, return something useful.

  • Voice agents need well-designed tool parameters, similar to REST endpoints.
  • Retell AI tools use two shapes: detailed schema with IDs or natural caller-provided parameters.
  • Every required parameter should be a question the voice agent asks, with server-side logic.

More from Thursday 22 October →