From 88134c179a7e1c2ea20332a79a702923b6b5e7ae Mon Sep 17 00:00:00 2001 From: Ori Nachum Date: Mon, 6 Jul 2026 21:02:18 +0300 Subject: [PATCH 1/2] colleague: Documentation-only change in this repo (coherence-cli). Goal:... MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Documentation-only change in this repo (coherence-cli). Goal: name the lobes embedder role as the reference deployment for the embedding endpoint, worded to fit the upcoming five-domain positioning (issue #11: quality, meaning, signal, investiture, frames — meaning is Layer 2) and the model-relative framing of issue #10 (scores are model-relative, anchor-defined semantic measurements — never universal meaning). Changes: (1) In README.md, find the section documenting COHERENCE_EMBED_URL / COHERENCE_EMBED_MODEL (defaults http://localhost:8002/v1 and Qwen/Qwen3-Embedding-0.6B — do NOT change the defaults) and add a short 'Reference deployment' note: the lobes gateway serves an 'embedder' role discoverable via GET /capabilities (lobes-cli >= 0.38 advertises a client-reachable endpoint per role); consumers like colleague resolve the endpoint from lobes and inject COHERENCE_EMBED_URL/COHERENCE_EMBED_MODEL when armed; also one sentence noting each meaning score is a model-relative, anchor-defined measurement — the embedding model + anchors are the measurement's reference frame (gauge), per issues #10/#11. (2) In coherence/meaning/embed.py, extend the module docstring with the same two facts (lobes embedder as reference deployment; endpoint+model = the score's frame provenance). Keep markdownlint-clean lines (this repo lints all markdown). Do NOT change any code behavior, defaults, tests, version, or CHANGELOG. --- README.md | 12 ++++++++++++ coherence/meaning/embed.py | 10 ++++++++++ uv.lock | 2 +- 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index c2d4833..71d0dae 100644 --- a/README.md +++ b/README.md @@ -85,6 +85,18 @@ environment error — an unreachable embedding endpoint makes `score` exit `2` with a hint naming `COHERENCE_EMBED_URL`, while the offline diagnostics still run. +### Reference deployment + +The lobes gateway serves an `embedder` role, discoverable via `GET /capabilities` +(lobes-cli >= 0.38 advertises a client-reachable endpoint per role). Consumers +such as colleague resolve the endpoint from lobes and inject +`COHERENCE_EMBED_URL` / `COHERENCE_EMBED_MODEL` when armed. + +Each meaning score is a model-relative, anchor-defined measurement: the +embedding model and anchors constitute the score's reference frame (gauge). +Scores are not universal meaning — they are semantic measurements relative to the +chosen model and anchor set (issues #10, #11). + `coherence meaning score --json` emits exactly: ```json diff --git a/coherence/meaning/embed.py b/coherence/meaning/embed.py index 4532934..cfec517 100644 --- a/coherence/meaning/embed.py +++ b/coherence/meaning/embed.py @@ -15,6 +15,16 @@ Transport failures (connect/timeout/transport) are wrapped in :class:`~coherence.meaning.EmbedUnavailable` with an actionable message that names both environment variables; raw ``httpx`` errors never escape. + +Reference deployment: the lobes gateway serves an ``embedder`` role, discoverable +via ``GET /capabilities`` (lobes-cli >= 0.38 advertises a client-reachable endpoint +per role). Consumers such as colleague resolve the endpoint from lobes and inject +``COHERENCE_EMBED_URL`` / ``COHERENCE_EMBED_MODEL`` when armed. + +Each meaning score is a model-relative, anchor-defined measurement: the embedding +model and anchors constitute the score's reference frame (gauge). Scores are not +universal meaning — they are semantic measurements relative to the chosen model +and anchor set (issues #10, #11). """ from __future__ import annotations diff --git a/uv.lock b/uv.lock index 0664e89..fdbf0db 100644 --- a/uv.lock +++ b/uv.lock @@ -85,7 +85,7 @@ wheels = [ [[package]] name = "coherence-cli" -version = "0.4.1" +version = "0.5.0" source = { editable = "." } dependencies = [ { name = "httpx" }, From e5c0456a642725138161af40157e24a977494a02 Mon Sep 17 00:00:00 2001 From: Ori Nachum Date: Mon, 6 Jul 2026 22:54:45 +0300 Subject: [PATCH 2/2] chore: bump version to 0.5.1 (lobes embedder reference deployment docs, #10, #11) Record the CHANGELOG entry for the README + embed.py docstring update naming the lobes embedder role as the reference COHERENCE_EMBED_URL deployment, and re-sync uv.lock's stale recorded version (0.4.1 -> 0.5.0). Authored by the colleague backend (local 27B) and graded 5/5 through colleague's feedback loop. --- CHANGELOG.md | 20 ++++++++++++++++++++ pyproject.toml | 2 +- uv.lock | 2 +- 3 files changed, 22 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4906851..001bbbc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,26 @@ All notable changes to this project will be documented in this file. Format follows [Keep a Changelog](https://keepachangelog.com/). This project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.5.1] - 2026-07-06 + +### Added + +- README "Reference deployment" note (Meaning Gradient section) and a matching + `coherence/meaning/embed.py` docstring addition: the lobes gateway serves an + `embedder` role, discoverable via `GET /capabilities` (lobes-cli >= 0.38 + advertises a client-reachable endpoint per role); consumers such as + colleague resolve the endpoint from lobes and inject `COHERENCE_EMBED_URL` / + `COHERENCE_EMBED_MODEL` when armed. Also notes that each meaning score is a + model-relative, anchor-defined measurement — the embedding model and + anchors are the score's reference frame (gauge), never universal meaning + (issues #10, #11). Documentation only; no defaults, code behavior, or tests + changed. + +### Fixed + +- `uv.lock`'s recorded `coherence-cli` version was stale at `0.4.1` while + `pyproject.toml`/`CHANGELOG.md` had already moved to `0.5.0`; re-synced. + ## [0.5.0] - 2026-07-04 ### Added diff --git a/pyproject.toml b/pyproject.toml index 8be00b9..fb1c072 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "coherence-cli" -version = "0.5.0" +version = "0.5.1" description = "Maintains information quality for agentic workflows — assesses the freshness, provenance, fidelity, and task-specific validity of claims, then refreshes or repairs degraded ones before agents consume them." readme = "README.md" license = "Apache-2.0" diff --git a/uv.lock b/uv.lock index fdbf0db..4671cb6 100644 --- a/uv.lock +++ b/uv.lock @@ -85,7 +85,7 @@ wheels = [ [[package]] name = "coherence-cli" -version = "0.5.0" +version = "0.5.1" source = { editable = "." } dependencies = [ { name = "httpx" },