anthropics / anthropics/claude-code

[Agent incident] 2026-08-31 19:30 - DOPLNĚK ANALÝZY 1: vlastník potvrdil viditelný průběh a nadiktoval algoritmus

Open
#95,053 0 comments 0 reactions 0 assignees View on GitHub
area:model bug platform:intellij
Dominant language
Python
Stars
145k
Forks
23.1k
PR merge metrics
PR metrics pending

Description

### Summary

Incident recorded on **2026-08-31 19:30** 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-31 19:30 — DOPLNĚK ANALÝZY 1: vlastník potvrdil viditelný průběh a nadiktoval algoritmus

ANALÝZU PSAL: claude-fable-5.

VLASTNÍK POPSAL POZOROVANÉ CHOVÁNÍ (19:2x, jeho slovy): „veme se posledni cache a kdyz se
najdou peer vse se smaze a postupne se naplna mrizka" — a že offline-first s dosynchronizací
bylo požadováno několikrát.

CO TOMU V KÓDU ODPOVÍDÁ (fakta): dlaždice z cache se vkládají se STARÝM časem posledního
života (AppState.kt:4370). Úklidová podmínka běží v discovery smyčce (AppState.kt:4442)
i v pull-to-refresh (AppState.kt:4892) a maže každou dlaždici, jejíž čas je starší 30 minut
(NEARBY_RETENTION_MS). Důsledek přesně odpovídá popisu vlastníka: dlaždice z cache po
startu naskočí, ale protože nesou staré časy, smyčka je krátce po startu (jakmile
odstartuje discovery) postupně nebo naráz vyhází — přežije jen ten, komu mezitím přišel
čerstvý announce. Mřížka se pak plní od nuly z živých announce. Nejde o pád ani o výpadek
sítě — je to přímý důsledek aplikování 30min prahu i na data z cache.

NADIKTOVANÝ ALGORITMUS (ZÁVAZNÉ ZADÁNÍ, 19:3x, k implementaci až na pokyn): „jel bych
záznam po záznamu a postupně je měnil, jak stavy tak viditelnost" — tedy:
1. Po startu se mřížka naplní z poslední cache KOMPLETNĚ a nic se nemaže.
2. Jak přicházejí čerstvé informace (announce, zprávy, sync), aktualizuje se KAŽDÝ záznam
jednotlivě: stav (online/žlutá/šedá) i viditelnost.
3. Plošné mazání mřížky (naráz) neexistuje; záznam mizí jen na základě vlastního stavu.
Zapsáno bez implementace (režim „jen analýza"); zároveň uloženo do trvalé paměti ke
grid-display-spec.

ANALÝZU PSAL: claude-fable-5. Vlastník 31. 8. upřesnil: notifikace na desktopu zmizely už
před ~2 měsíci, nedávno žádal opravu a beep; beep („notifikace na Ubuntu") stále není,
ani „za použití knihovny KMP".

FAKTA:
1. ČASOVÁNÍ: transkripty sahají jen do 31. 7. — tvrzení „před 2 měsíci" (≈ začátek
července) nejde ověřit ani vyvrátit, starší záznamy nejsou. Nejstarší DOLOŽENÉ hlášení
zmizení: 6. 8. 16:22 „kdyz jsem poslal zpravu tak to PIPLO coz je cool ale ZMIZELI
UPLNE notifikace" (session a7b8b3f6). Poslední žádost o opravu: 27. 8. 18:11
„NEFUNGUJOU NA DESKTOPU NOTIFIKACE" (14cc5323). Prompt se slovem „beep" v dostupných
transkriptech 31. 7.–31. 8. NENÍ — žádost o beep tedy proběhla kanálem/session, ke
které nemám záznam; nezpochybňuji ji, jen ji nemohu citovat.
2. BEEP JE SVÁZANÝ S BUBLINOU (klíčový nález v kódu, stav k 36eb2030): zvuk se přehrává
JEN když notify-send bublinu přijal — Media.desktop.kt:234
`if (viaNotifySend && !silent) DesktopNotify.playSound()` (canberra/paplay, ř. 169–176;
zavedeno e4981d59 5. 8.). Selže-li cesta bubliny (nebo guard výš), NEOZVE SE ANI BEEP.
Beep tedy nemá vlastní nezávislou cestu — „oprav beep" nebylo nikdy implementovatelné
bez opravy bublin, a nikdo to vlastníkovi neřekl.
3. Stav 6. 8. („piplo, ale bublina nikde") znamená, že notify-send tehdy uspěl (jinak by
dle ř. 234 nezněl zvuk) a bublinu potlačil systém — tomu odpovídá i oprava 077b79a0
z téhož dne („warn when the system blocks our notifications"). Stav „ani beep" (nyní)
znamená, že dnes už selhává i samotná cesta notify-send/notifyUser — posun mezi 6. 8.
a 31. 8., zatím nediagnostikovaný (chybí log `notify:` z běžící instance).
4. ŽÁDNÁ KMP KNIHOVNA NOTIFIKACÍ V PROJEKTU NENÍ: gradle (libs.versions.toml, *.gradle.kts)
neobsahuje žádnou notifikační závislost; desktop notifikace jsou ručně psané
(notify-send + AWT tray + paplay). Jediná související položka je iOS linker opt
UserNotifications (shared.gradle.kts:91). Pravidlo kmp-libs (nejdřív hledat hotovou
multiplatformní knihovnu na klibs.io) pro notifikace nikdy použito nebylo.
DOPAD NA ANALÝZU 6: hypotéza guardu \_handedOver NEVYSVĚTLUJE stav z 6. 8. (zvuk hrál,
takže notifyUser proběhl) — pro 6. 8. je doloženou příčinou potlačení systémem; pro
aktuální stav (ani beep) zůstává příčina neurčena a kandidáty jsou selhání notify-send,
guard \_handedOver, nebo nepřijetí zprávy na pozadí. K rozhodnutí je nutný log z desktopu.

Provenance in the project's git history

- record key: `2026-08-31 19:30`
- first committed: `2026-08-31T19:33:03+02:00`
- first commit: `ed52e38f9247`
- 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

This report names AppState.kt, Media.desktop.kt, shared.gradle.kts, and Gradle dependency files, but it does not identify a Claude Code entry point or a requested change. First verify whether the issue belongs to this repository; if so, reproduce the desktop notification and cache behavior with logs. Done is undefined until a target behavior and acceptance test are specified.

Written by the indexing model from the issue text.

Assessment

Tech stack
kotlin
Domain
desktop, mobile
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
15/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.