Skip to content

0.8.2 - 2026-10-22

Latest

Choose a tag to compare

@github-actions github-actions released this 22 Oct 13:16
533524a

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 recall prints 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 recall shows at most --top-k ranked results. The server appended
    session-neighbourhood context after the ranked results, so --top-k 5 could print 7 rows. The
    command now asks for neighborhood_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 predates neighborhood_mode (v0.12.2 and older) appends its context
    unmarked: the rows past --top-k are left out with a warning (under --neighborhood inline they
    are shown as context).
  • dk memory recall lists each result with the server's rank_score (v0.12.3), the score
    that follows the order of the results. score and smart_score can rise down the list, because
    later ranking stages reorder the results after they are scored. Older servers send no
    rank_score; their smart_score is listed as before.
  • A 429 answer exits 6 (server busy), like a 503, with the Retry-After hint. Since v0.12.3
    an overloaded server (a full inference or recall queue) answers 429 + Retry-After where it
    answered 503; dk exited 1 on it.
  • dk --format json|compact memory recall printed ℹ Found N memories before the JSON on
    stdout; stdout is now one JSON document and notes go to stderr.
  • dk keys get|delete|deactivate|rotate|usage and dk admin optimize|backup-delete percent-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 json prints the server's answer as JSON.
  • README: the config file example showed an api_key and --key that dk never 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 through POST /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) and delete <id>, in table and JSON. On a server
    before v0.12.3 the commands say it is needed. Shell completions include them.
  • dk memory recall cites document chunks: a SOURCE column (Field Manual, p. 39-40 › Install)
    and document (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> (default separate; off also sends
    neighborhood: false, which older servers honour) and --include-summaries[=false] (sent only
    when given).
  • A MATCHED_TEXT column when the server collapsed derived sentence sub-memories into a result
    (DAKERA_RECALL_COLLAPSE_DERIVED).
  • --format json for memory recall carries matched_text / matched_ids on ranked results and
    context_of / context_of_rank on context (see Breaking for the new shape).
  • A hint for the 422 (or 400) "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.toml is written 0600 (its directory 0700 when created), an existing file is
    narrowed to 0600 on write, and a file readable by other users gets a warning on stderr.
  • dk config shows DAKERA_API_KEY masked (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_KEY is set and the server URL is plain http:// 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-secs may 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 | sh

Install 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/dk

Download 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