feat: wiele systemów domów naraz — porównanie obok siebie (PRE-05/LOG-05, A2a) #44

Merged
gitea merged 1 commits from feat/pre05-multi-house into master 2026-07-29 00:03:47 +00:00
Owner

Druga zaplanowana iteracja (A2a). Astrolodzy spierają się o systemy domów —
teraz można policzyć kilka na raz i zobaczyć, jak różny podział przesuwa
planety między domami.

Podejście

Domy to geometria z Asc/MC — osie są wspólne, różni się tylko podział.
Prymarny system zostaje w cusps/house_system/positions[].house (pod kosmogram
i wstecznie — dotychczasowe ścieżki bez zmian).

  • logika: build_chart(..., house_systems=[...])result["house_systems"]
    (prymarny pierwszy, bez duplikatów) + positions[].houses[system] = dom obiektu
    w każdym systemie. Doklejane tylko gdy > 1. Nieznany system (np. placidus)
    jest pomijany, nie wywala horoskopu.
  • endpoint /chart/positions: pole house_systems; klient prezentacji przekazuje.
  • UI: checkboxy „Porównaj systemy domów" (whole sign / equal / porphyry) +
    tabela kusp obok siebie (12 domów × systemy); stan zaznaczeń przeżywa submit.

Zakres — świadomie

3 systemy z czystej matmy (houses.py) — zero zależności, zero walidacji
krzyżowej (zgodnie z ustaleniem). Egzotyczne (Placidus/Koch/Regiomontanus/
Campanus) dojdą przez endpoint /houses w silniku B (swe.houses, wzorzec) jako
A2b — maszyneria „naraz" jest już gotowa, egzotyczne tylko dopiszą wpisy.

Weryfikacja

Żywy /chart/positions: prymarny whole_sign, house_systems =
[whole_sign, equal, porphyry], 12 kusp/system, dom per system per obiekt. Testy:
logika +5, prezentacja +6. Logika 270, prezentacja 179.

Druga zaplanowana iteracja (A2a). Astrolodzy spierają się o systemy domów — teraz można policzyć **kilka na raz** i zobaczyć, jak różny podział przesuwa planety między domami. ## Podejście Domy to geometria z Asc/MC — **osie są wspólne**, różni się tylko podział. Prymarny system zostaje w `cusps`/`house_system`/`positions[].house` (pod kosmogram i wstecznie — dotychczasowe ścieżki bez zmian). - **logika**: `build_chart(..., house_systems=[...])` → `result["house_systems"]` (prymarny pierwszy, bez duplikatów) + `positions[].houses[system]` = dom obiektu w każdym systemie. Doklejane **tylko gdy > 1**. Nieznany system (np. `placidus`) jest pomijany, nie wywala horoskopu. - **endpoint** `/chart/positions`: pole `house_systems`; klient prezentacji przekazuje. - **UI**: checkboxy „Porównaj systemy domów" (whole sign / equal / porphyry) + tabela kusp obok siebie (12 domów × systemy); stan zaznaczeń przeżywa submit. ## Zakres — świadomie 3 systemy z **czystej matmy** (`houses.py`) — zero zależności, zero walidacji krzyżowej (zgodnie z ustaleniem). **Egzotyczne** (Placidus/Koch/Regiomontanus/ Campanus) dojdą przez endpoint `/houses` w silniku B (`swe.houses`, wzorzec) jako **A2b** — maszyneria „naraz" jest już gotowa, egzotyczne tylko dopiszą wpisy. ## Weryfikacja Żywy `/chart/positions`: prymarny `whole_sign`, `house_systems` = `[whole_sign, equal, porphyry]`, 12 kusp/system, dom per system per obiekt. Testy: **logika +5, prezentacja +6**. Logika **270**, prezentacja **179**.
gitea added 1 commit 2026-07-28 21:10:09 +00:00
feat: wiele systemów domów naraz — porównanie obok siebie (PRE-05/LOG-05, A2a)
Testy / Testy warstwy logicznej (silnik) (push) Successful in 11m10s
Testy / Testy warstwy prezentacji (dostęp do baz) (push) Successful in 9m52s
Testy / Build obrazu silnika B (swisseph) (push) Successful in 35s
Testy / Kontrola składni wszystkich warstw (push) Successful in 21s
Testy / Testy warstwy logicznej (silnik) (pull_request) Successful in 11m0s
Testy / Testy warstwy prezentacji (dostęp do baz) (pull_request) Successful in 9m53s
Testy / Build obrazu silnika B (swisseph) (pull_request) Successful in 30s
Testy / Kontrola składni wszystkich warstw (pull_request) Successful in 20s
a98a64da9c
Astrolodzy spierają się o systemy domów; teraz można policzyć kilka na raz i
zobaczyć, jak różny podział przesuwa planety między domami.

Domy to geometria z Asc/MC — osie są WSPÓLNE, różni się tylko podział. Prymarny
system zostaje w `cusps`/`house_system`/`positions[].house` (pod kosmogram i
wstecznie — nic się nie zmienia dla dotychczasowych ścieżek). Nowość:
- logika: `build_chart(..., house_systems=[...])` → `result["house_systems"]` =
  pełen zestaw (prymarny pierwszy, bez duplikatów), a `positions[].houses[system]`
  mówi, w którym domu obiekt siedzi wg każdego systemu. Doklejane tylko gdy > 1.
  Nieznany system (np. placidus — dojdzie przez swisseph osobno, A2b) pomijany,
  nie wywala horoskopu.
- endpoint `/chart/positions`: pole `house_systems`; klient prezentacji przekazuje.
- UI: checkboxy „Porównaj systemy domów" (whole sign / equal / porphyry) + tabela
  kusp obok siebie (12 domów × systemy), stan zaznaczeń przeżywa submit.

Na razie 3 systemy z czystej matmy (`houses.py`) — zero zależności, zero walidacji
krzyżowej. Egzotyczne (Placidus/Koch/Regiomontanus/Campanus) dojdą przez endpoint
`/houses` w silniku B (swisseph) jako A2b — maszyneria „naraz" jest już gotowa,
egzotyczne tylko dopiszą kolejne wpisy.

Weryfikacja: żywy /chart/positions — prymarny whole_sign, house_systems
[whole_sign, equal, porphyry], 12 kusp/system, dom per system per obiekt. Testy:
logika +5, prezentacja +6. Logika 270, prezentacja 179.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
gitea merged commit 9b1e4dbb20 into master 2026-07-29 00:03:47 +00:00
gitea deleted branch feat/pre05-multi-house 2026-07-29 00:03:48 +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#44