Upgrade to v1.7.1
Upgrade from v1.6.3 to v1.7.1
v1.7.1 adds durable Harness agents, WebSocket v2, versioned per-principal Skills, the context compaction ladder, and simpler Surface squads. It also removes the legacy WebSocket and Swarm contracts. Use this checklist before deploying updated packages.
1. Update packages
dotnet add package FabrCore.Host --version 1.7.1
dotnet add package FabrCore.Sdk --version 1.7.1
# New typed WebSocket client, when needed
dotnet add package FabrCore.Client.WebSocket --version 1.7.1
Keep all FabrCore packages on the same version line. v1.7.1 updates Microsoft Agent Framework packages to 1.16.0.
2. Migrate WebSocket clients
Breaking: The raw
AgentMessage WebSocket protocol is removed.- Obtain one-time tickets from
POST /fabrcoreapi/ws/ticket. - Offer the
fabrcore.v2and ticket subprotocols, then sendhello. - Replace header/query principal selection with application authentication.
- Use explicit
asyncorrequestResponsedelivery mode. - Persist checkpoints, acknowledge durable deliveries, and handle gaps through HTTP resynchronization.
- Provision agents through HTTP/blueprints;
createagentis no longer a WebSocket operation.
Read the complete WebSocket v2 guide.
3. Replace Swarm definitions and APIs
Breaking: The Surface Swarm runtime and
SurfaceSwarm* API surface are removed.- Move blueprint definitions from
{ "swarm": { "squads": [...] } }to top-level{ "squads": [...] }. - Replace
squadType: "swarm"withorchestratorortask. - Update code to
FabrCore.Surface.Ai.Squads,FabrCore.Surface.Ai.Tasks,ISurfaceSquadService, andSurfaceTaskHarnessAgent. - Reapply stored blueprints after migration.
Read the Surface squads guide.
4. Configure the compaction ladder
- Set both
ContextWindowTokensandMaxOutputTokensfor models used by tool-heavy or Harness agents. - Replace
MidTurnCompactionEnabledand_MidTurnCompactionEnabledwithContextCompactionEnabledor_ContextCompactionEnabled. - Remove callers of
FabrCoreRunStoppedException.CheckpointCountand consumers of_fabrcore_checkpoint_count. - Check startup logs for
context:unconfiguredand[OUT OF ORDER]. - Do not disable history compaction unless unbounded persisted thread growth is acceptable.
Read the compaction ladder guide.
5. Adopt Harness behavior deliberately
- Run Harness agents only through
FabrCoreHarnessResult.RunAsync. - Pass
AgentMessage.Args["_plan-mode"] = "false"for execution runs. Omitted or invalid values select planning by default. - Set
MissingPlanModeBehaviorwhen omitted flags should preserve the current mode or select execution. - Keep iteration and delegation budgets finite.
- Report remaining todos and delegations marked lost after deactivation.
6. Publish versioned Harness Skills
- Package one
SKILL.mdplus supported textual resources in a ZIP. - Publish exact immutable versions through the
FabrCoreAdmin-protected API. - Pin exact
name@versionreferences in_HarnessSkills. - Use durable Orleans storage if Skills must survive Host restarts.
Read the Harness Skills guide.
7. Update model-configuration authentication
Security change:
/fabrcoreapi/ModelConfig/* now requires the FabrCoreAdmin policy.- Remote SDK processes must configure
FabrCore:AdminAuthentication:ApiKeyand send its bearer credential. - In-process Host agents need no loopback HTTP credential; v1.7.1 resolves model settings and keys directly from the active configuration store.
- Expect explicit errors for redirects, HTML login pages, unauthorized responses, and malformed JSON.
8. Simplify assembly discovery
- Remove routine
AdditionalAssembliesentries for the application assembly and referenced FabrCore projects/packages. - Keep
AdditionalAssembliesonly for dynamically selected assemblies outside the dependency graph. - Use
RegistryAssemblieswhen the Host needs an exact allowlist. An empty list intentionally creates an empty registry.
9. Validate operational fixes
- Cloud Server connect polling now has a dedicated poll-aware timeout and retry path. Remove workarounds written around application-wide 10-second Polly timeouts.
- Microsoft 365 Copilot streaming now stops the typing timer before the final success or error activity. Verify custom bridge overrides preserve that ordering.
Deployment checklist
- Build and run the Host and affected client test suites.
- Exercise WebSocket disconnect/reconnect, duplicate delivery, and gap recovery.
- Apply migrated squad blueprints to a non-production principal.
- Run a Harness agent through planning, execution, timeout, deactivation, and restore.
- Verify remote model-config callers receive JSON with a valid bearer key and 401 without one.
- Confirm durable storage is configured for production Harness state, Skills, agent state, and delivery grains.