feat(logic): glify astrologiczne — konwersja tekst↔symbol (LOG-22) #25

Merged
gitea merged 1 commits from feat/log22-glyphs into master 2026-07-24 11:01:39 +00:00
Owner

Warunek wstępny pod kosmogram (PRE-12): planety i znaki na kole rysujemy
symbolami. Nowy moduł engine/glyphs.py.

Kierunek Przykład
nazwa → glif Saturn → ♄, Pisces, conjunction → ☌, Fortune → ⊗
glif → nazwa ♄ → Saturn (znosi obecność/brak selektora wariantu)
glyphify tokenów [XX [Sa [Pis 26°08' [conj [PF♄ ♓ 26°08' ☌ ⊗ (stopnie nietknięte)

Pokrycie: 10 planet/świateł, węzły + Lilith + Chiron, 12 znaków, aspekty
(główne + minor), retrogradacja ℞, Fortuna ⊗.

DAN-18 „tylko tekst, nigdy emoji" — potraktowane serio

Sam selektor wariantu nie wystarcza — i to wyszło dopiero wizualnie
w przeglądarce
, nie z testów. Trzy warstwy obrony:

  1. w danych: selektor U+FE0E na znakach zodiaku i ♀/♂ (mają wariant emoji);
    ☉ i reszta go nie dostają (zbędny),
  2. CSS font-variant-emoji: text,
  3. CSS font-family celujący w monochromatyczne fonty symboli przed emoji.

Bez pkt. 3 macOS/Chromium renderował znaki jako kolorowe kafelki Apple
Color Emoji mimo VS15
— planety wychodziły tekstem, znaki nie. Stack
Apple Symbols / Segoe UI Symbol / Noto Sans Symbols2 naprawił render (sprawdzone
na zrzucie: czarno-białe symbole). Nigdzie nie emitujemy U+FE0F — pilnuje testu.

Wpięcie

build_chart: każda pozycja → glyph (planeta) + sign_glyph (znak, zależny od
zodiaku → po przesunięciu); osie i Loty tak samo (Fortuna ⊗, reszta Lotów bez
standardowego symbolu → None); aspekty → glif; result["sign_glyphs"] to
pierścień 12 znaków gotowy pod koło.

UI: kolumna „Sym." w tabeli pozycji (planeta + znak) i symbol przy aspekcie.

Testy

14 nowych: kompletność (każdy obiekt/znak/aspekt ma glif), dwukierunkowość
(round-trip w obie strony), DAN-18 (brak FE0F, znaki mają VS15, ☉ nie), przykład
glyphify z wymagań. Całość: logika 265 passed / 1 skipped, prezentacja 25.

Dalej

To odblokowuje PRE-12 (kosmogram) — mamy już glify per obiekt/znak/aspekt
i pierścień 12 znaków w wyniku. Następny krok: szkielet koła (SVG po stronie
serwera).

Warunek wstępny pod kosmogram (PRE-12): planety i znaki na kole rysujemy symbolami. Nowy moduł `engine/glyphs.py`. | Kierunek | Przykład | |---|---| | nazwa → glif | `Saturn` → ♄, `Pisces` → ♓, `conjunction` → ☌, `Fortune` → ⊗ | | glif → nazwa | ♄ → `Saturn` (znosi obecność/brak selektora wariantu) | | `glyphify` tokenów `[XX` | `[Sa [Pis 26°08' [conj [PF` → `♄ ♓ 26°08' ☌ ⊗` (stopnie nietknięte) | Pokrycie: 10 planet/świateł, węzły + Lilith + Chiron, 12 znaków, aspekty (główne + minor), retrogradacja ℞, Fortuna ⊗. ## DAN-18 „tylko tekst, nigdy emoji" — potraktowane serio Sam selektor wariantu **nie wystarcza** — i to wyszło dopiero **wizualnie w przeglądarce**, nie z testów. Trzy warstwy obrony: 1. **w danych**: selektor `U+FE0E` na znakach zodiaku i ♀/♂ (mają wariant emoji); ☉ i reszta go nie dostają (zbędny), 2. **CSS** `font-variant-emoji: text`, 3. **CSS** `font-family` celujący w monochromatyczne fonty symboli **przed** emoji. Bez pkt. 3 macOS/Chromium renderował znaki ♈–♓ jako **kolorowe kafelki Apple Color Emoji mimo VS15** — planety wychodziły tekstem, znaki nie. Stack `Apple Symbols / Segoe UI Symbol / Noto Sans Symbols2` naprawił render (sprawdzone na zrzucie: czarno-białe symbole). Nigdzie nie emitujemy `U+FE0F` — pilnuje testu. ## Wpięcie `build_chart`: każda pozycja → `glyph` (planeta) + `sign_glyph` (znak, zależny od zodiaku → po przesunięciu); osie i Loty tak samo (Fortuna ⊗, reszta Lotów bez standardowego symbolu → `None`); aspekty → glif; `result["sign_glyphs"]` to pierścień 12 znaków gotowy pod koło. UI: kolumna **„Sym."** w tabeli pozycji (planeta + znak) i symbol przy aspekcie. ## Testy 14 nowych: kompletność (każdy obiekt/znak/aspekt ma glif), dwukierunkowość (round-trip w obie strony), DAN-18 (brak FE0F, znaki mają VS15, ☉ nie), przykład `glyphify` z wymagań. Całość: **logika 265 passed / 1 skipped, prezentacja 25**. ## Dalej To odblokowuje **PRE-12 (kosmogram)** — mamy już glify per obiekt/znak/aspekt i pierścień 12 znaków w wyniku. Następny krok: szkielet koła (SVG po stronie serwera).
gitea added 1 commit 2026-07-23 18:47:04 +00:00
feat(logic): glify astrologiczne — konwersja tekst↔symbol (LOG-22)
Testy / Testy warstwy logicznej (silnik) (pull_request) Successful in 10m55s
Testy / Testy warstwy prezentacji (dostęp do baz) (pull_request) Successful in 9m43s
Testy / Build obrazu silnika B (swisseph) (pull_request) Successful in 37s
Testy / Kontrola składni wszystkich warstw (pull_request) Successful in 21s
build / build (push) Successful in 1m22s
Testy / Testy warstwy logicznej (silnik) (push) Successful in 11m12s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m39s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 33s
Testy / Kontrola składni wszystkich warstw (push) Successful in 24s
ace76183e5
Warunek wstępny pod kosmogram (PRE-12): planety i znaki na kole rysujemy
symbolami. Nowy moduł engine/glyphs.py:

- forward: nazwa → glif (planety, punkty, Loty, znaki, aspekty, retro ℞),
- reverse: glif → nazwa (znosi obecność/brak selektora wariantu),
- glyphify(): tokeny [XX z bazy → glify; przyklad z wymagan
  „[Sa [Pis 26°08' [conj [PF" → „♄  26°08' ☌ ⊗" (stopnie nietkniete).

DAN-18 „tylko tekst, nigdy emoji" potraktowane serio, TRZEMA warstwami — bo
sam selektor NIE wystarcza (potwierdzone wizualnie w przegladarce):
1. w danych: selektor wariantu tekstowego U+FE0E na znakach zodiaku oraz ♀/♂
   (maja wariant emoji); ☉ i reszta go nie dostaja (zbedny),
2. CSS font-variant-emoji:text,
3. CSS font-family celujacy w MONOCHROMATYCZNE fonty symboli PRZED emoji.
   Bez pkt. 3 macOS/Chromium i tak renderowal znaki  jako kolorowe kafelki
   Apple Color Emoji mimo VS15 — planety wychodzily tekstem, znaki nie. Stack
   „Apple Symbols / Segoe UI Symbol / Noto Sans Symbols2" naprawia render.
   NIGDZIE nie emitujemy U+FE0F (emoji) — pilnuje tego test.

Wpiete w build_chart: kazda pozycja dostaje glyph (planeta) + sign_glyph (znak,
zalezny od zodiaku, wiec po przesunieciu), osie i Loty tak samo (Fortuna ⊗,
reszta Lotow bez standardowego symbolu → None), aspekty dostaja glif,
result[„sign_glyphs"] to pierscien 12 znakow pod kolo.

UI: kolumna „Sym." w tabeli pozycji (planeta + znak) i symbol przy aspekcie.

Testy: 14 (kompletnosc — kazdy obiekt/znak/aspekt ma glif; dwukierunkowosc;
DAN-18 brak FE0F, znaki maja VS15, ☉ nie; przyklad glyphify z wymagan).
Calosc: logika 265 passed / 1 skipped, prezentacja 25. Render znakow
potwierdzony wizualnie (czarno-biale symbole, nie emoji).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit ace76183e5 into master 2026-07-24 11:01:39 +00:00
gitea deleted branch feat/log22-glyphs 2026-07-24 11:01:39 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: gitea/astrololo#25