Skip to main content

Regression/import diagnostics helpers with TOON reports

Project description

regres

img.png

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 że defaultPage istnieje 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 stos base-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 *Module ani default. Bez nich host frontend/src/modules/index.ts rzuca runtime: No Module class found in ./<name>/<name>.module.ts. Diagnoza pokazuje gotowy fragment BaseModule do wklejenia.
  • Vite runtime probe (--vite-base, autoderywowane z --url) — pobiera plik celu z dev-servera Vite i parsuje błędy 500 typu Failed 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-deleted w MODULE_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 modeli
  • regres 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

AI Cost Tracking

PyPI Version Python License AI Cost Human Time Model

  • 🤖 LLM usage: $5.7000 (38 commits)
  • 👤 Human dev: ~$794 (7.9h @ $100/h, 30min dedup)

Generated on 2026-04-28 using openrouter/qwen/qwen3-coder-next


License

Licensed under Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

regres-0.1.41.tar.gz (109.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

regres-0.1.41-py3-none-any.whl (94.5 kB view details)

Uploaded Python 3

File details

Details for the file regres-0.1.41.tar.gz.

File metadata

  • Download URL: regres-0.1.41.tar.gz
  • Upload date:
  • Size: 109.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for regres-0.1.41.tar.gz
Algorithm Hash digest
SHA256 10e2ffb71bbbc42a923cc8291210075e6e9cc96269b051a6de3ae53bfd9cf951
MD5 c731d126cf59ccb3b08a3ca34574484b
BLAKE2b-256 4ceadf0f8495a8839e2548fcfc1d5a1c51e0f42dafeeadd8f928fa12c61c5a75

See more details on using hashes here.

File details

Details for the file regres-0.1.41-py3-none-any.whl.

File metadata

  • Download URL: regres-0.1.41-py3-none-any.whl
  • Upload date:
  • Size: 94.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.7

File hashes

Hashes for regres-0.1.41-py3-none-any.whl
Algorithm Hash digest
SHA256 71c0a2adb929b8a7d7623bcd75fae543c37487efe5fe47c7a7e4ecc95afb8161
MD5 21e6ae62dd5449f77963e80fd6918f67
BLAKE2b-256 aad42e7259d08d1b0ae732b80eafa5f06c4ae83b915cf56a8086f60e99dad7a9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page