anthropics / anthropics/claude-code
[Agent incident] 2026-08-31 18:45 - ANALÝZA 1: mřížka není offline-first a nesynchronizuje se postupně
- Dominant language
- Python
- Stars
- 145k
- Forks
- 23.1k
- PR merge metrics
- PR metrics pending
Description
### Summary
Incident recorded on **2026-08-31 18:45** while working with the coding agent in IntelliJ IDEA on a private Kotlin Multiplatform project.
> This record was rewritten 9 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-31 18:45 — ANALÝZA 1: mřížka není offline-first a nesynchronizuje se postupně
ANALÝZU PSAL: claude-fable-5 (bez zásahu do kódu).
ZADÁNÍ A PROMPTY (dohledané v transkriptech, které sahají jen do 31. 7.): 27. 8. 10:53 „nase
apka je offline first" (session e3571964); 27. 8. 12:45 zadání „onPause/onResume NESMÍ
vyprázdnit peery v mřížce" (žurnál, dosud otevřené); 27. 8. 19:35 offline-first připomenuto
u timeline (ca8540fd); 30. 8. 18:33 „grid se nacita dlouho, chtel jsem show last & sync"
(5621823b). Starší explicitní „show last & sync" zadání v dostupných transkriptech není.
OPRAVA: jediný commit k „show last & sync" — 6c1bcfe1 30. 8. 18:38 (5 minut po promptu):
přesunul načtení cache okolí, profilu a poslední polohy na začátek bootu. Starší commity
k offline chování mřížky: 1059f9df (28. 7., retence 30 min), 05c13fff + bb4caf30 (1. 8.,
řazení dle poslední známé polohy, historie bez stropu), 0a789d04 (5. 8., offline tečky bez
announce), 2725f220 (13. 8., příchozí zpráva = důkaz života). Celkem 6 přímých commitů;
v širším okolí 33 commitů „grid" a 74 „nearby/announce/discovery".
PROČ TO POŘÁD NENÍ OFFLINE-FIRST (fakta z kódu, stav k 36eb2030):
1. loadNearbyCache (AppState.kt:4343) pustí z cache do mřížky JEN peery s „životem"
≤ 30 minut (filtr na NEARBY_RETENTION_MS, AppState.kt:4370; konstanta 30 min
v NearbyFilterRules.kt:11). Vše starší jde jen do historie. Po vypnutí delším než
30 minut startuje mřížka prázdná (jen vlastní dlaždice) — „show last" nemá co ukázat.
2. Retenční smyčka (AppState.kt:4442) průběžně maže z `seen` vše starší 30 minut;
historie se do mřížky míchá jen v retenci a do NEARBY_RADIUS_KM.
3. Postupná synchronizace neexistuje: mřížka se plní výhradně živými announce z gossipu.
Není žádný protokol „pošli mi, koho vidíš", žádná výměna tabulek peerů;
cachedDiscoIds (AppState.kt:4358) jen seedují vytáčení spojení.
4. Příjem announce je podmíněn doběhlým bootem enginu, popředím (závazné ladění baterie
27. 8.: mimo popředí se nepřijímá nic) a výjimkou z Doze.
5. Úkol z 27. 8. 12:45 (onResume nesmí vyprázdnit mřížku, jen reconnect+sync+dotaz) je
v žurnálu stále nedokončený.
Bod 1 je v napětí se specem mřížky z 13. 8. („30 min retence jako offline") — spec řídí
mizení za běhu, ale tentýž práh se aplikuje i na start z cache, takže požadavek „ukaž
poslední známé hned po startu" pro cokoli staršího 30 minut nesplňuje. KTERÉ místo změnit
(práh při startu vs. retence za běhu) je rozhodnutí vlastníka (pravidlo
new-rule-as-new-function).
ČAS A TOKENY: samotný fix 30. 8. 18:33→18:38; hodina 18–19 obsahuje out 163 529,
cacheRead 48,2 M (spolu s dalšími úpravami téže hodiny). Celá session 5621823b
(30. 8. 14:19 – 31. 8. 17:45): out 1 784 571, in 78 095, cacheRead 1 016 558 529,
cacheWrite 7 830 335.
Provenance in the project's git history
- record key: `2026-08-31 18:45`
- first committed: `2026-08-31T18:34:01+02:00`
- first commit: `1a1d804b6f4e`
- stored versions of this record: 9
- 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 report names AppState.kt, NearbyFilterRules.kt, and ai-incidents.md in a private Kotlin Multiplatform project, but it does not identify a change for claude-code. Start by determining whether this incident belongs in this repository and whether the desired outcome is documentation or an implementation; no completion criteria are provided.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- kotlin
- Domain
- documentation
- Issue type
- Documentation
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Needs clarification
- Newbie friendliness
- 15/100