Files
rigdoctor/pyproject.toml
T
jessey 7f0ab9a635 feat(m15): opt-in logging + per-diagnostic storage + Report bundles — 0.30.0
One `logging_enabled` toggle (default off) gates everything (D25):
- core/applog.py: rotating app.log (no-op unless enabled); setup() at GUI/CLI start.
- core/diagstore.py: each diagnostic stored in DATA_DIR/diagnostics/<id>/ (capture,
  result.json, report.txt, scoped gamelogs, ai/ records of exactly what was sent to
  the model + which model + the reply). make_report() zips a diagnostic (+ app.log)
  into DATA_DIR/reports/.
- diagnostic.finish()/analyze_crash() store when enabled; DiagnosticResult.dir.
- GUI: Settings → Logging toggle; "Report" button on the diagnostic dialog; AI
  interactions recorded into the diagnostic dir on "Explain with AI".
- CLI: `rigdoctor bundle` (report is taken by the M4 health report).
- Tests for store/record_ai/make_report + applog gating; docs (D25, M15, Phase 8).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 13:56:31 +02:00

27 lines
677 B
TOML

[build-system]
requires = ["setuptools>=61"]
build-backend = "setuptools.build_meta"
[project]
name = "rigdoctor"
version = "0.30.0"
description = "Modular hardware monitoring & crash diagnostics for Linux gamers."
readme = "README.md"
requires-python = ">=3.11"
# Core/CLI/daemon are stdlib-only by design (D2). The GUI/tray modules will add
# PySide6 via an optional extra when those land.
dependencies = []
[project.optional-dependencies]
gui = ["PySide6", "pyte"]
[project.scripts]
rigdoctor = "rigdoctor.cli:main"
rigdoctor-gui = "rigdoctor.gui.app:main"
[tool.setuptools.packages.find]
where = ["src"]
[tool.setuptools.package-data]
rigdoctor = ["gui/assets/*.svg"]