gezel Gezel Handboek

1.26261 — 18 September 2026

Seven days after 1.26254, and this release makes longer pieces of work easier to start and easier to inspect: you can see where a request is going before you send it, search is better at finding the source you named, and command-line batches can stay with a task until it finishes.

If you read only one thing: ask your meester — the guildmaster who coordinates your crew — for a PowerPoint, Word document, PDF report, MP4 or GIF and the composer now shows the planned route before you press Send. The same route guides the model to the procedure that can make the real file.

You can see where a request is going before you send it

Asking for a file used to have an awkward failure mode: the meester or project voorman (foreman) could understand that you wanted a presentation, inspect their own immediate tools, and conclude that making one was impossible — even though the right craftbook was already on the shelf.

For clear requests, the composer now shows the route while you are still typing. Ask for a PowerPoint, Word document, PDF report, or an animated slideshow as MP4 or GIF and a small label names the planned output. Ask a coordinator to implement or fix code and it shows that the work will go to a Developer. Ordinary conversation stays ordinary and shows no label.

That preview is not decoration. The same plan is attached when you press Send, narrows the turn to the exact procedure where the output is unambiguous, and gives the coordinator one corrective chance if it claims the capability is unavailable instead of starting the work. You see the decision before the model acts, and the model sees the same decision you saw.

Search shows what the model actually saw

Knowledge search used to compare scores that did not mean the same thing. A vaguely related semantic match could outrank the document whose title exactly matched the question, and the fast first pass over a large catalog could discard the right passage before the more accurate comparison ever saw it.

The search now combines title matches, body matches and semantic matches by their rank instead of pretending their raw scores are interchangeable. The binary first pass for multilingual catalogs was recalibrated as well. In practical terms, asking about a named person or work is much more likely to put that article first instead of three neighbouring articles that mention it.

The answer is easier to audit too. Expand Consulted sources under a reply and you can see the exact excerpt that was placed in the model's context, its estimated token cost, and a button to open the source. The total includes the labels and safety framing around those excerpts, and the text is still marked as untrusted evidence rather than as instructions.

The command line can stay with a batch until it finishes

gezel do is now usable as part of a real shell workflow. A craftbook is a saved recipe for a piece of work; the command accepts its positional or named parameters, can wait for the task, emits one machine-readable result with --json, and returns distinct exit codes for completion, cancellation, a task that needs help, and a timeout. A timeout stops waiting; it does not cancel the work in the daemon.

You can also follow or recover work directly: gezel task wait, gezel task resume, and gezel task notes --warnings cover the ordinary unattended loop. Repository-owned .gezel/workflows/*.mjs drivers can coordinate several project craftbooks, checkpoint their task references, bound concurrency, and resume without turning that orchestration into model-authored code.

The supporting controls are there now too. Provider credentials can be written from standard input or an environment variable without printing their values; local model context and concurrency can be bounded for a batch; project indexing can be paused when a generated dataset would only create background work. A command-line craftbook launch trusts the exact script snapshot it started with, and --strict-sandbox is available when the operating system must enforce the network boundary.

Smaller things

  • Model memory waits distinguish a queue from a shortage. Work waiting behind another gezel-owned engine can remain queued until that work finishes; when an unrelated application is holding the missing memory, the request now fails in seconds with the amount needed and the amount available instead of waiting five minutes for a queue that cannot move.

  • Child tasks tell the truth about their parent. A paused, completed or canceled parent now gives its children that effective state without rewriting their own records; the task view labels the relationship and prevents edits that could not take effect. Fan-out children also get useful titles such as their file batch or invoice client instead of a bare number.

  • Office-document research steps stop rejecting the read they asked for. Opening a Word, PowerPoint, PDF or spreadsheet through the document reader now counts as acquiring the source, so a task no longer pauses after correctly reading a file through the only tool capable of opening it.

  • Lists in replies stay lists. A short year or statistic inside a list no longer makes the whole block turn into one oversized statistic or flatten into a section heading.

  • Local engines moved forward. llama.cpp is now v0.4.1, the native bundle is 0.1.43, and DwarfStar can use model-embedded multi-token prediction for catalog models that declare it, including Qwen 3.8 Flash Next and GLM 5.3. Memory-constrained machines also start DwarfStar with a more conservative context window.

  • Catalog content moved from @bendyline/gilde 0.1.61 to 0.1.67.

For developers

  • A connected application can now bring Gezel with it. @bendyline/gezel-app-sdk/host first connects to the user's running Gezel and can otherwise start an isolated daemon for the application. Its projects and gezels live under the application's own home, while installed model weights are reused rather than downloaded twice. ensureModel, ensureProject, project-scoped chats and app-owned tools cover the complete embedded flow; model bundles can make first run work offline. The contract and examples are in Building connected apps with gezel-app-sdk.

  • Application tools cross the daemon boundary explicitly. A host registers a JSON-schema tool and handles the call in its own process; arguments are validated before they leave the daemon, disconnects have a bounded grace period, and a closed application cannot leave a tool hanging in the model's menu.

  • The App SDK has a smaller stable surface. Node, browser and host entry points are separated; request-shaped calls take AbortSignal; product access uses the typed client behind an approved product scope; and stateful grants require a verification code visible in the requesting application.

  • Knowledge catalogs gained a revised multilingual embedding profile. multilingual-e5-small@2 changes the sign-bit prefilter while keeping the same full vector space, so older catalogs remain readable and readers can tell which fast-search encoding a catalog carries.

  • Task and craftbook evaluation got stricter. Fixed-action reads can advance from durable evidence without another model turn, hand-off sends have bounded recovery, and pull-request-review batches retain their observations instead of grading only the final file.

Things to see and do after update

Ask your meester for a PowerPoint or PDF and watch the planned route appear beside the composer before you send it. After the reply, expand Consulted sources to see the exact excerpts that went into the answer and open the originals.

Watch this article as a slideshow