Migrating to 2.0
Required directory, route, client, message, and persistence changes for Fabric Harness 2.0.
Fabric Harness 2.0 makes persistent-agent input a durable submission and enforces the job/agent directory split.
Required changes
- Move finite
agent({ run })/job({ run })modules from.fabricharness/agents/to.fabricharness/jobs/. - Invoke finite jobs with
POST /jobs/:name. The former finitePOST /agents/:name/:idroute returns410. - Treat persistent
POST /agents/:name/:idas admission: it returns202 { submissionId, streamUrl, offset }by default. - Use
@fabric-harness/clientto wait, observe, read offset-addressed conversation records, or abort. Add?wait=trueonly for synchronous compatibility. - Configure durable submission, conversation-stream, and attachment stores when work must survive process restarts.
- Update build-manifest consumers for schema v2: finite definitions are in
jobs, whileagentscontains persistent definitions.
Client example
import { createFabricClient } from '@fabric-harness/client';
const client = createFabricClient({ baseUrl: 'http://localhost:4317' });
const admitted = await client.agents.send({
agent: 'assistant',
id: 'customer-42',
message: { kind: 'user', body: 'Summarize the latest activity.' },
});
const settled = await client.agents.wait({
agent: 'assistant',
id: 'customer-42',
submissionId: admitted.submissionId,
});Inputs accept strings for convenience or a DeliveredMessage: user messages can include inline or durable-ref attachments; signal messages carry typed out-of-band context.
Databricks note
The v2 Databricks preset adds app identity, UC Volumes attachments, submission telemetry, and Lakebase stores. Lakebase exchanges workspace OAuth for database credentials and supplies session, submission, and stream stores; configure the full endpoint resource name and run the live restart smoke before production. See Databricks deployment.
The repository's complete migration guide includes route details, store options, and the package version map.