Skip to main content

Guides · 4 of 6

Move from Commission, the governor, intake or Harness

Commission, the governor and intake now live in Loom under new package and library names. A consumer of the archived repositories changes its dependency lines and its use paths; behaviour is unchanged. Loom no longer carries Harness; a Harness program keeps Harness, and Loom reaches models through llm and agent work through metaharness.

Atlas ADRs 0090 and 0098; CHANGELOG.md (Unreleased); crates/loom-executor/tests/crate_names.rs

Move from Commission, the governor, intake or Harness

beyond10x/commission, beyond10x/governor and beyond10x/intake are archived, and their READMEs point here. Their code and history are in Loom (Atlas ADR 0090). Two things change for a consumer: where the crate comes from, and its name.

Dependency lines​

Every crate now comes from the Loom repository:

[dependencies]
b10x-loom-commission = { git = "https://github.com/beyond10x/loom", tag = "0.55.2" }

An application that uses several of them can depend on b10x-loom-sdk alone; see embed the runtime.

Names​

BeforeNowuse
b10x-commissionb10x-loom-commissionb10x_loom_commission
b10x-commission-testkitb10x-loom-commission-testkitb10x_loom_commission_testkit
b10x-commission-conformanceb10x-loom-commission-conformanceb10x_loom_commission_conformance
b10x-governor (use governor)b10x-loom-governorloom_governor
b10x-intake-references (use intake_references)b10x-loom-intake-referencesb10x_loom_intake_references
b10x-intake-router (use intake_router)b10x-loom-intake-routerb10x_loom_intake_router
b10x-intake-slice (use intake_slice)b10x-loom-intake-sliceb10x_loom_intake_slice
b10x-intake-cli, command b10x-intake runb10x-loom-cli, command b10x-loom runb10x_loom_cli
b10x-loomb10x-loom-executorb10x_loom_executor
b10x-intake-modelremoved: llm's b10x-llm-tool-call (call_tool, codex_model)b10x_llm_tool_call

b10x-loom run keeps the flags and exit statuses b10x-intake run had.

Dependencies that moved with it​

  • Model calls use llm (GitHub) at release tag 0.3.1, including the provider overload fix.
  • The engineering protocol registry is b10x-canon-engineering 0.15.2 from engineering protocols (GitHub); it replaces b10x-els. Its software.change/1 declares the case inputs risk, change_kind and affects_security_boundary, which every case opens with (CaseInputs, the third argument of CanonGovernor::open), and declares the write actions tests.write and implementation.edit where earlier releases had repository.edit.
  • Canon (GitHub) is the revision b10x-canon-engineering names, tag 0.8.0. A consumer that adds Canon itself uses the same reference, or it builds a second Canon whose types do not match.

The crate list is generated from the workspace and is the current list.

Move from Harness​

Loom does not carry Harness (GitHub). Releases up to 0.30.0 shipped a port of its wires, turn loop and sessions under loom_sdk::loom::harness; Loom deleted it (Atlas ADR 0098), and each removed path is named in a **Breaking:** bullet of CHANGELOG.md. Harness itself is unchanged and stays in service, so a Harness program keeps its Harness dependency.

What Loom reaches instead:

  • Decisions go to llm. Intake routing, action selection, argument generation and a workflow's judgement step are each one structured request to an llm Model the host builds, through llm (GitHub). A host that ran the ported loop over the SDK's llm bridge (loom_sdk::llm) hands Loom its llm Model instead: loom_sdk::loom::model_selector selects and generates arguments on it, and loom_sdk::RunMeter meters it (embed the runtime).
  • Agent work goes to metaharness. A session in a harness (Harness, Claude Code or Codex) runs through Metaharness (GitHub), behind an AgentExecutor: a host supplies its own today, and Loom's executor over a metaharness session is planned. Loom no longer reaches Claude Code through a claude -p model port.
  • Tools come from the frontier, and a call is a proposal. The catalogue a step offers is projected from the case's current frontier, and a selection is revalidated before Loom proposes it; the Commission runtime invokes an admitted action through the effect port the embedder supplies (action selection, where Loom ends). A Harness program that ran its tools inside the loop moves that work to the effect port.