What’s new
What has changed in The ikigai Book, most recent first: the date, what was added or changed, and the pages to read for it. Smaller upkeep (moving to a newer release when nothing a reader does changes, a corrected link, a typo) is not listed.
2026-10
-
2026-10-15: A new page, What’s new, lists what has changed in the book, most recent first, with the pages to read for each change.
Pages: Introduction
-
2026-10-15: A query’s authority is its dataset now ends with a pointer to the gonk Book’s Two teams, one gonk, which runs the same questions through a server’s doors with an agent per team and a manager over both.
-
2026-10-15: A new chapter, A query’s authority is its dataset, runs the same SPARQL text for three callers over two tenants’ graphs in one store, refuses a join missing one grant rather than narrowing it, and tries every escape route a query has, each as real output.
Pages: A query’s authority is its dataset, Who is asking, Who a script runs as
-
2026-10-14: A refused argument is now followed by that argument’s own description from the endpoint’s contract, so the fix sits next to the complaint; Tic-tac-toe, II explains where that line comes from, and the spreadsheet and tic-tac-toe pages show it.
Pages: Tic-tac-toe, II: lines, aliases and the board, A spreadsheet, I: cells are atoms, Tic-tac-toe, III: the rules as resources, Tic-tac-toe, VII: the game’s space is a file
-
2026-10-13: The aliases, day to day drops its warning that a mount removes local functions: a mount only adds, so a peer’s function sits beside the local one of the same name.
Pages: The aliases, day to day
-
2026-10-12: Who a script runs as shows the kernel’s refusal now saying what passes a family floor, and explains why that only gets a run as far as the exact check inside.
Pages: Who a script runs as
-
2026-10-11: A sentence becomes a draft explains what happens when the model repeats itself: the repeat is recorded as such, not checked again, and the draft’s mark says drafting stopped because of it.
Pages: A sentence becomes a draft
-
2026-10-11: Tracing a resolution now explains each authority mark a trace draws: unchanged, narrowed with the scopes it held, or refused, so a refused hop no longer reads as authorized.
Pages: Tracing a resolution
-
2026-10-11: A sentence becomes a draft now shows the check warning on an empty preview, naming the patterns that matched nothing, the drafter repairing on it, the grounding stating what kind of value each predicate takes, and a draft’s author told plainly that it is a draft. Your first script explains why even a hello world names the graph it reads, and one of the code exercises now asks for a different check.
Pages: A sentence becomes a draft, Your first script, Exercises: code and language, Who a script runs as
-
2026-10-11: A gentle opener, Your first script, walks four small steps on a shelf of books: a hello script with a parameter, a script over data, one grant line, and a sentence drafted and published.
-
2026-10-11: A new section, Code and language as resources, publishes SPARQL scripts into a running host at a name, works out whose authority a run holds, and lets a language model draft a script that a person checks and publishes, with an exercises page to follow.
Pages: Scripts are resources, Who a script runs as, A sentence becomes a draft, Exercises: code and language, The repositories
-
2026-10-10: The REPL now has an
existscommand, a single quoted token on asinkline is unquoted, and a content-less sink under-cwaits two seconds for stdin; The file workspace and the REPL grammar replay each case. Who is asking and the glossary explain that a principal now travels with the request as a capability scope, Tracing a resolution draws a refused request as a tree, and Golden threads in practice says a write that ran and failed still cuts.Pages: The file workspace, The REPL grammar, Who is asking, Tracing a resolution, Golden threads in practice, Glossary, Where this actually stands
-
2026-10-10: Where this actually stands is brought up to date: a new rundown of every kernel release since its last stamp, each pointing to the chapter that teaches it, plus what a failed module callback now does and the answer deadline the XSLT module enforces.
Pages: Where this actually stands
-
2026-10-10: Running it and What resolution buys you now show what the catalog command really prints, and The graph face lists every endpoint its string-input query returns, with a note on why the list is that long.
-
2026-10-10: The file workspace’s Try it section is now a checked REPL transcript that shows the quoting trap on a
sinkline and thecontent=form that avoids it, and the REPL grammar says that a sink’s content is taken verbatim.Pages: The file workspace, The REPL grammar
-
2026-10-10: The file workspace now spells out what the jail actually checks: paths opened one name at a time, symbolic links refused, one spelling per file, Windows refused outright, and a workspace created private. The Beyond one host exercises add a hint for running the dead-peer exercise under a narrowed capability.
-
2026-10-10: Every self-description in the book now shows its per-verb contract named by a digest of its content, and What resolution buys you explains that shape, why the book writes the digest as an ellipsis, and the stable per-door name the tool list uses instead.
Pages: What resolution buys you, Tic-tac-toe, I: the model and the atoms, A spreadsheet, II: a formula is code as a resource, Tic-tac-toe, III: the rules as resources
-
2026-10-10: The front door’s section on cut threads now explains why a file’s cut count varies: the CLI watches its workspace and cuts a file’s thread for every change event the operating system reports, so a Mac and a Linux machine print different numbers for the same lines.
-
2026-10-09: Twenty minutes, nothing compiled corrects its cut section: cutting a pure function’s name now invalidates its cached answer, because every cacheable read hangs from a thread named after its own target. The cache readout shown has gained state and chain columns, and the trace that follows is now computed rather than served.
-
2026-10-09: Tracing a resolution gains a dry run that shows where a request would go and whether it would be let in without sending it, and Golden threads in practice shows how to ask what a cut would recompute before making it. Who is asking now explains that a mount carries your narrowed capability to the peer and shows a test that checks a module’s published grant list against its declarations; the REPL grammar describes the sandboxed Lisp, and Configuration gives the passkey flags that replaced an environment variable.
Pages: Tracing a resolution, Golden threads in practice, Who is asking, The REPL grammar, The editor as a client, Configuration
-
2026-10-09: A new page, The aliases, day to day, is the practical half of the Emacs client: setting it up, how a resource name becomes a function, finding the functions you have, calling them, where results land, how refusals show up, and when to refresh.
-
2026-10-09: Who is asking adds a note on a session’s principal: a name the transport stamps on every request for logs and authorship, never authority, which stays with the capability alone.
Pages: Who is asking
-
2026-10-07: A kernel behind a socket now uses gonk as its example of a server that links only what it serves, with a catalog listing you can run to prove it, and contrasts its mounted model with the retired dev server’s linked one; Preferential resolution and the repository lists follow the same move.
Pages: A kernel behind a socket, Preferential resolution, The repositories, Where to go next
-
2026-10-06: Where to go next introduces The gonk Book, a second book about the work-ledger and repository-browser host built from the pieces this book teaches, starting with a ledger of your own that runs in the page.
Pages: Where to go next
2026-09
-
2026-09-30: Tic-tac-toe, VII now ends with the real commands for a host’s own arrangement: print the running root as a declaration, draw it as an SVG, and start a host from one with
--arrangement, plus why the game’s own file is refused there. -
2026-09-30: A new chapter, Tic-tac-toe, VII: the game’s space is a file, moves the game’s whole arrangement (its doors, their order, the line aliases) out of Rust into a declaration file, builds the game from it, and plays the same moves in both to show identical answers.
Pages: Tic-tac-toe, VII: the game’s space is a file, Tic-tac-toe, VI: the same game in Python and TypeScript
-
2026-09-29: Tic-tac-toe, VI rewrites how the Python and TypeScript apps fill the game’s templates: each carries a small template engine of its own, shown scanning markers, splicing them, and answering the conditional itself.
Pages: Tic-tac-toe, VI: the same game in Python and TypeScript
-
2026-09-29: Tic-tac-toe, V now builds the game’s views as pure templates with no view code, and a new section teaches the whole template language: the three markers, arguments, fallbacks, the conditional that picks a square’s kind, and why an escaped value is never expanded.
Pages: Tic-tac-toe, V: a board you can play, Tic-tac-toe, VI: the same game in Python and TypeScript
-
2026-09-29: A spreadsheet, VII is now part of the book: push, where the page is told when a value changes instead of asking every few seconds, with listening as an authority and a comparison of polling and push.
Pages: A spreadsheet, VII: push, A spreadsheet, V: data that changes outside the sheet, Introduction
-
2026-09-29: A spreadsheet, VI is now part of the book: a sheet is a space, so a person’s what-if scenario and the sheet as it was a week ago are each a corridor, and corridors stack.
Pages: A spreadsheet, VI: a sheet is a space, and spaces stack, Time is a resource, Introduction
-
2026-09-29: A spreadsheet, I to V are now part of the book: cells as atoms, a formula as code that is itself a resource, recalculation that is nothing but golden threads, cells that read the clock, and a feed that something outside the sheet writes.
Pages: A spreadsheet, I: cells are atoms, A spreadsheet, II: a formula is code as a resource, A spreadsheet, III: recalculation is golden threads, A spreadsheet, IV: cells that read the clock, A spreadsheet, V: data that changes outside the sheet, Time is a resource, Introduction
-
2026-09-29: In Time is a resource the clock view is now a template bound at a name, with no view code at all, and its marker escapes what it splices, the default to reach for whenever a value is text somebody else chose.
Pages: Time is a resource
-
2026-09-29: Time is a resource adds the instant, one name for the date and the time read together, so a composite that wants both cannot tear them across midnight, and corrects what the torn reading costs: served once, wrong, but never cached.
Pages: Time is a resource
-
2026-09-29: Time is a resource is now part of the book, in a part renamed Applied: an answer that goes out of date with nobody writing, expiry instead of a golden thread, a clock the host gives the kernel, and a page that polls it.
Pages: Time is a resource, Introduction
-
2026-09-28: A note from a human gains a section on why ikigai is built in Rust, and where Python, TypeScript, Scheme and an Emacs REPL fit for readers who do not write Rust.
Pages: A note from a human
-
2026-09-27: Tic-tac-toe, I to VI are now part of the book: one small application built end to end from a model on paper to atoms, lines, rules, many games, a board you can play in the page, and the same game held and served from Python and TypeScript. The Python and TypeScript tracks each gain a section on families, one templated door answering many names with a contract per verb.
Pages: Tic-tac-toe, I: the model and the atoms, Tic-tac-toe, II: lines, aliases and the board, Tic-tac-toe, III: the rules as resources, Tic-tac-toe, IV: many games, and where the game belongs, Tic-tac-toe, V: a board you can play, Tic-tac-toe, VI: the same game in Python and TypeScript, The Python track, The TypeScript track, Introduction, One wire, three languages
-
2026-09-27: Dual-mode crates adds a troubleshooting note for the WebAssembly build: if it fails with “can’t find crate for
core” after you added the target, another Rust is ahead of rustup’s on your PATH, and the page shows how to check and fix it.Pages: Dual-mode crates
-
2026-09-27: The Introduction now explains how to read the book locally with working Run buttons: plain
mdbook servedisables them, and a bundled script builds the in-page kernel and serves the book.Pages: Introduction
-
2026-09-27: What resolution buys you now explains that the kernel hangs every cacheable read from the thread named after what it read, so the
titleendpoint’s hand-written dependency is no longer load-bearing.Pages: What resolution buys you
-
2026-09-27: Golden threads in practice now shows both cache holes closed: a cacheable read hangs from its own name with no help from the endpoint, and a fallback hangs from the name that was missing. Scope and alias gains an “As of” section where a corridor pins time, Transreption explains lossy transreptors and the
lossy=allowconsent, and Where this actually stands lists what each recent kernel release changed.Pages: Golden threads in practice, Scope and alias, Transreption, Where this actually stands
-
2026-09-26: Where this actually stands and The wire session now cover typed errors, golden threads and endpoint descriptions crossing the module boundary; Contribute a module adds the conformance test and the rules for taking a piped value, and the repositories page gains four new repositories.
Pages: Where this actually stands, The wire session, Contribute a module, The repositories, Multi-verb endpoints, The notebook: the catalog as a graph
-
2026-09-26: Who is asking gains a second half: identity is not authority, authority only shrinks, who enforces a declared capability, what the cache knows about authority, and the difference between being denied and finding nothing there. The Glossary adds scope, alias and principal.
Pages: Who is asking, Glossary, Multi-verb endpoints, Why an endpoint describes itself, Contribute a module
-
2026-09-26: A new chapter, Golden threads in practice, shows the whole mechanism (declare, derive, cut), the cache’s default bound and eviction policy, and the two rules worth stating as rules. Transreption now says plainly that a transreptor’s claim to be lossless is not checked.
Pages: Golden threads in practice, Transreption, Twenty minutes, nothing compiled, What resolution buys you
-
2026-09-26: A new chapter, Tracing a resolution, makes the trace the subject: what each event records, and what a denial, an alias hop and a miss inside a confinement look like, including events for things that never ran.
-
2026-09-26: A new chapter, Scope and alias, covers what sits between a name and its binding: composing spaces, aliases that make two names one resource, and resolving inside a corridor or a confinement, with what each does to the cache. Preferential resolution now separates its alias mount from the kernel’s own alias.
-
2026-09-13: The repositories page lists the persistent RDF store as a repository of its own, beside the linked-data tools it pairs with.
Pages: The repositories
-
2026-09-12: The modules part’s example now lives in the book’s own namespace, and Two ways to reach a kernel explains that the host owns the prefix it delegates to a module. The repositories page adds the conformance suite that defines when a module is done.
Pages: Two ways to reach a kernel, A module, end to end, What a module is, The repositories
-
2026-09-09: A note from a human, after the Introduction, says how the book was written and acknowledges the ideas ikigai builds on.
Pages: A note from a human
-
2026-09-08: Run cells start empty and answer nothing in advance: the expected output sits behind a disclosure and only stands in if the kernel cannot load, and Reset now puts the whole cell back.
Pages: What resolution buys you, Running it
-
2026-09-08: A new part, Polyglot tracks, mirrors Getting started from Python and from TypeScript, serving and calling endpoints over the wire, and adds a notebook that loads the catalog as a graph and queries it with SPARQL.
Pages: One wire, three languages, The Python track, The TypeScript track, The notebook: the catalog as a graph, Introduction
-
2026-09-08: A corrected explanation of cutting a golden thread: Twenty minutes, nothing compiled now caches and cuts a file, and shows that a cut invalidates only the entries that declared that thread, so a pure function’s answer stays cached.
Pages: Twenty minutes, nothing compiled, What resolution buys you, The REPL grammar, Resolution, Glossary
-
2026-09-08: Where this actually stands is corrected: a module endpoint’s own declared capability is now enforced by the host, and the matching exercise says so. Every claim the modules part makes about another project now carries the version it was true at.
Pages: Where this actually stands, Dual-mode crates, Configuration, The machine client
-
2026-09-08: Run cells no longer run on their own: each command is yours to edit, runs when you press Run or Enter, Reset restores it, and every run is kept in a history beneath the cell for comparison.
Pages: What resolution buys you, Running it, The REPL grammar
-
2026-09-08: The book works better with a keyboard and a screen reader: the sidebar toggle and the search box are reachable and named, Run cells announce their results, and the two exercise pages now have distinct titles.
Pages: Exercises: getting started, Exercises: beyond one host
-
2026-09-08: A new front door: Twenty minutes, nothing compiled shows the whole model in eight CLI commands, and The REPL grammar covers one construct per section with runnable cells. A Glossary, a map of the repositories and a guide to contributing a module join the end of the book.
Pages: Twenty minutes, nothing compiled, The REPL grammar, Glossary, The repositories, Contribute a module, Introduction, Where to go next
-
2026-09-08: The published book now carries a working kernel: press Run beside a command in What resolution buys you, Running it or Hello, resource and it resolves for real in your browser, with nothing installed.
Pages: What resolution buys you, Running it, Hello, resource
-
2026-09-08: A new part, Building endpoints, covers the builder’s toolkit: writing a transreptor the kernel finds on its own, an endpoint with three verbs and a capability that is declared and enforced, the catalog queried as a graph, and testing an endpoint that reads the clock without a real one. Configuration is rewritten around a layered config file read under a golden thread.
Pages: Transreption, Multi-verb endpoints, The graph face, Testing an endpoint hermetically, Configuration, Introduction
-
2026-09-08: The exercises now have a crate of your own to edit, so doing them no longer rewrites the chapters, and Beyond one host gains its own exercises: serve a kernel behind a socket, break a prefer-mount and watch what falls through, and see a module’s callback refused across the socket.
Pages: Exercises: beyond one host, Exercises: getting started, Where this actually stands
-
2026-09-08: A new chapter, What resolution buys you, runs the four things the model promises: a cache hit, a cut golden thread, a trace and a catalog. The book’s own host can now describe itself, and Resolution points each concept at the chapter where you do it.
Pages: What resolution buys you, Resolution, Binding, and a host of your own, Exercises: getting started
-
2026-09-08: The book now has a published home online, rebuilt whenever it changes, and the Introduction says where to find it.
Pages: Introduction
-
2026-09-07: A new part, Beyond one host, takes the step the modules part stops at: a kernel behind a socket, who is asking once that socket is a network, the three things a mount can mean (alias, override, prefer), and two clients, one for the editor and one for machines, that build their commands by reading the catalog.
Pages: A kernel behind a socket, Who is asking, Preferential resolution, The editor as a client, The machine client, Introduction, Where to go next
-
2026-09-07: Every exercise now says where your code goes, how to run it and what a right answer looks like, with a worked hint behind a disclosure; Configuration gives a truthful account of environment variables, and Where this actually stands separates the out-of-process transport that is built from the wasm runtime and isolation that are not.
Pages: Exercises: getting started, Where this actually stands, Configuration, The file workspace, Hello, resource
-
2026-09-06: Binding, and a host of your own now explains why resource names are nouns in kebab-case, and Running it installs the CLI with
cargo install ikigai-cli --locked, with a warning thatcargo install ikigaiquietly fetches an unrelated crate.Pages: Binding, and a host of your own, Running it, Resolution
-
2026-09-06: Binding, and a host of your own has a new section on binding into a namespace you own: the book’s camel-case example moves into the tutorial’s own prefix, and the page explains why a name in somebody else’s prefix moves on their schedule, not yours.
Pages: Binding, and a host of your own, Hello, resource, Exercises: getting started
-
2026-09-03: The ikigai Book opens in two parts: Getting started, which builds an endpoint and binds it into a kernel you compose yourself, and Loadable modules, which covers a space compiled separately and the callback that sets a module apart from a remote peer.
Pages: Introduction, Resolution, Hello, resource, Binding, and a host of your own, What a module is, Where this actually stands, Where to go next