FabricFabricHarness
Getting Started

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

  1. Move finite agent({ run }) / job({ run }) modules from .fabricharness/agents/ to .fabricharness/jobs/.
  2. Invoke finite jobs with POST /jobs/:name. The former finite POST /agents/:name/:id route returns 410.
  3. Treat persistent POST /agents/:name/:id as admission: it returns 202 { submissionId, streamUrl, offset } by default.
  4. Use @fabric-harness/client to wait, observe, read offset-addressed conversation records, or abort. Add ?wait=true only for synchronous compatibility.
  5. Configure durable submission, conversation-stream, and attachment stores when work must survive process restarts.
  6. Update build-manifest consumers for schema v2: finite definitions are in jobs, while agents contains 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.