gezel Gezel Handboek

1.26275 — 2 October 2026

One day after 1.26274. Your gezels, the named AI craftspeople on your crew, waste less time and do less you did not ask for. A local model no longer re-reads a whole conversation it had already read. A review that sends work back now gets that work redone. A project you set to read-only now stays read-only. There is also a round of fixes for ways work could be lost.

If you read only one thing: a gezel could change files in a project where you had turned workspace edits off. That is fixed. Nothing you do changes.

Local models reply sooner in an ongoing chat

Before a model on your computer can answer, it reads everything in front of it: its instructions, the list of tools it may use, and the conversation so far. Gezel keeps a copy of what it has already read, so the next message only has to read what is new. This release fixes three ways that copy was thrown away.

  • The second message in a chat (models on a Mac, through MLX). The first chat to save the shared part of the prompt saved only that part, so its own next message started over. On Gemma 4 E4B, with the meester's 60 tools, that meant re-reading 7,313 of 8,604 tokens. The meester is the guildmaster gezel who greets you and assembles your crew. Now one read saves both the shared part and the chat's own place.

  • Asking for something to be built partway through a chat (also MLX). A request to build or to run a specific craftbook narrowed the tool list. A craftbook is one of gezel's saved recipes for a piece of work. Narrowing rewrote the prompt from near its start, so the whole 6,420-token prompt was read again, and again on the next ordinary message. Now the full list stays in the prompt, and the engine limits which tools can actually be called. The one cost: a chat whose very first message asks for a build reads the full list once.

  • After the engine unloads a model, or gezel restarts. The resumed conversation used to differ slightly from what the engine had saved: the date line and the reference material added to each message were missing. So the engine read the whole conversation again from the first message. Each message now keeps those additions and replays them exactly, which lets llama.cpp and Anthropic's prompt cache pick up where they left off. That holds up to the first turn in which a gezel used a tool. Saved threads grow by a few KB on turns that drew in reference material.

Reviews that send work back now get it redone

Some craftbooks end with a review step that can send the work back to be done again. When the work had been split into pieces that several gezels do at once, sending it back did nothing. The step marked itself done in the same instant, and the review ran again over the same unchanged pieces. Now a new round of the same pieces starts. Each one is marked "(pass 2)" and carries the review's verdict. The review's own limit still applies: after the third failed review the task pauses, and Try again gives it a fresh set of attempts.

Other fixes to craftbook tasks, each found in real runs:

  • A reply left over from an earlier round can no longer pause or advance the task. Last release stopped such a reply from finishing the task's current round on its own. It could still pause the task, or ask to move it on. In one run it paused the whole thing. Those requests are now refused. A gezel whose work was sent back also stops there, instead of being prompted for another reply.

  • Gezels are no longer offered tools only the meester or a project lead may use. A Developer called a tool for importing skills 21 times in one run, and was refused every time. Workers no longer see those tools at all. Every gezel can now look things up in the Handboek, and a worker asking for "my tasks" gets its own project's list instead of a refusal.

  • A file saved in the wrong place gets a clear answer. When a step's check could not find a file, it now says where it looked and where the file actually is. For example: "it was saved as 1/handover.md instead. Save it at handover.md in the artifacts drawer."

  • The Night Shift no longer asks about a task that never ran. The Night Shift is the work gezel does overnight, while you are away (Night Shift). If you opened gezel a few times during the day, the meester's Night Shift oversight task counted each launch as a failed restart, paused itself, and filed a "Needs your input" card. Launches while a task is only waiting for the night no longer count. One already paused this way is switched back on when you update. Try again now also clears the restart count.

  • Two changes to one task no longer undo each other. Renaming a task while it was being paused could quietly undo the pause.

A project you set to read-only stays read-only

Each project has a setting, Allow built-in tools and background work to modify the workspace in Project → Settings. With it off, gezels may not change the project's files. A gezel could get past it: a change that did not say who was making it was treated as yours, and raw file uploads did not record a writer at all. The same gap let a gezel edit your saved prompt drafts. Gezel now decides who is writing from the credentials the gezel's chat holds, not from what the request claims.

Nothing you do changes for any of these.

  • Git follows the same setting. A gezel can no longer throw away your uncommitted changes or abandon a merge. Cloning, pulling, committing, pushing and the rest obey the project's edit setting.

  • A shortcut cannot carry a write outside its folder. A symbolic link (a file system shortcut) inside a project, the artifacts drawer or your shared Documents library could send a write or a delete somewhere outside it. That is now refused.

  • No folder can be deleted whole by a path like .. Last release stopped a path written as . or notes/.. from deleting the entire artifacts drawer. The same protection now covers the project's own folder and your shared Documents library.

  • In Word, Excel, PowerPoint and LibreOffice, the document tools stay with the pane's own chat. Last release limited them to the gezel you picked in the pane. For a document not yet saved to a project, that gezel is the meester. So the meester's chat in the desktop app could also write into the open document. Now only the chat thread the pane is driving gets the tools. A thread that is also open in the desktop app loses them once you write to it there. See Connected apps.

Diagrams in Word

In the Word add-in, a gezel can now draw a diagram into your document. It writes the diagram as Mermaid, a short text format for flowcharts, sequences and timelines, and gezel draws it as a picture where the text goes. Lists can now be nested by indenting them, the way you would write them by hand.

Every diagram is drawn before anything is inserted. If one cannot be drawn, the document is left untouched and the gezel is told what to fix. A Word too old to insert pictures, and LibreOffice Writer, keep the diagram as text.

Fewer ways to lose work

  • A message refused for lack of memory now stays put. When a model would not start because the computer was short of memory, your message showed briefly and then vanished on reload. There was no failure card and no Retry, which looked like a stuck app. The message is now saved with the reason and a Retry key.

  • Change proposals hold up. A change proposal is a set of edits a gezel drafted for you to review before anything touches your files. A damaged proposals file used to be read as empty and then erased on the next change; gezel now stops and says the file needs repair. A proposal applied part way can be finished: Apply applies the remaining files, and each file already applied is marked Applied. Applying no longer overwrites a file created since the proposal was drafted, unless you choose to apply anyway.

  • A new task can no longer overwrite an old one. If the file that numbers a project's tasks was missing or damaged, for instance after a restore, numbering started again from 1, and a new task could be written over an existing one. Numbering is now rebuilt from the tasks that exist, and a new task is never written over another. A task file gezel cannot read is now named in the log, with advice to repair or restore it, instead of quietly dropping out of the list.

  • Restoring a backup does not overwrite what is new. Something created after you reviewed a restore is no longer replaced by it.

  • Editing a file keeps its permissions. A script rewritten by a gezel stays runnable, and a private file stays private.

Smaller things

  • Idle chats give their memory back. After 20 minutes without activity, a chat gives back the helper processes it holds. After a run of 27 tasks, 29 of them used to stay alive, about 1.5 GB. The first reply when you come back to that chat may take a moment longer.

  • Gezel is lighter while it sits open. Opening a project's chat no longer reads every saved thread four times, which took about 110 ms each time with 300 threads. Gezel no longer redraws the whole window every 10 seconds when nothing changed, and the knowledge catalog page no longer redraws every 2 seconds for nothing. On Windows, the check for Claude CLI and Codex CLI no longer looks at up to 576 files every 10 seconds; a newly installed one can take up to 30 seconds to appear.

  • Knowledge catalog updates finish sooner. The catalog was fully checked a second time right after it was installed, roughly doubling the end of every update and holding up searches meanwhile.

  • If gezel freezes, the log says why. A pause of a second or more is logged with what was running at the time, so a bug report can point at the cause.

  • Dead websites read as dead websites. A site that timed out, could not be reached or had a bad certificate came back to the gezel as a generic error. It now says which, and to try another source instead of the same address.

  • Answers in a fixed format are no longer cut short. When a local model is asked for JSON, the guard that stops runaway answers no longer cuts it off. A healthy 6.8 KB answer from Gemma 4 31B had been stopped halfway.

  • Small models trip over paths less often. A leading workspace/ is dropped when there is no such folder, and listing a folder that does not exist says so and suggests close matches instead of "Empty directory".

  • The meester's openers go in once. Tapping one of the meester's suggested openers twice put the same sentence into your message twice.

  • The Home greeting folds away while the meester introduces itself, so the introduction is not pushed below the fold.

  • Settings in a narrow window uses a dropdown. Below about 760 pixels wide, Settings picks its section from one dropdown beside the heading. The list it replaces hid every section past the fourth.

  • A status sits beside its heading. The Ready pill for Audio's speech engines no longer drops onto the line below.

  • Live updates survive a reload. Reloading the window could leave a project's live updates connected but silent.

  • Schedules accept 7 for Sunday. A schedule such as 0 9 * * 7 in the new-task dialog was rejected; 7 now means Sunday, as 0 does.

  • Lockdown says what it does. Super Lockdown used to promise that nothing leaves your machine, which was not true of a model or catalog download you start yourself. It now says your work stays on your machine and gezel goes online only when you start something. The app network setting's help text says the same.

  • Templates no longer promise what depends on your model. The Caregiving binder, Household budget and Life binder project types, and the gezels that come with them, said nothing leaves your machine. That holds only with a model on your computer, so the claim is gone.

  • The gezel catalog (the gilde) moved from 0.1.78 to 0.1.80.

In the terminal

If you use the gezel command (The gezel command line covers it):

  • gezel knowledge init in a folder that already holds Markdown catalogs it in place and prints the table of contents it found. Before, it created a content/ folder that hid the existing files from the build.

  • docfx projects can be built into knowledge catalogs. Microsoft Learn trees such as azure-docs, recognised by docfx.json or a toc.yml at the top, keep docfx's own outline and publishing rules.

  • gezel knowledge build prints the folder it read the content from.

For developers

  • One-shot completions. POST /api/projects/:id/completions and client.completeInProject() make one bounded model call with no tools or transcript, on the project's engine queue. gezel workflow driver modules get it as complete(request), which takes a jsonSchema (grammar-constrained on local engines), thinking, maxTokens, timeoutMs and a queue label, and returns { content, json?, jsonError?, elapsedMs }. It waits out a busy engine, and a capacity refusal for up to 120 s. Errors are engine_busy, capacity_denied, model_not_installed, completion_timeout, completion_cancelled, provider_unavailable and output_aborted. Session tokens are refused.

  • Performance diagnostics. Every response carries Server-Timing. GET /api/system/perf returns event-loop stalls, slow requests and renderer navigation timings, which the UI reports through POST /api/system/perf/client. With debug mode or GEZEL_PERF_PROFILE=1, each stall saves logs/perf/stall-*.cpuprofile (newest 20).

  • App tools by surface. App SDK tool registrations take a surfaceId, and chat requests carry it in x-gezel-app-surface. A surface-scoped tool is offered only to a session whose latest human message came through that surface.

  • Write attribution. A session token's writes are attributed to its own gezel and session whatever the body claims. A session token without a gezel gets 403 session token has no mutation actor.

  • Web tool errors. fetch_url, web search and the Wikipedia and Wikimedia tools return upstream_timeout (504), upstream_unreachable or upstream_tls_failed (502) instead of internal_error. @bendyline/gezel-client keeps the whole cause chain on transport errors.

  • OpenAI-compatible reasoning_effort. none or minimal turns thinking off on local models. Other values pass through and never turn thinking on.

  • Tasks carry a revision. Concurrent writes retry, then answer 409 "Task changed while it was being edited. Reload it and retry."

  • Knowledge compiler. docfx outlines ("toc": {"format": "docfx"}), outlines deeper than 15 levels folded into their parent with a warning, and repeated warnings capped at 20 examples.

  • Scripts. run_installed_script without a scope looks in project, then user, then standard scope. storeRecords in single-file mode no longer turns root: "repairs.json" into repairs.json.json, and every action returns file.

  • Dependencies: @bendyline/gilde 0.1.80; mermaid 11.16.1 joins the UI, loaded the first time a diagram is drawn.

Things to see and do after update

If you keep any project read-only, open Project → Settings and confirm Allow built-in tools and background work to modify the workspace is set the way you want; it now holds. If you write in Word with the gezel add-in, ask its gezel for a flowchart of something you are describing.

Watch this article as a slideshow