anthropics / anthropics/claude-code
[Agent incident] 2026-08-13 12:00 - servisní zprávy p2p mailu poslané i starým klientům
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Summary
Incident recorded on **2026-08-13 12:00** while working with the coding agent in IntelliJ IDEA on a private Kotlin Multiplatform project.
### Environment
- Surface: Claude Code agent in IntelliJ IDEA (JetBrains plugin)
- Project: private Kotlin Multiplatform app (Android/iOS/desktop)
### Record (verbatim, Czech)
#### 2026-08-13 12:00 — servisní zprávy p2p mailu poslané i starým klientům
- **Co jsem udělal:** `ff1bc54b` + `058d2051` (p2p mail fáze 1+2, na telefonu
nainstalováno jako 1.0.151 v 05:18) přineslo nové servisní kindy `mail_fetch`,
`mail_delivered`, `mail_read` a relayové obálky. Odesílají se KAŽDÉMU protějšku bez
ohledu na jeho verzi; verzní bránu (`MAIL_MIN_APP_VERSION`) jsem dal jen na výběr
relayů, ne na adresáty servisních zpráv, a nechal ji „na fázi 3".
- **Co si uživatel zadal:** chaty stylem IMAP4 přes p2p. Nic o tom, že smí přestat
fungovat provoz se staršími klienty.
- **Škoda:** starší klient (1.0.150 a všechno, co je v releasu, včetně druhého
zařízení uživatele) guard `CHAT_VISIBLE_KINDS` nemá — servisní zprávu si uloží a
vykreslí jako běžnou: prázdné bubliny `{}` (JSON kurzoru fetchu), časy a cizí id
v textu, falešně rozsvícené nepřečtené a „vidění". A protože fetch i doručenky mají
jen throttle (60 s / 30 s), opakovalo se to pořád dokola. Uživatel: „appka
nepoužitelná".
- **Jak zjištěno:** uživatel („na starší apce běhaj naky prázdné {}, chodí mi špatné
a nesmyslné zprávy a falešné jakože vidění a lajky").
- **Oprava:** `6a0cc8a4` — `peerSupportsMail()`: fetch, doručenky, READ i relayová
obálka odejdou jen protějšku se ZNÁMOU verzí ≥ `MAIL_MIN_APP_VERSION`; bez známé
verze se servisní zpráva neposílá vůbec. Zprávy chodí dál běžnou cestou.
- **Pravidlo:** nový wire kind se smí odeslat až po ověření verze protějšku. Guard
„neznámý kind zahoď" chrání jen NOVÉHO příjemce — starý klient je ta strana, která
se rozbije, a ta se aktualizovat nedá. Verzní brána patří do TÉHOŽ commitu jako
nový kind, ne do další fáze.
Provenance in the project's git history
- record key: `2026-08-13 12:00`
- first committed: `2026-08-13T19:41:33+02:00`
- first commit: `05cb7b9acfa3`
- stored versions of this record: 1
- 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
The incident record is stored in ai-incidents.md, ia-sabotages/ai-incidents.md, and tool-sabotages/ai-incidents.md. Start by reading the record and its provenance in git history. The payload does not specify a documentation change or acceptance criteria, so what counts as done is not defined.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 1/5
- Estimated time
- Under an hour
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100