Skip to content

fix: windows, assignment notes and lost information (2026-10-23 review, 4.101.0) - #173

Merged
CocoRoF merged 1 commit into
mainfrom
fix/review-1023
Oct 23, 2026
Merged

CocoRoF merged 1 commit into
mainfrom
fix/review-1023

Conversation

@CocoRoF

@CocoRoF CocoRoF commented Oct 23, 2026

Copy link
Copy Markdown
Contributor

무엇을 고쳤나 (2026-10-23 전체 흐름 검토)

검토에서 확인한 문제를 고친다. 자세한 항목은 CHANGELOG 4.101.0.

창(최대 길이)

  • 넘침 오류에서 배운 창이 다음 턴에 쓰인다(예전에는 vLLM·Azure 에서 이름이 달라 한 번도 쓰이지 않았다).
  • Azure 가 카탈로그 행(azure_foundry)과 그 행의 실제 모델 이름을 읽는다. 카탈로그 값 "131072" 를 받고 true 를 받지 않는다.
  • vLLM 0.20 serving·V1 엔진, llama.cpp 의 넘침 문구를 읽는다(인코더 문구는 창이 아니라 제외).
  • 예산이 실제로 보내는 출력 상한(생각이 키운 값)을 비워 두고, 창의 절반을 넘는 max_tokens 는 맞게 낮춘다.

assignment 메모리

  • 고쳐 쓰기는 저장된 노트에 쓰고(사본 금지), 주지 않은 분류·태그·중요도를 지키며, assignment 노트는 assignment 로 남는다.
  • memory_read 는 호스트가 주면 읽는 사람의 대화만 written_in 에 보인다. 파일 저장소도 written_in 을 지킨다.

정보 유실 방지

  • 창에 맞춰 자른 도구 결과는 기록에 원본으로 남는다. 잘린 Read(ToolBatch·첨부 파일 포함)와 Edit 만으로는 파일을 읽은 것으로 치지 않는다.
  • 실행 뒤 점검 실패는 "Access denied" 가 아니라 결과 보류. 입력 축약 안내는 [ERROR] 뒤에.
  • SSH 시간 초과는 출력을 남기고, Grep 은 큰 파일 안에서도 멈춘 자리를 말한다.
  • 표식은 부를 수 있는 도구만 가리키고, 줄인 자리마다 읽는 길이나 할 일을 적는다. 메모리 노드의 이전 대화 문자열은 창이 모자랄 때만 줄인다.

시험

  • 새 tests/unit/test_review_2026_10_23.py(핵심 동작 15개) + 바뀐 동작에 맞춘 기존 시험 3곳.
  • 전체 6,250 통과, ruff check·format, mypy(core·llm_client), 이벤트 문서 --check.

🤖 Generated with Claude Code

…-10-23 review (4.101.0)

Window (max length)
- A window learned from an overflow is used on the next turn: Stage 6 learns it under the names
  the host resolved the window with (state.metadata), and provider aliases are folded (vllm runs
  on the "custom" client, Azure on "azure_foundry" with an /openai/v1 URL).
- Azure reads its catalog rows (azure_foundry) and the row's underlying model name for the table.
- Catalog window values given as text count; true no longer means a window of 1.
- Overflow messages: vLLM 0.20 serving input count, vLLM V1 engine decoder prompt (the encoder
  variant is not a window), llama.cpp exceed_context_size (n_ctx, n_prompt_tokens).
- The budget keeps room for the output cap the client really sends (thinking raises it), and a
  max_tokens above half the window is lowered to fit (8k vLLM + 8192 was refused every time).

Assignment memory
- A rewrite writes the stored note (a loose name made a second copy), keeps the category, tags and
  importance it does not give, and an assignment note stays one ("done" is added).
- Tags are cleaned (#, quotes, JSON array text). memory_read shows only the reader's own
  conversations when the host answers visible_conversations(ids). The file backend keeps
  written_in. Pinned-facts marker counts what is shown. Retired events name their release.

Lost information
- A tool result clipped to the window is recorded as the tool returned it; only the request is cut.
- A clipped Read (also in ToolBatch, and files attached to a cut reference block) is not a read,
  and an Edit alone is not either: Write could replace a file whose middle was never seen.
- Checks that fail after a tool ran withhold the result instead of saying access was denied.
- The clamp notice goes after an [ERROR] answer, not before it.
- SSH timeouts keep the output; Grep stops inside a huge file and says where.
- Markers name only tools the model can call; omitted tool blocks of older turns, the earlier
  conversation string, reference material and the question say how to read or what to do; the
  memory node's earlier conversation is cut only under window pressure; ToolResultRead pages fit
  the window; the "interrupted" tail no longer guesses the cause; the turn's text list resets.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@CocoRoF
CocoRoF merged commit 2f5e37e into main Oct 23, 2026
7 checks passed
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.

1 participant