title: Changelog
built: 2026-10-30
source: api/CHANGELOG.md
html: https://insurgently.com/projects/topic-map/technical/agents/CHANGELOGIndex of these files: llms.txt
The API package's versions. The package version is the API version, and each is published after the Topic Map release that serves it. Before 1.0, a minor version may break the API; breaking changes are marked Breaking.
0.5.0
Not yet released.
- The catalog calls
catalogNames,catalogNodeNameandrenameCatalogNode(TopicMapCatalogApi), offered onTopicMapApias optional: feature-detect each withhasMethod. A domain's tree file is the one source of its nodes' names; a rename writes it and the pages Topic Map made from it, is undone byundoRun(which fires the event again with the restored name), and firestopic-map:catalog-renamed(TOPIC_MAP_CATALOG_RENAMED, carrying aCatalogRenamed). moveCatalogNode(domain, id, newParentId): a type under another sub-family, a sub-family under another family, ids kept. One run thatundoRuntakes back; firestopic-map:catalog-moved(TOPIC_MAP_CATALOG_MOVED, carrying aCatalogMovedwith the parent idsfromandto), and again with them swapped when undone. Refusals:catalog-missing,catalog-node-missing,invalid-request.catalogRedraftReport(domain): what the catalog's last redraft couldn't keep (CatalogRedraftReport:at, anditemsof{ id, name, parent, reason }), or null when there was none. Refusescatalog-missingandinvalid-request.- New
TopicMapErrorCodes:catalog-missingandcatalog-node-missing.
0.4.0
openMapis offered (feature-detect withhasMethod);registerMapLayerand the map layer types are new; in the library map a book's card id iscalibre:<id>.openMaprejects with a codedTopicMapError:invalid-request,not-indexed,collection-missing,hub-missing, orcanceled(the layout stopped, or another map opened in the map view first). Other failures are a plainErrornaming the cause. No new error code.- A layer's
legendis read at registration and again on eachrefresh(); a legend the map can't draw is refused there (invalid-request) and the last one stays. In a layer with the idshelves, a legend entry may name its shelf (shelf), which selecting it in the library map chooses. MapPointhas an optionalcollection(the map it is on), and itsbookis typed asBookRef.- Breaking:
estimate()'scost_usdis now money that would be charged only: a reading that a subscription covers, or that a model on this computer runs, counts nothing (a subscription's price at API rates isn't a charge).startIndexchecks itsmaxSpendUsdcap against it, and the run's spend limit counts charged money the same way.
0.3.0
The first published version.
getTopicMap(app, wanted, { by, for })andonTopicMapReadyfind Topic Map and check its version.opts.byandopts.forput your plugin's name, and what it needs Topic Map for, into the message given when Topic Map is missing or too old.hasMethod(api, name)checks for a call newer than your version gate, or one still to be implemented.- Collections, search, neighbors, cards, passages, dry runs, index jobs, undo, quote checks and
ensureCollection. - The group calls (
similar,nearest,rankGroups,place,groupHealth,overlaps,findGroups, the library collection) andopenMap, as types only: no installed Topic Map offers them yet, so check each withhasMethod. (openMapis offered from 0.4.0.) - Events:
topic-map:ready,topic-map:unloadandtopic-map:index-changed. - Every refusal rejects with a
TopicMapErrorwhosecodeis always set.