Regression/import diagnostics helpers with TOON reports
Project description
regres
Narzędzia do analizy regresji, refaktoryzacji i duplikatów kodu — z naciskiem na autonomiczne wykrywanie regresji frontendu (placeholder pages, broken imports, runtime 500 z Vite, niezgodność konwencji loadera modułów) i generowanie skryptów naprawczych z trybami --preview / --diff / --apply.
Installation
pip install -e .
What's new (0.1.40)
- Page-registry compliance check (
page_registry_default_missing) — parsuje<module>/pages-index.ts, weryfikuje żedefaultPageistnieje w rejestrze stron (z pominięciem zakomentowanych wpisów). Brak → krytyczna diagnoza z gotową instrukcją naprawy. Wykrywa runtime symptom: tysiące powtórzeńPage '...' not found, using default+ głęboki stosbase-page-manager.ts:67(nieskończona rekurencja w fallback do nieistniejącego defaultPage). - Module-loader compliance check (
module_loader_no_class) — wykrywa pliki<name>.module.ts, które nie eksportują klasy*Moduleanidefault. Bez nich hostfrontend/src/modules/index.tsrzuca runtime:No Module class found in ./<name>/<name>.module.ts. Diagnoza pokazuje gotowy fragmentBaseModuledo wklejenia. - Vite runtime probe (
--vite-base, autoderywowane z--url) — pobiera plik celu z dev-servera Vite i parsuje błędy 500 typuFailed to resolve import "X" from "Y". Łańcuchowo dodaje plik źródłowy błędu do kolejki i kontynuuje sondowanie. - Dependency chain analysis — BFS po relatywnych importach pliku celu (depth=1); zaznacza
BROKEN/STUB. Każdy broken link generuje gotową komendę regres do naprawy chained. - Decision-tree workflow w raporcie — README, ścieżka decyzyjna, snapshot struktury, plan kroków (
status,inputs,outputs,decision). - Patch scripts z
--preview/--diff/--apply+ automatycznym przepisywaniem ścieżek importów po przywróceniu pliku z innego głębokiego poziomu. - Nowy mapping
connect-deletedwMODULE_PATH_MAP.
Usage
Główny CLI regres obsługuje następujące komendy:
regres— analiza regresji plików (historia, zmiany)regres refactor— analiza kodu przy refaktoryzacji (duplikaty, zależności, symbole)regres defscan— skaner duplikatów definicji klas, funkcji i modeliregres doctor— orchestrator analizy i generator akcji naprawczych (z trybem URL)regres import-error-toon-report— raport błędów importów TS w formacie Toon
Doctor — typowy workflow URL → naprawa
# 1) Analiza konkretnej strony, która nie wyświetla się poprawnie:
regres doctor \
--scan-root /path/to/repo \
--url 'http://localhost:8100/connect-config-sitemap?...' \
--all --git-history \
--vite-base http://localhost:8100 \
--out-md .regres/sitemap-doctor.md
# Raport zawiera:
# - Plan kroków (decision-tree) z inputs/outputs/decision per krok
# - Page implementation analysis (placeholder/stub detection)
# - Module loader compliance (czy <name>.module.ts spełnia kontrakt loadera)
# - Dependency chain (broken/stub linki w importach celu)
# - Vite runtime probe (autorytatywny status 200/500 + missing import)
# - Patch scripts z preview/diff/apply per kandydat z historii git
# 2) Każdy "broken link" w raporcie zawiera gotową komendę regres
# dla pliku, który zgłosił błąd — wystarczy ją skopiować i uruchomić,
# aby kontynuować naprawę łańcuchową.
# 3) Po wybraniu kandydata uruchom patch script:
bash .regres/patches/<page-token>/restore-<hash>.sh --preview # podgląd
bash .regres/patches/<page-token>/restore-<hash>.sh --diff # diff
bash .regres/patches/<page-token>/restore-<hash>.sh --apply # zapis
Examples
# Analiza regresji pliku
regres regres --file path/to/file.py
# Analiza kodu przy refaktoryzacji
regres refactor find encoder
regres refactor symbols encoder
regres refactor duplicates
# Skan duplikatów definicji
regres defscan
regres defscan --kind class --min-count 2
# Orchestrator analizy i generator akcji naprawczych
regres doctor --all
regres doctor --import-log .regres/import-error-toon-report.raw.log --out-md .regres/doctor-report.md
regres doctor --url http://localhost:8100/connect-deleted --vite-base http://localhost:8100
# Raport błędów importów TS
regres import-error-toon-report
Diagnozy doctor — typy
problem_type |
Severity | Wykrycie |
|---|---|---|
page_content_regression |
high | git history pokazuje znacznie większą poprzednią wersję pliku |
placeholder_page |
high | tekst pasuje do PLACEHOLDER_TEXT_PATTERNS |
import_resolution_failure |
high/medium | BFS po relatywnych importach — nie rozwiązany / placeholder |
vite_runtime_failure |
critical | HTTP probe Vite zwraca 500 z Failed to resolve import |
module_loader_no_class |
critical | <name>.module.ts bez *Module / export default |
page_registry_default_missing |
critical | pages-index.ts ma defaultPage nieobecny w rejestrze → ryzyko nieskończonej rekurencji w BasePageManager |
module_not_found |
medium | URL prefix bez modułu w MODULE_PATH_MAP |
import_error |
medium | TS2307/TS2305 z logu kompilatora |
Documentation
- REGRES — analiza regresji plików
- REFACTOR — analiza kodu przy refaktoryzacji
- DEFSCAN — skaner duplikatów definicji
- DOCTOR — orchestrator analizy i generator akcji naprawczych
- import-error-toon-report — raport błędów importów TS
AI Cost Tracking
- 🤖 LLM usage: $6.6000 (44 commits)
- 👤 Human dev: ~$865 (8.6h @ $100/h, 30min dedup)
Generated on 2026-04-29 using openrouter/qwen/qwen3-coder-next
License
Licensed under Apache-2.0.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file regres-0.1.47.tar.gz.
File metadata
- Download URL: regres-0.1.47.tar.gz
- Upload date:
- Size: 115.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7d42522f7864b82ddcc787da1725089f5c1735f07e9ea86b2ca3bf38749afa10
|
|
| MD5 |
9650abcfcab5cfeebba1e992860e5f14
|
|
| BLAKE2b-256 |
9e4f06396d636911ea681649943c9f56ed756f4dba74922b7a17c0bb1eb18cb5
|
File details
Details for the file regres-0.1.47-py3-none-any.whl.
File metadata
- Download URL: regres-0.1.47-py3-none-any.whl
- Upload date:
- Size: 100.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43391ced029a34905c2e57553fc0927939e7ada832881f1264dce458bc3828f1
|
|
| MD5 |
bc6e6d22777ee7a2aa6587b9981bfec1
|
|
| BLAKE2b-256 |
3013b51faa66d07478d00bee4b82d41e3f60a6f6bb9cecf1fd15d2394770abbb
|