fix: prevent write_interim_draft context overflow (465K → ≤300K chars) #5
Reference in New Issue
Block a user
Delete Branch "fix/write-interim-draft-context-overflow"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Summary
source_contextהוכנס פעמיים לכל פרומפט — פעם בתוך הטמפלט ({source_context}) ופעם שנייה כ-prepend ב-write_block. תוצאה: 232K × 2 = 465K chars. כל 5 בלוקי הטיוטה נכשלו עם "Claude CLI failed (exit 1): unknown error"._build_source_contextטען את כל 9 מסמכי התיק לכל בלוק ללא סינון.Root cause discovered from: CMPA-20 heartbeat run
2b50d42aon 2026-05-10, case 8137-24.Changes
block_writer.pysource_contextprepend — template already embeds it_BLOCK_DOC_TYPESper-block filtering: he/zayin→empty, vav→appeal+protocol, chet→protocol, tet→appraisalclaude_session.pyprompt_lenin RuntimeErrorTest plan
_build_source_context(case_id, 'block-zayin')returns 0 chars ✓_build_source_context(case_id, 'block-tet')returns ~254K (appraisals only) ✓write_interim_draft('8137-24')completes without errors🤖 Generated with Claude Code
Two bugs caused all 5 interim blocks to fail with "Claude CLI failed (exit 1): unknown error": 1. source_context was embedded BOTH inside the prompt template (via {source_context}) AND prepended again in write_block — doubling every block's context size (232K chars × 2 = 465K chars). 2. _build_source_context loaded all 9 case documents for every block regardless of relevance. Fixes: - Remove the duplicate source_context prepend in write_block; the template already contains it via {source_context} - Add per-block document filtering (_BLOCK_DOC_TYPES): block-he/zayin → empty, block-chet → protocol only, block-tet → appraisals only - Add 400K char guard before calling claude -p with a descriptive error (vs opaque "exit 1: unknown error") - Add prompt-size warning and size info in claude_session error messages Result: block-he 0 chars, block-zayin 0 chars, block-vav ~172K, block-chet ~45K, block-tet ~300K (all under 400K limit) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>View command line instructions
Checkout
From your project repository, check out a new branch and test the changes.