From bd03c56e98cf1f5005ec3be8c2d910ce0a4923eb Mon Sep 17 00:00:00 2001 From: Patryk Gensch <43010113+patryk025@users.noreply.github.com> Date: Sat, 30 May 2026 22:28:04 +0200 Subject: [PATCH] docs: document diff CLI and FastAPI backend in README Co-Authored-By: Claude Opus 4.8 --- README.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/README.md b/README.md index 222214b..bbe383e 100644 --- a/README.md +++ b/README.md @@ -48,6 +48,29 @@ analyzeHeadless -process PIKLIB8.dll \ -postScript extract_engine_surface.py "$(pwd)/snapshots/PIKLIB8.snapshot.json" ``` +## Diff engine (CLI) + +```bash +python -m ams OLD.snapshot.json NEW.snapshot.json [--owner CMC_Animo] \ + [--only types,methods,events,fields,layout] [--json] +``` +Porównuje dwa snapshoty po 4 osiach (added/removed/changed) + wykrywa metody przeniesione +w hierarchii. Oś `struct_layout` jest sensowna tylko między wersjami tego samego kompilatora. + +## Backend (FastAPI + katalog) + +Modularny monolit nad SQLAlchemy — domyślnie SQLite (zero setupu), gotowy pod Postgres +przez `DATABASE_URL`. Pełny snapshot trzymany jest w bazie verbatim; diff czyta go z powrotem +przez `ams.diff`. + +```bash +pip install -e ".[api,dev]" # zależności +python -m ams.api.importer --game "Reksio i UFO" snapshots/PIKLIB8.dll.snapshot.json +uvicorn ams.api.app:create_app --factory --reload # serwer +``` +Endpointy: `POST/GET /games`, `POST/GET /snapshots` (import deduplikowany po sha256), +`GET /diff?old=&new=[&owner=]`, `GET /health`. Testy: `pytest` (11, w tym integracyjne na golden pair). + ## Format snapshotu `schema_version`, `binary{name,sha256,engine,compiler,factory_addr}`, oraz listy