Skip to content

chore: release v0.20.1 to main - #1410

Merged
ajianaz merged 3 commits into
mainfrom
chore/release-v0.20.1-main
Oct 9, 2026
Merged

ajianaz merged 3 commits into
mainfrom
chore/release-v0.20.1-main

Conversation

@ajianaz

@ajianaz ajianaz commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

What

Patch release v0.20.1: v0.20.0 plus exactly two fixes, cherry-picked from develop onto main:

Why

Owner decision 2026-10-09: ship the embedder fixes as a fix-only patch (same pattern as 0.18.2) so a labs instance configured with an external embedder (embor) can be tested, and keep everything else (schema v21, MCP additions, the cosign signing step) for 0.21.0. This branch is cut from origin/main (v0.20.0, 9c55dbc), so it does not carry those changes.

Testing

  • fmt, clippy -D warnings, cargo test --workspace and the vecq-only core lib tests (653) green on this branch
  • Both fixes were exercised end to end before merging to develop: the real Dockerfile built into an image, embor as the embedder, remember/recall through env-only and toml-only config, embor stopped to prove traffic goes to it, and the unwritable-data-dir message (details in fix(docker): skip the ONNX download for non-onnx backends and fail clearly on unwritable /data (#1398) #1400 and fix(server): honour [embedding]/[vector] config and UTEKE_EMBEDDING_BACKEND (#1399) #1401)
  • Mutation gate: git diff v0.20.0 -- crates/uteke-core is empty (the patch touches uteke-server, the entrypoint and tests only), so there are no uteke-core mutants to run
  • CORE contract: no endpoint or MCP semantic changes; the change is server start-up configuration and the container entrypoint. No cloud contract issue needed
  • Not tested: the Release workflow itself (it runs on the tag), and the fix on the real labs host

🤖 Generated with Claude Code

ajianaz and others added 3 commits October 9, 2026 14:02
…early on unwritable /data (#1398) (#1400)

The entrypoint now resolves the embedding backend (UTEKE_EMBEDDING_BACKEND,
then [embedding] backend in $UTEKE_HOME/uteke.toml, then onnx) and only
downloads the local model for onnx. If a download is needed but the data dir
is not writable it exits with an actionable message. Data dir follows
UTEKE_HOME (default /data). Covered by integration tests that run the script
with a fake curl and a fake uteke-serve.

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…ACKEND (#1399) (#1401)

uteke-serve opened the store with Uteke::open(), which hardcodes the onnx
backend, so an external OpenAI-compatible or Ollama embedder could never be
used. The server now resolves the embedder (env backend > [embedding] backend
> onnx) and the [vector] engine and opens the store with
open_with_embedding_and_graph, as the CLI does. An unsupported backend exits
with an actionable error. The project-local file stays untrusted for
embedding.* keys via the shared layered resolver.

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Patch release with the two embedder fixes (#1398, #1399) cherry-picked from
develop; version files, skill version lines, core-contract.json and the
CHANGELOG entry updated.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
@github-actions

github-actions Bot commented Oct 9, 2026

Copy link
Copy Markdown

🔍 Cora AI Code Review

❌ Blocked — critical issues found.

🔴 Error (3)

  • benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:94 — Static security scanner detected: SQL injection via string concatenation in benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:94
  • benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:124 — Static security scanner detected: SQL injection via string concatenation in benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:124
  • benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:166 — Static security scanner detected: SQL injection via string concatenation in benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl:166

Review powered by cora-code · BYOK · MIT

@ajianaz

ajianaz commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

Cora "Blocked" verdict: validated as a false positive, with evidence

The 3 findings are all benchmarks/longmemeval/results/default-500q-v0.19.0.jsonl (lines 94, 124, 166, "SQL injection via string concatenation"). None of them applies to this PR:

  1. The file is not in this PR: git diff --name-only origin/main chore/release-v0.20.1-main | grep -c benchmarks is 0 (the PR changes 14 files: the entrypoint, the server config and its tests, and version/changelog files).
  2. The review ran against the wrong base. The job log shows base-branch: origin/develop / INPUT_BASE: origin/develop. The fix that passes the PR base (origin/${{ github.base_ref }}, ci: pass the PR base branch to the Cora review action #1386) is on develop but not on main (v0.20.0), and this branch is cut from main, so the old workflow ran. That is the known "PR into main reviewed against develop" failure from chore: release v0.20.0 to main #1380.
  3. The flagged lines are data, not code: each is a JSON object {question_id, question_type, retrieval_results} of a committed benchmark result file, with no SQL text in it.

Not re-run: re-running would use the same old workflow file. The two code changes in this PR (#1400, #1401) each passed Cora with a real "No issues found" verdict against develop before being merged there. The base fix reaches main with the next release (0.21.0).

@ajianaz
ajianaz merged commit f89939e into main Oct 9, 2026
18 checks passed
@ajianaz
ajianaz deleted the chore/release-v0.20.1-main branch October 9, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant