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>
This commit is contained in:
+13
-1
@@ -264,9 +264,21 @@ root cause + suggested next steps). Adds M14 to the D14 set.
|
||||
as suggestions (consistent with D9 — it explains/recommends, applying fixes stays
|
||||
consent-gated). No new runtime dependency (HTTP via stdlib).
|
||||
|
||||
### D25 — Logging & report bundles (M15) — *DECIDED 2026-05-22*
|
||||
Opt-in logging + shareable diagnostic reports.
|
||||
- **One combined `logging_enabled` toggle** (default off) controls both application logging
|
||||
(rotating `app.log`) and per-diagnostic storage. Kept as a single switch for simplicity.
|
||||
- **Each diagnostic is stored in its own directory** (`DATA_DIR/diagnostics/<id>/`): capture
|
||||
log, structured `result.json`, human-readable `report.txt`, a scoped game-log snapshot, and an
|
||||
`ai/` folder recording each AI interaction (**exact data sent, provider+model, and the reply**).
|
||||
- **"Report"** zips one diagnostic directory (plus `app.log`) into `DATA_DIR/reports/` —
|
||||
auto-saved there (no save dialog), shown with its path. Available only when logging is on
|
||||
(nothing is stored otherwise). CLI: `rigdoctor bundle`.
|
||||
- Everything stays local; the report only leaves the machine if the user shares the zip.
|
||||
|
||||
## Open
|
||||
|
||||
None currently — all tracked decisions (D1–D24) are resolved. New questions will be added
|
||||
None currently — all tracked decisions (D1–D25) are resolved. New questions will be added
|
||||
here as they arise. Remaining detail to flesh out during build: the tray's supporting-action
|
||||
set (D13), per-module apt package names, M12's tunnel/token specifics, and M13's
|
||||
update mechanism (APT repo vs. self-installed `.deb`).
|
||||
|
||||
Reference in New Issue
Block a user