Repository navigation
v0.20.0
An assistant's search shows the chunks that match whole, never cut, and lists
the other documents it found, fifteen in all; browse lists a folder as a
tree within a budget; and every tool gives a document's date, length and
format the same way
(ADR-044,
still proposed). A project measures its search with the platform's own code.
Added
searchtakeslimitandcompact: fewer documents, or titles,
links, folders and dates alone.characterson every document a tool lists, the length of the text
fetchreturns, so an assistant knows what reading one costs;fetch
gives the whole document's length however much it returned.fetchnames itsformat,docorpdf, and a PDF'spages, which
the build reads from a newctcdocs:pdf-pagesmeta on the document's page.browsetakesdepth, to cap the levels of its tree.mcp.browseCharacters, the budget of abrowsetree, 24,000 unless a
project sets another, andmcp.recent.defaultResultsand
mcp.recent.results, twenty and fifty: the numbersbrowseand
recentused to fix.ctcdocs-eval-searchruns a project's own questions,
evaluation/search-questions.json, through the Worker'ssearchDocuments
against its AI Search instance, under variants that change one setting
each, and writes each run toevaluation/results/<date>-<label>/: rank,
recall, and whether the passages of the documents a question needs show the
words its answer holds. It writes no document text.
Changed
searchno longer cuts a passage. It takes the chunks that count in
the index's order, across documents, and shows each whole while the budget
holds, at mostpassagesPerResultof one document; a chunk that does not
fit is left out and counted inmorePassages, and a chunk a shown one of
its document already holds is shown once. The other documents found are
listed withouttext. Measured on one deployment's corpus, the answers
shown rose from 23 to 25 of 32 and the recall of the list from 0.859 to
0.916.mcp.search.resultslists 15 documents unless set, not ten.
mcp.search.passageCharacterstakes 1,000 or more, no longer 100 for each
result, so every configuration 0.19.0 accepted is still accepted.browsereturns a nested tree: what is directly in the folder, then its
folders level by level, those taking the fewest characters first, each
listed whole or collapsed with its name and count. A document is listed
with its id, title, day and length, and onelinkspattern replaces a URL
on each entry. Without a folder it lists the whole knowledge base, as far as
the budget holds.- Dates are
YYYY-MM-DDinsearch,browseandfetch, and to the
minute in UTC inrecent, instead of Drive's time to the millisecond. fetchputsmetadatabeforetext, and an unknown id says to find
one withsearch,browseorrecent.- A note for the assistant is a
notefield of the answer, not a text
item beside the JSON: Claude Code gives the model only a result's structured
content, so it never saw the notessearchandbrowsesent.
Upgrade note
Bump the packages and the workflow pins. Assistants see the new shapes after
their next tool listing; a script that parsed the old ones, search results
always carrying text or browse's flat lists, needs updating.
Every passage is now a whole chunk, so the instance's chunk size decides how
many fit the budget: about seven of AI Search's default 1,024 tokens. Measure
an instance of smaller chunks over the same bucket with
ctcdocs-eval-search --instance <name> before binding it; on the corpus
measured, 800 tokens ranked best in both of its languages. Keep
mcp.search.contextChunks at 0: neighbouring chunks now lengthen every
passage instead of being cut away.