fixos 2.2.45__tar.gz → 2.2.47__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fixos-2.2.45 → fixos-2.2.47}/CHANGELOG.md +67 -0
- {fixos-2.2.45 → fixos-2.2.47}/PKG-INFO +83 -18
- {fixos-2.2.45 → fixos-2.2.47}/README.md +80 -15
- {fixos-2.2.45 → fixos-2.2.47}/fixos/__init__.py +1 -1
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/cleanup_cmd.py +270 -24
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/main.py +11 -1
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/projects_cmd.py +156 -12
- fixos-2.2.47/fixos/diagnostics/docker_network_cleanup.py +282 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/service_cleanup.py +324 -54
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/PKG-INFO +83 -18
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/SOURCES.txt +2 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/requires.txt +5 -1
- {fixos-2.2.45 → fixos-2.2.47}/pyproject.toml +3 -3
- {fixos-2.2.45 → fixos-2.2.47}/setup.py +2 -1
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_cleanup_cmd.py +195 -4
- fixos-2.2.47/tests/unit/test_docker_network_cleanup.py +274 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_projects_cmd.py +125 -3
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_service_cleanup.py +138 -5
- {fixos-2.2.45 → fixos-2.2.47}/.env.example +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/LICENSE +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/MANIFEST.in +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/README.md +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/TEST_RESULTS.md +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/TEST_RESULTS_V2.md +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/alpine/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/arch/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/base/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/broken-audio/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/broken-full/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/broken-network/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/broken-thumbnails/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/debian/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/docker-compose.multi-system.yml +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/docker-compose.yml +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/fedora/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/test-multi-system.sh +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/test-scenarios.sh +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/ubuntu/Dockerfile +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docker/validate-scenario.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docs/examples/advanced_usage.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/docs/examples/quickstart.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/__main__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/autonomous.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/autonomous_session.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/hitl.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/hitl_session.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/session_core.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/session_handlers.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/agent/session_io.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/anonymizer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/_cleanup_flatpak.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/_cleanup_home.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/_cleanup_snap.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/_cleanup_system.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/_cleanup_utils.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/ask_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/config_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/features_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/fix_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/history_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/orchestrate_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/output_formatter.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/profile_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/provider_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/quick_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/quickfix_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/report_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/rollback_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/scan_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/shared.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/token_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli/watch_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/cli.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/config.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/config_interactive.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/constants.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_flatpak_analysis_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_flatpak_execution_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_flatpak_recommendations_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_storage_container_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_storage_system_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/_storage_user_mixin.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/cache_discovery.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/_shared.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/audio.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/file_analysis.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/hardware.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/packages.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/resources.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/security.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/storage_optimization.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/system_core.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/checks/thumbnails.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/dev_project_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/disk_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/flatpak_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/project_scanner.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/quick_snapshot.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/service_details.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/service_scanner.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/storage_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/system_checks.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/diagnostics/utils.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/auditor.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/catalog.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/installer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/profiles.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/features/renderer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/fixes/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/interactive/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/interactive/cleanup_planner.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/llm_shell.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/orchestrator/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/orchestrator/executor.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/orchestrator/graph.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/orchestrator/orchestrator.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/orchestrator/rollback.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/platform_utils.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/base.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/audio.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/disk.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/hardware.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/resources.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/security.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/builtin/thumbnails.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/plugins/registry.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/profiles/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/providers/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/providers/llm.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/providers/llm_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/providers/schemas.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/system_checks.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/utils/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/utils/anonymizer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/utils/terminal.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/utils/timeout.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/utils/web_search.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos/watch.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/dependency_links.txt +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/entry_points.txt +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/fixos.egg-info/top_level.txt +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/pytest.ini +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/requirements-dev.txt +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/requirements.txt +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/scripts/pyqual-calibrate.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/setup.cfg +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/conftest.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_anonymization_layers.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_audio_broken.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_cli.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_diagnostics_integration.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_executor.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_multi_system.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_network_broken.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/e2e/test_thumbnails_broken.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/test_fixos.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/__init__.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_anonymizer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_cache_discovery.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_core.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_dev_project_analyzer.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_executor.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_llm_provider.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_orchestrator.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_project_scanner.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_quick_cmd.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_quick_snapshot.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_resources_quick.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_security_quick.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_service_scanner.py +0 -0
- {fixos-2.2.45 → fixos-2.2.47}/tests/unit/test_system_checks_parallel.py +0 -0
|
@@ -2,6 +2,29 @@
|
|
|
2
2
|
|
|
3
3
|
### Added
|
|
4
4
|
|
|
5
|
+
- `fixos cleanup --docker-networks [--days N]` oraz `-c docker-networks`:
|
|
6
|
+
bezpieczny podgląd i usuwanie niestandardowych sieci Docker bez endpointów,
|
|
7
|
+
z ochroną sieci aktywnych/wbudowanych i końcowym testem puli adresowej.
|
|
8
|
+
- `fixos cleanup --docker-all` / `-c docker-all`: jedna operacja dla wszystkich
|
|
9
|
+
nieużywanych obrazów, build cache i osieroconych sieci, bez kontenerów i
|
|
10
|
+
wolumenów. `--docker-old` oraz interaktywne czyszczenie Dockera również
|
|
11
|
+
dołączają osierocone sieci.
|
|
12
|
+
- `fixos projects --docker-networks`: opcjonalne usuwanie sieci `dangling`
|
|
13
|
+
należących do wybranych projektów Compose, z dopasowaniem po etykiecie,
|
|
14
|
+
osobnym potwierdzeniem i usuwaniem wyłącznie wcześniej pokazanych ID.
|
|
15
|
+
- `fixos cleanup --docker-old [--days N]` oraz `-c docker-old`: usuwa
|
|
16
|
+
nieużywane obrazy Docker i build cache starsze niż N dni (domyślnie 30)
|
|
17
|
+
oraz osierocone sieci; bez wolumenów i obrazów używanych przez kontenery.
|
|
18
|
+
- `fixos cleanup --ollama-old [--days N]` oraz `-c ollama-old`: usuwa modele
|
|
19
|
+
Ollama niezmieniane od N dni (domyślnie 90), z pominięciem modeli
|
|
20
|
+
aktualnie załadowanych (`/api/ps`).
|
|
21
|
+
- Opcja interaktywna **[1] Wszystkie bezpieczne** obejmuje teraz także:
|
|
22
|
+
- **Docker (nieużywane zasoby)** — pełną pulę unused Images+Build Cache
|
|
23
|
+
oraz osierocone sieci, bez filtra wieku,
|
|
24
|
+
- **Ollama (modele >90 dni)** — gdy takie modele istnieją.
|
|
25
|
+
- Pomiar zwolnionego miejsca Dockera przez `docker system df` przed/po oraz
|
|
26
|
+
parsowanie `Total reclaimed space`; ostrzeżenie przy 0.00 GB mimo sukcesu
|
|
27
|
+
komendy; przypomnienie, że listy po `[1]` pochodzą ze skanu sprzed cleanup.
|
|
5
28
|
- `fixos quick`: ograniczona czasowo analiza heurystyczna bez LLM, która od razu
|
|
6
29
|
pokazuje presję CPU/RAM/dysku i maksymalny rozmiar jawnie odtwarzalnych cache.
|
|
7
30
|
- Lokalna historia szybkich próbek z porównaniem ostatnich godzin i bieżącego
|
|
@@ -14,6 +37,9 @@
|
|
|
14
37
|
|
|
15
38
|
### Changed
|
|
16
39
|
|
|
40
|
+
- Dokumentacja README / getting-started / architecture opisuje model trzech
|
|
41
|
+
poziomów ryzyka z nowymi flagami `--docker-old` / `--ollama-old` i różnicą
|
|
42
|
+
między reclaimable a filtrem wieku.
|
|
17
43
|
- Zakończone elementy historycznych roadmap zostały przeniesione z TODO do
|
|
18
44
|
changelogu: modułowy pakiet CLI, klasowe sesje HITL, wspólny
|
|
19
45
|
`SessionTimeout`, plugin registry, structured output LLM, rollback, profile
|
|
@@ -24,6 +50,9 @@
|
|
|
24
50
|
|
|
25
51
|
### Fixed
|
|
26
52
|
|
|
53
|
+
- Szacunek Dockera w opcji `[1]` nie obiecuje już całej puli RECLAIMABLE przy
|
|
54
|
+
filtrze `until=30d` (świeże unused images nie były kasowane, a UI pokazywało
|
|
55
|
+
0.00 GB).
|
|
27
56
|
- Zablokowano zbiorcze kasowanie chronionych danych LM Studio, Hugging Face,
|
|
28
57
|
Podman/containerd, Jupyter, Minikube, AppImage, VirtualBox, VMware oraz
|
|
29
58
|
rozszerzeń VS Code/Cursor. Takie wpisy pokazują teraz wyłącznie bezpieczny
|
|
@@ -51,6 +80,44 @@
|
|
|
51
80
|
rekurencyjnych skanów `/` oraz `/home` z szybkich kontroli.
|
|
52
81
|
- Czyszczenie cache JetBrains trafia w aktualną ścieżkę i wymaga zamknięcia IDE.
|
|
53
82
|
|
|
83
|
+
## [2.2.47] - 2026-08-13
|
|
84
|
+
|
|
85
|
+
### Docs
|
|
86
|
+
- Update CHANGELOG.md
|
|
87
|
+
- Update README.md
|
|
88
|
+
- Update docs/architecture.md
|
|
89
|
+
- Update docs/getting-started.md
|
|
90
|
+
|
|
91
|
+
### Test
|
|
92
|
+
- Update tests/unit/test_cleanup_cmd.py
|
|
93
|
+
- Update tests/unit/test_docker_network_cleanup.py
|
|
94
|
+
- Update tests/unit/test_projects_cmd.py
|
|
95
|
+
- Update tests/unit/test_service_cleanup.py
|
|
96
|
+
|
|
97
|
+
### Other
|
|
98
|
+
- Update fixos/cli/cleanup_cmd.py
|
|
99
|
+
- Update fixos/cli/main.py
|
|
100
|
+
- Update fixos/cli/projects_cmd.py
|
|
101
|
+
- Update fixos/diagnostics/docker_network_cleanup.py
|
|
102
|
+
- Update fixos/diagnostics/service_cleanup.py
|
|
103
|
+
- Update uv.lock
|
|
104
|
+
|
|
105
|
+
## [2.2.46] - 2026-08-07
|
|
106
|
+
|
|
107
|
+
### Docs
|
|
108
|
+
- Update CHANGELOG.md
|
|
109
|
+
- Update README.md
|
|
110
|
+
- Update docs/architecture.md
|
|
111
|
+
- Update docs/getting-started.md
|
|
112
|
+
|
|
113
|
+
### Test
|
|
114
|
+
- Update tests/unit/test_service_cleanup.py
|
|
115
|
+
|
|
116
|
+
### Other
|
|
117
|
+
- Update fixos/cli/cleanup_cmd.py
|
|
118
|
+
- Update fixos/diagnostics/service_cleanup.py
|
|
119
|
+
- Update project/planfile-tickets.yaml
|
|
120
|
+
|
|
54
121
|
## [2.2.45] - 2026-08-07
|
|
55
122
|
|
|
56
123
|
### Docs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: fixos
|
|
3
|
-
Version: 2.2.
|
|
3
|
+
Version: 2.2.47
|
|
4
4
|
Summary: AI-powered Linux/Windows diagnostics and repair – audio, hardware, system issues
|
|
5
5
|
Home-page: https://github.com/wronai/fixos
|
|
6
6
|
Author: fixos contributors
|
|
@@ -35,9 +35,9 @@ Requires-Dist: pytest-cov>=4.1.0; extra == "dev"
|
|
|
35
35
|
Requires-Dist: pytest-xdist>=3.5.0; extra == "dev"
|
|
36
36
|
Requires-Dist: pytest-timeout>=2.2.0; extra == "dev"
|
|
37
37
|
Requires-Dist: pytest-sugar>=0.9.7; extra == "dev"
|
|
38
|
-
Requires-Dist: goal>=2.1.0; extra == "dev"
|
|
38
|
+
Requires-Dist: goal>=2.1.0; python_version >= "3.12" and extra == "dev"
|
|
39
39
|
Requires-Dist: costs>=0.1.20; extra == "dev"
|
|
40
|
-
Requires-Dist: pfix>=0.1.60; extra == "dev"
|
|
40
|
+
Requires-Dist: pfix>=0.1.60; python_version >= "3.10" and extra == "dev"
|
|
41
41
|
Dynamic: home-page
|
|
42
42
|
Dynamic: license-file
|
|
43
43
|
Dynamic: requires-python
|
|
@@ -63,13 +63,13 @@ AI-powered OS Diagnostics
|
|
|
63
63
|
|
|
64
64
|
## AI Cost Tracking
|
|
65
65
|
|
|
66
|
-
    
|
|
67
|
+
  
|
|
68
68
|
|
|
69
|
-
- 🤖 **LLM usage:** $4.
|
|
70
|
-
- 👤 **Human dev:** ~$
|
|
69
|
+
- 🤖 **LLM usage:** $4.8536 (152 commits)
|
|
70
|
+
- 👤 **Human dev:** ~$4079 (40.8h @ $100/h, 30min dedup)
|
|
71
71
|
|
|
72
|
-
Generated on 2026-08-
|
|
72
|
+
Generated on 2026-08-13 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
73
73
|
|
|
74
74
|
---
|
|
75
75
|
|
|
@@ -118,8 +118,13 @@ fixos quick --deep – szybki wynik, potem pełny skan danych usług
|
|
|
118
118
|
fixos fix – diagnoza + sesja naprawcza z AI (HITL)
|
|
119
119
|
fixos scan – diagnostyka systemu bez AI
|
|
120
120
|
fixos cleanup – skanuj i czyść dane usług (Docker, npm, pip, ...)
|
|
121
|
+
fixos cleanup --docker-all – wszystkie unused images/cache + osierocone sieci
|
|
122
|
+
fixos cleanup --docker-old – stare unused images/cache + osierocone sieci
|
|
123
|
+
fixos cleanup --docker-networks – tylko osierocone sieci + test puli
|
|
124
|
+
fixos cleanup --ollama-old – modele Ollama niezmieniane od N dni (domyślnie 90)
|
|
121
125
|
fixos cleanup --full – pełny audit systemu + dev projects
|
|
122
126
|
fixos projects – skanuj projekty dev (venv, node_modules, ~/github/*/*)
|
|
127
|
+
fixos projects --docker-networks – nieużywane sieci Compose wybranych projektów
|
|
123
128
|
fixos orchestrate – zaawansowana orkiestracja (graf problemów DAG)
|
|
124
129
|
fixos llm – lista 12 providerów LLM + linki do kluczy API
|
|
125
130
|
fixos token set KEY – zapisz klucz API do .env (auto-detekcja providera)
|
|
@@ -153,6 +158,24 @@ fixos fix --disc
|
|
|
153
158
|
# Pełny audit systemu (DNF, Docker, Flatpak, dev projects)
|
|
154
159
|
fixos cleanup --full --dry-run
|
|
155
160
|
|
|
161
|
+
# Podgląd usług + interaktywne czyszczenie (opcja [1] = wszystkie bezpieczne)
|
|
162
|
+
fixos cleanup --list
|
|
163
|
+
fixos cleanup --dry-run # tylko gdy -c / --docker-all / --docker-old / ...
|
|
164
|
+
fixos cleanup
|
|
165
|
+
|
|
166
|
+
# Wszystkie unused images/cache oraz osierocone sieci (bez wolumenów)
|
|
167
|
+
fixos cleanup --docker-all --dry-run
|
|
168
|
+
|
|
169
|
+
# Obrazy/cache starsze niż 30 dni oraz wszystkie osierocone sieci
|
|
170
|
+
fixos cleanup --docker-old --days 30 --dry-run
|
|
171
|
+
|
|
172
|
+
# Sieci Docker bez endpointów; aktywne i wbudowane pozostają chronione
|
|
173
|
+
fixos cleanup --docker-networks --dry-run
|
|
174
|
+
fixos cleanup --docker-networks
|
|
175
|
+
|
|
176
|
+
# Modele Ollama niezmieniane od 90+ dni (pomija uruchomione)
|
|
177
|
+
fixos cleanup --ollama-old --days 90 --dry-run
|
|
178
|
+
|
|
156
179
|
# Usuń tylko foldery venv z projektów
|
|
157
180
|
fixos cleanup --full
|
|
158
181
|
> type:venv
|
|
@@ -172,6 +195,9 @@ fixos projects
|
|
|
172
195
|
# Tylko artefakty nieużywane od >60 dni (bez świeżych venv)
|
|
173
196
|
fixos projects --only-stale
|
|
174
197
|
|
|
198
|
+
# Stare artefakty + podgląd powiązanych, nieużywanych sieci Compose
|
|
199
|
+
fixos projects --only-stale --docker-networks --dry-run
|
|
200
|
+
|
|
175
201
|
# Podgląd bez usuwania
|
|
176
202
|
fixos projects --dry-run
|
|
177
203
|
|
|
@@ -259,20 +285,51 @@ Tryb DRY-RUN - żadne akcje nie zostaną wykonane
|
|
|
259
285
|
|
|
260
286
|
Każda znaleziona usługa jest klasyfikowana do jednej z trzech grup:
|
|
261
287
|
|
|
262
|
-
- **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...)
|
|
263
|
-
|
|
288
|
+
- **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...)
|
|
289
|
+
oraz ograniczone, jawnie bezpieczne akcje wiekowe / reclaimable:
|
|
290
|
+
- **Docker (nieużywane zasoby)** — wszystkie unused images + build cache
|
|
291
|
+
oraz osierocone sieci bez endpointów (bez wolumenów, bez obrazów
|
|
292
|
+
podpiętych do kontenerów); część dyskowa odpowiada puli `RECLAIMABLE`,
|
|
293
|
+
- **Ollama (modele >90 dni)** — modele niezmieniane od 90+ dni; pomija
|
|
294
|
+
modele aktualnie załadowane w pamięci.
|
|
295
|
+
Tylko tę grupę usuwa opcja **[1] Wszystkie bezpieczne**.
|
|
264
296
|
- **do rozważenia** – reinstalowalne aplikacje, dane długo nieużywane, nierozpoznane
|
|
265
297
|
foldery (JetBrains, Snap, Flatpak) – pokazywane z komendą i wymagają
|
|
266
298
|
osobnego, świadomego potwierdzenia.
|
|
267
299
|
- **chronione lub mieszane** – realne dane aplikacji albo magazyny łączące dane aktywne
|
|
268
|
-
z cache (Ollama
|
|
269
|
-
Steam, `.cursor/extensions`/`.vscode/extensions`
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
300
|
+
z cache (cały sklep Ollama/LM Studio/HuggingFace, cały Docker z wolumenami,
|
|
301
|
+
Steam, `.cursor/extensions`/`.vscode/extensions`). Osobna sekcja z ostrzeżeniem;
|
|
302
|
+
zbiorcze kasowanie modeli „na ślepo”, klastrów, maszyn wirtualnych, rozszerzeń i
|
|
303
|
+
wolumenów jest wyłączone.
|
|
304
|
+
|
|
305
|
+
Dedykowane flagi (też dostępne jako `-c docker-all`, `-c docker-old`,
|
|
306
|
+
`-c docker-networks` oraz `-c ollama-old`):
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
fixos cleanup --docker-all --dry-run # all unused + sieci
|
|
310
|
+
fixos cleanup --docker-old --days 30 --dry-run # stare unused + sieci
|
|
311
|
+
fixos cleanup --docker-networks --dry-run # sieci bez endpointów
|
|
312
|
+
fixos cleanup --ollama-old --days 90 --dry-run # modele niezmieniane od N dni
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
Osierocone sieci są czyszczone automatycznie razem z `--docker-all`,
|
|
316
|
+
`--docker-old` oraz dockerową pozycją w „Wszystkie bezpieczne”. Samodzielne
|
|
317
|
+
`--docker-networks` pozostaje dostępne, gdy obrazy i cache mają pozostać.
|
|
318
|
+
Mechanizm pobiera kandydatów z `dangling=true`, ponownie sprawdza brak
|
|
319
|
+
endpointów, chroni sieci `bridge`, `host` i `none`, a usuwa dokładne ID zamiast
|
|
320
|
+
wykonywać szeroki prune. Po wykonaniu tworzy i natychmiast usuwa sieć testową
|
|
321
|
+
oznaczoną `dev.fixos.cleanup-probe=true`; sukces potwierdza, że daemon może
|
|
322
|
+
ponownie przydzielić podsieć. Opcjonalne `--days N` dla samodzielnej akcji
|
|
323
|
+
ogranicza ją do sieci mających co najmniej N dni; domyślne `0` obejmuje wszystkie.
|
|
324
|
+
|
|
325
|
+
`RECLAIMABLE` Dockera obejmuje też świeże unused images. Filtr `--docker-old`
|
|
326
|
+
(domyślnie 30 dni) może więc zwolnić **znacznie mniej** niż szacunek całej puli —
|
|
327
|
+
dlatego opcja `[1]` używa prune **wszystkich** nieużywanych obrazów, a
|
|
328
|
+
`--docker-old` zostaje dla świadomego cięcia po wieku. Domyślne
|
|
329
|
+
`fixos cleanup -c docker` nadal ogranicza się do cache buildów >7 dni.
|
|
330
|
+
|
|
331
|
+
Po wykonaniu opcji `[1]` listy „do rozważenia / chronione” pochodzą ze skanu
|
|
332
|
+
sprzed czyszczenia — uruchom ponownie `fixos cleanup --list`, by zobaczyć stan.
|
|
276
333
|
|
|
277
334
|
Opcja „Wybierz pojedyncze” przechodzi kolejno przez wszystkie znalezione
|
|
278
335
|
usługi w tych trzech grupach. Dla pozycji bez bezpiecznej operacji zbiorczej
|
|
@@ -292,6 +349,14 @@ nazwie), `node_modules`/`.next`/`.turbo` (tylko gdy jest `package.json`),
|
|
|
292
349
|
nieużywane od >60 dni (`--stale-days`) oraz projekty ze zduplikowanymi
|
|
293
350
|
virtualenvami (np. i `venv`, i `.venv` naraz).
|
|
294
351
|
|
|
352
|
+
Opcjonalne `--docker-networks` dołącza do czyszczenia wybranych projektów
|
|
353
|
+
ich nieużywane sieci Docker Compose. Dopasowanie wymaga dokładnej etykiety
|
|
354
|
+
`com.docker.compose.project`; sieci bez tej etykiety nie są zgadywane po
|
|
355
|
+
nazwie. fixOS ponownie wymaga stanu `dangling`, chroni sieci z endpointami,
|
|
356
|
+
pokazuje nazwę, ID i podsieć, a przed usunięciem pyta o osobne potwierdzenie.
|
|
357
|
+
Usuwane są tylko ID pokazane w podglądzie, po czym wykonywany jest test puli
|
|
358
|
+
adresowej. Repozytorium projektu, kontenery i wolumeny pozostają nietknięte.
|
|
359
|
+
|
|
295
360
|
```bash
|
|
296
361
|
$ fixos projects --only-stale
|
|
297
362
|
|
|
@@ -19,13 +19,13 @@ AI-powered OS Diagnostics
|
|
|
19
19
|
|
|
20
20
|
## AI Cost Tracking
|
|
21
21
|
|
|
22
|
-
    
|
|
23
|
+
  
|
|
24
24
|
|
|
25
|
-
- 🤖 **LLM usage:** $4.
|
|
26
|
-
- 👤 **Human dev:** ~$
|
|
25
|
+
- 🤖 **LLM usage:** $4.8536 (152 commits)
|
|
26
|
+
- 👤 **Human dev:** ~$4079 (40.8h @ $100/h, 30min dedup)
|
|
27
27
|
|
|
28
|
-
Generated on 2026-08-
|
|
28
|
+
Generated on 2026-08-13 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
|
|
29
29
|
|
|
30
30
|
---
|
|
31
31
|
|
|
@@ -74,8 +74,13 @@ fixos quick --deep – szybki wynik, potem pełny skan danych usług
|
|
|
74
74
|
fixos fix – diagnoza + sesja naprawcza z AI (HITL)
|
|
75
75
|
fixos scan – diagnostyka systemu bez AI
|
|
76
76
|
fixos cleanup – skanuj i czyść dane usług (Docker, npm, pip, ...)
|
|
77
|
+
fixos cleanup --docker-all – wszystkie unused images/cache + osierocone sieci
|
|
78
|
+
fixos cleanup --docker-old – stare unused images/cache + osierocone sieci
|
|
79
|
+
fixos cleanup --docker-networks – tylko osierocone sieci + test puli
|
|
80
|
+
fixos cleanup --ollama-old – modele Ollama niezmieniane od N dni (domyślnie 90)
|
|
77
81
|
fixos cleanup --full – pełny audit systemu + dev projects
|
|
78
82
|
fixos projects – skanuj projekty dev (venv, node_modules, ~/github/*/*)
|
|
83
|
+
fixos projects --docker-networks – nieużywane sieci Compose wybranych projektów
|
|
79
84
|
fixos orchestrate – zaawansowana orkiestracja (graf problemów DAG)
|
|
80
85
|
fixos llm – lista 12 providerów LLM + linki do kluczy API
|
|
81
86
|
fixos token set KEY – zapisz klucz API do .env (auto-detekcja providera)
|
|
@@ -109,6 +114,24 @@ fixos fix --disc
|
|
|
109
114
|
# Pełny audit systemu (DNF, Docker, Flatpak, dev projects)
|
|
110
115
|
fixos cleanup --full --dry-run
|
|
111
116
|
|
|
117
|
+
# Podgląd usług + interaktywne czyszczenie (opcja [1] = wszystkie bezpieczne)
|
|
118
|
+
fixos cleanup --list
|
|
119
|
+
fixos cleanup --dry-run # tylko gdy -c / --docker-all / --docker-old / ...
|
|
120
|
+
fixos cleanup
|
|
121
|
+
|
|
122
|
+
# Wszystkie unused images/cache oraz osierocone sieci (bez wolumenów)
|
|
123
|
+
fixos cleanup --docker-all --dry-run
|
|
124
|
+
|
|
125
|
+
# Obrazy/cache starsze niż 30 dni oraz wszystkie osierocone sieci
|
|
126
|
+
fixos cleanup --docker-old --days 30 --dry-run
|
|
127
|
+
|
|
128
|
+
# Sieci Docker bez endpointów; aktywne i wbudowane pozostają chronione
|
|
129
|
+
fixos cleanup --docker-networks --dry-run
|
|
130
|
+
fixos cleanup --docker-networks
|
|
131
|
+
|
|
132
|
+
# Modele Ollama niezmieniane od 90+ dni (pomija uruchomione)
|
|
133
|
+
fixos cleanup --ollama-old --days 90 --dry-run
|
|
134
|
+
|
|
112
135
|
# Usuń tylko foldery venv z projektów
|
|
113
136
|
fixos cleanup --full
|
|
114
137
|
> type:venv
|
|
@@ -128,6 +151,9 @@ fixos projects
|
|
|
128
151
|
# Tylko artefakty nieużywane od >60 dni (bez świeżych venv)
|
|
129
152
|
fixos projects --only-stale
|
|
130
153
|
|
|
154
|
+
# Stare artefakty + podgląd powiązanych, nieużywanych sieci Compose
|
|
155
|
+
fixos projects --only-stale --docker-networks --dry-run
|
|
156
|
+
|
|
131
157
|
# Podgląd bez usuwania
|
|
132
158
|
fixos projects --dry-run
|
|
133
159
|
|
|
@@ -215,20 +241,51 @@ Tryb DRY-RUN - żadne akcje nie zostaną wykonane
|
|
|
215
241
|
|
|
216
242
|
Każda znaleziona usługa jest klasyfikowana do jednej z trzech grup:
|
|
217
243
|
|
|
218
|
-
- **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...)
|
|
219
|
-
|
|
244
|
+
- **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...)
|
|
245
|
+
oraz ograniczone, jawnie bezpieczne akcje wiekowe / reclaimable:
|
|
246
|
+
- **Docker (nieużywane zasoby)** — wszystkie unused images + build cache
|
|
247
|
+
oraz osierocone sieci bez endpointów (bez wolumenów, bez obrazów
|
|
248
|
+
podpiętych do kontenerów); część dyskowa odpowiada puli `RECLAIMABLE`,
|
|
249
|
+
- **Ollama (modele >90 dni)** — modele niezmieniane od 90+ dni; pomija
|
|
250
|
+
modele aktualnie załadowane w pamięci.
|
|
251
|
+
Tylko tę grupę usuwa opcja **[1] Wszystkie bezpieczne**.
|
|
220
252
|
- **do rozważenia** – reinstalowalne aplikacje, dane długo nieużywane, nierozpoznane
|
|
221
253
|
foldery (JetBrains, Snap, Flatpak) – pokazywane z komendą i wymagają
|
|
222
254
|
osobnego, świadomego potwierdzenia.
|
|
223
255
|
- **chronione lub mieszane** – realne dane aplikacji albo magazyny łączące dane aktywne
|
|
224
|
-
z cache (Ollama
|
|
225
|
-
Steam, `.cursor/extensions`/`.vscode/extensions`
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
256
|
+
z cache (cały sklep Ollama/LM Studio/HuggingFace, cały Docker z wolumenami,
|
|
257
|
+
Steam, `.cursor/extensions`/`.vscode/extensions`). Osobna sekcja z ostrzeżeniem;
|
|
258
|
+
zbiorcze kasowanie modeli „na ślepo”, klastrów, maszyn wirtualnych, rozszerzeń i
|
|
259
|
+
wolumenów jest wyłączone.
|
|
260
|
+
|
|
261
|
+
Dedykowane flagi (też dostępne jako `-c docker-all`, `-c docker-old`,
|
|
262
|
+
`-c docker-networks` oraz `-c ollama-old`):
|
|
263
|
+
|
|
264
|
+
```bash
|
|
265
|
+
fixos cleanup --docker-all --dry-run # all unused + sieci
|
|
266
|
+
fixos cleanup --docker-old --days 30 --dry-run # stare unused + sieci
|
|
267
|
+
fixos cleanup --docker-networks --dry-run # sieci bez endpointów
|
|
268
|
+
fixos cleanup --ollama-old --days 90 --dry-run # modele niezmieniane od N dni
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Osierocone sieci są czyszczone automatycznie razem z `--docker-all`,
|
|
272
|
+
`--docker-old` oraz dockerową pozycją w „Wszystkie bezpieczne”. Samodzielne
|
|
273
|
+
`--docker-networks` pozostaje dostępne, gdy obrazy i cache mają pozostać.
|
|
274
|
+
Mechanizm pobiera kandydatów z `dangling=true`, ponownie sprawdza brak
|
|
275
|
+
endpointów, chroni sieci `bridge`, `host` i `none`, a usuwa dokładne ID zamiast
|
|
276
|
+
wykonywać szeroki prune. Po wykonaniu tworzy i natychmiast usuwa sieć testową
|
|
277
|
+
oznaczoną `dev.fixos.cleanup-probe=true`; sukces potwierdza, że daemon może
|
|
278
|
+
ponownie przydzielić podsieć. Opcjonalne `--days N` dla samodzielnej akcji
|
|
279
|
+
ogranicza ją do sieci mających co najmniej N dni; domyślne `0` obejmuje wszystkie.
|
|
280
|
+
|
|
281
|
+
`RECLAIMABLE` Dockera obejmuje też świeże unused images. Filtr `--docker-old`
|
|
282
|
+
(domyślnie 30 dni) może więc zwolnić **znacznie mniej** niż szacunek całej puli —
|
|
283
|
+
dlatego opcja `[1]` używa prune **wszystkich** nieużywanych obrazów, a
|
|
284
|
+
`--docker-old` zostaje dla świadomego cięcia po wieku. Domyślne
|
|
285
|
+
`fixos cleanup -c docker` nadal ogranicza się do cache buildów >7 dni.
|
|
286
|
+
|
|
287
|
+
Po wykonaniu opcji `[1]` listy „do rozważenia / chronione” pochodzą ze skanu
|
|
288
|
+
sprzed czyszczenia — uruchom ponownie `fixos cleanup --list`, by zobaczyć stan.
|
|
232
289
|
|
|
233
290
|
Opcja „Wybierz pojedyncze” przechodzi kolejno przez wszystkie znalezione
|
|
234
291
|
usługi w tych trzech grupach. Dla pozycji bez bezpiecznej operacji zbiorczej
|
|
@@ -248,6 +305,14 @@ nazwie), `node_modules`/`.next`/`.turbo` (tylko gdy jest `package.json`),
|
|
|
248
305
|
nieużywane od >60 dni (`--stale-days`) oraz projekty ze zduplikowanymi
|
|
249
306
|
virtualenvami (np. i `venv`, i `.venv` naraz).
|
|
250
307
|
|
|
308
|
+
Opcjonalne `--docker-networks` dołącza do czyszczenia wybranych projektów
|
|
309
|
+
ich nieużywane sieci Docker Compose. Dopasowanie wymaga dokładnej etykiety
|
|
310
|
+
`com.docker.compose.project`; sieci bez tej etykiety nie są zgadywane po
|
|
311
|
+
nazwie. fixOS ponownie wymaga stanu `dangling`, chroni sieci z endpointami,
|
|
312
|
+
pokazuje nazwę, ID i podsieć, a przed usunięciem pyta o osobne potwierdzenie.
|
|
313
|
+
Usuwane są tylko ID pokazane w podglądzie, po czym wykonywany jest test puli
|
|
314
|
+
adresowej. Repozytorium projektu, kontenery i wolumeny pozostają nietknięte.
|
|
315
|
+
|
|
251
316
|
```bash
|
|
252
317
|
$ fixos projects --only-stale
|
|
253
318
|
|