agentscope-ai / agentscope-ai/QwenPaw

[Bug]: Creator hides prompt-sync blocker behind GATED and lacks manual image acceptance

Đang mở
#7,720 1 bình luận 0 reaction 0 người được giao Xem trên GitHub
bug
Ngôn ngữ chính
Python
Star
34.9k
Fork
3.1k
Merge trung bình
1 ngày 15 giờ
Pull request đã merge (30 ngày)
225

Mô tả

## QwenPaw Version

QwenPaw **2.2.1b1** (Console version), Creator plugin **1.2.0** (installed manifest).

## Description

Creator cannot proceed from selected scene images to storyboard generation (分镜图) after edits to the plan and prompts. The production tool reports only `BLOCKED / GATED`, hiding the actual prompt-synchronization requirement. The agent repeatedly attributes the block to a text-review timeout/cooldown and promises to retry later, although the request has ended without being queued.

As a user, I want to choose an existing scene image and explicitly accept it despite an automated creative-review decision. I should also be able to confirm the existing plan/prompts when I want to keep them, without requiring another AI rewrite or manually editing runtime metadata.

**Related PR(s):** None established by this investigation.

**Security considerations:** No security vulnerability identified. Logs below omit credentials and project content. A creative-review override should preserve technical validation and separate paid-generation authorization.

## Component(s) Affected

- [x] Core / Backend (app, agents, config, providers, utils, local_models)
- [x] Console (frontend web UI)
- [ ] Channels (DingTalk, Feishu, QQ, Discord, iMessage, etc.)
- [ ] Skills
- [ ] CLI
- [ ] Documentation (website)
- [ ] Tests
- [ ] CI/CD
- [ ] Scripts / Deploy

Specifically: `qwenpaw-creator` production admission, prompt synchronization, and scene-image selection UI.

## Environment

- **QwenPaw version:** 2.2.1b1; Creator 1.2.0
- **OS:** macOS (exact version omitted)
- **Install method:** Local installation; original installer method not verified
- **Python version:** Omitted
- **Image model:** DashScope `qwen-image-3.0-pro`
- **Video model:** `wan3.0-video-prime`
- **Workflow:** Existing R2V project with selected visual assets and a single 30-second element

## Steps to Reproduce

Observed sequence in an existing project; a clean-project end-to-end reproduction has not yet been run:

1. Generate scene images and select a version. Earlier versions may have received automated `revise` findings.
2. Edit the R2V plan, storyboard prompt, video prompt, and/or reference bindings, leaving the saved prompt-synchronization baseline out of date.
3. Ask the agent to generate the storyboard through `request_workgraph_execution`.
4. Observe a `BLOCKED / GATED` response with no specific missing-input explanation.
5. Ask the agent to retry or to keep the existing scene image. In the observed conversation, it repeatedly claimed a text-review cooldown blocked production.
6. Open the scene drawer: version previews, Edit, and Regenerate Image are available, but there is no direct “Use this image despite review” action.

## Actual vs Expected

- **Actual:** The storyboard stays gated; the agent misdiagnoses the reason, and the user has no direct creative-acceptance recovery path. Waiting for the reported cooldown does not clear prompt synchronization. A version preview is not a durable override.
- **Expected:** Return the precise gate and recovery action to both agent and UI. Allow explicit, version-bound user acceptance of an existing scene image and confirmation of current plan/prompts. These actions should not require regenerating the scene. Do not promise automatic resumption unless a retry has actually been scheduled.

## Logs / Screenshots

The latest lane image task **succeeded** before the failed storyboard requests; its output is selected on the scene variant. This rules out a still-pending request for that image as the immediate blocker. It does not establish future provider availability.

Persisted production-tool response (target identifiers abbreviated):

```json
{
"ok": false,
"status": "BLOCKED",
"items": [{
"nodeId": "storyboard:",
"targetRef": "element:",
"status": "BLOCKED",
"reason": "GATED"
}],
"summary": "尚未启动制作:1 项制作条件尚未满足。本次未创建制作任务,也未加入等待队列。条件满足后需要重新提出制作请求。"
}
```

Running the installed pure `prompt_sync_status` against the saved project returned:

```json
{
"status": "needs_confirmation",
"reason": "prompts_edited",
"changedSources": ["currentPlan", "storyboardPrompt", "videoPrompt"],
"suggestedSource": "mixed"
}
```

Installed `derive_work_graph` returned:

```text
storyboard: gated
missing: ["分镜内容与提示词待同步"]
prompt_sync_required: True

video: gated
missing: ["镜头与提示词待同步或待审阅确认"]
prompt_sync_required: True
```

**Controlled in-memory isolation:** Deep-copy the saved project and refresh only the copy's prompt-sync stamp using the installed `sync_stamp` function. With the same configured media-model names, the storyboard changes from `gated` to `ready`, with no missing inputs. No image, prompt text, or selection changes were made. The original file was verified unchanged.

This isolates the synchronization gate; it is not a recommendation to fabricate the stamp or proof that the creative texts are semantically consistent.

## Additional Notes

### Code-level findings

The findings below refer to the installed Creator 1.2.0 backend.

1. **Loss of actionable diagnostics:** The production-request handler returns only the generic blocked reason, omitting `node.missing` and `prompt_sync_required`. The work-graph admission code maps a non-ready graph node to its uppercased status (`GATED`); actual pending review gates use `WAITING_REVIEW`.
2. **Cooldown misdiagnosis:** A real text-review `TimeoutError` recorded retry-after a later retry time. However, The text-review handler clears the content blocker for unavailable review without findings, and the cooldown suppresses reviewer calls. `ready_request_context` does not consult that retry-after timestamp. It cannot clear the independent prompt-sync gate.
3. **Missing direct confirmation:** The prompt-synchronization API exposes status, model-generated proposal, and proposal acceptance, but no direct accept-current-content route.
4. **Missing image override:** The live scene drawer states “Design confirmation happens in the assistant's decision tray; edit only here.” It offers no durable “使用此图,忽略自动审阅” action.

### Suggested recovery behavior

- Expose specific gate reasons, changed sources, and an actionable recovery path.
- Add **Use this image / Accept despite review**, scoped to the exact variant/version. Atomically maintain the variant/slot selections and affected downstream references.
- Record user acceptance so stale review feedback or late repair completion cannot silently replace the chosen image.
- Add validated, concurrency-safe confirmation of current plan/prompts without requiring a model rewrite. Image acceptance alone will not resolve this project's separate prompt-sync requirement.
- Regression-test the sequence: image succeeds → plan/references change → precise sync blocker → user confirms existing content → storyboard becomes eligible without another scene-image call. Also test late review/repair results after manual acceptance.

Existing issues were checked. #7693 describes a different failure: review acceptance interrupting an in-flight image request and leaving tasks RUNNING (Creator 1.1.1). Here the latest image succeeded and the storyboard gate was reproduced directly on Creator 1.2.0.

Investigation only: no installation patch, production-state change, or paid generation was performed.

Hướng dẫn đóng góp

Mở hướng dẫn đóng góp

Đánh giá

Issue này chưa được đánh giá.

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.