Skip to main content

Mapowanie ekranów

Źródło: repo luneta/docs/MAPOWANIE.md — edytuj w repo, nie tutaj.

Mapowanie ekranów: F-klawisze i paczka sesji

Decyzja właściciela z 2026-10-06. Cel: mapować ekrany i zgłaszać problemy bez wychodzenia z gry, a po sesji oddać Claude Code jedną zwięzłą paczkę zamiast setek klatek.

F-klawisze (tylko gdy wykryta gra działa)

klawisz akcja
F5 zgłoś: zrzut okna gry + okienko przy kursorze (opis, potem typ)
F6 auto-skan i nakładka razem (któreś wyłączone → oba wł., inaczej oba wył.)
F7 panel mapowania (debug/normal), etykiety zmiennych „tu jest X”
F8 opis do ostatniego zgłoszenia z F5
F9 okno Lunety pokaż/schowaj
F10 wolne na przyszłość

Poza grą klawisze są zwolnione (globalny skrót zabierałby np. F5 przeglądarce). Włącznik: ustawienia → „F5 zgłoś…”. Kod: src-tauri/src/fkeys.rs, src-tauri/src/report.rs.

Każda akcja daje komunikat w nakładce (jeśli włączona) i w zakładce „aktywność”. Zero wejścia do gry: okienko zgłoszenia to zwykłe okno pulpitu, chwilowo zabiera fokus.

Zgłoszenie (F5)

  1. F5 — Luneta robi zrzut okna gry w tej chwili (zanim pojawi się okienko).
  2. Przy kursorze otwiera się okienko: wpisz, o co chodzi (opcjonalnie), potem kliknij typ (albo Ctrl+1…5):
    • nowy ekran / do mapowania — ekran, którego Luneta nie zna;
    • zły odczyt — zła liczba, zły ekran, zły fakt;
    • zadanie nie odhaczone / błędnie;
    • pomysł na funkcję — np. „pokazuj tu taktyki”;
    • inne.
  3. Klik zapisuje klatkę i wpis do lokalnego dziennika problemów (<dane>/review/, kind: manual, data.category). Esc albo 60 s bez wyboru: nic nie trafia na dysk.

F8 otwiera to samo okienko z samym polem opisu dla ostatniego zgłoszenia (dziennik jest tylko dopisywany, więc opis to osobny wpis kind: note z data.ref; luneta review i paczka sklejają je ze zgłoszeniem). Zgłoszenia nie idą na serwer.

Paczka sesji

luneta session-pack <gra> [--since <godz.>|--all] [--frames N] [--learn <katalog>…]

albo przycisk paczka sesji w zakładce „aktywność” (gra wybrana w dniówkach).

  • Okres: od ostatniej paczki tej gry, najdalej 24 h wstecz (--since 3 = ostatnie 3 h, --all = cały dziennik).
  • Zawartość session.md: zgłoszenia pogrupowane po typie (z opisami F8), etykiety z panelu, dziennik automatyczny zliczony po rodzaju i ekranie, wynik toru ekranów (luneta screens) na unikalnych klatkach sesji wg bieżących reguł i modelu, lista klatek w paczce, opcjonalnie wiersz „sprawdzenie” z luneta learn (--learn mapping/ba-1 …; model trafia do katalogu paczki, nie do assets/).
  • Klawisze (ustawienie „klawisze”, domyślnie wył.; CLAUDE.md): sekcja „klawisze” — najczęstsze per ekran i sekwencja z 15 s przed każdym zgłoszeniem F5. Źródło <dane>/review/<dzień>/keys.jsonl, zapisywane tylko przy aktywnym oknie gry i działającym auto-skanie.
  • Klatki: najwyżej N (domyślnie 8), tylko nierozpoznane — zgłoszenia „nowy ekran”/„zły odczyt”, new_screen, anchor_mismatch, unknown_screen, którego bieżące reguły nadal nie rozpoznają. Prawie identyczne (dHash < 12 bitów) odpadają. Przeskalowane do 1280 px, JPEG 80. Logika wyboru: luneta_lib::core::session_pack (z testami).
  • Miejsce: <dane>/review/packs/<data>-<gra>/ (Linux: ~/.local/share/pl.ariku.luneta/review/packs/). Zostaje 10 ostatnich paczek. Nic nie jest wysyłane.

Szacunek tokenów jest w nagłówku session.md: tekst ≈ znaki / 3, obraz ≈ szer.×wys./750 po skalowaniu do 1568 px. Klatka 1920×1080 ≈ 1840 tokenów, 1280×720 ≈ 1230. Pomiar 2026-10-06 (BA, 24 h, 45 klatek w dzienniku): paczka ~11,2 tys. (tekst ~1,4 tys. + 8 klatek ~9,8 tys.) vs surowe klatki ~83 tys.; czas ~1 min 45 s (OCR 44 unikalnych klatek).

Przegląd przez Claude Code

Tylko na wyraźną prośbę właściciela, w sesji z nim (CLAUDE.md, wyjątek „dziennik problemów”). Wskaż katalog paczki: najpierw session.md, klatki tylko te, do których odsyła tekst.