Skip to content

feat(dispatch): define typed-intent migration and fail-closed refusal rules #163

Description

@akougkas

Problem

Typed dispatch intent changes a public tool contract used by the main agent, built-in workers, fleet plans, extensions, and external integrations. Without one migration and refusal policy, compatibility code can become permanent and different surfaces can fail differently.

Goal

Define and enforce the migration lifecycle for typed intent, including when legacy inference is accepted, warned, or refused.

Dependencies

Blocked by #155, #158, and #159.

Scope

  • Inventory all dispatch producers and persisted structures affected by typed intent.
  • Publish compatibility rules for omitted, partial, stale-version, and contradictory intent.
  • Define which policy-bearing operations require declaration and fail closed.
  • Version affected schemas and document whether persisted plans/specs are migrated, rejected, or archived.
  • Add diagnostics and examples for main-agent calls, custom agents, fleet contracts, extensions, and ACP/delegation integrations where applicable.

Acceptance criteria

  • One compatibility table names behavior for every dispatch producer and persisted contract.
  • Policy-bearing ambiguity has a stable reason code and actionable diagnostic.
  • No compatibility adapter silently widens read, write, or verification authority.
  • Schema/version handling is deterministic across source and installed-package paths.
  • Documentation and examples use typed intent by default.
  • Contract tests prove legacy acceptance, warnings, terminal refusals, and unsupported-version behavior.
  • A measurable retirement criterion exists for the inference fallback; removal requires a later explicit issue.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:apiPublic API and extension surfacearea:dispatchWorker dispatch and fleetarea:docsDocumentationenhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions