Skip to content

[UX / Context Integrity] qianwen.com edit/regenerate branches make visible chat history differ from active context #1859

Description

@KaysonSear

Summary

On qianwen.com web chat, the chat history visible to the user does not always match the model-visible active context in the next turn. Editing the latest user message and regenerating an assistant answer appear to create/switch active branches. This is risky for long, context-sensitive conversations because users may believe the model still sees the visible chat history, while the next model call may follow a different active branch.

Environment

  • Product: qianwen.com web chat
  • Model: Qwen3.7-Max
  • Mode: Thinking enabled
  • Channel: normal chat text, no file attachment
  • OS: Ubuntu 26.04
  • Date tested: 2026-05

One-sentence user-facing explanation

The chat I can see on the page is not always the chat the model actually remembers in the next reply; after edit/regenerate, the model may follow a different branch.

Observed behavior

  1. Normal short appended messages are retained and can be recalled verbatim.
  2. After editing the latest user message:
    • Messages before the edited turn remain visible to the model.
    • The original edited-away user message is no longer available in the active context.
    • The original assistant answer to that message is no longer available in the active context.
    • The edited user message and the new assistant answer are available in the active context.
  3. During regeneration, the regenerated candidate can see or receive the previous candidate answer.
  4. After regeneration, the next normal user turn mainly follows the currently visible candidate; previous candidates are not reliably available as normal chat history.
  5. Therefore UI-visible history, edit branch, regenerate candidate context, and next-turn active context appear to be different mechanisms.

Minimal reproduction A: latest-message edit

  1. Send:
A2_PREFIX_MESSAGE
A2_PREFIX_USER_SENTINEL:PREFIX_U_9KQ2M7VX4LRA
Please only reply:
A2_PREFIX_ASSISTANT_SENTINEL:PREFIX_A_3WT8C5NP6QYZ
  1. Send:
A2_LATEST_ORIGINAL_MESSAGE
A2_ORIGINAL_USER_SENTINEL:ORIG_U_7LM5Q2VK9XPA
Please only reply:
A2_ORIGINAL_ASSISTANT_SENTINEL:ORIG_A_6NC8T3WY5KQD
  1. Edit the latest user message to:
A2_LATEST_EDITED_MESSAGE
A2_EDITED_USER_SENTINEL:EDIT_U_4RA9K2MX7QVP
Please only reply:
A2_EDITED_ASSISTANT_SENTINEL:EDIT_A_8YP3L6NC5WTQ
  1. Send audit:
{
  "latest_edit_clean_test": {
    "prefix_user": null,
    "prefix_assistant": null,
    "original_user": null,
    "original_assistant": null,
    "edited_user": null,
    "edited_assistant": null,
    "negative_control": null
  }
}

Observed: prefix_user/prefix_assistant and edited_user/edited_assistant were recalled, while original_user/original_assistant were null. This suggests editing replaces the latest branch while preserving prefix history.

Minimal reproduction B: regeneration candidate context

  1. Send a prompt that outputs a JSON code on first generation and asks the model to report the previous candidate if this is a regeneration.
  2. Click regenerate.
  3. Observed: the regenerated candidate was able to include the previous candidate code in prior_candidate_final_answer.

This suggests regeneration is not independent resampling; the previous candidate may be injected into the regeneration context.

Expected behavior / requested improvement

  • The UI should clearly indicate which branch is active.
  • Editing should warn users that the edited turn and later answers may be replaced in the model-visible context.
  • Regeneration should clarify whether previous candidates are used to produce new candidates.
  • There should be a “show active branch / active context” indicator, or at least a warning for long/context-sensitive chats.
  • The UI should not imply that visible chat history equals model-visible context unless that is actually true.

Impact

This can mislead users in long, context-sensitive workflows such as legal analysis, academic writing, code debugging, experiment logging, contract review, and long-running research. Users may believe the model sees the full visible conversation while it is actually using a different active branch.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions