Skip to content

Agent workflows update and reliability - #3242

Open
abose wants to merge 12 commits into
mainfrom
ai
Open

abose wants to merge 12 commits into
mainfrom
ai

Conversation

@abose

@abose abose commented Sep 29, 2026

Copy link
Copy Markdown
Member

No description provided.

…probe

The 0.3 Agent SDK (bumped 2026-09-23) reads the append text only from
systemPrompt.append with the claude_code preset and silently ignores a
top-level appendSystemPrompt option, so none of the Phoenix instructions
reached the model. Pass systemPrompt: { type: "preset", preset:
"claude_code", append } instead.

Append a probe sentence: when a message carries "phoenix system prompt
challenge: <code>", the model replies with the code plus a fixed suffix.
The suffix is known only from the prompt and the code only from the
message, so the reply proves the prompt is in context for that request.
The EC-7 model test sends the challenge, and the builder MCP's quick
suite now runs it first so a missing prompt stops a run early.

Verified with the quick model-test suite (11 PASS, no regressions) and
two fresh-session challenge replies from Haiku.
Bootstrap's base rule sets code { white-space: nowrap } directly on the
element, so an inline path or identifier in an assistant message ran off
the panel edge instead of wrapping with the prose. Set pre-wrap on the
message and plan-body inline code rules; code blocks keep their own
pre-wrap from the pre code rule.
Registers a deferred, read-only getProblems tool on the phoenix-editor
MCP server that calls the new browser peer. The description tells the
model the problems come from the syntax checkers available for the file
type, that respondedProviders shows which checkers answered, and that
results are capped at 20 with pattern, type and provider filters.

Allows the tool for the agent and its subagents, adds a line of prompt
guidance, and adds the card strings.
useImage takes an optional downloadPath: a project folder, or for one
photo an image file path. The description and the prompt guidance say
to prefer embedding the Unsplash URLs and to download only when the
user asks for local files or the use case needs them. The peer timeout
allows for the download.

Adds the strings for the viewer's download button, the download card
and the download error cases, drops the unused request-failed string,
and styles the viewer button.
…cation

One helper drives every auto-closing notification: the countdown stops
on mouseenter and restarts in full on mouseleave, so a user reading a
toast or reaching for one of its actions does not lose it. Applies to
the toasts, the anchored notifications, the inline toasts and the HUD.

Adds mock-clock specs for the toast, the HUD and the inline toast that
observe the timed close on the notification rather than on the CSS
transition.
Extracts the "Show in File Tree" command body into an exported
revealInFileTree(file): show the sidebar, switch to the Files tab,
select the file and scroll it into view. When the tree does not have
the node yet, as for a file just written outside the FileSystem API,
it refreshes the tree and looks for the node for up to three seconds
before selecting. ProjectManager gains isInFileTree(path) for that
check.

Adds the strings and styles for the image gallery's download toast and
the search card's footer toggle.
Registers a deferred, read-only notifyUser tool that calls the new
browser peer. The description tells the model to use it only when the
user may not be watching the chat, that it is skipped while the AI
panel is visible unless alwaysShow is set, and that autoCloseS controls
how long the toast stays. Allows the tool for the main agent, adds a
line of prompt guidance, the card string and the toast style.
…ch folder

Add the askInLivePreview MCP tool: the model writes only a body (uiFile,
scriptFile, params) and Phoenix draws the frame in the live preview. The
description states the contract in full: the script file runs as
function(root, phoenix, params) { <file text> }, anchor and highlight for
one element, placement out of the way by default, a theme for the frame,
hover previews and click answers.

Writes and edits into the model's UI folder under app data are allowed
without a prompt, skipped by the snapshot and edit events, and the folder
is recreated before a write. The guidance points the model at that folder
and no longer claims the editor state lists its files.

Strings for the card title, focus toggle, text field and the chat labels.
execJsInLivePreview and execJsInEditor take scriptFile and params, read
from the model's scratch folder the way askInLivePreview does: a file is
a function body that returns its value, inline code stays for a very
short throwaway, and an inline snippet with a top-level return runs as a
function body instead of failing. A file holding a whole function is
called as one.

The askInLivePreview description states the script file contract as the
template function(root, phoenix, params) { <file text> }, asks for a
visual body whose every word stays readable, and no longer names a file
list the editor state stopped reporting. The per-prompt guidance carries
the real scratch folder path so the model never has to look it up or
guess, and says never to write those files into the project.
Strings and styles for the AI panel's usage chip: the chip in the input
area's mode row, its drop-up with an All tab, a tab per model and a gear
tab holding the two display options, the line under each answer, and the
usage shown on history rows. The subscription note reads "With a Claude
subscription, this cost is included in your plan. Pricing shown is for
reference only." The empty chip dims its icon and text rather than itself,
so the drop-up inside it stays opaque.

The askInLivePreview description now says to write both UI files before
calling the tool; the smaller models were calling it first.
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Reliability Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

This branch has not been deployed

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant