Skip to content

Status of Loom's surfaces

This page counts each op group's stable ops, names its experimental ones, and lists every boolean setting that loads false, so a caller can tell, before relying on an op or a switch, whether it is stable and whether it is on by default. Both tables are generated from the code: each op's maturity in the operation registry, and the boolean settings of server/settings/catalog.py as they load.

Operations

  • Stable ops not hidden from MCP are listed under the MCP all toolset (the code.* ops also need LOOM_MCP_CODE_TOOLS=true); one hidden from MCP must have another reach path (server/operations/reach.py lists the kinds; the reach census fails it otherwise). They are meant to have production callers.
  • Experimental ops may have no production callers yet. One not hidden from MCP is still callable by name, and one a toolset names is listed on it (on core or atomic, also under all; MCP toolsets).

The label is set by hand from what the 30-day reach census reports. What it decides is in the operations reference, and which ops each MCP toolset serves is in the MCP reference.

361 operations, 247 of them experimental.

Group Stable Experimental
admin 0 admin.users
agents 1
assistant 0 assistant.ask
audit 0 audit.list
blacklist 1 blacklist.add, blacklist.remove, blacklist.sweep
calibration 0 calibration.get
code 28 code.backport_gap, code.backport_gaps, code.bisect_candidates, code.blame_range, code.callees, code.conventions, code.coverage_claim, code.examples, code.files, code.first_build, code.map, code.outline, code.path_guards, code.pr_check, code.reindex, code.repo.set_access, code.repo.set_source, code.review_brief, code.setting_facts, code.symbol_history, code.test_gate, code.test_home, code.tests_for, code.verify_citations
collection 0 collection.create, collection.delete, collection.list, collection.move
conflicts 2 conflicts.allowlist_list, conflicts.allowlist_remove, conflicts.propose_revision
consolidations 0 consolidations.list
context 1 context.fetch, context.offload
conversation 2 conversation.compact, conversation.create, conversation.delete, conversation.get, conversation.list, conversation.list_saved_messages, conversation.save_message, conversation.saved_status, conversation.search, conversation.search_saved_messages, conversation.set_logging, conversation.unsave_message, conversation.update
cost 3 cost.record_turns
decision 0 decision.chain, decision.outcome, decision.precedents, decision.record
erasure 2 erasure.list, erasure.status
extraction_policy 0 extraction_policy.clear, extraction_policy.get, extraction_policy.set
facts 2 facts.expire_by_adapter, facts.path, facts.related
grants 2 grants.approve, grants.pending_for_me, grants.revoke, grants.share_agent, grants.unshare_agent
help 0 help.get, help.search
inbox 0 inbox.list, inbox.policy_list, inbox.policy_set, inbox.principals, inbox.register
insights 0 insights.catalog, insights.query
knowledge 5 knowledge.bulk_delete, knowledge.dataset_approve, knowledge.dataset_get, knowledge.dedup_list, knowledge.dedup_resolve, knowledge.delete, knowledge.formats, knowledge.ingest, knowledge.ingest_cancel, knowledge.ingest_status, knowledge.inspect, knowledge.outline, knowledge.query, knowledge.reads, knowledge.restore, knowledge.source.add, knowledge.source.check, knowledge.source.inspect, knowledge.source.list, knowledge.source.remove, knowledge.source.rotate, knowledge.source.sync_now, knowledge.synthesize, knowledge.update_metadata, knowledge.upsert
learnings 0 learnings.list, learnings.quality, learnings.review
memory 38 memory.aggregate, memory.apply, memory.assign_category, memory.auto_retirements, memory.backlinks, memory.copy_to, memory.cross_promote, memory.dedup_collapse, memory.delete_version, memory.demonstrate, memory.demote, memory.exposure_summary, memory.extraction_retry_mine, memory.extraction_status_mine, memory.history, memory.import, memory.import_curated, memory.inspect, memory.keys, memory.lineage, memory.lock, memory.outcome, memory.outline, memory.owner_report, memory.pin, memory.promote, memory.proposal_decide, memory.proposals, memory.record.conflicts, memory.redact, memory.reindex, memory.reject, memory.related, memory.stack, memory.statuses, memory.sweep_expired, memory.timeline, memory.touch, memory.unlock, memory.unpin
memory_schema 1 memory_schema.approve, memory_schema.list, memory_schema.propose
mentor 1 mentor.guide
namespace 9 namespace.cancel_request, namespace.delete, namespace.guide_get, namespace.guide_history, namespace.guide_set, namespace.inventory, namespace.join, namespace.leave, namespace.list, namespace.list_categories, namespace.list_ontology, namespace.mark_seen, namespace.register_category, namespace.restore, namespace.rollback, namespace.search_categories, namespace.snapshot, namespace.tune
observe 2
ops 2 ops.projection_failures.list, ops.projection_failures.resolve, ops.projection_failures.retry
org 0 org.model_calls, org.set_model_calls
policy 2 policy.decisions, policy.delete, policy.set
procedure 2 procedure.evolve, procedure.fork, procedure.list, procedure.locate, procedure.record_run, procedure.revise
profile 2 profile.append, profile.replace, profile.set, profile.structured
profile_schema 0 profile_schema.clear, profile_schema.get, profile_schema.set
run 4 run.grade
search 0 search.query
session 0 session.brief_delete, session.brief_get, session.brief_list, session.brief_save
task 0 task.accept, task.block, task.cancel, task.claim, task.complete, task.counts, task.create, task.defer, task.fail, task.get, task.heartbeat, task.history, task.list, task.progress, task.pull, task.reassign, task.reopen, task.resume, task.unblock, task.update, task.updates, task.wont_do
tracker 0 tracker.answer, tracker.binding, tracker.component, tracker.contract, tracker.duplicate_check, tracker.flaky, tracker.item, tracker.links, tracker.release, tracker.similar, tracker.source.add, tracker.source.check, tracker.source.inspect, tracker.source.list, tracker.source.remove, tracker.source.rotate, tracker.source.set_mapping, tracker.test_signal
ui 0 ui.vitals
webhook 0 webhook.deliveries, webhook.list, webhook.register, webhook.remove
working_memory 2 working_memory.append, working_memory.delete, working_memory.get, working_memory.replace

Settings that are off by default

This table lists the boolean settings that load false with a real LLM provider and nothing else set; a setting resolved at load, such as LOOM_MEMORY_CONFLICT_RESOLVER_ENABLED, is listed only when it resolves to false. Each row is the first sentence of the setting's description, cut at 200 characters; read its full entry in the configuration reference before turning it on. Settings that are not boolean (LOOM_POLICY_MODE, LOOM_SELF_SIGNUP and others whose default is off) are not listed here.

45 boolean settings load false.

Setting Meaning
LOOM_ALLOW_INSECURE True lets a non-loopback bind start with auth off, MCP open mode, open self-signup outside trust-network, the dev signing secret or a weak root, gateway or end-user key.
LOOM_CH_LOG_COMMENT_STATEMENT_DIGEST Append sql:<shape12> <first 200 chars> of each statement to its log_comment (" "), so query_log rows group by shape.
LOOM_CODE_COVERAGE_IMPORT_ENABLED Import per-test line coverage from an instrumented CI run into the test map (method='coverage') and the per-file executed lines (code_coverage_files).
LOOM_CODE_EMBED_RECOVERY_ENABLED Embedding recovery for code_chunks/code_summaries stubs (dim=0).
LOOM_CODE_GRAPH_STATS_ENABLED Weekly graph statistics: PageRank, degrees, test_map rebuild.
LOOM_CODE_HOST_ISLANDS Shell inside CI/build files (Actions run:, GitLab script:, Dockerfile RUN, Makefile recipes, Jenkinsfile sh) is parsed for facets, script includes edges and SQL; jobs, targets and stages…
LOOM_CODE_INGEST_DENYLIST_BUILTIN True applies the built-in generated, minified and vendored ingest rules (code/app/index/denylist.py), which match 0.19% of rows.
LOOM_CODE_INGEST_ENABLED Per-merge fast tier: git-poll → diff → re-chunk/re-embed changed files → tree-sitter symbols/edges → context pack → advance watermark.
LOOM_CODE_ORG_READABLE True lets every authenticated principal of the org read every configured code namespace (right for public or org-internal repos); false leaves reads to the namespace's own visibility and grants.
LOOM_CODE_PR_HISTORY_ENABLED Merged-PR history sync (GitHub REST, cursor-resumable).
LOOM_CODE_PY_SQL_ISLANDS SQL a Python file runs (database-client call arguments and SQL-looking literals) becomes statement symbols, facets (confidence 0.7 with a format hole) and table edges.
LOOM_CODE_REPO_PUBLIC The scalar repo entry is public: its namespace registers join_policy=open and discoverable.
LOOM_CODE_SANDBOX_REQUIRED Set by deployments that ship the sandbox profiles: a repository job refuses to run rather than run unsandboxed, and /v1/health reports the missing sandbox as an error.
LOOM_CODE_SCIP_APPLY_ENABLED SCIP delta apply (compiler-grade tier uploaded via code.scip_ingest).
LOOM_CODE_SEARCH_CARD_LEG The card leg: file cards are searched by cosine and the top files' chunks join fusion as a capped RRF list (the history leg's shape).
LOOM_CODE_SHELL_ISLANDS A shell test's SQL strings ($CLICKHOUSE_CLIENT -q, heredocs, echo \|) become statement symbols with facets; leftover chunks coalesce up to code_shell_chunk_target_chars, never across a…
LOOM_CODE_SQL_COLUMN_LINEAGE Column-level SQL lineage: <table>.<column> symbols, column_read / column_write facets and statement → column edges, for .sql and Python SQL islands.
LOOM_CODE_SQL_STATEMENT_RECORDS SQL tests as statement records: one statement symbol per record, chunks packed by whole statements, facet rows in loom.code_test_facets.
LOOM_CODE_SUMMARY_ENABLED Weekly LLM file/module summary cards (inputs_hash-gated).
LOOM_DEPLOYMENT True marks this process as the deployment itself: its compose files set LOOM_DEPLOYMENT=1, and every other process sets LOOM_INSTANCE_LABEL instead (e.g. iso:<worktree>:<port>, ci:integration).
LOOM_EMBEDDING_SEND_DIMENSIONS Send the optional dimensions request parameter to a compatible endpoint.
LOOM_ENTITY_COMMUNITIES_ENABLED Label-propagation communities over the entity co-occurrence graph, per namespace, into loom.entity_communities (read by namespace.taxonomy and graph-mode expansion).
LOOM_INFERENCE_CUSTOMER_REQUIRED True (a cell serving several customers): refuse to start without inference_customer_header, so no model call goes out unattributed.
LOOM_INFERENCE_GATEWAY_REQUIRED True: model calls and memory content go only to inference_gateway_hosts; on whenever a workload token is sent (inference_token_url, or the bearer mode).
LOOM_KNOWLEDGE_SOURCE_SYNC_ENABLED The knowledge_source_sync worker: pulls each registered document source's changed files into its namespace's documents.
LOOM_MCP_CODE_TOOLS List code.* tools on the MCP surface (core toolset union).
LOOM_MEMORY_ASK_CONSISTENCY_CHECK After synthesis one judge call (the cheap client when the cascade is on, else the synth client) labels the answer entailed / neutral / contradicted against the memories it cites (consistency…
LOOM_MEMORY_ASK_PRECEDENTS Serve the earlier synthesized answer to the same question and shape, with no LLM call, when the synthesis window is byte-identical (same keys, same content_sha256 per key); otherwise synthesize and…
LOOM_MEMORY_ASK_PREMISE_CHECK When the window holds a pinned or human-verified memory, one judge call asks whether the question presupposes something it contradicts; if so the synthesizer holds the trusted fact and corrects the…
LOOM_MEMORY_EXTRACT_AGENT_LEARNINGS Whether extraction files an assistant's rules about itself as learnings to review; a request can only turn it off.
LOOM_MEMORY_EXTRACT_VALUE_UPDATES Value-update supersession on the extraction write path (memory.app.value_updates): a fresh memory restating an existing one with a different value token marks the older one superseded.
LOOM_MEMORY_QUERY_NODES_ENABLED Past queries as nodes: one loom.query_nodes row per memory.search (normalised text, embedding, returned keys), gated on the namespace's capture consent; the erasure saga deletes the table.
LOOM_MEMORY_WEBHOOK_ALLOW_HTTP True lets a memory webhook use plain http (a local receiver in development); false: https only.
LOOM_OAUTH_ENABLED MCP one-click connect: dynamic client registration and /oauth/authorize on top of the sign-in routes (device grant, token, revoke) every auth-on deployment serves.
LOOM_OBSERVE_EXTRACT_ENABLED Deferred-extraction worker for the observe plane: distills READY rows (observe.record/crystallize) into durable memories through the memory.set_from_messages pipeline.
LOOM_OIDC_JIT_PROVISION JIT provisioning: a first OIDC sign-in with no account creates a personal namespace in oidc_jit_org instead of being rejected.
LOOM_OTEL_METRICS_DELTA_TEMPORALITY Delta temporality for counters and histograms (an idle synchronous series writes no row).
LOOM_PG_PAYLOAD_CLEAR_ENABLED The pg_payload_clear worker: clears a revision's payload once every usable ClickHouse backup holds it.
LOOM_PROFILE_CONSOLIDATION_ENABLED Fold a user's durable preference/decision memories into a versioned profile section (memory_type='profile') for profile.render / context.pack; skipped when refreshed within the cooldown.
LOOM_READS_LLM_FREE True: reads call no LLM (ask synthesis: 409), skip the spelling-fix and set-expansion embeddings, and rerank only as named, since a reranker is a model call.
LOOM_READY_REQUIRES_MIRRORS True: /v1/health/ready also waits until the mirror warm-up has queued its clones and while a clone of this host's git mirrors is running or queued (a failed clone does not hold it).
LOOM_REFLECTION_DISTILL_ENABLED Reflection distillation: label recent sessions that carry no outcome (positive / negative / unclear into loom.session_outcomes_by_user), pair each confidently failed session with its nearest…
LOOM_REQUIRE_REAL_PROVIDERS A fake or key-less provider is a warn in /v1/health problems; true (production) makes it an error and status: degraded, which preflight and monitors catch.
LOOM_SEARCH_TRACE_LOG_ENABLED Per-query recall telemetry into loom.search_trace_log (query, returned keys+scores, abstain, latency), fire-and-forget.
LOOM_TRACKER_SELF_SERVICE_ALLOW_PRIVATE_HOSTS A registered host must resolve to a public address (no loopback, RFC 1918, link-local, CGNAT 100.64/10 or multicast); True lets a dev stack point at a local ClickHouse.