Repository navigation
Releases: Blazity/ai-workflow
Releases · Blazity/ai-workflow
Release list
v2026.09.2
What reached AI Workflow users since v2026.09.1, collected on 2026-09-25.
Dashboard
Five changes in this area.
- The editor puts the open workflow in the address bar at once, and a declined Back keeps the workflow on screen, so a reload or a copied link opens the same one. (in #535 by @outof-place)
- On a phone, nested values in the Logs tab go under their key instead of squeezing into narrow columns. (in #535 by @outof-place)
- The dashboard says "Integrations changed elsewhere" only when an integration really changed while you had unsaved work, and the Overview's p95 tile now reads as the p95 of successful runs, showing N/A when none succeeded. (in #544 by @outof-place)
- The workflow editor keeps Deploy off when the saved draft is already live and says why on every screen size, validation messages name blocks by the names you gave them, integration settings show the non-secret values the environment sets (such as the Jira site and project), and the Overview names the providers a workflow's runs actually used. (in #544 by @outof-place)
- The p95 column in the Overview's workflow table counts successful runs only, as the p95 tile above it does. A workflow whose runs failed shows no p95 instead of the failures' duration. (in #548 by @outof-place)
Runs and workflows
Nine changes in this area.
- A pull request is one subject whatever letter case its repository is spelled in: a run started from a pasted URL and one started by the provider's webhook share one concurrency claim, one work scope record, one auto-fix budget and one published review per head, and existing records of the same pull request are merged into one. (in #539 by @outof-place)
- The MCP tools
work_scope.get,work_scope.editandtickets.list_runs, the work scope pages of the dashboard API and the dashboard's ticket page read and write a ticket's real record when its key is typed in another letter case, such asticket:jira:awp-281forAWP-281. (in #539 by @outof-place) - Publishing a harness profile no longer fails with "Refresh Harness capabilities before publishing this profile" for part of every half hour. The model catalog it checks now stays current between two scheduled refreshes, and past one missed refresh. (in #551 by @outof-place)
- Running a workflow manually from a pull request URL now starts the run under the repository name as GitHub or GitLab spells it, whatever letter case the URL was typed in, so the Fix agent recognises and pushes to the pull request its workflow opened. (in #532 by @outof-place)
- The Run scripts block counts a repository in
uncoveredGroupCountonly when the run's workspace holds it, and the run replay says why each repository was not entered: not in the run's workspace, unchanged by the run, or not reached before the run stopped. (in #532 by @outof-place) - The Slack message for a run someone stopped by moving its ticket now reads the same sentence as the Jira comment, and
runs.diagnoserecognises a run stopped because its ticket was moved to review before anything was published (ticket_moved_to_review_early). Provider account causes are read only from the provider's own error output, never from what the agent printed. (in #533 by @outof-place) - A ticket's notebook (its plan, the answers people gave in clarification rounds, and the notes for the next run) is now always kept in the built-in memory store, even when Mem0 serves facts and lessons, so the next run on the ticket reads it back exactly as it was written. (in #552 by @outof-place)
- When an agent saves its notebook inside a repository checkout, the stored notebook still carries every answer given in the dashboard's clarification rounds. (in #552 by @outof-place)
- With Mem0 connected, the memory screen and the memory MCP tools list, show and erase those notebooks beside what Mem0 holds. (in #552 by @outof-place)
Integrations
Two changes in this area.
- Agents read a Jira description the way it looks in Jira: a sentence with bold text, a link, a mention or a date stays one line, links keep their address, lists, tables and code blocks keep their shape, and the acceptance criteria end where their section ends. Planning an epic now lists its child issues beside its subtasks and links, and repository selection reads the titles of the tickets under a ticket, so a repository named only in a subtask is opened. (in #538 by @outof-place)
- The MCP
tickets.gettool returns a ticket's related tickets (parent, subtasks, an epic's child issues and links). The run briefing of an implementation agent says that the plan stands in for the ticket description, and an implementation agent that runs without a plan receives the description. (in #538 by @outof-place)
MCP
Eight changes in this area.
- Admins can remove a stored setting, like owners: with "Remove stored value" on the dashboard Settings page, and through the MCP
settings.resettool. (in #537 by @outof-place) - Admins can activate the repository catalog through the MCP
repositories.activatetool, as they already could on the dashboard Repositories page. Activation still cannot be undone, and the tool still takes the digest fromrepositories.activate_preview. (in #537 by @outof-place) - MCP clients can archive a workflow with
workflows.archive, which is what Delete does in the dashboard's workflow editor, and bring it back withworkflows.unarchive, disabled and with every version, its draft and its deployed version as they were. (in #549 by @outof-place) - MCP clients can work the plan approvals queue like the dashboard's Approvals page:
approvals.listshows the plans waiting,approvals.getreads one in full, andapprovals.approveandapprovals.rejectdecide it, open to the same owners and admins as the dashboard. (in #549 by @outof-place) - MCP authoring keeps what the editor keeps:
workflows.save_draftstores the node positions it is sent andworkflows.get_graphreturns them, a graph with no layout opens in the dashboard editor laid out,blocks.getgives each block's configuration schema, andprofiles.listnames each profile's provider and model and the pin an agent block takes to run it. (in #547 by @outof-place) - MCP answers are smaller and say what to do next:
blocks.listis a one-line summary per block withgroupandintegrationfilters,repositories.import_previewpages and filters, and a refused ticket, dispatch, setting or workflow save names the tracker's own reason, the accepted values or the tool to call instead. (in #547 by @outof-place) - New MCP tools for harness profiles:
profiles.listandprofiles.getshow which skills a profile pins and which workflows pin the profile,profiles.refresh_skillpoints a pinned skill at the version its source holds now, andprofiles.publishpublishes the profile's draft, the same actions as on the dashboard. (in #543 by @outof-place) - The MCP
tickets.gettool returns a ticket's newest comments when it has more than the limit, and the MCP server tells a connecting client how results, errors and idempotency keys work. The built-in research, implementation and review prompts point agents at the ticket and plan below them, and planning asks every open question in one round. (in #543 by @outof-place)
Other
One change in this area.
- A ticket restarted after its branch was deleted gets one comment naming the deleted branch, not one per run (planning and implementation used to post it twice).
Full Changelog: v2026.09.1...v2026.09.2
v2026.09.1
What reached AI Workflow users, collected on 2026-09-23.
Dashboard
Ten changes in this area.
- The Integrations connection page now names enabled workflows and counts runs in flight before disconnecting or applying a connection change that would stop them; if the impact cannot be read, the confirmation says it is unknown instead of showing zero. (in #510 by @outof-place)
- The Integrations screens say what is true for a provider nobody connected: no source "in use" and no switch saying workflows may use it. Without an encryption key for stored secrets, the page explains the key, links to how to set it, and turns saving off where it could only fail. Secret fields now show what they are for. (in #511 by @outof-place)
- Dashboard times are shown in UTC with the zone named, the same on every page. The setup overview says when its health scan was taken and flags a stale one; an integration that reads Connected says so when the latest health scan found it down, and turning off a tracing integration says runs go on untraced rather than stopping. Sign out is reachable on a phone. (in #511 by @outof-place)
- The Integrations screens no longer point at a switch that is not shown, and an integration whose Test passed after the last health scan no longer carries that scan's warning. Times end in a fixed "UTC", and the setup overview marks its health scan stale as soon as it is, even on a page left open. (in #513 by @outof-place)
- The dashboard Integrations screens show each integration's own icon, and every card says at a glance whether an integration is not set up, incomplete, switched off, failing, or connected but never tested. (in #524 by @outof-place)
- An integration's connection screen says first where its values come from, and a value read from the deployment's environment is shown as set and hidden, naming its variable, instead of as an empty field. A switched-off or failing integration keeps its place in the sidebar, marked Off or Failing. (in #524 by @outof-place)
- The workflow editor now says why a Deploy did not go through: the first reason, in the block's name, with a link to that block and to the full list of issues. A Deploy button that cannot be pressed says why on hover. (in #521 by @outof-place)
- In the workflow editor, the notice about steps that cannot run sits above the canvas instead of covering its blocks, the toolbar wraps on narrow screens, and the source scope bar shows "Loading…" until providers are known. (in #521 by @outof-place)
- The workflow editor asks "Discard unsaved changes?" before a sidebar link or the browser's Back leaves an unsaved graph, keeps the open workflow in the address so a refresh or a shared link reopens it, gives a pasted block its own name, and on a phone puts Undo, Redo, Deploy and Save draft in one row with the rest under More. (in #530 by @outof-place)
- The Overview and the Runs page count a window's runs the same way, name older runs still waiting for input apart, show run ages in hours and days, and say which runs hold the occupied slots; a run's Logs tab shows each log event's fields as readable text. (in #530 by @outof-place)
Runs and workflows
13 changes in this area.
- A harness profile can pick a Claude model again: the Model list offers what the Claude CLI reports (default, opus[1m], sonnet, haiku), and publishing a profile on one of them is accepted. The built-in Claude profile no longer calls its model unavailable; it says the built-in profile sets it. (in #513 by @outof-place)
- A workflow run started by a pull request now reports a failure on that pull request, naming the workflow, and leaves its linked ticket where it is on the board; the ticket comment names the pull request and the workflow. (in #512 by @outof-place)
- Runs are named after the workflow definition and version they ran (for example "Autofix PR checks v3") in runs.stats, runs.get, tickets.list_runs and on the ticket page, and a manual dispatch preview says when a held reservation belongs to a run that already finished. (in #512 by @outof-place)
- MCP
tickets.transitionnow accepts a target named after the status it lands on, not only the transition's own label, so it matches every status name the tool's own error message offers. (in #522 by @outof-place) - Run logs keep a cost value's decimal digits as they are instead of masking them as a payment card. (in #522 by @outof-place)
- The
runs.statscost breakdown now lists spend by each workflow definition's name instead of combining every ticket workflow into one total. (in #522 by @outof-place) - Pre-PR checks and the Run scripts block now run a repository's script groups whatever letter case its catalog entry uses, since GitHub and GitLab treat
Acme/apiandacme/apias one repository. (in #526 by @outof-place) - When the pre-PR checks pass over a repository, the run summary names it and says why: the run did not change it, or it is not in the run's workspace. (in #526 by @outof-place)
- A ticket moved back to start after its pull request was closed and its branch deleted now starts again from the repository's default branch, and the run posts a ticket comment naming the deleted branch. (in #523 by @outof-place)
- When the sandbox service refuses to create a workspace, the run's failure message names the repository, the branch and the service's reason, with what to check next. (in #523 by @outof-place)
- When an AI provider account refuses a run, the Jira comment, the Slack message, the run's failure reason and
runs.diagnosenow name the provider (Anthropic or OpenAI), say what happened to the account (no credit, a spend or plan limit, a rejected key) and that an admin of that account fixes it;runs.diagnosefiles these underprovider_account. (in #529 by @outof-place) - When someone moves a ticket out of the trigger column, its run and the step it was on close at once, the ticket gets one short comment saying when the run stopped and how to start again, and
runs.diagnoseanswersticket_left_trigger_columnwith the time. Clarification answers given through MCP are signed on the ticket with the person's name or email and the client's registered name, and plan comments name ticket attachments by their file name. (in #529 by @outof-place) - A ticket's working notebook is now kept when the agent writes it from inside a repository checkout, and a run that leaves no notebook logs a warning naming every place it looked. (in #520 by @outof-place)
Integrations
28 changes in this area.
- The cockpit's activity drawer now shows an honest "Nothing here yet" state instead of sample events from providers nothing is connected to. (in #528 by @outof-place)
- The Arthur Engine is an integration, with its card on the Integrations page, its checks on System health, and its own sidebar section holding Evals once it is connected; old Evals links land there. Deployments that set
GENAI_ENGINE_API_KEYandGENAI_ENGINE_TRACE_ENDPOINTkeep working unchanged, and the key reaches only the tracer inside an agent sandbox. (in #510 by @outof-place) - The Prompt injection check reports a screening result or stops the run with the reason. With nothing bound it screens the ticket's description and comments, and publishing is refused when a workflow started by a pull request or a schedule leaves the content unbound, or when no Branch straight after the check decides on its status. (in #510 by @outof-place)
- GitHub is an integration: connect it on the Integrations page or keep the environment variables you already have, and the App keeps posting to the same webhook URL. The Connection form takes the App's private key as a pasted
.pemfile or as base64, and a deployment with only part of its GitHub values set starts and names the missing one on...