Skip to content

Changelog

All notable changes to Wick are documented here.


[Unreleased]

Nothing yet — notes for the next release go here.


v0.17.0 — Connectors & Access Control

Released on 2026-06-13

Added

  • Custom Connectors — build LLM-callable connectors from the admin UI, no Go code or redeploy. Three creation paths from Connectors → + New connector:
    • Paste a cURL — deterministic parser splits the command into per-instance configs (base URL, secrets) and per-call inputs; an AI tab (shown when a structured-output provider is configured) extracts the same shape from fetch() snippets, Postman fragments, or prose. The AI tab gains a provider dropdown; the catalog of structured-output-capable provider instances resolves live. Creating a connector now follows a plan-then-confirm contract, with def_schema returning full draft reference (supported widgets, template syntax, validation, icon rules, categories, examples, and decision points) and def_validate dry-running a draft.
    • Connect an MCP server (streamable HTTP) — one server = one connector. Every tool the server lists becomes an operation automatically; tools added upstream appear after a re-sync. Control the surface with an exclude list instead of an import picker. Auth schemes: none, bearer, custom_header, oauth (standard MCP authorization: discovery, dynamic client registration, PKCE browser login, RFC 8707 resource indicator, per-instance accounts with transparent token refresh, and generic OAuth2 code exchange with TokenURL and ExtraParams support), and sso (forwards the calling wick user as a signed JWT validated against /.well-known/wick-pubkey.pem).
    • Manual builder — Meta → Configs → Operations stepper with Go text/template request recipes.
  • Multi-instance custom connectors — instances behave exactly like built-ins (+ New row, Duplicate, per-row credentials); no row is auto-created until you add one. Opt into "single instance only" per definition. See Custom Connectors.
  • Ownership contract — any approved user can create a custom connector; editing or deleting a definition is admin-or-creator only, and instance creators are marked with an owner: tag. The new custom-connector management connector exposes the same lifecycle as MCP operations (scoped per caller) so an agent can build connectors without the dashboard.
  • Connection status & live catalog — MCP definitions show a Connected/Disconnected chip, re-sync per instance (probes run under that instance's account), refresh their tool catalog lazily on wick_get, and connect in the background at startup behind the boot gate.
  • Connector icons — pick an emoji (emoji-mart picker, fully vendored) or paste an inline SVG / base64 image (32KB cap, rendered safely via <img>).
  • Google Workspace connector — one Google OAuth account now drives Drive, Sheets, Docs, and Slides through a single connector (google_workspace, 20 operations). The 8 Drive ops carry over from the old code-only google_drive connector, joined by 12 new ops: file creation (create_doc, create_sheet from CSV, create_slides), Sheets API v4 (sheets_read_range/append_rows/update_range/clear_range), Docs API v1 (docs_append_text/replace_text), and Slides API v1 (slides_get_content/add_slide/duplicate_slide). OAuth scopes expand to drive, spreadsheets, documents, presentations, userinfo.email; the health check probes the granted scopes and reports per-op availability. See Google Workspace.
  • Session workspace (wick_session_workspace MCP tool + session Config tab) — spin up ephemeral connector instances scoped to one session: a private clone of a base connector (point it at staging, use a different key) that appears in wick_list/wick_get/wick_execute for that session only and is purged when it ends. The saved connector rows are never touched. Actions: list / add / duplicate / configure / test / remove. The agent creates blank instances and can open the fill modal, but the user types the config; secrets are stored under a system-only master key, decrypted only at execution time, and never returned to the agent. A connector is eligible only when its module declares AllowSessionConfig and an admin enables the per-instance toggle (the custom-connector definition carries the same allow_session_config flag). The Session Config tab in the agent slide-over now lists instances, allows adding from a base picker, editing/testing/duplicating/removing, with collapsible cards. See Session workspace.
  • ask_user multi-question wizard — pass questions[] instead of a single question to collect multiple answers in one step-by-step modal. Each question has a key, type (choice / multi / rank / dropdown / text / secret), optional options with per-option description, required, placeholder, and help. Single-select options auto-advance; Enter also advances. Response is {"values": {"key": "answer", ...}}.
  • ask_user from stdio — an askuser.sock Unix socket bridges ask_user calls from stdio MCP processes (e.g. a spawned Codex agent) to the running server's web-UI modal without HTTP auth. The gate allowlist now includes ask_user and wick_session_workspace so they are never blocked at the hook level.
  • Per-channel ask_user_enabled — Slack, Telegram, and REST channels each gain an ask_user_enabled config field (default false). Web UI and interactive MCP clients use the global AskUserMode setting. See AskUser policy.
  • Attention notifications — when an ask_user or approval_request SSE event fires while the session tab is in the background, wick plays a short two-tone chime and (with permission) fires a browser Notification. Audio and notification permission are unlocked on the first user gesture.
  • Access control — App Owner tier & per-user isolation — a new is_owner tier sits above admin: the first registered user is auto-promoted, IsAdmin() is true for both owners and admins, but only the App Owner can see every user's sessions. Non-admin users now see only their own sessions, projects, workflows, and skills in the agents UI; session, send, kill, and trace routes are gated by ownership and return 404 (not 403) when a session belongs to someone else. The same ownership check guards the wick_session_info and wick_set_title MCP tools. The Providers section of the UI is now restricted to admin-only access.
  • Tag-based ownership for projects, workflows & skills — each resource gets an owner:{resourceID} tag at create time, with created_by kept as an audit trail; sharing is done by assigning group tags. New admin pages — /admin/projects, /admin/workflows, and /admin/skills — expose a tag picker to manage ownership and sharing. Skills now persist in their own DB table with created_by stamped on upload. Personal projects are auto-created for each user on their first access and project lists are scoped to the user's owned projects.
  • Per-user Slack channels — each wick user can configure their own Slack bot credentials independently. Every non-owner user gets a separate agent_channels row (user_id = <id>); the App Owner row uses user_id = NULL. Saving a bot token hot-adds a new keyed registry instance immediately — no server restart required. Removing the token removes the instance. The Channels menu is now accessible to all logged-in users (admin gate removed).
  • Realtime session-title sync: agentctl refresh_session op + PublishSessionMeta SSE; stdio set_title relays to the daemon, which reloads the registry and pushes the new title to open tabs live.

Changed

  • Connectors no longer auto-create their first instance at boot (single-instance/Fixed modules excepted) — rows are created explicitly via + New row and deleted rows stay deleted across restarts.
  • Outbound MCP requests now emit a debug log trail (URL, RPC method, payload, response, latency) carrying the originating request_id.
  • Gate / ask_user decoupledGateEnabled now controls only the PreToolUse command-gate hook. Turning the gate off no longer disables ask_user.
  • google_drivegoogle_workspace — the code-only Google Drive connector was replaced by the broader Google Workspace connector under a new key. Existing google_drive instance rows are orphaned on restart and must be re-created under the new key.
  • The custom connector builder and manager UI have been overhauled: A sticky action toolbar (Save/Disable/Delete top-right) is now present on the cURL and MCP edit pages, with auto-reload on save and inline "Saved ✓" feedback. Field rows are now labeled cards (Key/Type/Default/Description, Required/Secret switches, trash delete) that stack on mobile. A hideable Navigator (Jump list + JSON tabs) is now docked sticky on desktop and an off-canvas slide-over on mobile. Responsive fixes have been applied across the manager UI.

Fixed

  • Codex model_instructions_file — the per-session soul.md preset was previously passed via the unknown key instructions_files (silently ignored by Codex), so the model never received the session identity block or wick rules. Fixed to use model_instructions_file. The file now lives in the per-session .codex/ dir so concurrent sessions no longer clobber each other's preset.
  • Connector access-control hardening — toggling a connector operation, flipping its admin-only flag, and deleting a connector are now gated server-side (admin-or-owner, returning 403); writing a config field tagged secret likewise requires admin or the connector's owner. The OAuth ConnectorAccount schema separates ExternalUserID (provider-side) from WickUserID (wick platform), fixing session-ownership stamping for connections such as Slack. The wick_skill_sync MCP tool is restricted to admins.
  • The allow_session_config flag for custom connector definitions now correctly persists on edit.
  • Stale broadcaster keys are deleted when the last subscriber unsubscribes.
  • The buffer map is cleaned on slot release, and preempt goroutines are tracked in the wait group.
  • Background rescan goroutines are deduplicated using singleflight.
  • WICK_STRICT_MCP environment variable has been added to the server configuration.
  • Generic OAuth path: response_type=code is added to ExtraParams, and GetUserIdentity failures are handled correctly. Ignored errors in uploadMultipart for Google Workspace are fixed.
  • Session ownership checks (ownsSession helper) are now used consistently, and the sessionProcesses guard pattern is fixed.
  • OwnerUserID is now correctly set when creating a project via the UI.
  • The Agents link in the navigation is now hidden when the agents tool is not running.
  • SetSkillStore is now correctly wired at server startup.
  • created_by is now stamped in the database on skill upload, alongside the owner tag.
  • addSlide for Google Slides now uses actual API-assigned placeholder IDs for title/body text.
  • Interface maps in the registry are now copied using maps.Copy instead of manual loops.
  • Unused loadChannelRows removed; all callers now use loadChannelRowsForUser.
  • All Slack channel instances are now wired at boot; a break that skipped multi-instance wiring has been removed.
  • The seedOwner migration logic now promotes the oldest admin-role user to App Owner when is_owner is unset, handling pre-migration installs correctly.
  • Channel status, health, and lookup handlers now correctly resolve a user's own channel instance.
  • Admin's integration status is no longer leaked to unconfigured users; HasAnyKeyed guards per-user channel fallback.
  • The Channels menu is now visible to all users, not just admins, aligning with per-user channel configuration.
  • The seedOwner migration logic now promotes only the oldest user with the admin role to App Owner.

v0.16.16 — TTY

Released on 2026-06-12

Fixed

  • Resolved an issue where WebSocket upgrades for the terminal (tty) could fail when reverse proxies stripped the upgrade token from the Connection header. The system now correctly re-injects the upgrade token if Upgrade: websocket is present, ensuring successful terminal connections.

v0.16.15 — Systemd & Phoenix

Released on 2026-06-12

Added

  • Daemon auto-enablement of systemd linger on headless installs: The service install command now automatically enables systemd linger for the current user, ensuring the daemon and its child processes persist after SSH session logout on headless Linux servers. systemdStatus now reports the live linger state and provides the exact command if manual enablement is needed.
  • Active Processes panel scoped to current session: The "Active Processes" slide-over panel now filters processes to the current session only. It also displays "queued" requests (pre-PID) with a dequeue action, providing better visibility for accepted-but-not-yet-running requests.

Improved

  • Phoenix get_span surfaces tool catalog and span metadata: The get_span function now returns four previously unexposed signals that were already on the wire:
    • tools: The catalog of tools the model considered, including each tool's name, description (carrying selection preconditions), and raw parameter schema. This allows comparison with a message's tool_calls to understand why a model picked or ignored a tool.
    • invocation_parameters: Model parameters such as temperature, reasoning_effort, and tool_choice (the redundant tools array is stripped).
    • metadata: Passthrough of the producing application's span metadata, including request_id, room_id, user_id, langgraph_node, and question_history_id.
    • token_count *_details: A breakdown of cache_read and reasoning tokens.

v0.16.14 — Memory, Gate, Wick

Released on 2026-06-12

Fixed

  • Fixed memory leak in stream broadcaster by deleting stale keys when the last subscriber unsubscribes.
  • Cleaned buffer map on slot release and tracked preempt goroutines to prevent resource leaks.
  • Deduplicated background rescan goroutines in provider using singleflight to prevent excessive resource usage.
  • Eliminated data race with PartialText by guarding turnBuf writes with a mutex.
  • Propagated request context to PublishAndReload and ToggleAndReload in workflows to ensure proper cancellation and timeout.
  • Prevented timer leak in terminateProc by replacing time.After with NewTimer and Stop.
  • Resolved agent deadlock by releasing agent mutex before stdin write in send() to prevent conflict with drainPending.

Improved

  • Gate auto-approves wick read-only / info MCP tools: The PreToolUse gate binary now has a built-in always-allow list for wick's non-mutating tools — wick_list, wick_search, wick_get, wick_info, wick_list_providers, wick_skill_list, wick_session_info, and wick_set_title. These no longer trigger the per-tool approval prompt. wick_execute and wick_skill_sync remain gated.
  • Title state in agent system prompt: The "This session" identity block injected into every agent's system prompt now includes the session's current title and title_custom flag. The agent reads these from the prompt at spawn time instead of making a wick_session_info round-trip on every first turn.

v0.16.13 — Daemon & Session Titles

Released on 2026-06-12

Added

  • Daemon Systemd Integration: Daemon lifecycle commands (start, stop, status, restart) now delegate to systemctl --user when a systemd-user unit is installed and enabled (Linux/Termux only). This resolves conflicts between PID-file and systemd management, preventing double spawns and ensuring accurate status reporting. The daemon now self-registers its PID and spawn source (systemd INVOCATION_ID) on boot for an accurate PID file, reporting the origin (systemd / CLI). PID-file based management remains unchanged for Windows and macOS.
  • wick_session_info MCP tool: A read-only tool that returns an active session's session_id, title, title_custom, origin, status, and project_id. This allows agents to determine if a session already has an explicit title before attempting to set one.
  • wick_set_title MCP tool: Sets the session's sidebar label and marks title_custom = true. This prevents the auto-derived first-message label from overwriting a chosen title.
  • session.Meta.TitleCustom flag: A new boolean on session metadata. When true, the setLabelIfEmpty process skips the auto-label step, preserving any title set by a human or by an agent via wick_set_title.
  • Auto-title via system prompt: The immutable agent system prompt now instructs the agent to call wick_session_info at conversation start and set a short descriptive title using wick_set_title when title_custom is false. Titles set by a previous turn or by the user are left untouched.
  • Session ID and Channel in System Prompt: The system prompt now includes a "This session" identity block (session_id + channel) on every agent spawn. This ensures agents always have the necessary session context to utilize tools like wick_session_info and wick_set_title.
  • Documentation: Updated documentation for the new wick_session_info and wick_set_title MCP tools and the auto-title behavior.

v0.16.12 — Boot Gate

Released on 2026-06-12

Added

  • Boot gate — "Booting…" holding page during restore: To prevent an empty sidebar or broken session list and 404 errors during the asynchronous provider-storage boot restore, all HTTP requests (except /health and /boot-status) now receive an HTTP 503 page. This holding page displays a spinner and live phase label, auto-polls GET /boot-status every 1.5 seconds, and reloads automatically once the server reports readiness. The /health endpoint remains exempt, ensuring load balancer and Kubernetes readiness probes continue to succeed throughout the restore window. This robust gating mechanism ensures a consistent user experience during the boot process.
  • GET /boot-status: A new JSON endpoint ({"ready":bool,"message":string}) has been added to report whether the asynchronous boot restore has finished. This endpoint is used by the boot gate page and can also be consumed by external health checks that require a deeper "application ready" signal beyond the basic liveness /health check.
  • Agents registry auto-reload after restore: Upon completion of the boot restore process, the agents registry is now immediately rescanned from disk. This ensures that sessions and projects appear in the sidebar without delay, addressing a previous issue where the sidebar remained empty until the next restart due to the registry being scanned before restore had written data. Manual restores initiated from the Provider Storage UI (Restore Now, Restore Selected) also now trigger an immediate registry reload, preventing stale in-memory registry data.

v0.16.11

Released on 2026-06-11

Fixed

  • Provider storage boot restore drops most rows: The iterAll function used GORM's FindInBatches with a custom ORDER BY (provider_type, instance_name, rel_path). FindInBatches paginates using a primary-key cursor (WHERE id > last_max_id), which is only correct when the results are ordered by id. This custom ordering misaligned the cursor, causing iteration to stop silently after the first batch (a known issue, gorm #5027). This led to most rows being dropped during the restore process; for example, on one production instance, ~729 of 8440 rows were processed, and every wick session file was skipped, resulting in empty session directories after restart. The fix replaces FindInBatches with a plain Rows() cursor iterator, which streams every row in a single query pass. This ensures memory usage remains constant while safely allowing custom ordering by including id as a tie-breaker for stable results.

This summary was automatically generated by Gemini AI


v0.16.10 — Memory Management & Tree Repair

Released on 2026-06-11

Added

  • Introduced WICK_MEMORY_LIMIT environment variable for the server, enabling an opt-in soft memory limit that prompts Go's garbage collector to return memory to the OS on constrained hosts, preventing RSS from being pinned at high-water marks.

Improved

  • Optimized both boot-time and manual tree repair processes (RepairProviderStorageTree and store.repairOrphans) to no longer load Content blobs into memory. This drastically reduces transient memory allocations and overall RAM consumption during tree repair operations.
  • Refactored the boot-time provider storage tree repair, moving it out of Migrate() and into the providersync gate. It now runs in a background goroutine only when the sync job is enabled and provider-storage is in use, optimizing startup and resource utilization.
  • Consolidated the tree repair code paths for boot-time and manual UI operations, ensuring both use the same optimized, blob-free RepairProviderStorageTree implementation.

Removed

  • Dropped several one-shot legacy migrations from the Migrate() function, simplifying the database migration process as these migrations are no longer necessary on current database schemas.

Documentation

  • Added WICK_MEMORY_LIMIT to the docs/reference/env-vars.md.
  • Included changelog entries for the new soft memory limit and the repairOrphans memory optimization.

This summary was automatically generated by Gemini AI


v0.16.9 — Memory Optimization

Released on 2026-06-11

Improved

  • Memory hardening — provider storage: listing, explorer, retention, and purge queries no longer load file content blobs into memory. A new size column is persisted on write and backfilled on migrate, so the file-list endpoint reports sizes without fetching content. Folder-zip downloads fetch blobs individually by ID. Fixes an ~800 MiB memory peak on deployments with large backup corpora.
  • Bounded HTTP reads: the http workflow node and the generic internal HTTP client now cap response buffering at 64 MiB and return an error for larger responses. Previously these were unbounded io.ReadAll calls.
  • Webhook body cap: inbound webhook trigger requests are now rejected with 413 if the body exceeds 10 MiB.
  • Access-log middleware: large or streaming request bodies (multipart/form-data, application/octet-stream, text/event-stream, or Content-Length > 64 KiB) are no longer buffered by the logger — the downstream handler reads them directly.
  • Opt-in pprof (WICK_PPROF=1): set this env var to expose Go pprof endpoints on 127.0.0.1:6060 for heap/CPU profiling. Loopback-only; never exposed on the public listener.
  • Opt-in soft memory limit (WICK_MEMORY_LIMIT): set to a size string (e.g. 1200MiB, 2GiB) to tell the Go GC to return memory to the OS aggressively on constrained hosts. Helps boot-time provider-storage restore not pin RSS at its high-water mark on small VMs. Off by default; independent of GOMEMLIMIT. See Environment Variables ▶ WICK_MEMORY_LIMIT.
  • repairOrphans no longer loads file content: the two FindInBatches passes in the provider-storage tree-repair path now omit the Content column, cutting peak memory during orphan repair for large corpora.

This summary was automatically generated by Gemini AI


v0.16.7 — Boot Restore & Observability

Released on 2026-06-11

Improved

  • Asynchronous Boot Restore: Boot restore now runs in a goroutine, preventing server startup blockage for large source sets. The HTTP layer comes up immediately, and restore progress streams to logs.
  • Enhanced Restore Observability:
    • Every restore-skip path logs its specific reason (e.g., environment kill switch, missing job row, disabled job) for easier diagnosis from logs alone.
    • RestoreAll completion reports detailed metrics including total_files, processed, restored, skipped_match, skipped_diverged, and skipped_uncovered to explain the gap between total and restored files.
  • Faster Force Boot Restore: Force boot restore now skips identical files (based on hash match) instead of rewriting every file, making wide restores significantly faster.

Fixed

  • Manual Restore Overwrite: Manual Restore operations now correctly use RestoreAllForce to overwrite diverged files, ensuring desired changes are applied instead of retaining disk copies.
  • Error Handling: iterAll batch errors are now properly returned instead of being swallowed.
  • Postgres Compatibility: purgeExpired now uses a Postgres-native interval query, resolving an error caused by the SQLite-only datetime() function on Postgres.

This summary was automatically generated by Gemini AI


v0.16.6

Released on 2026-06-11

Fixed

  • Agent node max_turns not cleared on reuse: When a workflow reused an existing session and the agent node had max_turns: 0 (unlimited), the previously-persisted cap from an earlier run was silently kept. The node now always writes the value — including 0 — so switching back to unlimited works correctly.

Added

  • Bitbucket connector — PR review actions: Three new destructive operations for acting on pull requests. These operations are OpDestructive (default off, admin opt-in):
    • approve_pull_request: Approve a PR as the authenticated user (idempotent).
    • request_changes_pull_request: Flag a PR as needing changes (mutually exclusive with approve).
    • merge_pull_request: Merge a PR into its destination branch, with optional merge_strategy (merge_commit, squash, fast_forward), message, and close_source_branch. This operation is irreversible.

This summary was automatically generated by Gemini AI


v0.16.5 — Provider Storage Sync

Released on 2026-06-10

Changed

  • Provider Storage Sync is now opt-in: The job ships disabled by default on fresh installs. Enable it from Tools → Jobs → Provider Storage Sync → Settings → Enabled.

Added

Fixed

  • Bounded boot restore memory: restoreAll now iterates files in batches of 50 instead of loading the full set into memory, preventing OOM on large credential trees. Progress is logged at each percentage point.

This summary was automatically generated by Gemini AI


v0.16.4

Released on 2026-06-10

Improved

  • Provider Sync Memory & Progress: Optimized providersync restore operations for reduced memory usage and enhanced user feedback.
    • Switched from listAll to iterAll with FindInBatches(50) to process content blobs in batches, significantly reducing peak memory consumption.
    • Implemented countAll to accurately track the total number of files for restoration.
    • Added detailed progress logging, displaying restore percentage updates (up to 100 lines) and clearly marking the start and completion of the process.

This summary was automatically generated by Gemini AI


v0.16.3 — AI Agents

Released on 2026-06-10

Features

  • Workflow Environment Management via MCP: Introduced workflow_env_get, workflow_env_set, and workflow_env_delete operations for the workflow connector.
    • Enables AI agents to read, update, and remove workflow environment variables without touching the UI.
    • Secret values retrieved by workflow_env_get are masked as ••••••••.
    • When setting secret fields via workflow_env_set, callers must provide wick_enc_ tokens.

Fixed

  • Provider Storage Sync: The provider-storage-sync job is now disabled by default (AutoEnable: false) on new installations.
    • This prevents the service from automatically activating unless explicitly enabled by the user.
    • Boot restore and watcher startup for provider-storage-sync now correctly check if the job is enabled before initiating, ensuring resources are only utilized when intended.

This summary was automatically generated by Gemini AI


v0.16.2 — Sub-Agent Delegation & Installation

Released on 2026-06-10

Improved

  • Refactored sub-agent delegation logic for simplicity and clarity.
  • Improved sub-agent configuration loading and validation.

Fixed

  • Adjusted Dockerfile and entrypoint script to correctly set the working directory.
  • Corrected agent dependency installation within the sub-agent setup script.
  • Updated requirements.txt to include missing dependencies for core agents.

Changed

  • Updated documentation links.

Removed

  • Unused script files.

This summary was automatically generated by Gemini AI


v0.16.1 — Install Wrappers

Released on 2026-06-10

Added

  • Introduced thin install.sh and install.ps1 wrappers for scaffolded projects, which delegate to Wick's canonical install scripts. This centralizes installation logic and ensures projects automatically benefit from script improvements without re-scaffolding.
  • Enhanced Wick's canonical install scripts to honor APP and REPO environment variables, allowing them to function correctly both standalone and when invoked via the new wrappers.

Fixed

  • Updated the canonical install scripts to use the correct GitHub Pages URL.

This summary was automatically generated by Gemini AI


v0.16.0

Released on 2026-06-10

Added

  • VSCode-style diff editor: The Source Control panel (full mode) now features an inline Monaco diff editor as the primary surface, with a file list on the left and the diff filling the remainder.
  • Auto-select first file: Opening the SCM panel automatically loads the first changed file into the diff editor.
  • Unified diff by default: Diffs now render in unified (inline) mode by default, with a toggle for side-by-side view in the diff header.
  • Hidden unchanged regions: Unchanged lines are collapsed with an "N hidden lines" expand bar, matching VSCode behavior (3-line context).
  • Inline Stage / Unstage / Discard buttons: Diff headers now include per-file Stage, Unstage, and Discard actions directly, removing the need to hover file rows.
  • Auto-show Save button: When editing directly in the diff editor (without needing an "Edit" button), a Save button automatically appears when content changes, applied to both full-mode inline diff and the sidebar DiffModal.
  • Per-session active repository persistence: The selected repository is saved to localStorage keyed by session ID and restored on subsequent opens.
  • Visible whitespace diff: Trailing newline and whitespace differences are now shown in the diff (ignoreTrimWhitespace: false).
  • Wick MCP server pre-approval: The entire Wick MCP server is now pre-approved for spawned agents using --allowedTools mcp__wick, eliminating the need for a static per-tool allowlist.
  • Workflow environment variables and secrets: A new system for managing workflow environment variables and secrets via a dedicated Settings modal. Secrets are encrypted, decrypted at runtime, accessible via {{.Env.KEY}}, and masked in previews and outputs.
  • Workflow webhook trigger: Implemented a webhook trigger with dual endpoints (/webhook/ for published, /webhook-test/ for draft), path-based routing, and a dedicated inspector in the UI.
  • webhook_respond node and RespondMode: Added a webhook_respond node for custom HTTP responses (status, body, headers) from workflows and introduced Trigger.RespondMode (immediately/last_node/respond_node) to control webhook response behavior.
  • Phoenix connector: A new read-only Phoenix connector for LLM span debugging, supporting listing spans by room/app and retrieving full span details.
  • Per-instance OAuth accounts for connectors: OAuth app credentials are now configured per-instance, enabling multiple sub-accounts for a single connector. New access policy flags (MultiAccount, EnableSSO, AllowOthersConfigure, AllowOthersConnectSSO) and an owner tag system are introduced.
  • Admin user creation: Admins can now create new user accounts directly from the Admin panel by entering an email, with a system-generated 5-word passphrase shown once for copy.

Fixed

  • Repository without commits: git show HEAD:<path> on a repository without any commits no longer returns a 400 error; an "invalid object name 'HEAD'" is now treated as an empty original side.
  • 4xx request logging level: HTTP middleware now logs 4xx responses at the warn level instead of error, reducing noise for expected client errors.
  • GORM record not found log noise: GORM logger is set to Silent, preventing record not found queries from printing to stdout.
  • Diff not updating after save: After saving a file, the diff editor now correctly shows the updated content.
  • Diff race condition on file select: The Monaco diff editor is now mounted only after diff data is loaded, preventing empty-content rendering on first file selection.
  • Mobile autofocus: Skipped autofocus on inputs for touch devices (mobile, tablet) to prevent the on-screen keyboard from popping up unexpectedly on page load. On desktop, the "Ask anything…" composer is now preferred over the search box when both are present.
  • Workflow publishing with deleted nodes: Workflows with deleted scaffolded start/end nodes can now publish successfully, requiring only at least one trigger. Dangling graph entry references are now treated as warnings instead of publish-blocking errors.
  • UI theme issues: Various UI theme fixes for dark mode hover states, status/kind chip selection, and toolbar buttons were implemented.
  • Multi-trigger dispatch: Fixed a bug where only the first webhook trigger per workflow was dispatched correctly.
  • Slack connector token visibility: The bot_token and user_token fields in Slack connector configuration are now always visible.

Improved

  • Internal documentation structure: Reorganized internal design documentation into status-based folders (archive, todo, in-progress) and updated all references.
  • Workflow documentation clarity: Cleaned up internal comments and documentation, replacing yaml and file-based references with format-neutral descriptions to reflect DB-primary JSON storage for workflows.
  • Workflow data storage optimization: Removed unused yaml:"..." struct tags and MarshalYAML methods from workflow types, as workflow storage is now DB-primary JSON.
  • Canvas experience: Enhanced the workflow canvas with trigger validation badges, edge hover highlighting, and an "Open inspector" context menu option for nodes and triggers.
  • Connector operations management: The operations section in connector detail pages now includes pagination, search, multi-select, and bulk Enable/Disable actions.
  • MCP connector/account listing: The MCP wick_list command now supports filtering by kind=connector|account with composite IDs for account entries.

This summary was automatically generated by Gemini AI


Per-instance OAuth accounts & MCP multi-identity

Added

  • Per-instance OAuth app credentials: ClientID and ClientSecret moved from a shared server-wide setting to each connector instance's Configs. Every instance now carries its own OAuth app registration, so different instances can use different OAuth apps.
  • ConnectorAccount table: connected OAuth accounts are stored as sub-records of a connector instance, not as duplicate rows. Each account stores DisplayName, AccessToken, and a DisabledOps JSON list of per-account op overrides.
  • Access policy flags on connector instances: four new boolean fields control per-instance sharing:
    • EnableSSO — activates the "Connect Account" OAuth flow on this instance.
    • MultiAccount — when true, each user connect adds a new account entry; when false, reconnect replaces the existing token.
    • AllowOthersConfigure — non-admin users with tag access may edit credentials and settings.
    • AllowOthersConnectSSO — non-admin users with tag access may initiate the OAuth flow.
  • Owner tag: every connector instance records an owner:{rowID} tag so the creating user retains access even when filter tags change.
  • Access Policy section in the connector detail UI — surface for the four flags above.
  • Operations section redesign — paginated op list with search, checkbox multi-select, and bulk enable/disable. Shared OpsSection component is reused across the detail page and per-account op views.
  • Per-account operation disable list — each ConnectorAccount can carry a JSON list of op keys to disable. wick_execute with an account-scoped tool_id rejects those ops before reaching ExecuteFunc.
  • MCP wick_listkind and parent_id fields: every entry now includes kind ("connector" for a standard instance, "account" for a connected OAuth account) and parent_id (the connector row ID when kind="account").
  • MCP wick_get — composite id: accepts a connectorID/accountID composite id returned by wick_list account entries; tool IDs are scoped with an @accountID suffix when a specific account is targeted.
  • MCP wick_execute — account token injection: AccountID is extracted from the composite tool_id; the selected account's AccessToken is injected as user_token / auth_mode=user_token before ExecuteFunc runs. Per-account disabled ops are enforced before execution.
  • Destructive op warning in MCP responses: ops marked OpDestructive now append ⚠ DESTRUCTIVE: Always confirm with the user before executing this operation. to their description in wick_list, wick_search, and wick_get results.
  • Slack connector: BotToken and UserToken are now always visible in the admin form (removed visible_when conditional display). ClientID and ClientSecret are new per-instance fields for OAuth app setup used by the Connect Account button.

Changed

  • Destructive ops default ON: connector.OpDestructive ops now default to Enabled=true on every new row (previously defaulted false). The LLM is responsible for confirming destructive intent with the user; the system-level default-off gate is removed.
  • SystemDisabled is advisory-only: a health-check lock (system_disabled=true) no longer hard-blocks execution. If the admin has explicitly set Enabled=true, the call proceeds; the advisory is recorded in run history. Previously SystemDisabled was an irresistible gate.

Phoenix connector, Webhook trigger & Canvas improvements

Added

  • Phoenix connector (phoenix): built-in read-only connector for Arize Phoenix LLM observability. Three operations — list_spans_by_room (list LLM spans for a conversation session), list_spans_by_app (list root spans by metadata['app_id']), and get_span (full detail: messages, tool calls, token usage, cost). Registered under the Observability tag. See Phoenix connector.
  • Spawned-agent tool pre-approval widened to the whole wick MCP server: agents now spawn with --allowedTools mcp__wick (server-level) instead of a static five-tool list, so wick_manager_* (and wick_info, ask_user, wick_skill_*, wick_encrypt/wick_decrypt) no longer hit the command gate's "always ask" prompt on the gated path. Not a security change — wick still enforces per-op access server-side; see Wick Manager → Command gate & management ops.
  • Workflow env & secrets: per-workflow key-value environment variables, configurable via ⋮ → Settings in the canvas editor. Values are accessible in every node template as {{.Env.KEY}}. Marking a var as Secret encrypts it at rest (wick_cenc_ token in workflows.env_values DB column); the engine decrypts with a per-run cache so plaintext only lives in memory during execution.
  • Secret masking: secret values are automatically masked as •••••••• in template preview (workflow_template_test), execute-step output, SSE events, and stored run state. The mask is applied with the existing single-pass algorithm, with overlapping-secret protection.
  • Themed UI components: <Select> dropdown and toolbar ⋮ more menu are now fully theme-aware with click-outside close. The ⋮ menu exposes the new Settings action alongside existing workflow actions.
  • Webhook trigger — dual endpoints: every webhook trigger now gets two distinct HTTP endpoints. POST /webhook/{wf_id}/{slug} targets the published workflow (production traffic). POST /webhook-test/{wf_id}/{slug} targets the draft workflow for testing without publishing. Both URLs are shown side-by-side in the trigger inspector with copy buttons and a tabbed Test / Live preview.
  • Webhook trigger — slug-based path storage: the trigger's path field now stores only the URL-safe slug (no leading slash, no wf_id prefix). The engine constructs the full request path at runtime, keeping trigger JSON portable across workflow IDs.
  • Webhook trigger — respond_mode: new field controlling when and what the HTTP endpoint returns to the caller. immediately (default) returns 202 Accepted at enqueue and runs async. last_node blocks until the workflow finishes (≤ 30 s) and returns the last node's JSON output with 200. respond_node blocks until a webhook_respond node fires, then returns that node's custom status, body, and headers. Both blocking modes time out with 504 after 30 seconds.
  • webhook_respond node: new node type (type: webhook_respond) that sends a custom HTTP response back to the webhook caller. Fields: respond_status (int, default 200), respond_body (Go template string), respond_headers (map, values are template-rendered). Active only when the firing trigger has respond_mode: respond_node; acts as a no-op pass-through in all other modes so the workflow still validates cleanly. The first node to complete in a run wins; subsequent ones are ignored.
  • Publish-time respond_node validation: publishing a workflow with respond_mode: respond_node on a webhook trigger but no reachable webhook_respond node from the trigger's entry_node now raises a Warning in the Validation panel. The publish still proceeds; at runtime the caller receives 502 Bad Gateway if no respond node runs.
  • Canvas validation badges on trigger cards: trigger cards now show inline warning badges when a trigger has a configuration issue detectable at validation time (e.g. respond_mode: respond_node with no reachable respond node). Validation also runs on canvas load.
  • Canvas edge hover highlight: hovering an edge in the canvas highlights it for easier graph tracing.
  • Canvas context menu — "Open inspector": right-clicking a node now includes an "Open inspector" option alongside delete, opening the inspector panel directly.

Fixed

  • Webhook multi-trigger dispatch: workflows with more than one webhook trigger (different slugs) now correctly dispatch each inbound call to its matching trigger and entry node. Previously, the dispatch loop keyed candidates on workflow ID alone, causing all but one trigger to be silently dropped.
  • Webhook entry-node routing: each webhook trigger routes to its own entry node; prior to this fix every inbound webhook always started at the first entry node regardless of which trigger matched.
  • Publish enabled-flag preservation: publishing a workflow no longer resets the enabled/disabled flag set before the publish action.
  • Theme / dark-mode fixes: executions panel, toolbar, and history tab now render correctly in all themes including dark mode.

v0.15.8

Released on 2026-06-07

Added

  • Workflow fixed-mode template guard: Publishing a workflow now fails with an error (previously a warning) if any field with arg_modes set to fixed contains a Go template ({{...}}), preventing the silent shipment of broken URLs, bodies, or prompts. Draft saving is unaffected.
  • Workflow auto-switch to Expression: The workflow canvas editor automatically switches a fixed field to expression mode when the user types {{ into it.
  • Workflow wick:"mode=fixed|expression" config tag: Connector and channel op authors can use this new tag to lock the Fixed ⇄ Expression toggle for a schema field, greying out the toggle in the editor. The toggle now renders on every field kind in the inspector.
  • Wick Manager top-level MCP tools: The wickmanager connector's operations are now surfaced directly in tools/list as wick_manager_<op> tools (e.g., wick_manager_app_list). This allows LLM clients to discover and call manager operations without the wick_listwick_getwick_execute discovery cycle. These tools work over both stdio and the Streamable HTTP/SSE transport. To avoid double-exposure, wickmanager is excluded from wick_list and wick_search.

Fixed

  • MCP SSE transport dispatch: Tools such as wick_info, ask_user, wick_list_providers, wick_skill_list, and wick_skill_sync now work correctly over the Streamable HTTP/SSE transport. Previously, they were advertised in tools/list but returned "unknown tool" on tools/call. The SSE dispatcher now delegates all non-streaming tools to the canonical handler, ensuring identical behavior across all transports.

This summary was automatically generated by Gemini AI


v0.15.7

Released on 2026-06-07

Fixed

  • Chat Layout:
    • Implemented a FullBleed layout for the session/chat page, resolving issues with incorrect padding, misaligned headers, and the composer sliding under the keyboard.
    • Adjusted the agents shell to use h-[100svh] for improved composer positioning, preventing it from being cut off on first paint before the dynamic viewport stabilizes.
  • Netboot Setup: Ensured netboot.Setup() is properly executed for the released wick-agent binary by integrating its call into postgres.NewGORM. This prevents dead-code elimination and guarantees that DNS/CA fallback is correctly initialized, addressing issues particularly observed on Termux.

This summary was automatically generated by Gemini AI


v0.15.6

Released on 2026-06-07

Added

  • Source Control panel now renders as a full-screen overlay on mobile and retains pin/resize behavior on desktop.
  • Native DNS and CA fallback implemented for Android/Termux, resolving network and SSL certificate issues for the pure-Go binary.

Fixed

  • Termux/Android DNS and CA fallback now actually runs in the released wick-agent binary. The previous fix (#589) wired netboot.Setup() only into the in-repo entry points; Go's internal-package rule prevented the separate wick-agent wrapper module from importing it, so the fallback was dead-code-eliminated from the shipped binary. Setup is now called inside postgres.NewGORM() — a chokepoint every entry point reaches before the first DNS lookup — and is guarded by sync.Once so it runs exactly once.
  • Empty Slack pings (bare @bot mentions) are now normalized, ensuring the agent greets the user instead of stalling.
  • System-turn pills (e.g., [Slack thread context]) are now responsive on mobile, wrapping text and fitting within container width to prevent overflow.

This summary was automatically generated by Gemini AI


v0.15.5 — AI Agents

Released on 2026-06-07

Added

  • Wire agent-node max_turns to claude --max-turns for limiting agent conversation turns.
  • Per-app PWA name and session cookie support to prevent collisions when co-hosting instances on different ports.
  • One-click re-run functionality for past workflow runs, using the original trigger event.
  • Source Control (git) panel for agent sessions, offering status, diff, stage/unstage, commit, discard, branch management, and history viewing.

Fixed

  • Pre-approve Wick MCP meta tools for headless agent spawns and surface agent error subtypes in result(is_error) events.
  • Agents can now read their own skill bundle files located under ~/.claude/skills.
  • Improved agent-node failure diagnosis by logging subprocess exit code and stderr tail on abnormal exit.
  • Self-heal stale agent --resume sessions by clearing the cli_session_id if the conversation is not found.
  • Ensured agent session's current working directory (CWD) remains stable after a conversation exists to prevent resume failures.
  • Resolved toolbar dropdowns clipping on mobile and desktop in workflows.
  • Admin navigation tabs now wrap on mobile viewports instead of overflowing.
  • Admin data tables now stack into responsive cards on mobile viewports, including avatar dropdown visibility.
  • Enabled Tailwind's hoverOnlyWhenSupported to apply hover styles only on hover-capable devices, preventing stuck hover states on touch screens.
  • Prevented mobile sidebar burger from overlapping page content in agents and tidied workflows list display on mobile.
  • Made the workflow Run tab usable on mobile by switching to a single-pane view (runs list OR run detail).
  • Corrected transparent surfaces in light theme and ensured bottom tabs panel is visible in the workflow editor.
  • Stopped auto-adding ALLOWED_ORIGINS to ~/.bashrc during installation to prevent unintentional host allowlist widening.

This summary was automatically generated by Gemini AI


Native DNS + CA fallback for Android/Termux

Added

  • The wick binary now configures DNS and TLS automatically on Termux/Android — no proot or manual SSL_CERT_FILE required. When /etc/resolv.conf has no usable nameserver, a pure-Go fallback resolver is installed using $PREFIX/etc/resolv.conf, Android system properties (net.dns1/net.dns2), or public defaults (1.1.1.1, 8.8.8.8) — in that order. A new WICK_DNS_SERVERS env var (comma/space-separated) overrides all of these. TLS: when $PREFIX is set and no system cert store exists, SSL_CERT_FILE is pointed at $PREFIX/etc/tls/cert.pem. Both are no-ops on normal Linux/macOS hosts.

Slack empty-ping fix & session-context pill responsiveness

Fixed

  • Slack connector: a bare @bot mention with no message text no longer leaves the agent stalled. The empty turn is normalized to a short greeting instruction so the agent responds naturally.
  • Session-context pill (the injected system-turn badge in the session view) now wraps long text and is width-capped, preventing overflow on mobile viewports.

Source Control panel for agent sessions

Added

  • Source Control panel on the session detail page (/tools/agents/sessions/<id>): a docked, pinnable VSCode-style SCM sidebar. Features: multi-repo discovery of all git repos inside the session cwd; tree or list view for staged / unstaged changes (toggle persisted in localStorage); per-file stage (+), unstage (−), and discard (↺) actions (discard is destructive — confirms before running git restore / git clean); one-line commit input; branch dropdown with checkout and create+checkout; Pull / Push buttons with ahead/behind count; Monaco diff editor modal (git-correct diffs for staged, unstaged, and untracked files); commit History tab with per-commit file list and diffs; edit + save from the diff modal. Pin state and panel width (240–640 px, default 260 px) persist in localStorage. Live updates via a server-side fs watcher that pushes git_status SSE events — the Changes section and th e Source rail tab badge refresh with zero polling. Backend: new Go package internal/agents/scm/; endpoints under /tools/agents/api/sessions/{id}/git/*. Requires git on PATH.

Workflow run re-run

Added

  • One-click re-run button in the workflow run detail panel. Re-fires the current draft with the original run's trigger payload (same input, fresh timestamp). Endpoint: POST /api/workflows/runs/{id}/{runID}/rerun. The UI jumps to the newly created run immediately after firing.

Admin & Workflow Mobile Responsiveness

Fixed

  • Admin nav tabs wrap to a second row on narrow screens instead of overflowing.
  • Admin data tables (connector instances, users, tools, jobs) and the connector-detail operations table render as stacked cards below 768 px via new .resp-table / .resp-table-wrap CSS utilities.
  • Hover styles are now only emitted for devices that support hover (hoverOnlyWhenSupported), preventing buttons from staying stuck in :hover state after a tap on touch screens.
  • Agents content area and the workflows SPA header receive top padding on mobile so the fixed sidebar burger no longer overlaps page titles.
  • Workflows list search input is now fluid and the count label no longer wraps; card metadata is hidden on very small screens to avoid overflow.
  • Workflow Run tab renders a single-pane list-or-detail view on mobile with a Back button; the run-detail Nodes/Events grid collapses to a single column below md.

v0.15.4 — Mobile & Workflow

Released on 2026-06-06

Added

  • Enhanced Canvas interaction for touch devices: enabled one-finger touch pan, two-finger pinch-zoom, and node dragging via touch-action:none. Tap-to-add functionality from the Palette with nodes dropping at viewport center. Connection ports are now visible on coarse/no-hover pointers.
  • Optimized Node/Trigger detail modals for mobile, collapsing to a single pane with an Input/Editor/Output switcher and near-fullscreen display.
  • Restored drawer behavior for the Agents sidebar on short/landscape-phone viewports.
  • Implemented progressive disclosure for the Toolbar on mobile, folding Save/Discard/Unpublish into a "More" menu and hiding secondary chips/History.
  • Synchronized PWA theme-color with the active theme (all 12 themes) via runtime CSS variable sync.

Fixed

  • Resolved 403 errors for internal agent MCP connections by exempting /mcp requests from loopback hosts (127.0.0.1, ::1, localhost) in the hostAllowlistHandler.
  • Corrected workflow version history display and functionality:
    • Added JSON tags to entity.WorkflowVersion for correct field serialization (id, workflow_id, kind, body, message, created_by, created_at).
    • Enabled per-row deletion and "Clear all" functionality in the History tab, with auto-refresh after autosaves.
    • Integrated a reusable JSON diff viewer for comparing workflow versions, featuring changed-line highlighting, an All/Diff-only toggle, and scroll synchronization.
    • Prevented redundant workflow versions by having SaveDraft skip new snapshots when the body is identical to the last draft.
    • Introduced new API endpoints: DELETE /api/workflows/versions/{id}/{versionID} and DELETE /api/workflows/versions/{id}.
    • Adjusted autosave debounce from 800ms to 2000ms.

Improved

  • Replaced the free-text "Workspace override" input on the session_init node inspector with a dropdown populated from existing projects, preventing runtime errors from invalid project IDs.

This summary was automatically generated by Gemini AI


Agent fixes & workflow version history

Added

  • Delete a single history snapshot via the trash button in the History list.
  • Clear all button removes every snapshot for the current workflow (with confirmation).
  • History list auto-refreshes after each autosave.
  • New REST endpoints: DELETE /api/workflows/versions/{id}/{versionID} (single snapshot) and DELETE /api/workflows/versions/{id} (all snapshots).
  • Version compare now renders a real colored diff with an "All / Diff only" toggle; the same JsonDiff component is reused by the JSON preview tab.

Fixed

  • Agent-node max_turns is now wired to Claude's --max-turns flag. Previously the field was stored but never forwarded to the subprocess, making it a silent no-op. 0 continues to mean unlimited (provider default).
  • Spawned Claude agents no longer stall on an interactive permission prompt for wick's own MCP tools. All five meta-tools (wick_list, wick_search, wick_get, wick_execute, wick_list_providers) are pre-approved via --allowedTools at spawn time.
  • Spawned Claude agents can now read skill files in ~/.claude/skills/ (and the matching ~/.codex/skills/, ~/.gemini/skills/, ~/.agents/skills/ paths). Claude spawns with --add-dir ~/.claude/skills when the directory exists; the system-prompt path table carves out skills/** as read-allowed while the rest of ~/.claude/** stays denied.
  • Persistent (workflow_global) sessions now self-heal a stale --resume ID. When Claude exits with "No conversation found" the pool clears the stored CLI session ID so the next spawn starts fresh instead of retrying a dead ID.
  • Project backfill is skipped once a session already has a CLI conversation, preventing a cwd change from breaking --resume.
  • Agent subprocess failures are now diagnosable: exit code and a stderr tail are logged on abnormal exit, and an error_during_execution result subtype is no longer surfaced as a blank "agent error: " message.
  • Workflow version history (History tab) now correctly receives id, kind, message, created_at, and body fields; a missing JSON serialization on the entity caused the tab to display empty rows.

Changed

  • Autosave debounce raised from 800 ms to 2 s.
  • Identical-body autosaves no longer create a new draft snapshot (dedup).

Improved

  • Workflow editor: session_init node "Workspace override" field is now a dropdown populated from existing projects instead of a free-text input, preventing the ensure session: project not found runtime error caused by typing a non-existent project ID.

v0.15.3

Released on 2026-06-06

Added

  • Automated crediting of contributors with @mentions in GitHub release bodies.
  • Enhanced release preparation to paginate commit lists and extract GitHub @login handles for contributors.
  • Updated release creation to include a "Contributors" section in the release body.

Fixed

  • Resolved HTTP 500 errors for the GET /mcp SSE handler by correctly probing and using http.Flusher support via the middleware Unwrap chain with http.NewResponseController.
  • Corrected the tools/call SSE path, which was silently falling back to JSON due to the same http.Flusher detection issue.
  • Added a regression test to ensure GET /mcp properly opens SSE streams through Unwrap-only writers.

Improved

  • Documentation for workflow/agent loopback MCP access and connection troubleshooting.

This summary was automatically generated by Gemini AI


v0.15.2 — AI Agents

Released on 2026-06-06

Added

  • Implemented a doc-sync subagent with a PreToolUse(Bash) hook to keep docs/ synced with code changes before pull requests.
  • Introduced a per-provider SendMode configuration (default, append, queue, spawn) for agent instances.
  • Added a cross-session Active Processes panel (accessible from session view and providers page) for real-time visibility into provider, PID, queued count, and agent lifecycle.
  • Integrated internal/processctl for canonical PID liveness checks across Unix and Windows.

Fixed

  • Resolved an issue where spawned Claude agents could not fully connect due to incomplete MCP Streamable HTTP transport, by implementing GET and DELETE methods for /mcp and setting an Mcp-Session-Id header during initialization.
  • Addressed a double-spawn bug in Codex agents by ensuring the agent slot follows the agent, not the process, and is not released prematurely on turn-end or internal respawn kills.
  • Corrected Stop() behavior for respawn-mode agents between turns to ensure proper slot release.
  • Updated ReconcileDead to correctly skip respawn-mode agents when they are idle between turns.
  • Wired Codex stdin to the null device to prevent hangs on Windows.
  • Resolved a data race in capacity_test by injecting provider capacity directly instead of relying on asynchronous provider.Save operations.

Improved

  • Relaxed Claude spawn behavior to drop --strict-mcp-config by default, merging the Wick server with existing MCP servers, while offering WICK_STRICT_MCP for isolation.
  • Updated the contributing guide to include details about the doc-sync workflow.
  • Synchronized public documentation with v0.15.1 features, including transform (jq engine), slack (channel-node workflow actions), workflow (import/publish), workflow/state (run detail/delete), branch/classify, and the bitbucket connector.
  • Documented WICK_STRICT_MCP and WICK_DISABLE_SHARED_MCP environment variables.
  • Enhanced agent message handling by replacing the single-slot pendingMsg with a pendingQueue to process messages sent mid-turn in order.
  • Implemented per-provider and global concurrency caps for agent pools, with 0 indicating unlimited capacity.
  • Improved rendering of multi-line configuration descriptions in the management view by interpreting \n as real line breaks.

This summary was automatically generated by Gemini AI


v0.15.1 — Workflow Enhancements

Released on 2026-06-06

Added

  • Import workflows from exported JSON files directly within the UI.
  • Agent nodes now connect to the live MCP HTTP server over loopback, eliminating per-run cold-start latency and duplicate DB connections.
  • Enhanced workflow execution management in the UI, including the ability to delete runs, view richer event and node details, and preview full run JSON.
  • Bitbucket create_pull_request_comment operation now supports inline comments by specifying inline_path and inline_to/inline_from parameters.
  • Workflow events API now supports events_limit for tailing the last N events, returns total and truncated counts, and evicts the index cache upon workflow deletion.
  • Transform nodes now include a jq engine for advanced JSON processing using gojq.
  • Slack workflow action nodes are fully wired to the live Slack API, supporting all 12 action operations (e.g., send message, reply thread, open modal).
  • The workflow canvas now allows setting branch and classify node edge labels, enabling correct routing configuration from the UI.
  • The in-app lifecycle chime now correctly primes the AudioContext on the first user gesture, ensuring sound plays on macOS Chrome.

Fixed

  • Improved robustness for skill .zip imports, correctly handling various archiving layouts from different operating systems and tools, and filtering junk entries.
  • Publishing workflows or MCP/connectors now triggers an immediate hot-reload of the router, ensuring live runs use the freshly published definitions.
  • Agent node skill validation no longer incorrectly rejects skills that are actually available.
  • Agent nodes now incorporate timeout_sec and require_status contracts, preventing silent successes when agents stall or fail to produce a final status.
  • The workflow enable/disable toggle now takes effect immediately without creating an unintended draft.
  • Encryption masking now uses a single-pass algorithm, fixes an overlapping-secret leak, and improves performance.
  • The in-app lifecycle card chime no longer remains silent on macOS Chrome due to WebAudio autoplay policy by calling AudioContext.resume() from a user gesture.
  • The transform node's "jsonpath" engine now explicitly errors when a query is invalid or not applied, instead of silently returning the original input.

This summary was automatically generated by Gemini AI


v0.15.0 — PWA Notifications

Released on 2026-06-05

Added

  • Implemented PWA push notifications for agent lifecycle events.
  • Introduced agent auto-start functionality after installation.
  • Split conversation trace into per-turn index and lazy-loaded event files.
  • Added TraceEventInlineKB and TraceEventMaxKB agent configurations to control trace event storage.
  • Created new API endpoints (GET /sessions/:id/turns/:turn_id and /events/:event_id) for lazy fetching of conversation traces.
  • Integrated UI lazy-loading of conversation traces when "show trace" is clicked.
  • Added an Interrupted field to ConversationTurn to distinguish kill-truncated turns from text-cap truncated turns.
  • Included a Copy button for fenced code blocks in the markdown renderer.
  • Implemented per-session subscription for agent lifecycle notifications, allowing users to opt-in for specific sessions.
  • Added a bell affordance on queue rows to subscribe to session notifications.
  • Introduced a pre-subscribe bell on the new-session composer for immediate subscription upon session creation.

Fixed

  • Resolved token-too-long errors in ReadJSONL for large conversation files by replacing bufio.Scanner with json.Decoder.
  • Updated tests to reflect the trace split storage refactor.
  • Ensured proot is always installed on Termux, not only when codex is present, for broader compatibility.
  • Corrected a race condition where lifecycle push notifications fired before the assistant turn was appended to conversation.jsonl.
  • Eliminated duplicate notifications by immediately closing OS notifications when the Wick application is open and displaying an in-app card.

Improved

  • Clarified notification connector copy, account state messages, and subscription removal UI.
  • Synchronized the workflow registry via an observer hook to ensure all connectors are registered regardless of order.
  • Separated server_mcp.go to distinguish lifecycle management for stdio and HTTP server paths.
  • Changed notification operations to no longer be marked as destructive.
  • Enhanced push notification banner UX: now hidden when subscribed, uses a soft CTA card for initial prompts, shows a persistent warning for denied permissions, and uses floating toasts for transient feedback.
  • Refined notification bell icon and adjusted layout to prevent page content pushing.
  • Optimized placement and behavior of the notification bell, now anchored to the chat composer's top-right corner for better context.
  • Modified lifecycle pushes to fire only on "idle" state transitions, reducing notification noise.
  • Enriched push notification bodies with a preview of the agent's actual response.
  • Introduced in-app rich cards to display push notifications when Wick is open and focused.
  • Added an audible chime for in-app notification cards.
  • Updated the notification bell's 'setup' state to directly prompt for browser permission inline, simplifying the user flow.
  • Removed the MaxAssistantTurnBytes cap as text and events are now stored separately.

This summary was automatically generated by Gemini AI


v0.14.25

Released on 2026-06-04

Added

  • Slack connector support for the upload_file operation using the Slack v2 three-step upload flow.

Improved

  • Optimized providersync performance by eliminating N+1 queries in folder pruning using a single subquery.
  • Reduced peak memory usage in providersync by batch-fetching orphan repairs in chunks of 500.
  • Batched subtree deletions in providersync to fetch children per BFS level instead of querying per individual node.
  • Added a bounded glob regex cache with a maximum size of 512 and eviction to prevent unbounded memory growth.

Fixed

  • Resolved cross-platform matching issues in globMatch where Windows-style backslash patterns failed to match on Linux and macOS environments.
  • Fixed a pool process termination bug where Kill failed on stale agent names by falling back to session prefix scanning.
  • Fixed a 422 'no agent' error in channel sessions on sendMessage by implementing an OnAgentAdded callback to refresh the in-memory registry.

This summary was automatically generated by Gemini AI


v0.14.24

Released on 2026-06-04

Fixed

  • Resolved a 404 routing error on the /projects/new endpoint by consolidating it into the /projects/{id} handler.
  • Corrected SPA integration tests to pass proper context configuration.
  • Fixed the launch configuration settings.

Improved

  • Replaced the plain-text fallback 404 error in tool handlers with the app's styled 404 page.

This summary was automatically generated by Gemini AI


v0.14.23 — Slack Integrations

Released on 2026-06-04

Added

  • Slack Socket Mode connection lifecycle tracking (connecting, connected, error, disconnected) and self-healing reconnection capabilities.
  • Integration status panel for Slack channels displaying transport mode, subscription state, bot/workspace identity, and webhook URLs.
  • Connection health probe to verify Slack credentials (signing secret and public URL) and report subscription states.
  • New HTTP API endpoint (/tools/agents/channels/{slug}/status) to dynamically fetch channel integration status.

Improved

  • Refactored the Slack connector cache to securely share authenticated bot user IDs with the connector, ensuring consistent identity presentation in messages.

Fixed

  • Preserved scoped sidebar navigation when transitioning to the session detail page by utilizing the session's project ID.
  • Fixed clipping of the picker dropdown inside the Manager UI card container by removing restrictive overflow styles.

This summary was automatically generated by Gemini AI


v0.14.22

Released on 2026-06-03

Fixed

  • Guarded against OS PID reuse causing false ErrAlreadyRunning errors by validating that the running process executable matches the expected daemon binary.

Improved

  • Enhanced the wick status command to display HTTP status (ok/unreachable), surfacing instances where the daemon process is active but the HTTP server failed to bind the port.

This summary was automatically generated by Gemini AI


v0.14.21 — Agent Projects

Released on 2026-06-03

Added

  • Introduced Projects to replace the Workspace concept, featuring automatic boot-time migration, customizable folders, defaults, icons, names, and pinned sessions.
  • Added a Claude-style project landing page, a sidebar Projects navigation section with pinning and drag-to-move capabilities, and a dedicated project settings page.
  • Added support for per-user pinned projects that auto-scope the agents landing page.
  • Added robust queue management capabilities, including search filters, select-all checkboxes, and a bulk "Kill selected" action in the queue panel.
  • Added origin tracking (e.g., REST, Telegram) for sessions and spawns, displaying the session ID and channel source in the Recent Spawns table.

Improved

  • Bounded spawn logs to a maximum of 50 files, implementing automatic pruning on boot, on provider page loads, and on each new spawn.
  • Enhanced the queue dequeue mechanism to clear all pending input and remove every queued entry for a session across all agents.
  • Polished the Recent Spawns UI to remember its expanded/collapsed state via localStorage and format session IDs into a shorter, cleaner representation.
  • Moved hidden-field filtering from templates to callers, making hidden channel configuration fields visible on channel config pages.

Fixed

  • Fixed queue cancellation failures caused by mismatches between the UI's agent name and the queued entry.
  • Fixed hidden variable rendering issues on the admin variables page.

This summary was automatically generated by Gemini AI


v0.14.20 — Workflow Editor V2

Released on 2026-06-03

Added

  • Svelte 5-based Workflow Editor (V2) mounted as a SPA at /workflows-v2/edit/{id}, featuring an interactive canvas with SVG bezier edges, snap-to-align, marquee multi-select, and multi-drag capabilities.
  • Database-backed workflow storage and backend APIs for managing drafts, versions, testing, execution, and validation.
  • Schema-driven inspector forms for triggers, channels, and connectors, dynamically rendered from backend configuration schemas.
  • Comprehensive testing framework featuring an inline assertion builder, test history tracking, and a JSON event test stager.
  • Backend-owned palette structure via the /api/workflows/palette endpoint, enabling dynamic registration of executors, channels, and connectors without frontend modifications.
  • Keyboard shortcuts for canvas operations, including saving (Ctrl/Cmd+S), canceling actions (Esc), and deleting nodes or triggers (Delete/Backspace).
  • Dedicated LiveDiskFS development loop allowing local frontend changes to reflect instantly without binary recompilation when WICK_DEV_REPO_ROOT is enabled.

Improved

  • Refactored chat panels to remove assistant avatars, allowing message bubbles to occupy full width on mobile devices.
  • Enhanced chat bubble headers to display the specific AI provider alongside the agent name (e.g., {agent}.{providerName}).
  • Prevented the chat header from scrolling off-screen by locking viewport overflow on the Agents shell during session switches and reloads.
  • Implemented auto-incrementing default node labels (e.g., http_1, http_2) to prevent immediate canvas validation conflicts upon node creation.
  • Integrated a lazy-loaded Ace Code Editor for Go and Python script nodes, syncing with system light/dark themes and retaining scroll/cursor positions.
  • Optimized CI pipelines by keying the templ cache on its pinned version in go.mod instead of go.sum, preventing redundant reinstalls.
  • Generalized monorepo plumbing and release pipelines to support automated bundling of multiple frontend SPA packages.

Fixed

  • Resolved installer write failures (ETXTBSY - text file busy) on Linux and Termux by stopping any active agent binary prior to executing raw curl writes.
  • Fixed a Windows binary resolution bug in safeexec by properly traversing %PATHEXT% for bare executable names.
  • Fixed a canvas persistence bug where node drag positions were discarded during JSON/YAML serialization roundtrips.
  • Fixed canvas deletion logic to ensure triggers are properly cleaned up alongside nodes when multi-selecting and deleting elements.

This summary was automatically generated by Gemini AI


Workflows: DB-primary JSON

Added

  • Version history panel with side-by-side compare. Pick two versions, the editor shows both bodies for diff.
  • MCP ops: workflow_lock (canvas freeze), workflow_guard (standalone safety review), workflow_versions + workflow_version_detail + workflow_restore_version, workflow_diff_versions, workflow_exec_node (single-node execute).
  • Test fixture ops gained name-only addressing — workflow_save_test_case / workflow_list_test_cases / workflow_delete_test_case no longer take file paths.

Changed

  • Workflow body now lives in the database as JSON. Three tables: workflows (current state), workflow_versions (append-only history), workflow_test_cases (named test fixtures). YAML codec dropped; parse.Parse / parse.Marshal are JSON-only.
  • Run state, run events, and env values stay on disk (runs/<id>/state.json, events.jsonl, env.json) — same place, JSON content.
  • Workflow editor is the Svelte SPA at /tools/agents/workflows/edit/<id>. The legacy templ+Drawflow editor is removed.

Removed

  • MCP ops: workflow_read_file, workflow_write_file, workflow_list_files, workflow_delete_file. Workflow body is not file-addressable anymore — use workflow_get and the dedicated edit ops (workflow_add_node, workflow_set_triggers, etc).
  • prompt_file: nodes/<file>.md on agent and classify nodes. Use the inline prompt field; templates resolve against .Event, .Node, .Trigger as before.

v0.14.19 — Mobile UX & PWA

Released on 2026-06-01

Added

  • Service worker and PNG/maskable icons to enable browser PWA installation prompts.
  • Custom vector wrench icon to replace the standard emoji for consistent rendering across platforms.
  • A new bool/boolean configuration widget that renders as a toggle switch.
  • Split log files per component (app, server, worker, mcp) for the headless daemon.

Improved

  • Mobile chat experience by preventing auto-refocus after sending and allowing Enter to insert a newline on touch devices.
  • Mobile layout behavior using 100dvh and interactive-widget resizing to prevent the keyboard from pushing the header or composer off-screen.
  • Chat bubble width for assistant messages on mobile screens to reduce cramping.
  • App orientation flexibility by removing the forced "any" orientation lock in the manifest.
  • Settings UI by migrating config options to the new toggle widget, applying conditional visibility to startup_script, and hiding internal configuration rows.

Fixed

  • Prevented the internal admin_password_changed flag from being accidentally toggled in the admin panel, which previously caused the default password to re-seed on boot.

This summary was automatically generated by Gemini AI


v0.14.18 — Termux & Attachments

Released on 2026-05-31

Added

  • File attachment support in the agent chat composer with features for drag-and-drop, clipboard pasting, upload limits (25 MiB/file), and an iframe-sandboxed preview modal.
  • New --host and --localhost CLI flags (and WICK_HOST environment variable) to restrict the server's bind address.
  • Support for sequential boot-time shell scripts via new startup_script and startup_script_enabled admin variables to facilitate vendor tunnel (e.g., ngrok) configuration.

Fixed

  • App-level ALLOWED_ORIGINS environment overrides failing to render in the kvlist configuration UI due to a JSON unmarshaling mismatch.
  • Codex CLI handshake failures on Termux/Android by auto-installing proot and wrapping spawned processes with necessary host-file bind mounts.

Improved

  • Revamped documentation structure, landing page, and navigation to prioritize Wick Agent use cases and partition installation guides into platform-specific pages.

This summary was automatically generated by Gemini AI


v0.14.17

Released on 2026-05-30

Fixed

  • Resolved a crash on Termux (Android kernels < 5.8) where the gotty subprocess would fail with a SIGSYS error during LookPath execution by passing the absolute shell path instead of a bare name.

This summary was automatically generated by Gemini AI


v0.14.16 — Termux Compatibility

Released on 2026-05-30

Added

  • Introduced safeexec.Command and safeexec.CommandContext wrappers to safely resolve binary paths without triggering faccessat2.
  • Added an AST-walking unit test (TestNoDirectOSExec) to prevent future direct usage of os/exec functions across the codebase.

Fixed

  • Resolved a critical process crash (SIGSYS) on Termux/Android systems running kernels < 5.8 by routing all command executions through safeexec.
  • Fixed a release asset naming mismatch for the gate sidecar (wick-agent-gate), resolving 404 download errors during installation.
  • Corrected path resolution in safeexec.LookPath on Windows by properly recognizing backslash path separators.

This summary was automatically generated by Gemini AI


v0.14.15 — Agent Routing

Released on 2026-05-30

Improved

  • Tightened routing rules between Wick and other Model Context Protocol (MCP) connectors by moving them to the immutable configuration section.
  • Implemented a read/write split fallback mechanism for Wick connector failures, requiring user confirmation for write operations to prevent unintended privilege escalation.
  • Added specific error-handling paths for Wick routing, including retrying on server errors (5xx/timeouts) and halting on authentication failures (401/403) or gate denials.
  • Simplified the Wick connector catalog header to act purely as a cold-start discovery hint.

This summary was automatically generated by Gemini AI


v0.14.14 — Agent Connectors

Released on 2026-05-30

Added

  • Injection of a ready-only connector catalog into the agent system prompt, providing models with available connector keys and descriptions to optimize tool selection.
  • Initial credential banner display and log tracing hints when running the daemon start or restart commands in the background.

Improved

  • CLI installer experience by showing a curl progress bar during binary downloads and enforcing a 15-second timeout on GitHub API resolution.

This summary was automatically generated by Gemini AI


v0.14.13 — Idempotent Installer

Released on 2026-05-30

Added

  • Added a version subcommand and -v / --version flags to wick-agent and wick-agent-gate to facilitate version tracking and automated upgrades.
  • Added documentation covering CLI version commands for both the main agent and gate sidecar binaries.

Improved

  • Enhanced the installer (install.sh and install.ps1) to skip downloads and execution when the already-installed binary matches the latest resolved version tag.
  • Replaced silent curl downloads with a visible progress bar and added a 15-second timeout on GitHub API calls to prevent indefinite hangs on slow connections.
  • Improved the Termux LAN installer to detect existing managed ALLOWED_ORIGINS in ~/.bashrc, prompting users to keep, edit, or clear rather than force-reprompting on every run.

Fixed

  • Fixed version probing in the installer to run with redirected stdin, preventing syntax errors caused by child processes consuming script lines from curl | sh.
  • Fixed version probe sequencing to prevent gotty from attempting to bind to port 8080 during version checks.
  • Resolved an issue where gate binary verification failed and polluted the installer status table with hook-error JSON.

This summary was automatically generated by Gemini AI


v0.14.12 — Mobile & Headless Support

Released on 2026-05-30

Added

  • Daemon mode and background service management (start, stop, status, restart, and service install/uninstall) for headless hosts, supporting systemd (Linux), Termux (Android), and Windows.
  • Progressive Web App (PWA) support with custom icons, theme-color configuration, Apple mobile web app tags, and standalone display mode.
  • Dynamic PWA manifest handler that reflects custom configured application names and descriptions in browser-installed instances.
  • Environment detection for headless hosts to prevent CLI execution from stalling when a graphical system tray is unavailable.

Fixed

  • Resolved SIGSYS system call crashes in Termux on older Linux/Android kernels (< 5.8) by routing executable lookups through a custom safe-execution layer instead of standard exec.LookPath.
  • Fixed a 30-second stall during installation on virtual machines with unresolved hostnames by removing hardcoded sudo prefixes from the installer script.
  • Fixed chat composer clipping on mobile browsers by locking the viewport styling to small viewport height (100svh).

Improved

  • Enhanced the installation script to probe existing component versions and skip redundant downloads when matching release versions are already installed.
  • Redesigned the agent interface for mobile devices, introducing a collapsible navigation drawer, a two-tier collapsible "More" navigation group, and notch-safe top padding.
  • Unified branding across the desktop system tray, Windows executable icon, and PWA assets using a consistent wrench logo.

This summary was automatically generated by Gemini AI


v0.14.11 — Network & Configs

Released on 2026-05-29

Added

  • Support for an ALLOWED_ORIGINS host allowlist configuration and environment variable to allow secure remote and LAN access alongside the canonical APP_URL.
  • "Detect LAN URLs" utility in the Admin UI to automatically discover reachable RFC1918 IPv4 addresses and add them with one click.
  • Dedicated CLI commands (config list/get/set and config allowed-origins ...) for managing application configuration and allowed origins from the terminal.
  • Interactive LAN IP whitelisting and automated gotty web terminal installation in the setup script (install.sh).
  • Automated bot attribution footer ("Sent using <@BotID>") appended to Slack connector send_message payloads using Block Kit.

Improved

  • Environment variables (APP_URL and WICK_ENC_KEY) now override database-stored configurations at read time, featuring read-only indicators and write protections in the Admin UI.

Fixed

  • Inline markdown rendering in agents and skills to require word boundaries for underscores, preventing snake_case identifiers from being incorrectly stripped or formatted as italics.

This summary was automatically generated by Gemini AI


v0.14.9 — Wick-Agent Rename

Released on 2026-05-29

Added

  • Standalone gate sidecar release asset, with automatic installation support for raw Linux and Termux environments to ensure end-to-end command gate functionality.

Improved

  • Renamed the runtime binary from wick to wick-agent to prevent naming conflicts with the wick CLI development tool.
  • Updated installation scripts, CI configurations, and documentation to use the new wick-agent binary name and streamlined the first-run credential generation.

Fixed

  • Resolved a CI artifact upload issue where nested directories caused release uploads to fail, restoring missing assets like the raw linux-arm64 binary.

This summary was automatically generated by Gemini AI


v0.14.8 — Connectors & Installation

Released on 2026-05-28

Added

  • Built-in Bitbucket and Loki connectors.
  • Dedicated Connectors launcher and index page featuring search, category filtering, and connector instance status tracking.
  • Floating "Jump to latest" button and Ctrl+Down shortcut in the agent chat interface.
  • Universal install.sh and install.ps1 scripts, automatically scaffolded into new projects via wick init.

Improved

  • Documentation for the connector HealthCheck hook, OpHealth contract, and system disabling model.
  • CI workflows to upload raw Linux binaries alongside Debian packages to support dpkg-less environments.

Fixed

  • Chat panel auto-scroll behavior to avoid yanking the viewport down while users are actively reading history above.

This summary was automatically generated by Gemini AI


v0.14.7 — OpenAI REST API

Released on 2026-05-25

Added

  • Full OpenAI-compatible REST API surface, including the new /integrations/rest/api/v1/openai/responses and /integrations/rest/api/v1/openai/models endpoints.
  • Live model validation against active providers, returning standard OpenAI-formatted 404 error responses for unknown model IDs.
  • Per-session in-flight locks returning a 409 Conflict status on concurrent requests within the same conversation.
  • Rewritten documentation panel featuring three dedicated tabs for Chat, Responses, and Models.

Improved

  • Standardized the chat completions endpoint path to /integrations/rest/api/v1/openai/chat/completions.
  • Switched from session_id to the standard conversation key for tracking sessions across REST endpoints.
  • Gated the agents settings page (/tools/agents/settings) and sidebar navigation link to admin users only to secure sensitive configuration data.
  • Updated the REST developer guide and channels documentation table.

This summary was automatically generated by Gemini AI


v0.14.6

Released on 2026-05-25

Added

  • Slack Canvas connector operations.

Improved

  • Support for clickable file paths in agent chat markdown. File paths within the current workspace session open directly in the preview/edit modal, while paths outside the workspace display a raw path popup with a copy option.

Fixed

  • Database compatibility issue where stuck job runs failed to recover on SQLite due to Postgres-specific interval SQL syntax.
  • Issue where panic events or timed-out contexts prevented job status updates, ensuring cleanup tasks execute properly to prevent runs from remaining permanently stuck in a "running" state.

This summary was automatically generated by Gemini AI


v0.14.4 — Realtime Storage Sync

Released on 2026-05-25

Added

  • Real-time filesystem watcher based on fsnotify that monitors storage sources dynamically and updates kernel watch sets immediately upon configuration changes.
  • Configurable watcher settings including watcher_status (enabled by default) and watcher_debounce_ms (defaults to 1000ms).

Improved

  • Redesigned the storage backup mechanism to stream files via WalkDir and io.Copy into constant-memory SHA-256 hashes, loading full contents only when database writes are required.
  • Integrated debounce logic to collapse rapid editor save events into a single sync operation.
  • Streamlined deletion handling by directly removing database rows on file removal or rename events.

Fixed

  • Resolved out-of-memory (OOM) container crashes on large directory trees by replacing the memory-intensive polling map serialization with streaming sync.

This summary was automatically generated by Gemini AI


v0.14.3 — AI Agents

Released on 2026-05-25

Added

  • Live text streaming and thinking deltas for Claude and Codex in the web UI.
  • Backend-driven agent lifecycle state machine exposed via Server-Sent Events (SSE).
  • Crash-recovery mechanism for active sessions using provider-agnostic inflight.jsonl logging.
  • Collapsible Context file panel to view, edit, download, and preview (Markdown/HTML) files in the agent's working directory.
  • Automatic chat composer focus triggered by typing anywhere on the session detail page.

Fixed

  • Incorrect dark-mode background rendering on trace cards.
  • Double-broadcasting of agent exit events in the connection pool.

Improved

  • Agent documentation covering provider features, SSE channel schemas, and file sandbox security.

This summary was automatically generated by Gemini AI


v0.14.2 — MCP Improvements

Released on 2026-05-23

Added

  • db_type and db_status fields to the wick_info MCP tool to allow clients to securely monitor database connection status without exposing sensitive credentials.
  • An environment variable allowlist (WickEnvVars) for MCP installation in Codex CLI to ensure runtime environment variables are preserved.

Fixed

  • Bug where the agent provider cache was not refreshed after switching providers.

Improved

  • Centralized database status derivation and consolidated WickInfo tests directly within the handlers package.

This summary was automatically generated by Gemini AI


v0.14.1 — Job & Skill Management

Released on 2026-05-22

Added

  • Job timeout configuration (MaxTimeoutMin field, defaulting to 30 minutes) with automatic context-based cancellation.
  • Startup bootstrap routine to reset stuck job runs that have exceeded their timeout threshold.
  • User interface option to configure max_timeout_min in job settings.
  • Detailed tracking for provider storage sync jobs, displaying changed and skipped file counts per source.
  • MCP handler modularization under a new handlers/ subpackage, introducing wick_skill_list and wick_skill_sync tools.
  • Skills Manager documentation in the agents guide.

Fixed

  • Test suite compilation by updating SyncOne caller signatures to match the new return structure.

Improved

  • Updated system prompts.

This summary was automatically generated by Gemini AI


v0.14.0 — Skills Explorer

Released on 2026-05-22

Added

  • Integrated a new skillsync package to mirror skill files across provider directories (~/.claude/skills, ~/.codex/skills, ~/.gemini/skills, and ~/.agents/skills) using modification times instead of symlinks.
  • Added a Skills explorer page in the agents sidebar with clickable rows, subfolder navigation, and a kebab menu for syncing, downloading, and deleting skills.
  • Introduced provider-scoped views with a tab switcher to compare the same skill file across different providers.
  • Added Markdown preview rendering on the skill file detail page.
  • Added a CancelJob capability to the job manager via POST /manager/jobs/{key}/cancel.

Improved

  • Refactored the provider storage sync job to remove RestoreAll from the cron tick and added a 60-second hard timeout with error reporting.

This summary was automatically generated by Gemini AI


v0.13.5

Released on 2026-05-22

Fixed

  • Fixed a workspace bootstrap fatal error that occurred when a workspace directory existed without a meta.json file, by aligning the duplicate check in Create to check for WorkspaceMeta.

This summary was automatically generated by Gemini AI


v0.13.4 — Agents & MCP Updates

Released on 2026-05-22

Added

  • Provider switching capabilities across channels using the #provider prefix command.
  • An agentctl Unix socket for interacting with the running daemon pool from MCP stdio.
  • Granular, per-instance sandbox modes (read-only, workspace-write, and danger-full-access) for Codex configurations.
  • Verbose per-file logging toggle and run ID correlation for provider-storage sync and restore runs.
  • A new system_turn SSE event and UI handler to append system turns during agent interactions.

Fixed

  • Missing builtin connectors (Slack, GitHub, and HTTP/REST) on downstream MCP stdio deployments by registering them prior to bootstrap.
  • Hidden connectors requiring setup from showing up in wick_list and wick_search.
  • Codex MCP auto-install config format errors, uninstall persistence issues, and re-installation behavior.
  • Tool result tracking to correctly extract MCP result text from content arrays and forward it via SSE.
  • Codex parser error handling, ensuring non-JSON lines are output as Thinking events instead of failing.

Improved

  • Split the immutable system prompt into distinct global, Claude-specific, and Codex-specific variants.
  • Optimized provider-storage file syncs by performing pre-upsert hash checks to skip unchanged files.

This summary was automatically generated by Gemini AI


v0.13.3 — Interactive Workflow Builder

Released on 2026-05-21

Added

  • Added interactive inspector panels for branch, end, shell, transform, classify, and database query workflow nodes.
  • Added click-to-add functionality for canvas nodes from the palette as a reliable alternative to drag-and-drop.
  • Added interactive filter condition, row, and order-by builders, alongside table and column selectors, for datatable nodes.
  • Added a /stream/snapshot JSON endpoint to replay agent lifecycle and trace events on page refresh.

Fixed

  • Fixed agent idle-kill timeout by pausing the idle timer during long-running tool executions.
  • Fixed rendering of datatable nodes (which previously fell back to shell nodes) and resolved label and expression mode persistence issues.
  • Fixed database persistence for datatable_create and datatable_insert by wiring the PgService to the MCP stdio service.
  • Fixed provider storage boot restore and upload retag issues.
  • Fixed canvas stacking context issues by adjusting the palette drawer position.

Improved

  • Overhauled the datatable node UI with grouped palette entries, a column combobox, and Fixed/Expression toggle previews.
  • Improved agent trace replay on page refresh by utilizing SharedWorker to fetch current state snapshots.
  • Streamlined the node palette by removing duplicate hardcoded entries in favor of registry-backed module registration.

This summary was automatically generated by Gemini AI


v0.13.2 — Provider Storage

Released on 2026-05-20

Added

  • UI actions to download individual files and download folders as .zip files.
  • Support for dismissing modals via backdrop click or the Escape key.

Fixed

  • Storage boot sequence to overwrite disk from the database using RestoreAllForce and remove redundant SyncAll operations.
  • Cron sync execution flow to run a guarded RestoreAll before SyncOne so missing files are refilled prior to capture.
  • Upload routing to auto-retag files to the deepest covering enabled source, ensuring manual uploads are assigned to the correct provider and instance to maintain restorability.

Improved

  • Explorer upload modal to be contextual, displaying a target path banner and requiring only the filename.

This summary was automatically generated by Gemini AI


v0.13.1 — Data Tables

Released on 2026-05-20

Added

  • High-performance Data Tables system featuring a Postgres-backed JSONB schema, auto-incrementing row IDs, system columns, and 9 matching Model Context Protocol (MCP) operations.
  • n8n-style spreadsheet grid UI for managing Data Tables, featuring column-sorting, a 10-operator filter popover, CSV import/export, and inline column management.
  • Seven dedicated database nodes in the workflow canvas palette (datatable_*) for querying, counting, inserting, upserting, and deleting records.
  • Split-bottom editor panel containing a dedicated "Validation" tab to display real-time Go template syntax check results.
  • Server-Sent Events (SSE) reconnect status pill in the session header to visually surface EventSource connection states.

Fixed

  • Fixed binary builds to correctly compile the app name and version via LDFLAGS variables instead of falling back to "dev".
  • Fixed an issue in manual triggers where saving a human-readable button caption overrode the unique validation slug label.
  • Fixed drawflow canvas deletion clicks by exempting the .drawflow-delete X chip from the marquee background selection handler.
  • Fixed editor node metadata mapping to properly handle underscore-separated trigger names (e.g., trigger_manual).

Improved

  • Transitioned workflow node and trigger IDs to internal UUIDs while maintaining clean, cascading, user-facing label slugs.
  • Replaced full-page reloads on workflow manual saves with smooth background POST requests that preserve canvas state, scroll positions, and SSE connections.
  • Split the workflow validation pipeline into lenient draft saves and strict publish-blocking checks that highlight syntax errors in the Validation panel.
  • Enhanced agent chat UI to automatically linkify URLs, apply overflow wrapping on long links, and systematically instruct AI models to wrap URLs in Markdown link syntax.

This summary was automatically generated by Gemini AI


v0.13.0 — Agent Workflows

Released on 2026-05-19

Added

  • Comprehensive workflow engine and canvas-based editor for agent orchestration.
  • Support for multiple trigger types including Cron schedules, Webhooks, Slack events, and Manual execution.
  • n8n-style debug modal featuring real-time SSE run progress, execution step isolation, and input/output inspection.
  • Draft/Publish lifecycle allowing users to test unsaved changes before deploying to production.
  • Run replay functionality to visualize historical executions and debug payload data directly in the editor.
  • Interactive "Fixed/Expression" toggle for node arguments with drag-and-drop support from the input pane.
  • Advanced canvas UX features: alignment snapping, marquee selection, multi-node dragging, and fit-to-view.
  • Sharded run index for high-performance history lookup and storage.
  • Multi-level palette drawer built dynamically from the live connector and channel registry.
  • Inline-chip multi-select picker for trigger filtering with support for ID lookup and bulk pasting.

Fixed

  • Resolved an issue where trigger fan-out edges were lost during workflow save and reload cycles.
  • Fixed a bug preventing the toggling of workflows that contained validation errors in their draft state.
  • Closed three security bypass vectors in the gate loader: enforced socket guards, relative path scope resolution, and quote-aware command tokenization.
  • Fixed UI overlap where empty state placeholders appeared on top of populated data panes.
  • Corrected trigger hint labels on canvas cards to accurately reflect channel and event types.

Improved

  • Migrated the node argument inspector to use shared fieldtype widgets for consistent UI across the platform.
  • Refactored the Slack integration into a modular, file-based architecture for better extensibility.
  • Enhanced the workflow router with a trigger index for O(1) event dispatching.
  • Optimized canvas rendering by moving the palette drawer to a transform-based overlay, preventing layout reflows.
  • Structured documentation into a multi-part roadmap and design specification.

This summary was automatically generated by Gemini AI


v0.13.0 — Workflows

Released on 2026-05-19

Added

  • Workflows — multi-step YAML DAG automations under <BaseDir>/workflows/<id>/, with typed nodes (classify, agent, connector, channel, http, shell, db_query, transform, go_script, branch, switch, parallel, merge, datatable_*, session_init, end) and triggers (cron, channel, webhook, manual, schedule_at, error). See Workflows guide.
  • Canvas editor at /tools/agents/workflows/<id> — Drawflow-based visual editor with palette, per-field inspector reflected from each executor's Describe(), top-down auto-layout, marquee select, fit-to-view, node search (Ctrl+K), and a run timeline that replays each run node-by-node.
  • MCP workflow surface — self-documenting catalog (workflow_list, workflow_describe, workflow_node_types, workflow_node_detail, workflow_diagnose, workflow_watch, workflow_scaffold, workflow_connect, workflow_patch, workflow_delete) so LLMs can author and inspect workflows over MCP.
  • Slack channel actions as workflow nodes — send_message, add_reaction, open_dm, open_modal, push_modal, update_modal, send_ephemeral, publish_home, respond_url, update_message — plus typed event triggers (event_message, event_app_mention, event_command, event_block_action, event_view_submission, event_shortcut, event_app_home_opened, event_view_closed).
  • Gate umbrella policyGateConfig now carries PermissionMode (per-tool prompts) + AskUserMode (MCP ask_user) sub-policies. Master switch snaps both to their unguarded defaults when off. MCP ask_user short-circuits with a clean tool error when disabled instead of stalling the run. See Command Gate ▶ Umbrella policy.
  • Slack OAuth on the connector row — global OAuth credentials moved to a Slack connector row with a "Connect with Slack" button; user-token auto-detected in buildSessionContext; DM via connector user token with signed footer.
  • Live agent streaming trace — tool calls, thinking, and history are streamed into the session detail page in real time.
  • MCP provider UI + session full-height layout + markdown table rendering.
  • Provider-storage sync — exclude-mode rows, glob matcher, folder cascade, retention recompute, repair tree.
  • Loki push adapter for async run events.
  • Self-updater + build metadata baked into wick_info.

Changed

  • Workflow slug field renamed to id across the codebase.
  • Channel config layer — manual field mapping replaced with MapToStruct; decryptFn callback removed from GetChannelConfigMap; wick_cenc_ tokens decrypted in-place; channel configs hidden from settings page and encrypted at rest.
  • Gate AppName derives from the binary stem only when it ends in -gate, otherwise the ldflag is the single source of truth.

Fixed

  • Slack bot replies no longer carry a duplicate signed footer (only sendHandler signs).
  • Slack cannot_dm_bot — detect bot users before calling conversations.open.
  • Slack: post with xoxp token without overriding the username, so the real user identity is preserved.
  • Slack: auto-promote U... channel IDs to target_user_id for session headers; init userTokenCache and pre-build the token map at startup.
  • Canvas: reject duplicate edges in Connect; guard against deleting the entry node.
  • wick_info uses the baked app name instead of the cwd basename.
  • Provider-storage: strings.ReplaceAll for cross-platform backslash normalisation.

Migration notes

  • The legacy agents.bypass_permissions checkbox is gone. Its value is one-shot migrated to gate.permission_mode at boot — no operator action required.

v0.12.2 — Release Infrastructure

Released on 2026-05-14

Added

  • Automated self-updater configuration using baked-in repository metadata in the installer build.

Fixed

  • Build failure on darwin/arm64 by enabling CGO for systray Objective-C bindings.

Improved

  • CI pipeline visibility through per-target status gates and detailed run summaries for disabled targets.
  • Release process robustness by allowing artifact attachment during partial-success matrix builds.

This summary was automatically generated by Gemini AI


v0.12.1 — Darwin Release

Released on 2026-05-14

Fixed

  • Resolved an issue with the release process for Darwin platforms.

This summary was automatically generated by Gemini AI


v0.12.0 — Agent Orchestration

Released on 2026-05-14

Added

  • Preset support for agent sessions, allowing system prompts to be loaded from local files on spawn.
  • Global system prompt configuration to append organization-wide instructions to every agent preset.
  • Idle subprocess preemption to immediately free pool slots for queued sessions when the agent pool is full.
  • all CLI command to run the HTTP server and cron scheduler within a single process.
  • Visual status indicators and badges to represent queued states in the sidebar and session list.
  • Manual triggers for provider storage synchronization in the settings UI.

Improved

  • User messages are now persisted to disk immediately upon sending to ensure visibility while sessions are queued.
  • Queue deduplication per session and agent to prevent redundant entries in the queue panel.
  • Background preemption logic now retries every second while the queue is non-empty.
  • UI layout for Settings and Channels pages expanded to full width with improved clickable surfaces for channel cards.
  • Application name resolution in default system prompts to support correct file paths in branded builds.
  • Automatic provider storage restoration from the database when booting standalone worker nodes.

Fixed

  • Database migration logic.

This summary was automatically generated by Gemini AI


v0.11.15

Released on 2026-05-13

Fixed

  • Restored non-root user and home directory configuration in the Dockerfile.
  • Fixed unit test failures.
  • Resolved database migration issues.

Improved

  • Added inline documentation and annotations to Dockerfile build and runtime stages.
  • Pinned the wick installation to the version specified in go.mod for more predictable builds.
  • Refined sidecar naming logic by deriving the gate binary stem from the configuration output.

This summary was automatically generated by Gemini AI


v0.11.14

Released on 2026-05-13

Fixed

  • Corrected content provider storage type handling.
  • Resolved database migration issues.

Improved

  • Synchronized go.mod templates and documentation.

This summary was automatically generated by Gemini AI


v0.11.13

Released on 2026-05-13

Fixed

  • Resolved build artifact generation issues.
  • Reverted CI/CD workflow and Dockerfile configurations to restore build stability.

This summary was automatically generated by Gemini AI


v0.11.12

Released on 2026-05-13

Fixed

  • Resolved issues with build artifacts.

This summary was automatically generated by Gemini AI


v0.11.11

Released on 2026-05-13

Fixed

  • Resolved build artifact issues by removing unnecessary caching.

This summary was automatically generated by Gemini AI


v0.11.10

Released on 2026-05-13

Fixed

  • Resolved issues with build artifact generation.

This summary was automatically generated by Gemini AI


v0.11.9

Released on 2026-05-13

Added

  • New wick init command for project initialization.

Fixed

  • Issues related to build artifact generation.

This summary was automatically generated by Gemini AI


v0.11.8

Released on 2026-05-13

Fixed

  • Build artifact generation issues.

This summary was automatically generated by Gemini AI


v0.11.7

Released on 2026-05-12

Improved

  • Optimized the build release caching process.

Fixed

  • Resolved issues related to build artifacts.

This summary was automatically generated by Gemini AI


v0.11.6

Released on 2026-05-12

Fixed

  • Added the Go bin directory to the PATH in the binary build process to ensure the templ tool is correctly located and accessible.

This summary was automatically generated by Gemini AI


v0.11.5 — CI/CD Optimization

Released on 2026-05-12

Added

  • New ci-timing.sh script for workflow performance and timing analysis.

Fixed

  • Issues with build artifact generation.

Improved

  • Optimized release workflows by building the wick CLI once and sharing it as an artifact across build-binaries and build-docker jobs.
  • Implemented binary caching for wick and templ in CI and pull request test workflows.
  • Added caching for wixl via apt cache to reduce workflow runtimes.
  • Configured separate wick CLI caching for macOS jobs to support cgo runners.

This summary was automatically generated by Gemini AI


v0.11.4 — Agent Hosting

Released on 2026-05-12

Added

  • New "agents-only" quickstart guide covering system tray, headless modes, binary downloads, and Docker/Compose configurations.
  • Comprehensive contribution guide including a commit style guide, build instructions, and repository structure mapping.
  • Two-use-case framing to documentation to distinguish between the development framework and agent-host functionality.

Fixed

  • Issues with build artifact generation.

Improved

  • Documentation hero section and README tagline for better clarity on project use cases.
  • VitePress sidebar and navigation organization to incorporate new agent-focused content.

This summary was automatically generated by Gemini AI


v0.11.3

Released on 2026-05-12

Fixed

  • Corrected issues with build artifact generation.

Improved

  • Optimized CI pipeline to initialize projects from tags and share scaffolding via artifacts.
  • Removed the mockery dependency.

This summary was automatically generated by Gemini AI


v0.11.2

Released on 2026-05-12

Fixed

  • Resolved issue where build-docker and build-binaries jobs failed to checkout from the correct tag reference.
  • Fixed build artifact generation process in CI workflows.

Improved

  • Optimized CI pipeline to run pull request tests only when Go or templ files are modified.

This summary was automatically generated by Gemini AI


v0.11.1

Released on 2026-05-12

Fixed

  • Resolved an issue with build artifact generation.

Improved

  • Upgraded Go version to 1.25.0 in project templates.
  • Removed Mockery dependency from the codebase.

This summary was automatically generated by Gemini AI


v0.11.0 — Storage & TTY Support

Released on 2026-05-12

Added

  • Provider Storage Manager tool featuring explorer and flat list modes, sync source auto-detection, and background synchronization jobs.
  • New providersync package and database entities for provider storage and sources.
  • Comprehensive documentation and user guides for Provider Storage and Web Terminal.
  • Automated release-artifacts CI workflow for binary and Docker builds.
  • Upgrade checks for Dockerfile wick versions with interactive update prompts.

Fixed

  • Connectivity issues related to TTY.
  • Upgrade prompt behavior to default to "yes" [Y/n].

Improved

  • Dockerfile runtime base switched to debian:bookworm-slim to support glibc requirements for the Claude CLI.
  • Integrated Gotty cross-compiled binaries and Claude CLI into the standard Docker image.
  • Added non-root app user with sudo privileges for secure credential management.
  • Integrated app-gate sibling binary into the application runtime image.

This summary was automatically generated by Gemini AI


v0.10.2

Released on 2026-05-12

Added

  • Hijack functionality.
  • Additional logging for improved diagnostics.

Fixed

  • Unit test failures.

Improved

  • TTY handling and configuration.

This summary was automatically generated by Gemini AI


v0.10.1 — Command Gate Enhancements

Released on 2026-05-12

Added

  • Web Terminal tool with HandleRaw router support.
  • Red and amber color tokens to UI for gate-related components and banners.
  • Automatic injection of .claude/settings.local.json during workspace creation and switching.

Fixed

  • Command gate interactions including the X button, click-outside behavior, and Block button rendering.
  • Logic for timeout auto-blocking and Telegram notification deletion on resolution.
  • Workspace hook injection and GateBinLoader wiring in the server.

Improved

  • Expanded command gate interception scope to include Bash, file tools, and MCP tools using a catch-all matcher.
  • Refined tool approval workflow with auto-allow logic for workspace-scoped file tools and interactive approval for unknown tools.
  • Documentation for command gate intercept scope and approval mode labels.

This summary was automatically generated by Gemini AI


v0.10.0 — Channels & Slack Integration

Released on 2026-05-12

Added

  • OpenAI-compatible REST channel supporting both stateful and stateless sessions via Personal Access Tokens.
  • Built-in Slack connector featuring 15 operations for message management, reactions, and lookups.
  • Health check framework for connectors and integrations to validate API permissions and connectivity.
  • SharedWorker-based SSE implementation to maintain persistent agent connections across page navigations.
  • Searchable picker UI component for granular Slack entity selection (users, groups, and channels).
  • Assistant API integration for Slack including "is thinking" status banners and thread-based activity signals.

Improved

  • Redesigned chat composer featuring an overlay style with inline provider and workspace switchers.
  • Session performance through persistent cache probing and in-memory metadata label caching for faster sidebar rendering.
  • Slack access control logic supporting complex whitelist combinations for users, groups, and channels.
  • Channel management interface with theme-aware documentation, configuration cards, and sample code blocks.
  • Refined Slack UX by deferring queued reactions and removing redundant status emojis.
  • Session detail layout with approvals moved to a dedicated tab for better space utilization.

Fixed

  • Encrypted fields tool now defaults to private visibility to ensure authenticated access.
  • Claude settings injection narrowed to project-scope to avoid affecting global machine configurations.
  • Session history and provider dropdown loading delays.
  • CSS layout issues causing scrollbar flashing on session detail pages.
  • SSE connection timeouts by removing server-side deadlines and sending immediate connection headers.

This summary was automatically generated by Gemini AI


v0.9.6 — Slack Mention Trigger

Released on 2026-05-11

Added

  • Support for app_mention events in public and private Slack channels.
  • The app_mentions:read scope to the application manifest.

Improved

  • Slack message dispatching logic to require explicit mentions in channels while maintaining direct passthrough for DMs.
  • Automatic stripping of the <@BOTID> prefix from mention events before dispatching to the message handler.
  • Application manifest configuration by replacing broad channel and group message event subscriptions with targeted app mentions.

This summary was automatically generated by Gemini AI


v0.9.5 — Multi-Provider Command Gate

Released on 2026-05-11

Added

  • Multi-provider support for Command Gate with per-provider capability detection for Claude, Codex, and Gemini.
  • Global Command Gate master switch that cascades state changes to all configured provider instances.
  • Per-instance hook configuration allowing granular opt-in/opt-out for tool execution gating.
  • Asynchronous capability probing system with UI status badges for verified, testing, and unverified states.
  • Support for --probe-deny and provider-specific flags in the gate command to verify capability layer enforcement.
  • Capability registry for self-registering provider hooks and runtime probe verification.

Fixed

  • Enforced mutual exclusivity between Command Gate and Permission Bypass mode to prevent conflicting behaviors.
  • Added missing runtime imports to ensure Codex and Gemini providers correctly self-register for capability lookups.
  • Replaced native title tooltips with theme-aware custom tooltips that respect dark and light modes.
  • Removed duplicated Command Gate descriptions across provider cards to clean up the interface.
  • Resolved a regression where Claude would ignore deny envelopes when specific permission flags were set.

Improved

  • Implemented an in-memory instance cache for providers to eliminate redundant disk reads during agent spawning.
  • Refactored the spawner factory to dispatch by ProviderType, enabling cleaner integration of future providers.
  • Optimized CI workflows to skip PR tests when targeting the release branch.
  • Updated technical documentation for Command Gate architecture, adapter patterns, and channel integration guides.
  • Enhanced the provider UI to display "locked (bypass)" states when permissions are globally bypassed.

This summary was automatically generated by Gemini AI


v0.9.4 — Channels & Command Gate

Released on 2026-05-10

Added

  • Per-transport subpackages for Slack and Telegram integrations to improve modularity.
  • New agent-channel-module skill to enhance agent capabilities.
  • Diagnostic "Test gate" button on the Providers page to verify command gate enforcement.
  • --probe-deny subcommand for the gate binary to detect contract drift in production.

Fixed

  • Command gate compatibility with Claude Code 2.1.138+ to prevent silent permission bypass.
  • Issue where the gate failed to block sessions due to incorrect exit code and stdout handling.
  • Sandbox blocking of approved tools by ensuring explicit allow signals are emitted to the permission system.
  • Permission mode conflict where --permission-mode bypassPermissions was incorrectly forced when a gate was attached.

Improved

  • Refactored channel infrastructure into a modular root registry with dedicated subpackages.
  • Streamlined transport registration and setup using a centralized composer.
  • Enhanced context for new chat threads by injecting session-specific turns for first messages.
  • Updated the Command Gate rejection contract to utilize exit-0 with specific JSON output for reliability.
  • Renamed the Command Gate modal action from "Block" to "Reject" for better clarity.
  • Migrated the Slack application manifest to JSON format.
  • Updated documentation to reflect 2.1.x compatibility, failure modes, and new testing tools.

This summary was automatically generated by Gemini AI


v0.9.3

Released on 2026-05-10

Added

  • GitHub Actions workflow to run unit tests on all pull requests.

Fixed

  • Crash in wick.yml tasks when using plain run blocks without background execution flags.
  • Template version mismatch during build processes.
  • Data races in the provider agent and pool worker logic identified during concurrent testing.
  • Permission denied errors during test cleanup on Linux caused by read-only module cache files.
  • Various broken unit tests across Slack channels, CLI doctor command, and gate manager integration.

Improved

  • Task execution now utilizes a real POSIX shell (or Bash on Windows) to support multi-line scripts, pipes, and command substitution.

This summary was automatically generated by Gemini AI


v0.9.2

Released on 2026-05-10

Fixed

  • Resolved application crashes.
  • Pinned templ CLI to the version specified in go.mod to ensure consistent release builds.

This summary was automatically generated by Gemini AI


v0.9.1 — AI Agents

Released on 2026-05-10

Added

  • Slack app manifest for the Wick agent bot.
  • Comprehensive documentation for AI Agent workspaces, providers, channels, and pools.
  • Detailed guide for Command Gate architecture, covering IPC, auditing, and the wick doctor utility.
  • Reference documentation for gate sidecar bundling.

Fixed

  • Connector registration idempotency on Meta.Key to ensure stability across server restarts.
  • Critical application crash in the core service.

Improved

  • Documentation structure to highlight AI Agent features across Slack, Telegram, and Web.
  • Environment variable management, removing deprecated GATE_ prefixes.
  • Release workflow automation to synchronize headlines within the changelog.

This summary was automatically generated by Gemini AI


v0.9.0 — AI Agents

Released on 2026-05-10

The headline release: wick can now host AI coding agents — Claude, Codex, Gemini — as long-lived subprocesses, reachable from Slack threads, Telegram chats, and the web UI at the same time. Per-command Command Gate intercepts every Bash call. Multi-instance providers (two PATs, side-by-side). Workspaces on disk. AskUser MCP tool. State persisted under ~/.<app>/agents/ — backup is tar, restart re-scans.

Plus: a generic HTTP connector, a GitHub connector, per-connector rate-limiting and per-operation access control, wick doctor, and a /metrics endpoint.

Added — AI Agents subsystem

  • Multi-channel routing. Slack (Socket Mode default + HTTP Event API), Telegram (long polling with inline-keyboard approvals), and the always-on web UI at /tools/agents. Each thread / chat / conversation = one wick session, automatically created on first message. See AI Agents and Channels.
  • Multi-session subprocess pool. Slot cap (default 2), FIFO queue, idle-kill (default 120s), --resume <cli_session_id> revive. Per-session message buffer survives wick restart via meta.PendingInput. See Pool & Sessions.
  • Workspaces. Folders on disk used as the agent's cwd — managed at ~/.<app>/agents/workspaces/<name>/files/ or any custom absolute path. Multi-session sharing without locks. Built-in default workspace seeded on fresh install. See Projects.
  • Multi-instance providers. claude/work + claude/personal with different PATs. Per-instance binary override, extra args, env vars, disabled toggle. Persistent status cache with manual / 24h-stale / boot-prime rescan. Page render never blocks on --version. See Providers.
  • Binary scan. --version lookup walks registry → PATH → known install locations (npm prefixes, nvm, fnm, volta, asdf, Homebrew, MacPorts, Claude / Codex installer paths). Closes the gap between tray-launched wick (Explorer PATH) and shell PATH.
  • Console hiding on Windows. Tray-spawned claude.exe / codex.exe / npm shims no longer flash a console window — CREATE_NO_WINDOW applied to provider probe + spawn paths.
  • Command Gate. Sidecar binary <app>-gate intercepts every Bash command via Claude's PreToolUse hook. Whitelist via glob, escalate to interactive approval modal with 4 modes: approve_once / approve_session / approve_always / block. Approval surfaces in whichever channel the conversation lives in (web modal, Slack approval message, Telegram inline keyboard). 25-second daemon deadline (under Claude's 30s hook timeout). See Command Gate.
  • Gate IPC. Unix domain socket at ~/.<app>/agents/gate/gate.sock, raw newline-delimited JSON, chmod 0600. Single shared spec / socket / audit log per app — daemon routes approvals to the right session by matching the hook's cwd against known workspace paths.
  • Gate audit. Multi-stage entries to ~/.<app>/agents/gate/commands.jsonl (receivedsocket_dialsocket_sentsocket_recvterminal), all tied by RequestID. Plus a human-readable daily tail log at ~/.<app>/logs/gate-YYYY-MM-DD.log.
  • Gate binary resolution — zero env vars. Sibling-of-executable (<app>-gate[.exe] next to the main binary, shipped by wick build --installer) → embedded //go:embed extract → PATH. WICK_GATE_BIN / GATE_BIN / WICK_GATE_SPEC / GATE_SPEC all dropped.
  • Installer ships the gate sidecar. Windows MSI ships <App>-gate.exe, Debian .deb ships /usr/bin/<app>-gate, macOS .app bundle ships Contents/MacOS/<App>-gate. Builder absorbs the gate compile step (no separate CI job); soft-skips on downstream forks without cmd/gate/.
  • AskUser MCP tool. Agent-initiated mid-turn question — wick registers the question, broadcasts SSE, blocks the MCP call, surfaces an inline card in the web UI composer. Default 5min timeout. Works in pipe mode (-p) where Claude Code's harness AskUserQuestion doesn't.
  • Provider spawn log. Per-spawn JSONL at ~/.<app>/agents/providers/spawns/<type>__<name>__<session>__<unix-ms>.jsonl with start (PID, argv, binary, first user message) and exit events. ls-friendly filter without reading file bodies.
  • Slack channel. Reaction lifecycle (⏳ → ⚙️ → ✅ / 🚫 / ❌), chunked replies at 3800 chars (under Slack's 4000 hard limit), access control (everyone / users / groups) checked per-message, hot-reload on 30s config poll, pool.OnSessionCreated hook so dashboards see new sessions immediately.
  • Telegram channel. Long polling, dormant-mode on missing/invalid token, inline-keyboard approvals with short-token mapping (Telegram's 64-byte callback_data limit), edit-in-place approval message on resolve.
  • Meta-commands intercepted in every channel before dispatch: /agent <name>, /reset, /status, /dashboard (/link), /log. Both / and ! prefixes accepted.
  • wick doctor [binary] diagnostic. Verifies environment + gate setup. Pass a binary path to inspect a specific branded build — derives its AppName, locates the matching <app>-gate sidecar, dials the socket with a probe request that auto-replies without bothering a human, verifies socket / spec paths align.
  • AppName single source of truth. internal/appname.Resolve() is the only chain: BuildAppName ldflag → wick.yml name:"wick". APP_NAME env is now a display label only (~/.<app>/ namespace stays slug-safe). Gate binary derives <app> at runtime from its own filename (strip -gate[.exe]), so a branded wick-lab-gate.exe lands in ~/.wick-lab/agents/gate/ automatically.

Added — Connectors

  • Generic HTTP/REST connector for calling JSON APIs with configurable authentication and methods.
  • GitHub connector supporting repository listing, issue management, file retrieval, and pull request tracking.
  • Per-operation access control restricting specific connector operations to administrators.
  • Sliding-window rate limiting per connector with admin UI for quota tuning.
  • Cross-connector audit log API and admin UI for monitoring run history and status across all connectors.
  • /metrics endpoint (Prometheus-compatible) for connector execution telemetry and latency.
  • pkg/conntest helper package to simplify unit testing for custom connector authors.

Fixed

  • Updater reliability on Windows and Linux: verify post-install state, use a detached helper script to swap binaries, prevent partial installs.
  • Agent pool race on Windows. markStatus(idle) now runs before releaseSlot (pool.go:378) so a fast Send arriving right after Active==0 cannot collide its meta.json write with the trailing idle write (two os.Rename to the same target). Killed flaky TestPipeline_ResumeAfterIdleKill + TestQueueWhenPoolFull.
  • Double-spawn / slot-count race. Pool now tracks an in-flight spawningKeys set; concurrent Send calls cannot each see "slot free" and call spawn simultaneously. Same guard prevents two exit hooks from popping the queue at the same time.
  • SSE delivery & flush. Switch to ResponseController for proper chunked flushing in the agent dashboard. Larger subscriber buffer + dropped-message logs.
  • Agent kill-on-respond + SSE timeout. Lifecycle FSM now correctly distinguishes "still responding" from "idle" so the kill timer doesn't fire mid-response.
  • Bypass permissions logic. --permission-mode bypassPermissions is now passed to Claude only when a gate is wired (allowed_cmds non-empty), preventing permission-less Slack sessions.
  • Gate hook injection. Hooks injected via Claude's user settings.json (per-spawn --settings flag), with fail-open behavior when no socket is present so the agent can still start during gate setup.
  • Configs back-fill. Empty config rows now back-fill from seed defaults instead of leaving the value blank — fixes "field is blank after upgrade" reports.
  • Server banner now shows the configured app_url and logs host mismatches during 403 rejections (was logging the bare listen address).
  • Lab / CLI request logs. Component-tagged logger correctly injected into the execution context — request lines no longer disappear in lab mode.

Improved

  • Claude parser + spawner aligned with real Claude 2.1.x. Verified against the live claude CLI's stream-json protocol and long-lived process lifecycle (multi-turn within one process, no respawn per message). Real-claude E2E test gated by WICK_CLAUDE_E2E=1.
  • Approval flow architecture. Two patterns of approval are now both available: system-intercept (gate, mandatory) and voluntary ask (AskUser MCP tool). Wick uses gate for security enforcement and AskUser for UX questions the agent decides to ask.
  • Workspace model rewrite. Replaced the project-centric model (1 project = 1 git repo, session = git worktree) with a workspace-centric model (folder shared across sessions, no git ops, custom paths supported). Fixes the "session without project fails to spawn" bug and matches how teams actually work — one folder full of stuff that several conversations touch.
  • Provider rename from "backend" — session.AgentEntry.Provider, pool.FactoryOptions.ProviderType/Name, userconfig.ProvidersConfig. Single package internal/agents/provider/ consolidating driver + spawner + per-instance config + spawn logger.
  • Registry split. RegisterBuiltins (default-on agents tools) vs RegisterLabSamples (lab-only); cmd/lab/ renamed to cmd/wick-lab/.
  • Multi-turn + multi-session integration tests via simulated spawners; 91 tests across 21 packages green at release.
  • Design docs synced to implementation for agent phases 1–7 (foundation, pool, gate, UI, providers, Slack, mid-session approval). Stage 9 follow-ups (env vars dropped, single shared spec/socket, installer-shipped sidecar) captured in command-gate-architecture.md.

Migration

No DB migration required — agent_channels, provider_statuses, and the gate spec/audit files are auto-created on first boot.

If you ship a downstream branded build, rebuild with the new wick build so the installer ships <app>-gate[.exe] next to the main binary. Without it the gate falls back to embedded extract on first use, which still works but loses the installer-managed sibling location. There is no env-var override (WICK_GATE_BIN / GATE_BIN were removed).


Curated for the v0.9.0 release.


v0.8.11

Released on 2026-05-07

Fixed

  • Resolved an issue where the application version was incorrectly baked during builds by aligning CI environment variables with the expected build flags.

Improved

  • Updated installer filenames to include version, operating system, and architecture details for better visibility and management.

This summary was automatically generated by Gemini AI


v0.8.10

Released on 2026-05-07

Fixed

  • Resolved an issue where the Windows updater failed to locate assets by switching from .exe to .msi format.
  • Fixed Windows silent installation failures by utilizing msiexec to ensure the update properly overwrites the existing installation.

Improved

  • Added diagnostic logging for Windows updates, saving logs to msiexec-install.log in the cache directory to aid in troubleshooting.
  • Updated the release template configuration.

This summary was automatically generated by Gemini AI


v0.8.9

Released on 2026-05-07

Added

  • Secure first-boot flow requiring password rotation and email setup upon initial login.
  • Automatic generation of a 5-word (CVCVC) admin passphrase stored in a secure local file.
  • "wickmanager" built-in connector providing 24 operations for managing app, job, tool, and connector configurations.
  • Host allowlist middleware to restrict HTTP requests to the configured application host.
  • OS toast notifications triggered upon system tray launch.
  • Auto-launch functionality for Windows systems after installation.
  • Tray menu items for quick access to initial credentials and the server URL.
  • Sensitive data redaction in logs for authentication and configuration endpoints.
  • Dedicated mcp.log for auditing management plane activities.

Fixed

  • Log file initialization on Windows to prevent 0KB log files when running without a console.
  • Windows pipe communication for MCP by replacing -H=windowsgui with dynamic console management, allowing 'mcp serve' to function correctly with external clients.

Improved

  • Migrated standard library logging to structured zerolog calls throughout the application.
  • Enhanced logging strategy to prioritize file output to ensure logs are captured in GUI environments.
  • Relocated application data storage to the user's home directory.
  • Refined process management lifecycle for server and worker components.
  • Build process feedback with status indicators for MSI and DMG packaging.
  • Documentation for environment variables, system tray usage, and secure-by-default workflows.

This summary was automatically generated by Gemini AI


v0.8.3

Released on 2026-05-06

Added

  • Installer-friendly artifact generation via the --installer flag, providing per-user .msi packages for Windows and .dmg drag-to-install images for macOS.
  • Automatic detection of MSYS2 environments on Windows to auto-register gemini-msys2, codex-msys2, and claude-code-msys2 configurations for MSYS2 shells.

Improved

  • Refactored MCP configuration to utilize a global ~/.claude.json user config instead of project-specific .mcp.json variants.
  • Standardized Windows installation paths to %LocalAppData%\Programs to ensure reliable self-updates and autostart functionality without requiring UAC elevation.

This summary was automatically generated by Gemini AI


v0.8.2

Released on 2026-05-06

Fixed

  • GitHub updater behavior to treat 404 errors as "no releases yet" instead of a hard error.
  • Build documentation.

Improved

  • Release workflow and GitHub Actions configuration by renaming environment variables to RELEASE_* prefixes to prevent reserved keyword collisions.
  • Updater security by obfuscating embedded GitHub Personal Access Tokens (PAT) using XOR and base64.
  • Logging architecture by splitting app, server, and worker logs into dated files and routing via zerolog.Ctx(ctx).
  • Log management functionality to open the logs directory instead of individual files to improve compatibility.

This summary was automatically generated by Gemini AI


v0.8.1

Released on 2026-05-06

Fixed

  • Documentation build configuration.

Improved

  • Automated build processes.

This summary was automatically generated by Gemini AI


v0.8.0

Released on 2026-05-06

Added

  • AUTO_VERSION repository variable to automate version bumping, tagging, and committing changes back to the repository during CI.
  • wick version next subcommand to increment the last numeric segment of the wick.yml version.
  • Windows executable metadata embedding, including brand icons, product descriptions, and version information.
  • Automatic bundling of binaries into platform-native distributables: .exe for Windows, .dmg for macOS (host-only), and .deb for Linux.
  • Support for multi-platform build targets using --target, --goos, --goarch, and --all flags.
  • Native self-updater support for extracting binaries from .dmg and .deb packages.

Fixed

  • Issue where the application would fail to launch from Windows Explorer due to Cobra's automatic CLI mousetrap check.
  • Console window flashing on Windows when triggering the "Open in editor" command.
  • Port collision issues by implementing synchronous pre-flight checks and reflecting failures directly in the tray menu.

Improved

  • Consolidated application logs, databases, and configuration files into the platform-specific UserConfigDir.
  • Redirected standard output and error streams to log files for Windows GUI builds to ensure diagnostic data is captured.
  • Replaced the global TCP-based single-instance lock with per-app PID files to allow different Wick-built applications to run concurrently.
  • Changed the default server behavior to opt-in, with auto_start_server now defaulting to false.
  • Refactored build orchestration into platform-specific modules to support better maintainability and future package formats.
  • Updated CI/CD release workflows and Docker multi-arch build templates to support native bundling.

This summary was automatically generated by Gemini AI


v0.8.0

Released on 2026-05-05

Added

  • AUTO_VERSION repository variable support to automatically bump versions in wick.yml and commit changes back to the repository.
  • wick version next subcommand to increment the last numeric segment of the application version.
  • Windows executable resource embedding to include brand icons and file metadata such as FileDescription, ProductName, and Version.
  • --bundle flag for wick build to generate native macOS .app bundles (including Info.plist and icons) and Linux .deb packages.
  • Automatic bundle identifier derivation based on the go.mod module path.

Fixed

  • Issue where Windows binaries failed to launch from Explorer due to the default CLI double-click guard.
  • Global single-instance lock conflict by replacing the fixed TCP port with a per-app PID file and liveness check.
  • Console window "flash" when opening editors on Windows by suppressing the command wrapper window.
  • Sample release workflow configuration.

Improved

  • Application data organization by consolidating logs, databases, and configuration files under a single UserConfigDir tree.
  • Windows logging by piping stdout and stderr to log files, ensuring output is captured for GUI-only builds.
  • System tray server management with synchronous port collision pre-flight checks and inline failure reporting in the menu.
  • Sample Docker configuration and release YAML files.
  • Documentation for CLI subcommands, single-instance locking mechanisms, and server default settings.

This summary was automatically generated by Gemini AI


v0.7.1

Released on 2026-05-05

Improved

  • Automated the generate task (templ, tailwind, and go generate) to run during wick build, streamlining CI workflows and minimizing project configuration.
  • Updated and synchronized documentation files.

This summary was automatically generated by Gemini AI


v0.7.0

Released on 2026-05-05

Added

  • System tray architecture for desktop applications, replacing the previous GUI implementation with a lightweight tray-based control center.
  • wick build subcommand to handle cross-compilation with automatic metadata injection for application name, version, and repository info.
  • Integrated self-updater for desktop binaries with support for GitHub Release tracking, SHA256 verification, and stepwise UI feedback.
  • OS-level autostart support for Windows (Registry), macOS (LaunchAgents), and Linux (XDG) via user-scoped configuration.
  • Automatic SQLite database path resolution that prioritizes environment variables, user config, or local binary paths.
  • CI/CD templates for GitHub Actions to automate version tagging and multi-platform release builds.
  • Headless build tag support to compile binaries without system tray dependencies.
  • Daily log rotation and retention management, storing logs in user cache directories.
  • Stateful tray icons that provide visual feedback on server and worker status.
  • "About" submenu in the tray displaying application version, framework version, commit hash, and build time.

Improved

  • SQLite concurrency performance by enabling Write-Ahead Logging (WAL) mode and busy_timeout settings.
  • Default application port changed from 8080 to 9425.
  • wick init process now automatically substitutes the project name into the generated wick.yml.
  • Task execution now respects double quotes in commands, allowing complex -ldflags to be passed during builds.
  • Single-instance lock mechanism using a local TCP port to prevent conflicting background processes.
  • MCP server identification now advertises the downstream application version rather than the framework version.
  • Expanded documentation for desktop tray architecture, build workflows, and environment variable references.

Fixed

  • Issue where task command parsing incorrectly split arguments containing spaces or quotes.
  • Database connection failures when running desktop binaries from arbitrary working directories.
  • Menu display errors where update status or PAT expiration feedback was not surfaced to the user.

This summary was automatically generated by Gemini AI


v0.6.4

Released on 2026-05-04

Fixed

  • Bind Stdio MCP context to a real admin identity to enable decryption of tokens in the web UI.
  • Resolved an error occurring during database migrations.
  • Updated generated template files.

Improved

  • Refined internal application workflows.

This summary was automatically generated by Gemini AI


v0.6.3

Released on 2026-05-04

Added

  • MCP instructions for wick_enc_.

This summary was automatically generated by Gemini AI


v0.6.2

Released on 2026-05-04

Improved

  • Automated the registration of encfields for all consumers by moving the registration logic into the package initialization.

Fixed

  • Resolved an issue where consumer applications lacked the /tools/encfields route, which previously caused wick_encrypt and wick_decrypt MCP redirects to fail.

This summary was automatically generated by Gemini AI


v0.6.1

Released on 2026-05-03

Added

  • At-rest encryption for configuration values tagged as secrets using a master-keyed system.
  • Per-field metadata for connector credentials, allowing for individual tracking of field types, requirements, and descriptions.

Fixed

  • Potential plaintext credential leaks in connector error messages and audit logs through a centralized masking interface.
  • Data leak paths where decrypted tokens could be passed into non-secret fields.

Improved

  • Connector configuration architecture, migrating from a single JSON blob to a normalized per-field storage schema for better queryability and performance.
  • Database migration logic to automatically backfill legacy connector configurations into the new centralized configuration table.
  • Secret field handling in the UI to allow keeping current values when input fields are left blank.

This summary was automatically generated by Gemini AI


v0.6.0

Released on 2026-05-03

Added

  • Implemented an encrypted-fields layer using AES-256-GCM and per-user HKDF salts to secure credentials flowing between LLMs and connectors.
  • Introduced wick_enc_ tokens to ensure credentials issued for one user cannot be decrypted by another.
  • Added automatic decryption of input configurations and masking of sensitive plaintext in connector responses and audit logs.
  • Created a security-tagged tool at /tools/encfields for manual JSON-based encryption and decryption.
  • Added wick_encrypt and wick_decrypt MCP tools that redirect to the UI for secure processing.
  • Introduced the encrypted-fields skill, embedded into the binary for propagation via wick skill sync.
  • Added Mask and MaskIgnoreCase methods to connector.Ctx to allow connectors to mask sensitive data dynamically.
  • Integrated encryption key bootstrapping with support for auto-generation and WICK_ENC_KEY environment overrides.

Improved

  • Refined the encryption API by splitting MaskSensitive into Mask and MaskIgnoreCase to improve call site clarity and eliminate boolean traps.
  • Updated the sample connector and crudcrud template to demonstrate response masking for secret keywords and ignore-case configurations.
  • Enhanced system documentation, including a new reference page for encrypted fields and updated guides for MCP and connector modules.
  • Updated AGENTS.md and skill labels to include and cross-link the new encryption capabilities.

This summary was automatically generated by Gemini AI


v0.5.6

Released on 2026-05-03

Added

  • New config-tags skill as a standalone, single source of truth for configurations.
  • Automatic injection of config-tags alongside design-system during wick init.
  • Support for config-tags in wick skill sync and wick skill list commands.

Fixed

  • Issue where wick:"default=..." seed values were not applied when Go fields were zero.

Improved

  • Chart functionality with the implementation of limits.
  • UI for default and secret fields, including masking set values with bullet characters.
  • Module architecture by referencing the config-tags sibling folder in tool-module and connector-module.

This summary was automatically generated by Gemini AI


v0.5.4

Released on 2026-05-02

Added

  • New kvlist editable table widget for storing values as JSON arrays.
  • Support for wick:"kvlist=..." tags to define table columns.
  • Per-field status indicators showing saving, success, and error states.
  • New config_helpers.go utility for input handling and list processing.
  • Dedicated reference/config-tags.md documentation.

Fixed

  • Non-deterministic ordering in ListOwned by implementing a declOrder slice.

Improved

  • Revamped configuration forms to use always-visible inputs instead of click-to-edit.
  • Implemented per-field auto-saving with 800ms debounce for text and immediate updates for other input types.
  • Synchronized wick tag grammar across tool, connector, and design-system modules.
  • Streamlined module documentation by centralizing configuration tag references.

This summary was automatically generated by Gemini AI


v0.5.3

Released on 2026-05-02

Fixed

  • Updated upgrade logic to fetch the latest version from both Go proxy and GitHub to ensure real-time accuracy and resolve proxy sync delays.

This summary was automatically generated by Gemini AI


v0.5.2

Released on 2026-05-02

Added

  • Added a status field to wick_list and wick_search responses to identify connectors requiring manual configuration before execution.

Fixed

  • Resolved an issue on Windows where active binaries were locked during upgrades by implementing a rename strategy for the running executable.

This summary was automatically generated by Gemini AI


v0.5.1

Released on 2026-05-02

Added

  • Model Context Protocol (MCP) support via stdio transport, enabling integration with LLM clients.
  • CLI subcommands for mcp serve, mcp config, and mcp install.
  • Support for four MCP build modes: auto, dev, build, and rebuild.
  • Automated MCP configuration installation for Claude Desktop, Cursor, Gemini, Codex, and Claude Code.
  • wick_info tool to provide version, build time, and commit metadata to LLM clients.
  • CLI commands to start the server and worker directly.

Improved

  • Automatic directory resolution to the project root during MCP startup to ensure correct loading of .env files and SQLite databases.
  • Detection for Windows Store installation paths for Claude Desktop.
  • Binary execution logic on Windows to bypass extension requirements for PE binaries.
  • MCP auto mode using mtime-based staleness checks instead of roundtrip flags.
  • Documentation for local MCP setup, including guide sections for all build modes and installation targets.
  • Metadata field naming in wick_info for better clarity in LLM responses.

Fixed

  • Versioning inconsistencies and build flag propagation across CLI tools.

This summary was automatically generated by Gemini AI


v0.4.2

Released on 2026-05-02

Improved

  • Reorganized the crudcrud connector into a three-file layout to improve maintainability.
  • Updated the connector skill functionality.

This summary was automatically generated by Gemini AI


v0.4.1

Released on 2026-05-01

Added

  • New functionality for the wick upgrade command to self-install the CLI binary.

Improved

  • Upgrade process split into distinct prompts for the CLI binary and go.mod dependencies.
  • Support for binary-only upgrades when no go.mod file is present, preventing errors during the upgrade process.

This summary was automatically generated by Gemini AI


v0.4.0 Connectors + MCP

Released on 2026-05-01

Added

  • Connector module — third class of wick module beside Tool and Job, designed for LLM consumption via MCP (Model Context Protocol). Each module wraps one external API with a typed Configs struct + N typed Operations. See Connector Module.
  • MCP server at POST /mcp with the four-tool meta-dispatch pattern (wick_list, wick_search, wick_get, wick_execute). Tool IDs are opaque (conn:{connector_id}/{op_key}) and stable across admin renames. See MCP for LLMs.
  • Personal Access Tokens at /profile/tokenswick_pat_<32hex>, hash-only stored, render-once banner. For MCP clients that cannot speak OAuth (Claude Desktop, Cursor, cURL). See Access Tokens.
  • OAuth 2.1 with Dynamic Client Registration (RFC 7591), PKCE S256 mandatory, refresh rotation + replay detection. Access wick_oat_<32hex> (1h TTL), refresh wick_ort_<64hex> (30d TTL). For browser-based MCP clients (Claude.ai). See OAuth Connections.
  • Connected Apps at /profile/connections — per-grant disconnect (revokes every token for one user × client pair).
  • Admin pages: /admin/connectors, /admin/access-tokens, /admin/connections for cross-user management.
  • Built-in System job connector-runs-purge — daily cleanup of connector_runs audit rows older than 7 days (configurable). Code-managed; cannot be disabled. See Connector Runs Purge.
  • Per-row test panel + history at /manager/connectors/{key}/{id} — Postman-style runner with URL-synced operation dropdown, prefill from history runs, paginated audit log with filter chips, expand-row inline detail, manual Retry navigation.
  • Bundled skill connector-module — added to wick skill sync and the template's bundled skill set. The example connectors/crudcrud/ ships in scaffolded projects.
  • Three-module mental model in docs — introduction page now lists Tool, Job, and Connector side by side.

Changed

  • template/AGENTS.md documents the connectors/ folder, app.RegisterConnector registration site, and the connector-module skill row.
  • template/README.md lists the connector test page URL and /profile/mcp install snippets in the Quick Start.

Migration notes

  • Existing wick deployments upgrading to this version: the connectors, connector_operations, and connector_runs tables are auto-created on first boot. The connector-runs-purge job auto-registers and auto-enables. No manual action required.

v0.3.0

Released on 2026-04-22

Added

  • SSO domain allowlisting to restrict sign-ins to specific email domains, including a chip-based editor in the admin UI for management.
  • A wick upgrade command to facilitate internal version updates.

Improved

  • Default theme resolution for new users and guests, providing GitHub-styled themes for unauthenticated or unset user sessions.
  • Tool operator interface via a unified ToolHeader component and standardized setup-required banners across all tool pages.
  • Tool rendering architecture to pull configuration state directly from context rather than manual service injection.
  • Release workflow automation to synchronize version references across documentation, templates, and agent installation hints.
  • Agent session initialization with a preflight check to verify local go and wick toolchain installations.
  • Internal Go dependencies to their latest versions.

This summary was automatically generated by Gemini AI


v0.2.0

Released on 2026-04-21

Added

  • wick skill list and wick skill sync commands to manage bundled skills and synchronize the AGENTS.md skill table.
  • MobilePrompt component to display inline prompts specifically for mobile users.
  • Downstream tool-module skill template featuring flat tool paths and mandatory clarify+plan loops.
  • Comprehensive CLI reference documentation categorizing built-in commands and YAML task shortcuts.
  • AI-agent quickstart section and skill sync pointers in the template README and AGENTS.md.

Fixed

  • License synchronization logic.
  • Text alignment for prompts on mobile devices to ensure left-alignment.

Improved

  • CI/CD pipeline configurations.
  • Homepage hero layout responsiveness for both mobile and desktop viewports.
  • wick init scaffolding to include downstream tool-module skills and shared design-system components.
  • Documentation structure by renaming agent.md to AGENTS.md across all guides and pages.
  • Prompt instructions updated to utilize the wick dev command and version v0.1.13.
  • Desktop-specific visibility for installation components via CSS optimizations.

This summary was automatically generated by Gemini AI


v0.1.13

Released on 2026-04-19

Fixed

  • Corrected project license to MIT.
  • Synchronized license documentation and repository metadata.

This summary was automatically generated by Gemini AI


v0.1.12

Released on 2026-04-19

Added

  • MIT license for the repository.

Improved

  • Project versioning and internal metadata.

This summary was automatically generated by Gemini AI


v0.1.11

Released on 2026-04-19

Added

  • Added license information to the repository.

Improved

  • Configured CI to trigger documentation and pkg.go.dev synchronization on version tags.

This summary was automatically generated by Gemini AI


v0.1.10

Released on 2026-04-19

Fixed

  • Fixed changelog formatting and removed duplicate entries for version v0.1.0.

Improved

  • Automated CI workflow to merge trigger PRs to the release branch upon release completion.
  • Enhanced changelog documentation with version comparison links for v0.1.1 through v0.1.7.
  • Synchronized documentation and go.mod.tmpl templates for version v0.1.9.
  • Performed general cleanup and synchronization of project documentation.

This summary was automatically generated by Gemini AI


v0.1.9

Released on 2026-04-19

Fixed

  • Changelog formatting and duplicate entry for version 0.1.0.

Improved

  • CI workflow to automatically trigger pull requests to the release branch after a release completes.
  • Project documentation through synchronization and the addition of comparison links for versions v0.1.1 to v0.1.7.

This summary was automatically generated by Gemini AI


v0.1.8

Released on 2026-04-19

Added

  • Retry logic with rate-limit backoff for Gemini API requests.
  • Tag comparison links to documentation changelog entries.

Fixed

  • CI reliability issues by fetching full repository history and origin/master before merging.
  • Stale branch errors by ensuring the release-sync branch is deleted prior to pushing updates.

Improved

  • Release pipeline architecture by splitting tasks into five modular jobs for easier retries.
  • CI automation by utilizing the GitHub API for PR merges and branch deletions instead of local git operations.
  • Documentation workflow by automatically syncing changelog updates directly to project docs.
  • CI security and permission management through the use of ADMIN_TOKEN for checkout and merge actions.
  • Workflow efficiency by pushing sync updates directly to the master branch and removing redundant PR steps.
  • Repository structure by removing the root CHANGELOG.md and centralizing logs within documentation.

This summary was automatically generated by Gemini AI


v0.1.7

Released on 2026-04-19

Fixed

  • Logic for automatic documentation version updates.

Improved

  • CI/CD workflow to automatically delete release-sync branches after merging.
  • Synchronization process for go.mod.tmpl and CHANGELOG files.

This summary was automatically generated by Gemini AI


v0.1.6

Released on 2026-04-19

Fixed

  • Synced go.mod.tmpl before tagging new versions.
  • Enabled automatic merging of release-sync pull requests to the master branch using ADMIN_TOKEN.

This summary was automatically generated by Gemini AI


v0.1.5

Released on 2026-04-19

Improved

  • Synced go.mod.tmpl and CHANGELOG files for v0.1.4.

This summary was automatically generated by Gemini AI


v0.1.4

Released on 2026-04-19

Improved

  • Improved auto release process.

This summary was automatically generated by Gemini AI


v0.1.3

Released on 2026-04-19

Fixed

  • Bumped go.mod.tmpl before tagging and fixed version order in the release process.
  • Resolved issue with pushing to refs/heads/release instead of HEAD in a detached state.
  • Checked out the release branch before commit and tag to prevent detached HEAD push errors.
  • Synchronized Go modules.

Improved

  • Updated pipelines.

This summary was automatically generated by Gemini AI


v0.1.2

Released on 2026-04-19

Added

  • Add version command.

Fixed

  • Resolve CI/CD issues.
  • Resolve documentation build issues.
  • Correct wick init setup call.
  • Address version-related issues.

Improved

  • Update README.md documentation.
  • Enhance CI/CD processes.
  • Update project pipelines.
  • Update go.mod template version during releases.
  • Optimize package JSON location.

This summary was automatically generated by Gemini AI


v0.1.1

Released on 2026-04-19

Improved

  • Update pipelines.
  • Update README.md documentation.
  • Update CI/CD for documentation builds.
  • Update go.mod template version during release.

This summary was automatically generated by Gemini AI


v0.1.0

Released on 2026-04-19

Initial public release.

Added

  • wick init <name> — scaffold a new project from template, auto-run go mod tidy + go run . setup
  • wick.yml cross-platform task runner — setup, dev, build, test, tidy, generate
  • Tool modules (tools/<name>/) — mount at /tools/{key}, typed Config with wick:"..." tags
  • Background job modules (jobs/<name>/) — operator surface /jobs/{key} + admin surface /manager/jobs/{key}
  • Tag system — group and filter tools/jobs with DefaultTag, admin-managed
  • Visibility control — VisibilityPublic / VisibilityPrivate per tool
  • Runtime config — Config structs reflected into admin-editable configs table rows
  • SSO support — configurable from /admin/configs, no redeploy needed
  • AES-GCM stateless sessions — per-job access, theme cookie persistence
  • Tailwind CSS + templ — standalone Tailwind CLI (no Node.js), type-safe Go templates
  • Claude Code integration — agent.md + Claude skills shipped with every wick init project
  • External link cards — register URL shortcuts as tool cards via RegisterToolNoConfig
  • Dark/light theme — user preference persisted via cookie
Built with ❤️ by a developer, for developers.