Repository navigation
Release Notes
Support for Dakera server v0.12.3. Follows the engine's recall API correctness and security
hardening work (Dakera-AI/dakera#917, #920, engine PR #922; merge this after it, as its merge tags
v0.12.3). Compatible with v0.11.108 and v0.12.0 – v0.12.2 servers as before; --neighborhood,
--include-summaries, the Context section's context_of, the unknown-field hint and dk document need v0.12.3.
Breaking
dk --format json|compact memory recallprints one object,
{"memories": [...], "context_memories": [...]}, instead of an array of result rows (approved
by the owner). Read the ranked results from.memories(for example
dk -f json memory recall a q | jq '.memories[].id'); the neighbourhood context is in
.context_memories. The old output could not be parsed as it was anyway: anℹ Found N memories
line came before the JSON on stdout.
Fixed
dk memory recallshows at most--top-kranked results. The server appended
session-neighbourhood context after the ranked results, so--top-k 5could print 7 rows. The
command now asks forneighborhood_mode: "separate"and prints the context in its own
Context section after the ranked table, each row saying which result it belongs to
(#2 <id>). A server that predatesneighborhood_mode(v0.12.2 and older) appends its context
unmarked: the rows past--top-kare left out with a warning (under--neighborhood inlinethey
are shown as context).dk memory recalllists each result with the server'srank_score(v0.12.3), the score
that follows the order of the results.scoreandsmart_scorecan rise down the list, because
later ranking stages reorder the results after they are scored. Older servers send no
rank_score; theirsmart_scoreis listed as before.- A
429answer exits 6 (server busy), like a503, with theRetry-Afterhint. Since v0.12.3
an overloaded server (a full inference or recall queue) answers429+Retry-Afterwhere it
answered503;dkexited 1 on it. dk --format json|compact memory recallprintedℹ Found N memoriesbefore the JSON on
stdout; stdout is now one JSON document and notes go to stderr.dk keys get|delete|deactivate|rotate|usageanddk admin optimize|backup-deletepercent-encode
the id in the path;dk keys *errors carry the usual exit code and hint instead of the raw body.dk keys create --format jsonprints the server's answer as JSON.- README: the config file example showed an
api_keyand--keythatdknever read.
Added
dk document(Dakera v0.12.3, Dakera-AI/dakera#923):import <file|->turns a text,
Markdown, HTML, PDF or DOCX file into chunk memories of--agent(text formats through
POST /v1/memory/documents; PDF / DOCX, and text that is not UTF-8, uploaded as an attachment to
the agent's namespace and imported throughPOST /v1/namespaces/{ns}/attachments/{ref}/document),
with--title,--document-id,--media-type(else from the extension),--tag,--session-id,
--type,--importance,--lang,--chunk-tokens,--overlap,--strategy structure|fixed,
--decompose,--wait/--timeout;job <id>,list(--limit,--cursor),show <id>
(the chunks with pages and heading paths) anddelete <id>, in table and JSON. On a server
before v0.12.3 the commands say it is needed. Shell completions include them.dk memory recallcites document chunks: aSOURCEcolumn (Field Manual, p. 39-40 › Install)
anddocument(document_id,title,page_start/page_end,heading_path,
chunk_index) in JSON, on ranked results and context.dk memory recall --neighborhood <separate|inline|off>(defaultseparate;offalso sends
neighborhood: false, which older servers honour) and--include-summaries[=false](sent only
when given).- A
MATCHED_TEXTcolumn when the server collapsed derived sentence sub-memories into a result
(DAKERA_RECALL_COLLAPSE_DERIVED). --format jsonformemory recallcarriesmatched_text/matched_idson ranked results and
context_of/context_of_rankon context (see Breaking for the new shape).- A hint for the
422(or400) "unknown field" refusal that the admin key, backup and
rotate-key routes answer from Dakera v0.12.3 on, naming the field.
Security
~/.dakera/config.tomlis written0600(its directory0700when created), an existing file is
narrowed to0600on write, and a file readable by other users gets a warning on stderr.dk configshowsDAKERA_API_KEYmasked (first 3 and last 4 characters) and the transport (TLS
or plain http); a password in the server URL is masked.- A warning on stderr when
DAKERA_API_KEYis set and the server URL is plainhttp://to a host
other than the loopback interface. - Raw requests time out: 10 s to connect, 330 s between reads (longer than the 300 s
encryption-rotate --wait-secsmay ask the server to wait). - Dependencies: rustls 0.23.46 (RUSTSEC-2026-0346, -0347, -0348, -0349), quinn-proto 0.11.19
(RUSTSEC-2026-0338 to -0342), chacha20 0.10.2 (0.10.1 was yanked), rustls-webpki 0.103.16
(RUSTSEC-2026-0382) and webpki-root-certs 1.0.10 (RUSTSEC-2026-0383).
Install dakera-cli 0.8.2
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/dakera-ai/dakera-cli/releases/download/v0.8.2/dakera-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy ByPass -c "irm https://github.com/dakera-ai/dakera-cli/releases/download/v0.8.2/dakera-cli-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install dakera-ai/tap/dkDownload dakera-cli 0.8.2
| File | Platform | Checksum |
|---|---|---|
| dakera-cli-aarch64-apple-darwin.tar.gz | Apple Silicon macOS | checksum |
| dakera-cli-x86_64-apple-darwin.tar.gz | Intel macOS | checksum |
| dakera-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| dakera-cli-x86_64-unknown-linux-gnu.tar.gz | x64 Linux | checksum |