loopctl-mcp-server 2.104.1 → 2.104.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +1 -1
  2. package/index.js +9 -1
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -334,7 +334,7 @@ exhausting a paginated walk is not the same as the row being absent.
334
334
  |---|---|
335
335
  | `knowledge_index` | Browse/paginate the knowledge wiki catalog grouped by category. **Agent callers see only articles they own or marked `shared`.** Honors `category`, `tags`, `offset`, `limit` with deterministic ordering over the filtered set (`meta.categories` reports per-category totals within visibility). Use `fields` (default `id,title,category`; request `tags`/`status`/`updated_at`/`suppressed_at`/`suppressed_by`/`suppression_reason` explicitly; `id` and `category` are always included) to keep the payload small. Pair `suppressed: "only"` with `fields: suppressed_by,suppression_reason` to see who suppressed what and why without a read per row. Optional: `project_id`, `story_id`, `category`, `tags`, `offset`, `limit`, `fields`, `suppressed`. |
336
336
  | `embedding_status` | This tenant's embedding-dimension state: active dimension, whether semantic recall is available (and the exact reason when it is not), the instance's supported dimension set, whether the shared system-scoped corpus has been materialized for this tenant, and per-dimension row counts. Call it when semantic search under-returns or reports `fallback_reason: semantic_recall_unavailable`. |
337
- | `embedding_materialize_system_corpus` | Embed the shared SYSTEM-scoped corpus for THIS tenant at its active dimension with this tenant's own credential (system articles are keyword-only until then). Idempotent, batched. |
337
+ | `embedding_materialize_system_corpus` | Embed the shared SYSTEM-scoped corpus for THIS tenant at its active dimension with this tenant's own credential (system articles are keyword-only until then), and re-embed articles whose text changed since. `already_materialized` when nothing is missing or changed; `in_flight` when a run is already queued, executing or backing off (one run at a time; an orchestrator-or-higher key re-schedules a run backing off after an error to now, and a run left executing by a crashed node holds until Oban's Lifeline rescues it). 409 `materialization_terminal` when the latest run was discarded or cancelled and the key is agent-role; an orchestrator-or-higher key forces a new run. |
338
338
  | `embedding_reembed` | Move the tenant's whole corpus (articles, per-tenant system-article materializations and agent memories) onto `target_dimension`. Recall keeps serving at the current dimension throughout; the pin flips and stale rows drop only when everything is present at the target. One-time and cost-bearing; requires `LOOPCTL_ORCH_KEY`. |
339
339
  | `knowledge_stats` | Aggregate article counts (`total`, `by_category`, `by_status`) via cheap `COUNT(*) GROUP BY` within agent's visible set — no article metadata loaded. Agent callers see only their own and `shared` articles. Counts span all statuses. Optional: `project_id`. |
340
340
  | `knowledge_count` | Count articles matching filters **without returning rows** within agent's visible set. Agent callers see only their own and `shared` articles. Same filters as `knowledge_list` (`category`, `status`, `tags`, `match`, `source_type`, `source_id`, `idempotency_key`, `project_id`). With `tags`+`match: all` (+`status`) → "how many published articles tagged both X and Y (that I can see)". Returns `{ count }`. |
package/index.js CHANGED
@@ -5104,7 +5104,15 @@ const TOOLS = [
5104
5104
  "Materialize the shared SYSTEM-scoped article corpus for THIS tenant at its active " +
5105
5105
  "embedding dimension, using this tenant's own embedding credential. System articles " +
5106
5106
  "cannot be embedded once for everyone (embeddings are BYO), so until this runs they are " +
5107
- "matched by keyword only for you. Idempotent and batched; safe to call repeatedly.",
5107
+ "matched by keyword only for you. It embeds the system articles you have not embedded " +
5108
+ "and re-embeds ones whose text changed since; on the side-table read path your searches " +
5109
+ "trigger the same thing, so this is for doing it now. Answers already_materialized when " +
5110
+ "nothing is missing or changed, and in_flight when a run is already queued, executing " +
5111
+ "or backing off (one run at a time; an orchestrator-or-higher key re-schedules a run " +
5112
+ "backing off after an error to now, and a run left executing by a crashed node holds " +
5113
+ "until Oban's Lifeline rescues it). Refused 409 materialization_terminal when your latest run " +
5114
+ "was discarded or cancelled (e.g. no embedding key) and the key is agent-role; an " +
5115
+ "orchestrator-or-higher key forces a new run.",
5108
5116
  inputSchema: { type: "object", properties: {}, required: [] },
5109
5117
  },
5110
5118
  {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "loopctl-mcp-server",
3
- "version": "2.104.1",
3
+ "version": "2.104.2",
4
4
  "description": "MCP server for loopctl — structural trust for AI development loops",
5
5
  "type": "module",
6
6
  "main": "index.js",