fixos 2.2.40__tar.gz → 2.2.45__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.
Files changed (179) hide show
  1. {fixos-2.2.40 → fixos-2.2.45}/CHANGELOG.md +52 -0
  2. {fixos-2.2.40 → fixos-2.2.45}/PKG-INFO +25 -12
  3. {fixos-2.2.40 → fixos-2.2.45}/README.md +24 -11
  4. {fixos-2.2.40 → fixos-2.2.45}/fixos/__init__.py +1 -1
  5. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/cleanup_cmd.py +300 -34
  6. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/main.py +17 -1
  7. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/service_cleanup.py +510 -23
  8. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/PKG-INFO +25 -12
  9. {fixos-2.2.40 → fixos-2.2.45}/pyproject.toml +1 -1
  10. {fixos-2.2.40 → fixos-2.2.45}/setup.py +1 -1
  11. fixos-2.2.45/tests/unit/test_cleanup_cmd.py +389 -0
  12. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_service_cleanup.py +260 -0
  13. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_service_scanner.py +5 -0
  14. fixos-2.2.40/tests/unit/test_cleanup_cmd.py +0 -87
  15. {fixos-2.2.40 → fixos-2.2.45}/.env.example +0 -0
  16. {fixos-2.2.40 → fixos-2.2.45}/LICENSE +0 -0
  17. {fixos-2.2.40 → fixos-2.2.45}/MANIFEST.in +0 -0
  18. {fixos-2.2.40 → fixos-2.2.45}/docker/README.md +0 -0
  19. {fixos-2.2.40 → fixos-2.2.45}/docker/TEST_RESULTS.md +0 -0
  20. {fixos-2.2.40 → fixos-2.2.45}/docker/TEST_RESULTS_V2.md +0 -0
  21. {fixos-2.2.40 → fixos-2.2.45}/docker/alpine/Dockerfile +0 -0
  22. {fixos-2.2.40 → fixos-2.2.45}/docker/arch/Dockerfile +0 -0
  23. {fixos-2.2.40 → fixos-2.2.45}/docker/base/Dockerfile +0 -0
  24. {fixos-2.2.40 → fixos-2.2.45}/docker/broken-audio/Dockerfile +0 -0
  25. {fixos-2.2.40 → fixos-2.2.45}/docker/broken-full/Dockerfile +0 -0
  26. {fixos-2.2.40 → fixos-2.2.45}/docker/broken-network/Dockerfile +0 -0
  27. {fixos-2.2.40 → fixos-2.2.45}/docker/broken-thumbnails/Dockerfile +0 -0
  28. {fixos-2.2.40 → fixos-2.2.45}/docker/debian/Dockerfile +0 -0
  29. {fixos-2.2.40 → fixos-2.2.45}/docker/docker-compose.multi-system.yml +0 -0
  30. {fixos-2.2.40 → fixos-2.2.45}/docker/docker-compose.yml +0 -0
  31. {fixos-2.2.40 → fixos-2.2.45}/docker/fedora/Dockerfile +0 -0
  32. {fixos-2.2.40 → fixos-2.2.45}/docker/test-multi-system.sh +0 -0
  33. {fixos-2.2.40 → fixos-2.2.45}/docker/test-scenarios.sh +0 -0
  34. {fixos-2.2.40 → fixos-2.2.45}/docker/ubuntu/Dockerfile +0 -0
  35. {fixos-2.2.40 → fixos-2.2.45}/docker/validate-scenario.py +0 -0
  36. {fixos-2.2.40 → fixos-2.2.45}/docs/examples/advanced_usage.py +0 -0
  37. {fixos-2.2.40 → fixos-2.2.45}/docs/examples/quickstart.py +0 -0
  38. {fixos-2.2.40 → fixos-2.2.45}/fixos/__main__.py +0 -0
  39. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/__init__.py +0 -0
  40. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/autonomous.py +0 -0
  41. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/autonomous_session.py +0 -0
  42. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/hitl.py +0 -0
  43. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/hitl_session.py +0 -0
  44. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/session_core.py +0 -0
  45. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/session_handlers.py +0 -0
  46. {fixos-2.2.40 → fixos-2.2.45}/fixos/agent/session_io.py +0 -0
  47. {fixos-2.2.40 → fixos-2.2.45}/fixos/anonymizer.py +0 -0
  48. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/__init__.py +0 -0
  49. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/_cleanup_flatpak.py +0 -0
  50. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/_cleanup_home.py +0 -0
  51. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/_cleanup_snap.py +0 -0
  52. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/_cleanup_system.py +0 -0
  53. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/_cleanup_utils.py +0 -0
  54. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/ask_cmd.py +0 -0
  55. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/config_cmd.py +0 -0
  56. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/features_cmd.py +0 -0
  57. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/fix_cmd.py +0 -0
  58. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/history_cmd.py +0 -0
  59. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/orchestrate_cmd.py +0 -0
  60. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/output_formatter.py +0 -0
  61. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/profile_cmd.py +0 -0
  62. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/projects_cmd.py +0 -0
  63. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/provider_cmd.py +0 -0
  64. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/quick_cmd.py +0 -0
  65. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/quickfix_cmd.py +0 -0
  66. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/report_cmd.py +0 -0
  67. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/rollback_cmd.py +0 -0
  68. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/scan_cmd.py +0 -0
  69. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/shared.py +0 -0
  70. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/token_cmd.py +0 -0
  71. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli/watch_cmd.py +0 -0
  72. {fixos-2.2.40 → fixos-2.2.45}/fixos/cli.py +0 -0
  73. {fixos-2.2.40 → fixos-2.2.45}/fixos/config.py +0 -0
  74. {fixos-2.2.40 → fixos-2.2.45}/fixos/config_interactive.py +0 -0
  75. {fixos-2.2.40 → fixos-2.2.45}/fixos/constants.py +0 -0
  76. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/__init__.py +0 -0
  77. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_flatpak_analysis_mixin.py +0 -0
  78. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_flatpak_execution_mixin.py +0 -0
  79. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_flatpak_recommendations_mixin.py +0 -0
  80. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_storage_container_mixin.py +0 -0
  81. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_storage_system_mixin.py +0 -0
  82. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/_storage_user_mixin.py +0 -0
  83. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/cache_discovery.py +0 -0
  84. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/__init__.py +0 -0
  85. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/_shared.py +0 -0
  86. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/audio.py +0 -0
  87. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/file_analysis.py +0 -0
  88. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/hardware.py +0 -0
  89. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/packages.py +0 -0
  90. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/resources.py +0 -0
  91. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/security.py +0 -0
  92. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/storage_optimization.py +0 -0
  93. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/system_core.py +0 -0
  94. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/checks/thumbnails.py +0 -0
  95. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/dev_project_analyzer.py +0 -0
  96. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/disk_analyzer.py +0 -0
  97. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/flatpak_analyzer.py +0 -0
  98. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/project_scanner.py +0 -0
  99. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/quick_snapshot.py +0 -0
  100. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/service_details.py +0 -0
  101. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/service_scanner.py +0 -0
  102. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/storage_analyzer.py +0 -0
  103. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/system_checks.py +0 -0
  104. {fixos-2.2.40 → fixos-2.2.45}/fixos/diagnostics/utils.py +0 -0
  105. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/__init__.py +0 -0
  106. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/auditor.py +0 -0
  107. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/catalog.py +0 -0
  108. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/installer.py +0 -0
  109. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/profiles.py +0 -0
  110. {fixos-2.2.40 → fixos-2.2.45}/fixos/features/renderer.py +0 -0
  111. {fixos-2.2.40 → fixos-2.2.45}/fixos/fixes/__init__.py +0 -0
  112. {fixos-2.2.40 → fixos-2.2.45}/fixos/interactive/__init__.py +0 -0
  113. {fixos-2.2.40 → fixos-2.2.45}/fixos/interactive/cleanup_planner.py +0 -0
  114. {fixos-2.2.40 → fixos-2.2.45}/fixos/llm_shell.py +0 -0
  115. {fixos-2.2.40 → fixos-2.2.45}/fixos/orchestrator/__init__.py +0 -0
  116. {fixos-2.2.40 → fixos-2.2.45}/fixos/orchestrator/executor.py +0 -0
  117. {fixos-2.2.40 → fixos-2.2.45}/fixos/orchestrator/graph.py +0 -0
  118. {fixos-2.2.40 → fixos-2.2.45}/fixos/orchestrator/orchestrator.py +0 -0
  119. {fixos-2.2.40 → fixos-2.2.45}/fixos/orchestrator/rollback.py +0 -0
  120. {fixos-2.2.40 → fixos-2.2.45}/fixos/platform_utils.py +0 -0
  121. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/__init__.py +0 -0
  122. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/base.py +0 -0
  123. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/__init__.py +0 -0
  124. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/audio.py +0 -0
  125. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/disk.py +0 -0
  126. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/hardware.py +0 -0
  127. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/resources.py +0 -0
  128. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/security.py +0 -0
  129. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/builtin/thumbnails.py +0 -0
  130. {fixos-2.2.40 → fixos-2.2.45}/fixos/plugins/registry.py +0 -0
  131. {fixos-2.2.40 → fixos-2.2.45}/fixos/profiles/__init__.py +0 -0
  132. {fixos-2.2.40 → fixos-2.2.45}/fixos/providers/__init__.py +0 -0
  133. {fixos-2.2.40 → fixos-2.2.45}/fixos/providers/llm.py +0 -0
  134. {fixos-2.2.40 → fixos-2.2.45}/fixos/providers/llm_analyzer.py +0 -0
  135. {fixos-2.2.40 → fixos-2.2.45}/fixos/providers/schemas.py +0 -0
  136. {fixos-2.2.40 → fixos-2.2.45}/fixos/system_checks.py +0 -0
  137. {fixos-2.2.40 → fixos-2.2.45}/fixos/utils/__init__.py +0 -0
  138. {fixos-2.2.40 → fixos-2.2.45}/fixos/utils/anonymizer.py +0 -0
  139. {fixos-2.2.40 → fixos-2.2.45}/fixos/utils/terminal.py +0 -0
  140. {fixos-2.2.40 → fixos-2.2.45}/fixos/utils/timeout.py +0 -0
  141. {fixos-2.2.40 → fixos-2.2.45}/fixos/utils/web_search.py +0 -0
  142. {fixos-2.2.40 → fixos-2.2.45}/fixos/watch.py +0 -0
  143. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/SOURCES.txt +0 -0
  144. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/dependency_links.txt +0 -0
  145. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/entry_points.txt +0 -0
  146. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/requires.txt +0 -0
  147. {fixos-2.2.40 → fixos-2.2.45}/fixos.egg-info/top_level.txt +0 -0
  148. {fixos-2.2.40 → fixos-2.2.45}/pytest.ini +0 -0
  149. {fixos-2.2.40 → fixos-2.2.45}/requirements-dev.txt +0 -0
  150. {fixos-2.2.40 → fixos-2.2.45}/requirements.txt +0 -0
  151. {fixos-2.2.40 → fixos-2.2.45}/scripts/pyqual-calibrate.py +0 -0
  152. {fixos-2.2.40 → fixos-2.2.45}/setup.cfg +0 -0
  153. {fixos-2.2.40 → fixos-2.2.45}/tests/__init__.py +0 -0
  154. {fixos-2.2.40 → fixos-2.2.45}/tests/conftest.py +0 -0
  155. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/__init__.py +0 -0
  156. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_anonymization_layers.py +0 -0
  157. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_audio_broken.py +0 -0
  158. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_cli.py +0 -0
  159. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_diagnostics_integration.py +0 -0
  160. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_executor.py +0 -0
  161. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_multi_system.py +0 -0
  162. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_network_broken.py +0 -0
  163. {fixos-2.2.40 → fixos-2.2.45}/tests/e2e/test_thumbnails_broken.py +0 -0
  164. {fixos-2.2.40 → fixos-2.2.45}/tests/test_fixos.py +0 -0
  165. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/__init__.py +0 -0
  166. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_anonymizer.py +0 -0
  167. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_cache_discovery.py +0 -0
  168. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_core.py +0 -0
  169. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_dev_project_analyzer.py +0 -0
  170. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_executor.py +0 -0
  171. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_llm_provider.py +0 -0
  172. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_orchestrator.py +0 -0
  173. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_project_scanner.py +0 -0
  174. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_projects_cmd.py +0 -0
  175. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_quick_cmd.py +0 -0
  176. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_quick_snapshot.py +0 -0
  177. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_resources_quick.py +0 -0
  178. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_security_quick.py +0 -0
  179. {fixos-2.2.40 → fixos-2.2.45}/tests/unit/test_system_checks_parallel.py +0 -0
@@ -8,9 +8,29 @@
8
8
  dnia oraz alarmami o szybkim wzroście dysku, RAM, swapu lub obciążenia CPU.
9
9
  - Rozpoznawanie systemu, profilu użytkownika i stosu technologicznego oraz
10
10
  opcjonalne przejście do wolniejszej analizy przez `fixos quick --deep`.
11
+ - Uporządkowana dokumentacja użytkownika: szybki start, model bezpieczeństwa
12
+ cleanup, aktualna architektura i rozdzielenie aktywnego TODO od archiwalnych
13
+ artykułów.
14
+
15
+ ### Changed
16
+
17
+ - Zakończone elementy historycznych roadmap zostały przeniesione z TODO do
18
+ changelogu: modułowy pakiet CLI, klasowe sesje HITL, wspólny
19
+ `SessionTimeout`, plugin registry, structured output LLM, rollback, profile
20
+ diagnostyczne i watch mode.
21
+ - `TODO.md` zawiera teraz wyłącznie ręcznie zweryfikowane, aktualne zadania;
22
+ usunięto nieaktualny raport statyczny z 311 wpisami opartymi na dawnych
23
+ numerach linii i fałszywych alarmach.
11
24
 
12
25
  ### Fixed
13
26
 
27
+ - Zablokowano zbiorcze kasowanie chronionych danych LM Studio, Hugging Face,
28
+ Podman/containerd, Jupyter, Minikube, AppImage, VirtualBox, VMware oraz
29
+ rozszerzeń VS Code/Cursor. Takie wpisy pokazują teraz wyłącznie bezpieczny
30
+ podgląd i wymagają ręcznego wskazania konkretnego elementu poza fixOS.
31
+ - Doprecyzowano estymatę Dockera: wartość `RECLAIMABLE` jest informacyjna,
32
+ natomiast ograniczony filtr cache buildów starszych niż 7 dni może zwolnić
33
+ znacznie mniej miejsca.
14
34
  - Tryb `fixos cleanup` → „Wybierz pojedyncze” przechodzi teraz kolejno przez
15
35
  wszystkie usługi: bezpieczne, wymagające przeglądu i chronione. Pozycje bez
16
36
  bezpiecznej operacji zbiorczej pokazują komendę podglądu, dane chronione
@@ -31,6 +51,38 @@
31
51
  rekurencyjnych skanów `/` oraz `/home` z szybkich kontroli.
32
52
  - Czyszczenie cache JetBrains trafia w aktualną ścieżkę i wymaga zamknięcia IDE.
33
53
 
54
+ ## [2.2.45] - 2026-08-07
55
+
56
+ ### Docs
57
+ - Update README.md
58
+
59
+ ### Test
60
+ - Update tests/unit/test_cleanup_cmd.py
61
+ - Update tests/unit/test_service_cleanup.py
62
+
63
+ ### Other
64
+ - Update VERSION
65
+ - Update fixos/__init__.py
66
+ - Update fixos/cli/cleanup_cmd.py
67
+ - Update fixos/cli/main.py
68
+ - Update fixos/diagnostics/service_cleanup.py
69
+ - Update uv.lock
70
+
71
+ ## [2.2.41] - 2026-07-23
72
+
73
+ ### Docs
74
+ - Update CHANGELOG.md
75
+ - Update README.md
76
+
77
+ ### Test
78
+ - Update tests/unit/test_cleanup_cmd.py
79
+ - Update tests/unit/test_service_cleanup.py
80
+ - Update tests/unit/test_service_scanner.py
81
+
82
+ ### Other
83
+ - Update fixos/cli/cleanup_cmd.py
84
+ - Update fixos/diagnostics/service_cleanup.py
85
+
34
86
  ## [2.2.40] - 2026-07-23
35
87
 
36
88
  ### Docs
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: fixos
3
- Version: 2.2.40
3
+ Version: 2.2.45
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
@@ -63,13 +63,13 @@ AI-powered OS Diagnostics
63
63
 
64
64
  ## AI Cost Tracking
65
65
 
66
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.2.40-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
67
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$4.85-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-38.2h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
66
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.2.45-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
67
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$4.81-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-39.6h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
68
68
 
69
- - 🤖 **LLM usage:** $4.8451 (147 commits)
70
- - 👤 **Human dev:** ~$3817 (38.2h @ $100/h, 30min dedup)
69
+ - 🤖 **LLM usage:** $4.8099 (150 commits)
70
+ - 👤 **Human dev:** ~$3959 (39.6h @ $100/h, 30min dedup)
71
71
 
72
- Generated on 2026-07-23 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
72
+ Generated on 2026-08-07 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
73
73
 
74
74
  ---
75
75
 
@@ -205,6 +205,8 @@ Pierwsze uruchomienie zapisuje mały punkt odniesienia w
205
205
  swapu i znanych cache w wybranym oknie oraz od początku bieżącego dnia. Kwota
206
206
  „bezpieczne cache” obejmuje wyłącznie jawnie odtwarzalne dane. Docker, modele
207
207
  AI, rozszerzenia i cache IDE są raportowane osobno jako wymagające decyzji.
208
+ Nie są do niej zaliczane m.in. narzędzia i interpretery z
209
+ `~/.local/share/uv`, `.tools` pnpm, modele AI ani rozszerzenia edytorów.
208
210
 
209
211
  ### Przykładowy widok w terminalu (Czyszczenie dysku)
210
212
 
@@ -258,15 +260,24 @@ Tryb DRY-RUN - żadne akcje nie zostaną wykonane
258
260
  Każda znaleziona usługa jest klasyfikowana do jednej z trzech grup:
259
261
 
260
262
  - **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...).
261
- Jedyna grupa oferowana do automatycznego usunięcia, z menu wyboru: wszystkie / pojedynczo / pomiń.
263
+ Tylko tę grupę można usunąć automatycznie opcją „wszystkie”.
262
264
  - **do rozważenia** – reinstalowalne aplikacje, dane długo nieużywane, nierozpoznane
263
- foldery (JetBrains, Snap, Flatpak) – pokazywane z podpowiedziami, nigdy nie usuwane automatycznie.
265
+ foldery (JetBrains, Snap, Flatpak) – pokazywane z komendą i wymagają
266
+ osobnego, świadomego potwierdzenia.
264
267
  - **chronione lub mieszane** – realne dane aplikacji albo magazyny łączące dane aktywne
265
268
  z cache (Ollama, LM Studio, HuggingFace hub, Docker/Podman/containerd, cała biblioteka
266
269
  Steam, `.cursor/extensions`/`.vscode/extensions`
267
270
  – zainstalowane rozszerzenia edytora, nie ich cache). Osobna sekcja z ostrzeżeniem;
268
- zbiorcze kasowanie modeli i wolumenów jest wyłączone. Docker pokazuje osobno
269
- `SIZE` i `RECLAIMABLE`; domyślne czyszczenie ogranicza się do starego cache buildów.
271
+ zbiorcze kasowanie modeli, klastrów, maszyn wirtualnych, rozszerzeń i
272
+ wolumenów jest wyłączone. Docker pokazuje osobno `SIZE` i `RECLAIMABLE`;
273
+ domyślne czyszczenie ogranicza się do starego cache buildów. Raportowane
274
+ `RECLAIMABLE` jest górną informacją z Dockera — filtr starszy niż 7 dni może
275
+ faktycznie zwolnić znacznie mniej.
276
+
277
+ Opcja „Wybierz pojedyncze” przechodzi kolejno przez wszystkie znalezione
278
+ usługi w tych trzech grupach. Dla pozycji bez bezpiecznej operacji zbiorczej
279
+ wyświetla wyłącznie komendę podglądu. Pozycje chronione wymagają dodatkowego
280
+ potwierdzenia.
270
281
 
271
282
  ### `fixos projects` – skaner artefaktów w projektach deweloperskich
272
283
 
@@ -565,7 +576,8 @@ fixos/
565
576
 
566
577
  ## 📋 Roadmap
567
578
 
568
- Zobacz pełną listę zadań i roadmap w pliku [TODO.md](./TODO.md)
579
+ Aktualne, ręcznie zweryfikowane zadania znajdują się w [TODO.md](./TODO.md).
580
+ Historyczne artykuły i plany są przechowywane w katalogu [TODO/](./TODO/).
569
581
 
570
582
  ---
571
583
 
@@ -620,7 +632,8 @@ fixos orchestrate --dry-run
620
632
 
621
633
  ### 🔗 Linki
622
634
  - **GitHub**: https://github.com/wronai/fixos
623
- - **Pełna dokumentacja**: [TODO.md](./TODO.md)
635
+ - **Dokumentacja**: [docs/README.md](./docs/README.md)
636
+ - **Aktualne zadania**: [TODO.md](./TODO.md)
624
637
  ---
625
638
 
626
639
  ## Licencja
@@ -19,13 +19,13 @@ AI-powered OS Diagnostics
19
19
 
20
20
  ## AI Cost Tracking
21
21
 
22
- ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.2.40-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
23
- ![AI Cost](https://img.shields.io/badge/AI%20Cost-$4.85-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-38.2h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
22
+ ![PyPI](https://img.shields.io/badge/pypi-costs-blue) ![Version](https://img.shields.io/badge/version-2.2.45-blue) ![Python](https://img.shields.io/badge/python-3.9+-blue) ![License](https://img.shields.io/badge/license-Apache--2.0-green)
23
+ ![AI Cost](https://img.shields.io/badge/AI%20Cost-$4.81-orange) ![Human Time](https://img.shields.io/badge/Human%20Time-39.6h-blue) ![Model](https://img.shields.io/badge/Model-openrouter%2Fqwen%2Fqwen3--coder--next-lightgrey)
24
24
 
25
- - 🤖 **LLM usage:** $4.8451 (147 commits)
26
- - 👤 **Human dev:** ~$3817 (38.2h @ $100/h, 30min dedup)
25
+ - 🤖 **LLM usage:** $4.8099 (150 commits)
26
+ - 👤 **Human dev:** ~$3959 (39.6h @ $100/h, 30min dedup)
27
27
 
28
- Generated on 2026-07-23 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
28
+ Generated on 2026-08-07 using [openrouter/qwen/qwen3-coder-next](https://openrouter.ai/qwen/qwen3-coder-next)
29
29
 
30
30
  ---
31
31
 
@@ -161,6 +161,8 @@ Pierwsze uruchomienie zapisuje mały punkt odniesienia w
161
161
  swapu i znanych cache w wybranym oknie oraz od początku bieżącego dnia. Kwota
162
162
  „bezpieczne cache” obejmuje wyłącznie jawnie odtwarzalne dane. Docker, modele
163
163
  AI, rozszerzenia i cache IDE są raportowane osobno jako wymagające decyzji.
164
+ Nie są do niej zaliczane m.in. narzędzia i interpretery z
165
+ `~/.local/share/uv`, `.tools` pnpm, modele AI ani rozszerzenia edytorów.
164
166
 
165
167
  ### Przykładowy widok w terminalu (Czyszczenie dysku)
166
168
 
@@ -214,15 +216,24 @@ Tryb DRY-RUN - żadne akcje nie zostaną wykonane
214
216
  Każda znaleziona usługa jest klasyfikowana do jednej z trzech grup:
215
217
 
216
218
  - **bezpieczne** – cache do odtworzenia jednym poleceniem (pip/npm/cargo/conda/nix/brew...).
217
- Jedyna grupa oferowana do automatycznego usunięcia, z menu wyboru: wszystkie / pojedynczo / pomiń.
219
+ Tylko tę grupę można usunąć automatycznie opcją „wszystkie”.
218
220
  - **do rozważenia** – reinstalowalne aplikacje, dane długo nieużywane, nierozpoznane
219
- foldery (JetBrains, Snap, Flatpak) – pokazywane z podpowiedziami, nigdy nie usuwane automatycznie.
221
+ foldery (JetBrains, Snap, Flatpak) – pokazywane z komendą i wymagają
222
+ osobnego, świadomego potwierdzenia.
220
223
  - **chronione lub mieszane** – realne dane aplikacji albo magazyny łączące dane aktywne
221
224
  z cache (Ollama, LM Studio, HuggingFace hub, Docker/Podman/containerd, cała biblioteka
222
225
  Steam, `.cursor/extensions`/`.vscode/extensions`
223
226
  – zainstalowane rozszerzenia edytora, nie ich cache). Osobna sekcja z ostrzeżeniem;
224
- zbiorcze kasowanie modeli i wolumenów jest wyłączone. Docker pokazuje osobno
225
- `SIZE` i `RECLAIMABLE`; domyślne czyszczenie ogranicza się do starego cache buildów.
227
+ zbiorcze kasowanie modeli, klastrów, maszyn wirtualnych, rozszerzeń i
228
+ wolumenów jest wyłączone. Docker pokazuje osobno `SIZE` i `RECLAIMABLE`;
229
+ domyślne czyszczenie ogranicza się do starego cache buildów. Raportowane
230
+ `RECLAIMABLE` jest górną informacją z Dockera — filtr starszy niż 7 dni może
231
+ faktycznie zwolnić znacznie mniej.
232
+
233
+ Opcja „Wybierz pojedyncze” przechodzi kolejno przez wszystkie znalezione
234
+ usługi w tych trzech grupach. Dla pozycji bez bezpiecznej operacji zbiorczej
235
+ wyświetla wyłącznie komendę podglądu. Pozycje chronione wymagają dodatkowego
236
+ potwierdzenia.
226
237
 
227
238
  ### `fixos projects` – skaner artefaktów w projektach deweloperskich
228
239
 
@@ -521,7 +532,8 @@ fixos/
521
532
 
522
533
  ## 📋 Roadmap
523
534
 
524
- Zobacz pełną listę zadań i roadmap w pliku [TODO.md](./TODO.md)
535
+ Aktualne, ręcznie zweryfikowane zadania znajdują się w [TODO.md](./TODO.md).
536
+ Historyczne artykuły i plany są przechowywane w katalogu [TODO/](./TODO/).
525
537
 
526
538
  ---
527
539
 
@@ -576,7 +588,8 @@ fixos orchestrate --dry-run
576
588
 
577
589
  ### 🔗 Linki
578
590
  - **GitHub**: https://github.com/wronai/fixos
579
- - **Pełna dokumentacja**: [TODO.md](./TODO.md)
591
+ - **Dokumentacja**: [docs/README.md](./docs/README.md)
592
+ - **Aktualne zadania**: [TODO.md](./TODO.md)
580
593
  ---
581
594
 
582
595
  ## Licencja
@@ -1,3 +1,3 @@
1
1
  """fixos – AI-powered Linux/Windows diagnostics and repair."""
2
2
 
3
- __version__ = "2.2.40"
3
+ __version__ = "2.2.45"