docs: diagnose consultation reply truncation fallback

This commit is contained in:
鲨鱼辣椒
2026-09-28 15:57:46 +08:00
parent 4495345fb0
commit 606480e549

View File

@@ -0,0 +1,42 @@
# Task: Diagnose truncated consultation reply and raw-content fallback
## Identity
- Task ID: 20260928-agent-reply-truncation-c812b59f
- Mode: Feature
- Branch: codex/20260928-agent-reply-truncation-c812b59f-agent-reply-truncation
- Worktree: /Users/chillishark/Makelore 麦洛/.codex-worktrees/makelore/20260928-agent-reply-truncation-c812b59f
- Base commit: 4495345fb0a9ea1abef8e603629ce9b51d73eb05
- Owner: codex
- Status: Ready for Integration
## Scope
- Diagnose the screenshot showing only a short prose fragment followed by a legacy parse-failure notice and raw structured output.
## Intent And Constraints
- Read-only investigation requested. No product edits, history changes, app restart, paid question, cloud access or deployment.
- Ownership and planning gates passed in this task checkout. Reused unchanged canonical context from the prior turn; read all current peer task scopes. Current trial Main 9adab45 / Renderer cb48f60 belongs to the separate reply-cleanup task and is distinct from main 4495345. Inspected committed code only; peer working files remain untouched.
## Outcome
- The screenshot notice maps to the legacy structured-response parse fallback. The UI retains unparsedResponse separately from the recovered prose, so content in the raw box was received even though normal presentation failed.
- Independently reproduced an exact-shape failure: an unescaped ASCII quote after the opening prose causes JSON parsing to fail, while stringToken/recoverReply accepts only the prefix as a complete reply. The old parser returns the same short-prefix + screenshot notice combination. The newer shared/teacher-reply fields recovery in committed 9adab45 still accepts the same premature prefix.
- This is a demonstrated mechanism, not a confirmed trace of the screenshot request. The exact question/response was not found in the known trial/installed-app project teacher histories. The screenshot shows only the tail of the raw output, so its precise triggering bytes and provider termination reason remain unknown.
- Cloud structured replies use completed run.output; missing intermediate stream deltas do not explain a complete raw body being cut by this recovery path. Do not claim all provider truncation/format causes are excluded.
## Verification
- Read old shared/teacher-discussion.ts stringToken/recoverReply/parser fallback, UI diagnostics rendering, service/discussion persistence and cloud-runner final-output handling.
- Independent agent performed an in-memory execution of both committed parsers with malformed quoted prose and reproduced the truncated prefix. No tests or product files added/modified.
- Inspected only relevant local app runtime descriptors/project catalogs and teacher conversation records to seek the screenshot request; no matching request found. No credentials read or emitted.
- Project-document structure, task ownership drift and whitespace checks passed.
## Follow-ups
- If repair is requested, fix conservative recovery in the current reply-only implementation, preserving exact raw diagnostics; do not restore retired discussion components. Verify the exact request raw prefix/provider finish reason before assigning a unique cause to this screenshot.
## Promotion Candidates
- None. This read-only diagnosis adds evidence and a repair direction, not an accepted product behavior change.