Skip to content

Releases: sabbour/agentweaver

v0.28.6

Choose a tag to compare

@sabbour sabbour released this 05 Sep 01:57
93963bf

0.28.6

Patch Changes

  • 6b267f3: Expose a redacted effective model-provider context before generative AI actions and on active runs so interfaces can identify the project, platform, or personal provider without relying on the lossy persisted model source.

v0.28.5

Choose a tag to compare

@sabbour sabbour released this 05 Sep 00:45

0.28.5

Patch Changes

  • 01127ac: Allow OAuth consent submissions to reach only the validated registered client callback while preserving a strict content security policy.

v0.28.4

Choose a tag to compare

@sabbour sabbour released this 04 Sep 22:46
b586cf2

0.28.4

Patch Changes

  • abeb669: Prioritize GitHub Copilot clients in MCP setup guidance and show the Agentweaver logo on OAuth consent.
  • d08e74b: Let users dismiss optional repository setup guidance per project while keeping changed or required setup visible.
  • d08e74b: Keep assistant messages visible while sessions connect or reload history without duplicating server-confirmed turns.

v0.28.3

Choose a tag to compare

@sabbour sabbour released this 04 Sep 22:05

0.28.3

Patch Changes

  • da3e10d: docs: diagram consolidation, sequence-diagram renderer, and refreshed architecture/component diagrams
  • 450c644: Allow users to permanently delete their own personal Assistant sessions after the incidental project is deleted or becomes inaccessible, while preserving project authorization for project-owned runs.

v0.28.2

Choose a tag to compare

@sabbour sabbour released this 04 Sep 16:49
c64f884

0.28.2

Patch Changes

  • 8315ab0: Wrap shorter workflow sequences into compact serpentine layouts and separate loopback connectors into distinct outer routing lanes.

v0.28.1

Choose a tag to compare

@sabbour sabbour released this 04 Sep 13:09
755603c

0.28.1

Patch Changes

  • 0a65ff3: Make workflow, run-topology, and landing-demo diagrams use a deterministic banded layout with compact serpentine flows and clearer routing gutters.

v0.28.0

Choose a tag to compare

@sabbour sabbour released this 04 Sep 11:21
1436749

0.28.0

Minor Changes

  • 292774c: Enforce API authentication through endpoint-bound ASP.NET schemes and deny-by-default policies, including narrowly scoped broker, internal-service, and run-capability credentials.
  • 292774c: Add Entra-backed OAuth authorization for Copilot CLI, GitHub Copilot desktop, and VS Code MCP clients, including discovery, consent, constrained dynamic registration, and rotating refresh tokens.
  • c6c8c0f: Make personal AI Access discoverable during platform setup and proactively guide users to configure it when no model provider is available to them.
  • 7829e4d: Add personal AI Access settings so session chat can use platform BYOK, a user-authorized GitHub Copilot account, or a personal custom-key provider.
  • 292774c: Require Agentweaver broker tokens for MCP, publish standards-based protected-resource discovery and challenges, and remove direct identity-provider and shared-key fallbacks.

Patch Changes

  • 06d152d: Add a working Reconnect GitHub Copilot action when a project's unattended AI authorization is stale or missing.

  • e8cbeee: Restore startup compatibility for static OAuth clients that share an exact callback while keeping Claude's hosted callback reserved.

  • 292774c: Keep BYOK AgentHost runs on their configured model provider during per-turn client refresh and checkpoint restore instead of falling back to GitHub Copilot authentication.

  • dc43ae6: Redeem stored GitHub Copilot OAuth refresh tokens ahead of expiry instead of letting them go stale, fixing recurring forced re-authentication under Platform Settings even when a valid refresh token was already on file. A new CopilotCredentialRefreshService redeems the refresh token before the access token's lifetime elapses (redeem-ahead of GitHubCapabilityBroker.MaximumCapabilityLifetime), guarded by a concurrency-safe semaphore and ETag-conditional writes so concurrent redemption attempts across requests don't race or clobber each other's result.

  • 4c67da4: Fix blueprint generation for platform-scoped (project-less) runs by allowing marketplace_copilot_capabilities.project_id to be null instead of substituting a fake singleton project id, which violated the foreign key constraint and surfaced as an opaque 502.

  • eecd25a: Support Claude hosted MCP connectors with a no-secret public OAuth client bound to Claude's exact callback.

  • ec6baf5: Fix Copilot binding creation so credential secrets are read back before bindings are committed, and log cleanup failures when persistence rolls back after a secret write.

  • 0a33b2b: Return project_model_provider_reconnect_required from the project Copilot connection status endpoint when the binding's credential secret is stale or unusable, and update the web UI to say "Reconnect the project GitHub Copilot authorization used for unattended AI work" instead of the misleading "Try again later" message.

  • 4a09011: Emit structured RunFailed events for operator assistant provider failures (snapshot, client-creation, client-start, session-creation, streaming) through IOperatorAssistantTurnSink so the real error code and message reach the client instead of being masked by a generic "aborted before reporting a structured terminal failure" fallback.

  • a58335a: Fix Create from GitHub repository browsing so a connected GitHub Repo App account can load accessible repositories again.

  • 3ca0379: Make existing assistant sessions pick up platform model-provider changes on their next turn, including platform-default Copilot bindings configured after the session started.

  • 9ad2129: Fix tool-approval prompts so live session views show durable approval requests, and notification links reopen the correct session before approval.

  • 9f1dec2: Add OAuth-first MCP onboarding to Account settings and the Getting Started guide, with client-specific setup for Claude Desktop, VS Code, GitHub Copilot CLI, and GitHub Copilot desktop, plus an Agentweaver Driver definition available anonymously from every deployment.

  • 18a4ae9: Scroll assistant session transcripts to newly sent messages so operators immediately see their own message appear, and keep assistant replies following when the view is already pinned to the latest activity.

  • c911364: Fix "Repository authorization is currently unavailable. Try again later." appearing after authorizing the GitHub Repo App from Create-from-GitHub, project settings, or account settings. RepoAppUserAuthorizationService was looking up the authenticated GitHub identity (and revoking grants) against the OAuth-authorize host (https://github.com) instead of the REST API host (https://api.github.com), which silently returned a 406 and discarded an otherwise-valid access token. Both call sites now use a new Auth:RepoApp:ApiUrl config key (defaulting to https://api.github.com, mirroring the existing Auth:CopilotApp:ApiUrl pattern), and a failure of this kind now logs a redacted diagnostic event instead of failing silently.

  • 022fe1a: Fix Repo App repository selection after GitHub sign-in by listing installation repositories with a GitHub App installation token instead of the user's OAuth token.

  • 94a454f: Ensure Azure deployments replace the OAuth placeholder with the managed AKS hostname and restart both API and MCP when the canonical public origin changes.

  • 292774c: Make API, UI, and MCP harnesses safe for arbitrary HTTPS hosts with mandatory TLS,
    environment-only credentials, redirect rejection, recursive secret and URL redaction,
    and failure-safe owned-resource cleanup. Align OAuth certificate deployment and
    verification with runtime usability rules and roll API pods when certificate families
    change.

  • aeb37b9: Fix false "too many active assistant conversations" rejections, and the 15-20s of silence before
    every Session reply.

    The per-user concurrency bound counted AssistantRunService's IN-MEMORY _runs dictionary, which
    conflates "resident in this process" with "actively running". RehydrateRunAsync inserts into that
    same dictionary, so merely opening or replying to an existing conversation occupied a slot for the
    next 30 minutes — and with two API replicas and no session affinity, the SAME conversation could
    occupy a slot on BOTH, so the replicas disagreed about the count. Live logs showed five distinct
    operator runs against a limit of three. StartRunAsync now counts the caller's InProgress operator
    runs in the durable run store (IRunStore.GetRunsBySubmittingUserAsync, reusing the query the
    duplicate-start guard already issued), so one conversation is one row however many replicas have it
    resident, a parked or finished conversation frees its slot immediately, and rehydration cannot
    consume a slot at all. In-flight starts, which have no durable row yet, are reserved under the
    existing _startLock so concurrent starts on one replica still cannot slip past the bound. With
    counting correct the bound is raised 3 → 5: the live report was five legitimately-open
    conversations, and an open-but-quiet conversation now holds no pod (below), so an extra one costs
    close to nothing.

    RemoteOperatorAssistantAgent also claimed a warm AgentHost pod and RELEASED it after every single
    turn, so each message paid claim binding, the A2A handshake, MCP connect, history replay, and a
    one-shot /configure (~8s on its own — it runs CopilotAIAgent.SetupAsync and starts a Copilot/BYOK
    client from scratch). The pod is now HELD for the conversation. KubernetesSandboxExecutor reuses an
    existing operator claim instead of deleting and recreating it whenever this replica still holds the
    run's turn token. Because /configure is genuinely one-shot, the current short-lived MCP broker
    token is renewed over the authenticated API-to-pod control plane before every turn and immediately
    before every MCP tool call, without forwarding a browser bearer into the pod. A turn landing on the
    other replica simply falls back to the old cold-start path.

    Held pods are given back by a new, deliberately short Assistant:PodIdleTimeout (default 5 min,
    skipped while a tool-approval is armed), by conversation dormancy at IdleTimeout, and on turn
    failure or cancellation — a compare-and-swap guarantees exactly one release, with
    AgentHostReaperService as the existing backstop.

    Holding the pod across turns also had to be reconciled with mid-conversation provider changes, which
    it would otherwise have silently defeated. A pod resolves BYOK vs GitHub Copilot and builds its model
    client EXACTLY ONCE, at its one-shot /configure; the per-turn refresh rebuilds only the tool set and
    system message. So once a pod was held, repointing the run row at a newly-selected provider changed
    the bookkeeping while the held pod kept serving every turn from the old one. Per-turn re-resolution
    now compares the full provider IDENTITY (provider kind plus binding / configuration id) rather than
    the two-value ModelSource enum — which cannot see a swapped BYOK configuration or a rebound Copilot
    account at all — and releases the held pod whenever it really changed, so the next turn cold-starts
    one configured for the provider now in effect. The cost is exactly one cold start on the turn after
    an administrator changed the provider.

    Releasing a held pod is now fenced. Claims are named deterministically from the run id while
    everything that decides to release one is process-local, so an API replica whose conversation had
    moved to the other replica could delete a claim that replica was actively serving a turn from. Each
    conversation's owner stamps a holder token on the claim it creates and a release proceeds only while
    that stamp still matches, making it a compare-and-swap rather than an unconditional delete. This is
    deliberately not a distributed lease: the cross-replica AgentHostReaperService remains the backstop
    for genuinely orphaned claims.

    Finally, a durable InProgress assistant run is only ever parked by...

Read more

v0.27.1

Choose a tag to compare

@sabbour sabbour released this 03 Sep 01:07
ed2b63c

0.27.1

Patch Changes

  • a979b06: Improve GitHub authorization diagnostics, report the exact build revision from the version API, and clarify how durable Copilot providers and repository-less unattended automation work.

v0.27.0

Choose a tag to compare

@sabbour sabbour released this 02 Sep 17:08

0.27.0

Minor Changes

  • 6a5697f: Guide platform administrators through model-provider setup, and show an optional product tour after Agentweaver unlocks.
  • ba62d75: Add progressive setup readiness for model-provider activation and optional GitHub repository access. GitHub authorization returns to the current task.

Patch Changes

  • 238d384: Improve Skills catalog readability with consistent type roles, a focused content width, and responsive metadata wrapping.
  • 0482dfe: Make workflow graph previews and the visual editor easier to read with adaptive stage layouts, larger definition nodes, and better use of canvas space.
  • 1792003: Clarify the two GitHub connection types in Account settings and restore the direct Repo App connection flow.
  • d216491: Show operators the exact unified callback for the two GitHub Copilot OAuth flows during deployment, and document wildcard checks and safe shared-client migration.
  • 62a3596: Simplify the project dashboard and shared model-metric text. Remove the repetitive Decision guide so status, activity, and agent metrics are easier to scan.
  • 43d5aa6: Fail stale project GitHub Copilot credentials before AgentHost launch with the project reconnection action instead of reporting an AgentHost infrastructure failure or falling back to another provider.

v0.26.1

Choose a tag to compare

@sabbour sabbour released this 02 Sep 08:53
bea5420

0.26.1

Patch Changes

  • b8eee54: Show full cluster resource names in the Resource topology graph so warm-pool, claim, and pod nodes stay distinguishable instead of collapsing to the same truncated label.
  • c547a25: Fix the Sessions nav item rendering underlined/regular weight instead of matching other nav items (missing aw-nav-item class after the disclosure-to-Link conversion), and restore the expanded "New session" button to standard size to match other square icon buttons.
  • 724e649: Make workflow diagrams render larger and better centered in graph view and visual edit mode.
  • b4b7a33: Restore GitHub connection callbacks to the page that started them, and reopen GitHub project flows after a successful Repo App return so repository access is recognized immediately.