Skip to content

Feat/artiface manager#85

Open
DivXPro wants to merge 21 commits into
qqqqqf-q:mainfrom
DivXPro:feat/artiface_manager
Open

Feat/artiface manager#85
DivXPro wants to merge 21 commits into
qqqqqf-q:mainfrom
DivXPro:feat/artiface_manager

Conversation

@DivXPro

@DivXPro DivXPro commented May 26, 2026

Copy link
Copy Markdown
Contributor

右侧增加了本次会话的成果物集合展示

DivXPro and others added 21 commits May 25, 2026 11:50
Add ImageGenModelSettingControl to web routing settings page, using
platform settings (image_generative.model) for persistence. Also increase
image model test timeout from 15s to 60s to accommodate slower image
generation APIs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add image_generate to AUXILIARY_RENDERED_TOOL_NAMES
- Create StreamingArtifactEntry on image_generate tool-result
- Render image artifacts via ArtifactImage instead of ArtifactIframe
- Filter inline-rendered image artifacts from MarkdownRenderer to avoid duplication

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Add messageAttachmentStore to image_generate executor with WithMessageAttachmentStore builder
- loadInputImages fallback to attachment store when artifact store misses
- artifactKeyMatchesAccount supports attachments/{accountID}/ prefix
- Inject uploaded image key annotation into LLM context so model can reference attachments

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… in messages

- Scan all assistant messages for artifact:<key> references
- Only show image_generate streaming artifact at top-level when the key
  is NOT already referenced in an assistant message bubble
- Remove currentRunArtifacts filtering so MarkdownRenderer can render
  images during streaming inside the message bubble

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…liminate flash

- Never show image_generate in visibleStreamingArtifacts during streaming
- Compute fallbackImageGenerateArtifacts only after run completes and
  the artifact key is not referenced in messages
- Preserve image_generate streaming artifacts on run completion for fallback
- Update persona prompts and toolmeta: image_generate does not need visualize_read_me

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…story for fallback rendering

Do not clear streamingArtifactsRef when releasing completed handoff to
history. image_generate artifacts need to persist for fallback rendering
after the run ends. They are cleared by resetLiveState() when the next
run starts.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Persist pending form messages as thread messages on run.input_requested
- Finalize form messages (submitted/dismissed) on input submission
- Expire pending forms on terminal run end (completed/cancelled/failed)
- Add AskUserFormMessageCard component for editable and read-only views
- Route form-mode input-request events through message stream instead of overlay
- Widen web message types to support AskUserFormContent tagged union

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…assthrough

- normalizeInputRequest now preserves display_mode field from SSE events
- Add display_mode to AgentInputRequestData type
- Create optimistic form message in message store on form-mode input-request
- Remove setAwaitingInput for form mode (form card handles all input)
- Rewrite AskUserFormMessageCard from wizard to unified scrollable form
- Update display_mode description in tool spec

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…rlay, remove filename bar, remove count label

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 1f4f9bf010

ℹ️ About Codex in GitHub

Codex has been enabled to automatically review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

When you sign up for Codex through ChatGPT, Codex can also answer questions or update the PR, like "@codex address that feedback".

Comment on lines +1015 to +1018
jsonb_set(content_json, '{status}', to_jsonb($5::text)),
'{answers}', COALESCE(to_jsonb($6::jsonb), 'null'::jsonb)
),
'{submitted_at}', COALESCE(to_jsonb($7::text), 'null'::jsonb)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fix ask_user_form SQL parameter indexes in worker repo

The query in UpdateAskUserFormMessageStatus references $5, $6, and $7 for status/answers/submitted_at, but this call only provides six bind arguments and status is the 4th argument. In PostgreSQL this fails at runtime (missing $7) whenever the worker tries to submit/expire form messages, so pending form state updates do not persist.

Useful? React with 👍 / 👎.

Comment on lines +1115 to +1118
json_set(content_json, '$.status', json_quote($5)),
'$.answers', COALESCE($6, json('null'))
),
'$.submitted_at', COALESCE(json_quote($7), json('null'))

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P1 Badge Fix ask_user_form SQL parameter indexes in desktop repo

The desktop variant has the same placeholder mismatch: the SQL uses $5/$6/$7 while only six arguments are passed and status is argument 4. This causes runtime bind errors in desktop mode when updating ask-user-form message status, so submitted/dismissed/expired states are not reliably written.

Useful? React with 👍 / 👎.

Comment on lines +461 to +464
const doSubmit = useCallback(() => {
if (!allValid || submitting || disabled) return
setSubmitting(true)
onSubmit(values)

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore form controls after submit failure

The submit handler sets submitting to true and invokes onSubmit without awaiting or resetting state on failure. Since the current onSubmit implementation handles API errors internally and resolves, a failed provideInput leaves this card permanently in the submitting state (buttons stay disabled), preventing retry or dismiss until a full refresh/rerender from external state.

Useful? React with 👍 / 👎.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

此文件不应提交

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

此文件不应提交

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

此文件不应提交

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

此文件不应提交

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.

2 participants