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, withdef_schemareturning full draft reference (supported widgets, template syntax, validation, icon rules, categories, examples, and decision points) anddef_validatedry-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 withTokenURLandExtraParamssupport), andsso(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/templaterequest recipes.
- 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
- 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 newcustom-connectormanagement 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-onlygoogle_driveconnector, joined by 12 new ops: file creation (create_doc,create_sheetfrom 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 todrive,spreadsheets,documents,presentations,userinfo.email; the health check probes the granted scopes and reports per-op availability. See Google Workspace. - Session workspace (
wick_session_workspaceMCP 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 inwick_list/wick_get/wick_executefor 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 declaresAllowSessionConfigand an admin enables the per-instance toggle (the custom-connector definition carries the sameallow_session_configflag). 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_usermulti-question wizard — passquestions[]instead of a singlequestionto collect multiple answers in one step-by-step modal. Each question has akey,type(choice/multi/rank/dropdown/text/secret), optionaloptionswith per-optiondescription,required,placeholder, andhelp. Single-select options auto-advance; Enter also advances. Response is{"values": {"key": "answer", ...}}.ask_userfrom stdio — anaskuser.sockUnix socket bridgesask_usercalls 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 includesask_userandwick_session_workspaceso they are never blocked at the hook level.- Per-channel
ask_user_enabled— Slack, Telegram, and REST channels each gain anask_user_enabledconfig field (defaultfalse). Web UI and interactive MCP clients use the globalAskUserModesetting. See AskUser policy. - Attention notifications — when an
ask_userorapproval_requestSSE event fires while the session tab is in the background, wick plays a short two-tone chime and (with permission) fires a browserNotification. Audio and notification permission are unlocked on the first user gesture. - Access control — App Owner tier & per-user isolation — a new
is_ownertier 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 thewick_session_infoandwick_set_titleMCP tools. TheProviderssection 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, withcreated_bykept 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 withcreated_bystamped 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_channelsrow (user_id = <id>); the App Owner row usesuser_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_sessionop +PublishSessionMetaSSE;stdio set_titlerelays 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 decoupled —
GateEnablednow controls only thePreToolUsecommand-gate hook. Turning the gate off no longer disablesask_user. google_drive→google_workspace— the code-only Google Drive connector was replaced by the broader Google Workspace connector under a new key. Existinggoogle_driveinstance 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-sessionsoul.mdpreset was previously passed via the unknown keyinstructions_files(silently ignored by Codex), so the model never received the session identity block or wick rules. Fixed to usemodel_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
secretlikewise requires admin or the connector's owner. The OAuthConnectorAccountschema separatesExternalUserID(provider-side) fromWickUserID(wick platform), fixing session-ownership stamping for connections such as Slack. Thewick_skill_syncMCP tool is restricted to admins. - The
allow_session_configflag 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_MCPenvironment variable has been added to the server configuration.- Generic OAuth path:
response_type=codeis added toExtraParams, andGetUserIdentityfailures are handled correctly. Ignored errors inuploadMultipartfor Google Workspace are fixed. - Session ownership checks (
ownsSessionhelper) are now used consistently, and thesessionProcessesguard pattern is fixed. OwnerUserIDis 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.
SetSkillStoreis now correctly wired at server startup.created_byis now stamped in the database on skill upload, alongside the owner tag.addSlidefor Google Slides now uses actual API-assigned placeholder IDs for title/body text.- Interface maps in the registry are now copied using
maps.Copyinstead of manual loops. - Unused
loadChannelRowsremoved; all callers now useloadChannelRowsForUser. - All Slack channel instances are now wired at boot; a break that skipped multi-instance wiring has been removed.
- The
seedOwnermigration logic now promotes the oldest admin-role user to App Owner whenis_owneris 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;
HasAnyKeyedguards per-user channel fallback. - The Channels menu is now visible to all users, not just admins, aligning with per-user channel configuration.
- The
seedOwnermigration 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
upgradetoken from theConnectionheader. The system now correctly re-injects theupgradetoken ifUpgrade: websocketis 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 installcommand 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.systemdStatusnow 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_spansurfaces tool catalog and span metadata: Theget_spanfunction 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'stool_callsto understand why a model picked or ignored a tool.invocation_parameters: Model parameters such astemperature,reasoning_effort, andtool_choice(the redundant tools array is stripped).metadata: Passthrough of the producing application's span metadata, includingrequest_id,room_id,user_id,langgraph_node, andquestion_history_id.token_count *_details: A breakdown ofcache_readandreasoningtokens.
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
PartialTextby guardingturnBufwrites with a mutex. - Propagated request context to
PublishAndReloadandToggleAndReloadin workflows to ensure proper cancellation and timeout. - Prevented timer leak in
terminateProcby replacingtime.AfterwithNewTimerandStop. - Resolved agent deadlock by releasing agent mutex before stdin write in
send()to prevent conflict withdrainPending.
Improved
- Gate auto-approves wick read-only / info MCP tools: The
PreToolUsegate 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, andwick_set_title. These no longer trigger the per-tool approval prompt.wick_executeandwick_skill_syncremain 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
titleandtitle_customflag. The agent reads these from the prompt at spawn time instead of making awick_session_inforound-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 tosystemctl --userwhen 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_infoMCP tool: A read-only tool that returns an active session'ssession_id,title,title_custom,origin,status, andproject_id. This allows agents to determine if a session already has an explicit title before attempting to set one.wick_set_titleMCP tool: Sets the session's sidebar label and markstitle_custom = true. This prevents the auto-derived first-message label from overwriting a chosen title.session.Meta.TitleCustomflag: A new boolean on session metadata. Whentrue, thesetLabelIfEmptyprocess skips the auto-label step, preserving any title set by a human or by an agent viawick_set_title.- Auto-title via system prompt: The immutable agent system prompt now instructs the agent to call
wick_session_infoat conversation start and set a short descriptive title usingwick_set_titlewhentitle_customisfalse. 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 likewick_session_infoandwick_set_title. - Documentation: Updated documentation for the new
wick_session_infoandwick_set_titleMCP 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
/healthand/boot-status) now receive an HTTP 503 page. This holding page displays a spinner and live phase label, auto-pollsGET /boot-statusevery 1.5 seconds, and reloads automatically once the server reports readiness. The/healthendpoint 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/healthcheck.- 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
iterAllfunction used GORM'sFindInBatcheswith a customORDER BY (provider_type, instance_name, rel_path).FindInBatchespaginates using a primary-key cursor (WHERE id > last_max_id), which is only correct when the results are ordered byid. 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 replacesFindInBatcheswith a plainRows()cursor iterator, which streams every row in a single query pass. This ensures memory usage remains constant while safely allowing custom ordering by includingidas 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_LIMITenvironment 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 (
RepairProviderStorageTreeandstore.repairOrphans) to no longer loadContentblobs 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 theprovidersyncgate. It now runs in a background goroutine only when the sync job is enabled andprovider-storageis 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
RepairProviderStorageTreeimplementation.
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_LIMITto thedocs/reference/env-vars.md. - Included changelog entries for the new soft memory limit and the
repairOrphansmemory 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
sizecolumn 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
httpworkflow node and the generic internal HTTP client now cap response buffering at 64 MiB and return an error for larger responses. Previously these were unboundedio.ReadAllcalls. - Webhook body cap: inbound webhook trigger requests are now rejected with
413if the body exceeds 10 MiB. - Access-log middleware: large or streaming request bodies (
multipart/form-data,application/octet-stream,text/event-stream, orContent-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 on127.0.0.1:6060for 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 ofGOMEMLIMIT. See Environment Variables ▶ WICK_MEMORY_LIMIT. repairOrphansno longer loads file content: the twoFindInBatchespasses in the provider-storage tree-repair path now omit theContentcolumn, 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.
RestoreAllcompletion reports detailed metrics includingtotal_files,processed,restored,skipped_match,skipped_diverged, andskipped_uncoveredto 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
Restoreoperations now correctly useRestoreAllForceto overwrite diverged files, ensuring desired changes are applied instead of retaining disk copies. - Error Handling:
iterAllbatch errors are now properly returned instead of being swallowed. - Postgres Compatibility:
purgeExpirednow uses a Postgres-native interval query, resolving an error caused by the SQLite-onlydatetime()function on Postgres.
This summary was automatically generated by Gemini AI
v0.16.6
Released on 2026-06-11
Fixed
- Agent node
max_turnsnot cleared on reuse: When a workflow reused an existing session and the agent node hadmax_turns: 0(unlimited), the previously-persisted cap from an earlier run was silently kept. The node now always writes the value — including0— 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 optionalmerge_strategy(merge_commit,squash,fast_forward),message, andclose_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
WICK_PROVIDERSYNC_DISABLEenv var: Set totrueto disable sync, boot restore, and the realtime watcher for a specific instance without touching the DB. Useful when multiple servers share one database. See Provider Storage → Per-instance kill switch and Environment Variables.
Fixed
- Bounded boot restore memory:
restoreAllnow 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
providersyncrestore operations for reduced memory usage and enhanced user feedback.- Switched from
listAlltoiterAllwithFindInBatches(50)to process content blobs in batches, significantly reducing peak memory consumption. - Implemented
countAllto 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.
- Switched from
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, andworkflow_env_deleteoperations 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_getare masked as••••••••. - When setting secret fields via
workflow_env_set, callers must providewick_enc_tokens.
Fixed
- Provider Storage Sync: The
provider-storage-syncjob 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-syncnow 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.txtto 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.shandinstall.ps1wrappers 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
APPandREPOenvironment 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 (
fullmode) 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
localStoragekeyed 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_respondnode andRespondMode: Added awebhook_respondnode for custom HTTP responses (status, body, headers) from workflows and introducedTrigger.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
warnlevel instead oferror, reducing noise for expected client errors. - GORM
record not foundlog noise: GORM logger is set toSilent, preventingrecord not foundqueries 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_tokenanduser_tokenfields 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
yamland file-based references with format-neutral descriptions to reflect DB-primary JSON storage for workflows. - Workflow data storage optimization: Removed unused
yaml:"..."struct tags andMarshalYAMLmethods 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_listcommand now supports filtering bykind=connector|accountwith 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:
ClientIDandClientSecretmoved from a shared server-wide setting to each connector instance'sConfigs. Every instance now carries its own OAuth app registration, so different instances can use different OAuth apps. ConnectorAccounttable: connected OAuth accounts are stored as sub-records of a connector instance, not as duplicate rows. Each account storesDisplayName,AccessToken, and aDisabledOpsJSON 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
OpsSectioncomponent is reused across the detail page and per-account op views. - Per-account operation disable list — each
ConnectorAccountcan carry a JSON list of op keys to disable.wick_executewith an account-scopedtool_idrejects those ops before reachingExecuteFunc. - MCP
wick_list—kindandparent_idfields: every entry now includeskind("connector"for a standard instance,"account"for a connected OAuth account) andparent_id(the connector row ID whenkind="account"). - MCP
wick_get— composite id: accepts aconnectorID/accountIDcomposite id returned bywick_listaccount entries; tool IDs are scoped with an@accountIDsuffix when a specific account is targeted. - MCP
wick_execute— account token injection:AccountIDis extracted from the compositetool_id; the selected account'sAccessTokenis injected asuser_token/auth_mode=user_tokenbeforeExecuteFuncruns. Per-account disabled ops are enforced before execution. - Destructive op warning in MCP responses: ops marked
OpDestructivenow append⚠ DESTRUCTIVE: Always confirm with the user before executing this operation.to their description inwick_list,wick_search, andwick_getresults. - Slack connector:
BotTokenandUserTokenare now always visible in the admin form (removedvisible_whenconditional display).ClientIDandClientSecretare new per-instance fields for OAuth app setup used by the Connect Account button.
Changed
- Destructive ops default ON:
connector.OpDestructiveops now default toEnabled=trueon every new row (previously defaultedfalse). The LLM is responsible for confirming destructive intent with the user; the system-level default-off gate is removed. SystemDisabledis advisory-only: a health-check lock (system_disabled=true) no longer hard-blocks execution. If the admin has explicitly setEnabled=true, the call proceeds; the advisory is recorded in run history. PreviouslySystemDisabledwas 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 bymetadata['app_id']), andget_span(full detail: messages, tool calls, token usage, cost). Registered under theObservabilitytag. 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, sowick_manager_*(andwick_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 inworkflows.env_valuesDB 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
pathfield now stores only the URL-safe slug (no leading slash, nowf_idprefix). 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) returns202 Acceptedat enqueue and runs async.last_nodeblocks until the workflow finishes (≤ 30 s) and returns the last node's JSON output with200.respond_nodeblocks until awebhook_respondnode fires, then returns that node's custom status, body, and headers. Both blocking modes time out with504after 30 seconds. webhook_respondnode: 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 hasrespond_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_nodeon a webhook trigger but no reachablewebhook_respondnode from the trigger'sentry_nodenow raises a Warning in the Validation panel. The publish still proceeds; at runtime the caller receives502 Bad Gatewayif 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_nodewith 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_modesset tofixedcontains 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
wickmanagerconnector's operations are now surfaced directly intools/listaswick_manager_<op>tools (e.g.,wick_manager_app_list). This allows LLM clients to discover and call manager operations without thewick_list→wick_get→wick_executediscovery cycle. These tools work over both stdio and the Streamable HTTP/SSE transport. To avoid double-exposure,wickmanageris excluded fromwick_listandwick_search.
Fixed
- MCP SSE transport dispatch: Tools such as
wick_info,ask_user,wick_list_providers,wick_skill_list, andwick_skill_syncnow work correctly over the Streamable HTTP/SSE transport. Previously, they were advertised intools/listbut returned "unknown tool" ontools/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 releasedwick-agentbinary by integrating its call intopostgres.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-agentbinary. The previous fix (#589) wirednetboot.Setup()only into the in-repo entry points; Go's internal-package rule prevented the separatewick-agentwrapper module from importing it, so the fallback was dead-code-eliminated from the shipped binary. Setup is now called insidepostgres.NewGORM()— a chokepoint every entry point reaches before the first DNS lookup — and is guarded bysync.Onceso it runs exactly once. - Empty Slack pings (bare
@botmentions) 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_turnstoclaude --max-turnsfor 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
--resumesessions by clearing thecli_session_idif 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
hoverOnlyWhenSupportedto 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_ORIGINSto~/.bashrcduring 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_FILErequired. When/etc/resolv.confhas 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 newWICK_DNS_SERVERSenv var (comma/space-separated) overrides all of these. TLS: when$PREFIXis set and no system cert store exists,SSL_CERT_FILEis 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
@botmention 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 inlocalStorage); per-file stage (+), unstage (−), and discard (↺) actions (discard is destructive — confirms before runninggit 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 inlocalStorage. Live updates via a server-side fs watcher that pushesgit_statusSSE events — the Changes section and th e Source rail tab badge refresh with zero polling. Backend: new Go packageinternal/agents/scm/; endpoints under/tools/agents/api/sessions/{id}/git/*. RequiresgitonPATH.
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-wrapCSS utilities. - Hover styles are now only emitted for devices that support hover (
hoverOnlyWhenSupported), preventing buttons from staying stuck in:hoverstate 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-colorwith the active theme (all 12 themes) via runtime CSS variable sync.
Fixed
- Resolved 403 errors for internal agent MCP connections by exempting
/mcprequests from loopback hosts (127.0.0.1,::1,localhost) in thehostAllowlistHandler. - Corrected workflow version history display and functionality:
- Added JSON tags to
entity.WorkflowVersionfor 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
SaveDraftskip new snapshots when the body is identical to the last draft. - Introduced new API endpoints:
DELETE /api/workflows/versions/{id}/{versionID}andDELETE /api/workflows/versions/{id}. - Adjusted autosave debounce from 800ms to 2000ms.
- Added JSON tags to
Improved
- Replaced the free-text "Workspace override" input on the
session_initnode 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) andDELETE /api/workflows/versions/{id}(all snapshots). - Version compare now renders a real colored diff with an "All / Diff only" toggle; the same
JsonDiffcomponent is reused by the JSON preview tab.
Fixed
- Agent-node
max_turnsis now wired to Claude's--max-turnsflag. Previously the field was stored but never forwarded to the subprocess, making it a silent no-op.0continues 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--allowedToolsat 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/skillswhen the directory exists; the system-prompt path table carves outskills/**as read-allowed while the rest of~/.claude/**stays denied. - Persistent (workflow_global) sessions now self-heal a stale
--resumeID. 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_executionresult subtype is no longer surfaced as a blank "agent error: " message. - Workflow version history (History tab) now correctly receives
id,kind,message,created_at, andbodyfields; 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_initnode "Workspace override" field is now a dropdown populated from existing projects instead of a free-text input, preventing theensure session: project not foundruntime error caused by typing a non-existent project ID.
v0.15.3
Released on 2026-06-06
Added
- Automated crediting of contributors with
@mentionsin GitHub release bodies. - Enhanced release preparation to paginate commit lists and extract GitHub
@loginhandles for contributors. - Updated release creation to include a "Contributors" section in the release body.
Fixed
- Resolved HTTP 500 errors for the
GET /mcpSSE handler by correctly probing and usinghttp.Flushersupport via the middleware Unwrap chain withhttp.NewResponseController. - Corrected the
tools/callSSE path, which was silently falling back to JSON due to the samehttp.Flusherdetection issue. - Added a regression test to ensure
GET /mcpproperly opens SSE streams throughUnwrap-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-syncsubagent with aPreToolUse(Bash)hook to keepdocs/synced with code changes before pull requests. - Introduced a per-provider
SendModeconfiguration (default, append, queue, spawn) for agent instances. - Added a cross-session
Active Processespanel (accessible from session view and providers page) for real-time visibility into provider, PID, queued count, and agent lifecycle. - Integrated
internal/processctlfor 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
/mcpand setting anMcp-Session-Idheader 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
ReconcileDeadto correctly skip respawn-mode agents when they are idle between turns. - Wired Codex
stdinto the null device to prevent hangs on Windows. - Resolved a data race in
capacity_testby injecting provider capacity directly instead of relying on asynchronousprovider.Saveoperations.
Improved
- Relaxed Claude spawn behavior to drop
--strict-mcp-configby default, merging the Wick server with existing MCP servers, while offeringWICK_STRICT_MCPfor isolation. - Updated the contributing guide to include details about the
doc-syncworkflow. - Synchronized public documentation with
v0.15.1features, includingtransform(jq engine),slack(channel-node workflow actions),workflow(import/publish),workflow/state(run detail/delete),branch/classify, and thebitbucketconnector. - Documented
WICK_STRICT_MCPandWICK_DISABLE_SHARED_MCPenvironment variables. - Enhanced agent message handling by replacing the single-slot
pendingMsgwith apendingQueueto 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
\nas 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_commentoperation now supports inline comments by specifyinginline_pathandinline_to/inline_fromparameters. - Workflow events API now supports
events_limitfor tailing the last N events, returns total and truncated counts, and evicts the index cache upon workflow deletion. - Transform nodes now include a
jqengine for advanced JSON processing usinggojq. - 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_secandrequire_statuscontracts, 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
TraceEventInlineKBandTraceEventMaxKBagent configurations to control trace event storage. - Created new API endpoints (
GET /sessions/:id/turns/:turn_idand/events/:event_id) for lazy fetching of conversation traces. - Integrated UI lazy-loading of conversation traces when "show trace" is clicked.
- Added an
Interruptedfield toConversationTurnto 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
ReadJSONLfor large conversation files by replacingbufio.Scannerwithjson.Decoder. - Updated tests to reflect the trace split storage refactor.
- Ensured
prootis 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.goto 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
MaxAssistantTurnBytescap 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_fileoperation using the Slack v2 three-step upload flow.
Improved
- Optimized
providersyncperformance by eliminating N+1 queries in folder pruning using a single subquery. - Reduced peak memory usage in
providersyncby batch-fetching orphan repairs in chunks of 500. - Batched subtree deletions in
providersyncto 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
globMatchwhere Windows-style backslash patterns failed to match on Linux and macOS environments. - Fixed a pool process termination bug where
Killfailed on stale agent names by falling back to session prefix scanning. - Fixed a 422 'no agent' error in channel sessions on
sendMessageby implementing anOnAgentAddedcallback 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/newendpoint 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
ErrAlreadyRunningerrors by validating that the running process executable matches the expected daemon binary.
Improved
- Enhanced the
wick statuscommand 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/paletteendpoint, 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_ROOTis 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
templcache on its pinned version ingo.modinstead ofgo.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 rawcurlwrites. - Fixed a Windows binary resolution bug in
safeexecby 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_caseno 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.Marshalare 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 — useworkflow_getand the dedicated edit ops (workflow_add_node,workflow_set_triggers, etc). prompt_file: nodes/<file>.mdon agent and classify nodes. Use the inlinepromptfield; templates resolve against.Event,.Node,.Triggeras 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/booleanconfiguration 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
100dvhand 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_changedflag 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
--hostand--localhostCLI flags (andWICK_HOSTenvironment variable) to restrict the server's bind address. - Support for sequential boot-time shell scripts via new
startup_scriptandstartup_script_enabledadmin variables to facilitate vendor tunnel (e.g., ngrok) configuration.
Fixed
- App-level
ALLOWED_ORIGINSenvironment 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
prootand 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
gottysubprocess would fail with aSIGSYSerror duringLookPathexecution 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.Commandandsafeexec.CommandContextwrappers to safely resolve binary paths without triggeringfaccessat2. - Added an AST-walking unit test (
TestNoDirectOSExec) to prevent future direct usage ofos/execfunctions across the codebase.
Fixed
- Resolved a critical process crash (
SIGSYS) on Termux/Android systems running kernels < 5.8 by routing all command executions throughsafeexec. - Fixed a release asset naming mismatch for the gate sidecar (
wick-agent-gate), resolving 404 download errors during installation. - Corrected path resolution in
safeexec.LookPathon 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
versionsubcommand and-v/--versionflags towick-agentandwick-agent-gateto 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.shandinstall.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_ORIGINSin~/.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
gottyfrom 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, andservice 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
SIGSYSsystem call crashes in Termux on older Linux/Android kernels (< 5.8) by routing executable lookups through a custom safe-execution layer instead of standardexec.LookPath. - Fixed a 30-second stall during installation on virtual machines with unresolved hostnames by removing hardcoded
sudoprefixes 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_ORIGINShost allowlist configuration and environment variable to allow secure remote and LAN access alongside the canonicalAPP_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/setandconfig allowed-origins ...) for managing application configuration and allowed origins from the terminal. - Interactive LAN IP whitelisting and automated
gottyweb terminal installation in the setup script (install.sh). - Automated bot attribution footer ("Sent using <@BotID>") appended to Slack connector
send_messagepayloads using Block Kit.
Improved
- Environment variables (
APP_URLandWICK_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
wicktowick-agentto prevent naming conflicts with thewickCLI development tool. - Updated installation scripts, CI configurations, and documentation to use the new
wick-agentbinary 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-arm64binary.
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+Downshortcut in the agent chat interface. - Universal
install.shandinstall.ps1scripts, automatically scaffolded into new projects viawick init.
Improved
- Documentation for the connector HealthCheck hook,
OpHealthcontract, 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/responsesand/integrations/rest/api/v1/openai/modelsendpoints. - 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_idto the standardconversationkey 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
fsnotifythat monitors storage sources dynamically and updates kernel watch sets immediately upon configuration changes. - Configurable watcher settings including
watcher_status(enabled by default) andwatcher_debounce_ms(defaults to 1000ms).
Improved
- Redesigned the storage backup mechanism to stream files via
WalkDirandio.Copyinto 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.jsonllogging. - 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_typeanddb_statusfields to thewick_infoMCP 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
WickInfotests 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 (
MaxTimeoutMinfield, 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_minin 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, introducingwick_skill_listandwick_skill_synctools. - Skills Manager documentation in the agents guide.
Fixed
- Test suite compilation by updating
SyncOnecaller 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
skillsyncpackage 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
CancelJobcapability to the job manager viaPOST /manager/jobs/{key}/cancel.
Improved
- Refactored the provider storage sync job to remove
RestoreAllfrom 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.jsonfile, by aligning the duplicate check inCreateto check forWorkspaceMeta.
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
#providerprefix command. - An
agentctlUnix socket for interacting with the running daemon pool from MCP stdio. - Granular, per-instance sandbox modes (
read-only,workspace-write, anddanger-full-access) for Codex configurations. - Verbose per-file logging toggle and run ID correlation for provider-storage sync and restore runs.
- A new
system_turnSSE 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_listandwick_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/snapshotJSON 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_createanddatatable_insertby 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
RestoreAllForceand remove redundantSyncAlloperations. - Cron sync execution flow to run a guarded
RestoreAllbeforeSyncOneso 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-deleteX 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'sDescribe(), 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 policy —
GateConfignow carriesPermissionMode(per-tool prompts) +AskUserMode(MCPask_user) sub-policies. Master switch snaps both to their unguarded defaults when off. MCPask_usershort-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
slugfield renamed toidacross the codebase. - Channel config layer — manual field mapping replaced with
MapToStruct;decryptFncallback removed fromGetChannelConfigMap;wick_cenc_tokens decrypted in-place; channel configs hidden from settings page and encrypted at rest. - Gate
AppNamederives 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
sendHandlersigns). - Slack
cannot_dm_bot— detect bot users before callingconversations.open. - Slack: post with
xoxptoken without overriding the username, so the real user identity is preserved. - Slack: auto-promote
U...channel IDs totarget_user_idfor session headers; inituserTokenCacheand pre-build the token map at startup. - Canvas: reject duplicate edges in
Connect; guard against deleting the entry node. wick_infouses the baked app name instead of the cwd basename.- Provider-storage:
strings.ReplaceAllfor cross-platform backslash normalisation.
Migration notes
- The legacy
agents.bypass_permissionscheckbox is gone. Its value is one-shot migrated togate.permission_modeat 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.
allCLI 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
wickinstallation to the version specified ingo.modfor 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 initcommand 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
templtool 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.shscript 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-dockerandbuild-binariesjobs 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
providersyncpackage 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-slimto support glibc requirements for the Claude CLI. - Integrated Gotty cross-compiled binaries and Claude CLI into the standard Docker image.
- Added non-root
appuser with sudo privileges for secure credential management. - Integrated
app-gatesibling 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.jsonduring 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_mentionevents in public and private Slack channels. - The
app_mentions:readscope 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-denyand 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-moduleskill to enhance agent capabilities. - Diagnostic "Test gate" button on the Providers page to verify command gate enforcement.
--probe-denysubcommand 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 bypassPermissionswas 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.ymltasks when using plainrunblocks 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 doctorutility. - Reference documentation for gate sidecar bundling.
Fixed
- Connector registration idempotency on
Meta.Keyto 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 viameta.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-indefaultworkspace seeded on fresh install. See Projects. - Multi-instance providers.
claude/work+claude/personalwith 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.
--versionlookup 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_WINDOWapplied to provider probe + spawn paths. - Command Gate. Sidecar binary
<app>-gateintercepts every Bash command via Claude'sPreToolUsehook. 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'scwdagainst known workspace paths. - Gate audit. Multi-stage entries to
~/.<app>/agents/gate/commands.jsonl(received→socket_dial→socket_sent→socket_recv→terminal), all tied byRequestID. 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 bywick build --installer) → embedded//go:embedextract → PATH.WICK_GATE_BIN/GATE_BIN/WICK_GATE_SPEC/GATE_SPECall dropped. - Installer ships the gate sidecar. Windows MSI ships
<App>-gate.exe, Debian.debships/usr/bin/<app>-gate, macOS.appbundle shipsContents/MacOS/<App>-gate. Builder absorbs the gate compile step (no separate CI job); soft-skips on downstream forks withoutcmd/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 harnessAskUserQuestiondoesn't. - Provider spawn log. Per-spawn JSONL at
~/.<app>/agents/providers/spawns/<type>__<name>__<session>__<unix-ms>.jsonlwithstart(PID, argv, binary, first user message) andexitevents.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.OnSessionCreatedhook 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_datalimit), 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 itsAppName, locates the matching<app>-gatesidecar, dials the socket with a probe request that auto-replies without bothering a human, verifies socket / spec paths align.AppNamesingle source of truth.internal/appname.Resolve()is the only chain:BuildAppNameldflag →wick.ymlname:→"wick".APP_NAMEenv 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 brandedwick-lab-gate.exelands 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.
/metricsendpoint (Prometheus-compatible) for connector execution telemetry and latency.pkg/conntesthelper 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 beforereleaseSlot(pool.go:378) so a fastSendarriving right afterActive==0cannot collide its meta.json write with the trailing idle write (twoos.Renameto the same target). Killed flakyTestPipeline_ResumeAfterIdleKill+TestQueueWhenPoolFull. - Double-spawn / slot-count race. Pool now tracks an in-flight
spawningKeysset; concurrentSendcalls cannot each see "slot free" and callspawnsimultaneously. Same guard prevents two exit hooks from popping the queue at the same time. - SSE delivery & flush. Switch to
ResponseControllerfor 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 bypassPermissionsis now passed to Claude only when a gate is wired (allowed_cmdsnon-empty), preventing permission-less Slack sessions. - Gate hook injection. Hooks injected via Claude's user
settings.json(per-spawn--settingsflag), 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_urland 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
claudeCLI's stream-json protocol and long-lived process lifecycle (multi-turn within one process, no respawn per message). Real-claude E2E test gated byWICK_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 packageinternal/agents/provider/consolidating driver + spawner + per-instance config + spawn logger. - Registry split.
RegisterBuiltins(default-on agents tools) vsRegisterLabSamples(lab-only);cmd/lab/renamed tocmd/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
.exeto.msiformat. - Fixed Windows silent installation failures by utilizing
msiexecto ensure the update properly overwrites the existing installation.
Improved
- Added diagnostic logging for Windows updates, saving logs to
msiexec-install.login 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.logfor 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=windowsguiwith dynamic console management, allowing 'mcp serve' to function correctly with external clients.
Improved
- Migrated standard library logging to structured
zerologcalls 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
--installerflag, providing per-user.msipackages for Windows and.dmgdrag-to-install images for macOS. - Automatic detection of MSYS2 environments on Windows to auto-register
gemini-msys2,codex-msys2, andclaude-code-msys2configurations for MSYS2 shells.
Improved
- Refactored MCP configuration to utilize a global
~/.claude.jsonuser config instead of project-specific.mcp.jsonvariants. - Standardized Windows installation paths to
%LocalAppData%\Programsto 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_VERSIONrepository variable to automate version bumping, tagging, and committing changes back to the repository during CI.wick version nextsubcommand to increment the last numeric segment of thewick.ymlversion.- Windows executable metadata embedding, including brand icons, product descriptions, and version information.
- Automatic bundling of binaries into platform-native distributables:
.exefor Windows,.dmgfor macOS (host-only), and.debfor Linux. - Support for multi-platform build targets using
--target,--goos,--goarch, and--allflags. - Native self-updater support for extracting binaries from
.dmgand.debpackages.
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_servernow 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_VERSIONrepository variable support to automatically bump versions inwick.ymland commit changes back to the repository.wick version nextsubcommand 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.
--bundleflag forwick buildto generate native macOS.appbundles (includingInfo.plistand icons) and Linux.debpackages.- Automatic bundle identifier derivation based on the
go.modmodule 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
UserConfigDirtree. - Windows logging by piping
stdoutandstderrto 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
generatetask (templ, tailwind, and go generate) to run duringwick 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 buildsubcommand 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_timeoutsettings. - Default application port changed from 8080 to 9425.
wick initprocess now automatically substitutes the project name into the generatedwick.yml.- Task execution now respects double quotes in commands, allowing complex
-ldflagsto 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
encfieldsfor all consumers by moving the registration logic into the package initialization.
Fixed
- Resolved an issue where consumer applications lacked the
/tools/encfieldsroute, which previously causedwick_encryptandwick_decryptMCP 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/encfieldsfor manual JSON-based encryption and decryption. - Added
wick_encryptandwick_decryptMCP tools that redirect to the UI for secure processing. - Introduced the
encrypted-fieldsskill, embedded into the binary for propagation viawick skill sync. - Added
MaskandMaskIgnoreCasemethods toconnector.Ctxto allow connectors to mask sensitive data dynamically. - Integrated encryption key bootstrapping with support for auto-generation and
WICK_ENC_KEYenvironment overrides.
Improved
- Refined the encryption API by splitting
MaskSensitiveintoMaskandMaskIgnoreCaseto improve call site clarity and eliminate boolean traps. - Updated the sample connector and
crudcrudtemplate 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.mdand 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-tagsskill as a standalone, single source of truth for configurations. - Automatic injection of
config-tagsalongsidedesign-systemduringwick init. - Support for
config-tagsinwick skill syncandwick skill listcommands.
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-tagssibling folder intool-moduleandconnector-module.
This summary was automatically generated by Gemini AI
v0.5.4
Released on 2026-05-02
Added
- New
kvlisteditable 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.goutility for input handling and list processing. - Dedicated
reference/config-tags.mddocumentation.
Fixed
- Non-deterministic ordering in
ListOwnedby implementing adeclOrderslice.
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
wicktag 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_listandwick_searchresponses 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, andmcp install. - Support for four MCP build modes:
auto,dev,build, andrebuild. - Automated MCP configuration installation for Claude Desktop, Cursor, Gemini, Codex, and Claude Code.
wick_infotool 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
.envfiles 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
automode 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_infofor 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 upgradecommand 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.modfile 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
Configsstruct + N typedOperations. See Connector Module. - MCP server at
POST /mcpwith 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/tokens—wick_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), refreshwick_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/connectionsfor cross-user management. - Built-in System job
connector-runs-purge— daily cleanup ofconnector_runsaudit 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 towick skill syncand the template's bundled skill set. The exampleconnectors/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.mddocuments theconnectors/folder,app.RegisterConnectorregistration site, and theconnector-moduleskill row.template/README.mdlists the connector test page URL and/profile/mcpinstall snippets in the Quick Start.
Migration notes
- Existing wick deployments upgrading to this version: the
connectors,connector_operations, andconnector_runstables are auto-created on first boot. Theconnector-runs-purgejob 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 upgradecommand 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
ToolHeadercomponent 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
goandwicktoolchain 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 listandwick skill synccommands to manage bundled skills and synchronize theAGENTS.mdskill table.- MobilePrompt component to display inline prompts specifically for mobile users.
- Downstream
tool-moduleskill 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
READMEandAGENTS.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 initscaffolding to include downstream tool-module skills and shared design-system components.- Documentation structure by renaming
agent.mdtoAGENTS.mdacross all guides and pages. - Prompt instructions updated to utilize the
wick devcommand 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.tmpltemplates 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.tmplandCHANGELOGfiles.
This summary was automatically generated by Gemini AI
v0.1.6
Released on 2026-04-19
Fixed
- Synced
go.mod.tmplbefore tagging new versions. - Enabled automatic merging of release-sync pull requests to the
masterbranch usingADMIN_TOKEN.
This summary was automatically generated by Gemini AI
v0.1.5
Released on 2026-04-19
Improved
- Synced
go.mod.tmplandCHANGELOGfiles 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.tmplbefore tagging and fixed version order in the release process. - Resolved issue with pushing to
refs/heads/releaseinstead ofHEADin 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 initsetup call. - Address version-related issues.
Improved
- Update
README.mddocumentation. - Enhance CI/CD processes.
- Update project pipelines.
- Update
go.modtemplate 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.mddocumentation. - Update CI/CD for documentation builds.
- Update
go.modtemplate 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-rungo mod tidy+go run . setupwick.ymlcross-platform task runner —setup,dev,build,test,tidy,generate- Tool modules (
tools/<name>/) — mount at/tools/{key}, typedConfigwithwick:"..."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/VisibilityPrivateper tool - Runtime config —
Configstructs reflected into admin-editableconfigstable 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 everywick initproject - External link cards — register URL shortcuts as tool cards via
RegisterToolNoConfig - Dark/light theme — user preference persisted via cookie