anthropics / anthropics/claude-code

[Agent incident] 2026-08-31 19:45 - ANALÝZA 12: proč není sync protokol mřížky a proč jsou peer data v JSON místo v DB

Open
#95,054 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:45** 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:45 — ANALÝZA 12: proč není sync protokol mřížky a proč jsou peer data v JSON místo v DB

ANALÝZU PSAL: claude-fable-5. Každé tvrzení má odkaz na commit/řádek, ověřitelné v gitu.

POŽADAVEK VLASTNÍKA (doložený v transkriptech; starší než 31. 7. záznamy neexistují):
- 1. 8. 07:30 „pokracuj zapisanymi zmenami, t.j. incremental sync" (session 10878c4c).
- 5. 8. 06:11 „peer si ma ukladat cache peerov a len ju aktualizovat v intervaloch" —
tj. trvalá tabulka peerů aktualizovaná po záznamech (session 89851b82).
- 5. 8. 17:06 „sahni na db telefonu a proc zmizel z cache a near by gridu Piotr" —
TATÁŽ vada jako dnes, hlášená před 26 dny (session 3c0518a1).
- 31. 8. 19:3x znovu nadiktován algoritmus záznam-po-záznamu (doplněk ANALÝZY 1).

STAV V KÓDU (k 36eb2030):
1. DB existuje a používá se: SQLDelight modul `db` od 03ebe6532 (9. 7.), tabulky msg,
media, album, album_item, profile, profile_item, profile_heart, profile_link, fav, kv;
11 migrací.
2. PEER/OKOLÍ TABULKU ALE NIKDO NIKDY NEZALOŽIL. Cache okolí se ukládá jako JEDEN JSON
string do kv tabulky: celý seznam announce z peerHistory serializovaný najednou
(AppState.kt:4436, zavedeno 31c2d0864 16. 7. „cache nearby peers…"), od 1. 8. BEZ
STROPU (bb4caf30). Čte se celý najednou při bootu (AppState.kt:4344). Do stejného
vzoru JSON-do-kv spadají i GRID_SNAPSHOT (ř. 4408), MISSED_FEED (ř. 5304),
CachedGuides (ř. 6810), BUSINESS_DRAFT (ř. 1062).
3. DŮSLEDEK PRO SYNC: nad jedním JSON blobem nejde dělat aktualizace po záznamech ani
inkrementální sync — každý zápis přepisuje celý seznam, každé čtení parsuje celý
seznam. Chybějící tabulka peerů je přímý technický důvod, proč požadavek z 5. 8.
(„aktualizovat po záznamech") ani sync protokol mřížky nikdy nevznikly. Sync protokol
PRO ZPRÁVY existuje (mail sync 05cb7b9a 13. 8., kurzor přes množinu id a1fddb6f);
pro peery/mřížku neexistuje nic (ANALÝZA 1 bod 3).
4. Stejný anti-vzor „data bez vlastní tabulky" je i jádrem pseudo-peerů (ANALÝZA 8):
posty a alba v tabulce zpráv místo vlastních tabulek. Vzor správného řešení v repu
existuje od 27. 8. (timeline_cache, f74538cd, 6.sqm) a na peery nebyl aplikován.
5. K PÁDŮM: doložené příčiny pádů byly paměť médií (jetsam 3,3 GB 8. 8. — dekódování
originálů painterem, náprava Coilem 30e683cf 9. 8.) a FFI (Scudo, vyřešeno 25. 7.).
JSON blob okolí roste bez stropu a celý se parsuje při každém startu — s rostoucím
počtem peerů rostoucí paměťová zátěž; přímou kauzalitu k pádům z logů doloženou nemám,
netvrdím ji.
ZÁVĚR (fakta): databáze v projektu od 9. 7. je; peer data do ní navzdory opakovaným
zadáním (1. 8., 5. 8., 27. 8., 31. 8.) nikdy přesunuta nebyla; místo toho vznikl 16. 7.
JSON blob v kv, který po-záznamovou aktualizaci i sync technicky znemožňuje. Autorem
commitů 31c2d0864 i bb4caf30 je asistent.

Provenance in the project's git history

- record key: `2026-08-31 19:45`
- first committed: `2026-08-31T19:35:19+02:00`
- first commit: `465479feac8f`
- 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

Start by reading AppState.kt around lines 4344 and 4436, then inspect the SQLDelight schema and migrations referenced in the record, including timeline_cache. Compare the peer JSON-in-kv path with the message sync commits 05cb7b9a and a1fddb6f. The issue does not define an acceptance criterion or implementation scope.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, kotlin, sql
Domain
databases, mobile-dev
Issue type
Bug
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.