anthropics / anthropics/claude-code
[Agent incident] 2026-08-05 20:36 - uživateli přistálo okno se syrovým nodeId (screenshot 20-36-06)
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Summary
Incident recorded on **2026-08-05 20:36** while working with the coding agent in IntelliJ IDEA on a private Kotlin Multiplatform project.
> **This record was shortened after it was written** - 7 characters present in an earlier commit are missing from the current version. The longest recorded version is reproduced below.
>
> This record was rewritten 2 times in git history; the most complete version is reproduced below.
### Environment
- Surface: Claude Code agent in IntelliJ IDEA (JetBrains plugin)
- Project: private Kotlin Multiplatform app (Android/iOS/desktop)
### Record (verbatim, Czech)
#### 2026-08-05 20:36 — uživateli přistálo okno se syrovým nodeId (screenshot 20-36-06)
- **Co uživatel viděl:** na desktopu se objevila „zpráva" od Architecta s fotkou
odesílatele a 64znakovým hexem `3ed117a8…7020` — tedy SYROVÝ nodeId v notifikaci
a v chatu (+1 nepřečtená). Vypadá to jako únik dat a děsí to uživatele.
Screenshot: `screenshots/Snímek obrazovky z 2026-08-05 20-36-06.png`.
- **Příčina (dohledáno v kódu):** šlo o SERVISNÍ zprávu spamu (`spam_clear` /
`block_report` — payload je nodeId cíle). Příjem má pro známé technické druhy
vlastní větve, které je zpracují a NEukládají; jenže když druh zprávy tenhle build
nezná (jiná verze klienta na druhé straně), spadne do poslední větve „běžná zpráva",
uloží se do chatu a `msgPreviewText` ji vypíše syrovou (`else -> msg.text`).
- **Dopad:** cizí identifikátor v UI (memory: „NIKDY syrové nodeId do UI"), falešná
nepřečtená zpráva, ztráta důvěry uživatele v bezpečnost appky.
- **Oprava:** `` — dvě vrstvy: (1) do chatu se ukládají jen zprávy
bez `kind` a druhy ze seznamu `CHAT_VISIBLE_KINDS`; cokoli jiného se zpracuje a
zahodí (s logem), (2) `msgPreviewText` u zprávy s jakýmkoli `kind` nikdy nevypíše
payload — neznámý servisní druh nemá v náhledu text vůbec.
- **Pravidlo:** payload technických zpráv se do UI nesmí dostat ani při neznámém druhu.
Nové wire druhy vždy doplnit do whitelistu `CHAT_VISIBLE_KINDS`, jinak zůstanou
neviditelné — což je bezpečný default.
Provenance in the project's git history
- record key: `2026-08-05 20:36`
- first committed: `2026-08-05T20:41:47+02:00`
- first commit: `b12fc81f1d81`
- stored versions of this record: 2
- files it lived in: `ai-incidents.md`, `ia-sabotages/ai-incidents.md`, `tool-sabotages/ai-incidents.md`
---
_Filed from a recovered incident log. The record above is reproduced verbatim from the project's `ai-incidents.md`; it was written in Czech at the time of the event._
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reading ai-incidents.md and the related provenance in ia-sabotages/ai-incidents.md and tool-sabotages/ai-incidents.md, then verify whether the reported behavior exists in this public repository. The record names no implementation file or test; done would require confirming that unknown service-message payloads cannot reach chat storage or UI previews.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- desktop, security
- Issue type
- Bug
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 20/100