NFR-OPS-1 — Diagnostics: a rotating log, redaction, a consented bundle #32

Closed
opened 2026-09-05 16:20:16 +00:00 by dtourolle · 2 comments
Owner

NFR-OPS-1 — diagnostics. Untagged, and the two tags it used to carry were the worse kind of wrong.

The tags that were removed

One on compute_coverage and one on the gesture extractor — both on the traceability tool. A coverage calculation and a documentation generator are not diagnostics under any reading. These were real tags rather than test fixtures, which makes them the worse case: CONTRIBUTING.md warns about it in its own words, a tag proves a tag exists.

What the requirement actually asks for

  • A rotating, size-capped on-disk log in the XDG state directory.
  • Credential redaction.
  • A consented diagnostics bundle.

What exists

Logging goes to stderr and logcat. Nothing else.

Related

#33 — crash reporting shares the "no local record, no consented upload path" problem and should be designed with this in one go.

See docs/outstanding.md §9.

**NFR-OPS-1 — diagnostics.** Untagged, and the two tags it used to carry were the worse kind of wrong. ## The tags that were removed One on `compute_coverage` and one on the gesture extractor — **both on the traceability tool**. A coverage calculation and a documentation generator are not diagnostics under any reading. These were real tags rather than test fixtures, which makes them the worse case: `CONTRIBUTING.md` warns about it in its own words, *a tag proves a tag exists*. ## What the requirement actually asks for - [ ] A rotating, size-capped on-disk log in the XDG state directory. - [ ] Credential redaction. - [ ] A consented diagnostics bundle. ## What exists Logging goes to stderr and logcat. Nothing else. ## Related #33 — crash reporting shares the "no local record, no consented upload path" problem and should be designed with this in one go. See `docs/outstanding.md` §9.
dtourolle added the unmet-requirementsize:M labels 2026-09-05 16:20:16 +00:00
Author
Owner

Same machinery as #33. Design the consented path once, for both.

**Same machinery as** #33. Design the consented path once, for both.
Author
Owner

Built — most of it before this issue was filed, which was written from an out-of-date outstanding.md:

  • rotating, size-capped log in the state dir: platform/dr-plat/src/diagnostics.rs (465f5a7, c62edd3), tests the_log_stays_under_its_stated_cap and rotation_keeps_the_newest_lines_and_drops_the_oldest
  • redaction: diagnostics/redact.rs, with its own tests
  • consented bundle: diagnostics/bundle.rs (369eb8f) — preview first, written only on a second press; wired into settings

Leftover: the module comment in crash.rs (~line 54) still says the rotating log is unbuilt.

Built — most of it before this issue was filed, which was written from an out-of-date `outstanding.md`: - rotating, size-capped log in the state dir: `platform/dr-plat/src/diagnostics.rs` (465f5a7, c62edd3), tests `the_log_stays_under_its_stated_cap` and `rotation_keeps_the_newest_lines_and_drops_the_oldest` - redaction: `diagnostics/redact.rs`, with its own tests - consented bundle: `diagnostics/bundle.rs` (369eb8f) — preview first, written only on a second press; wired into settings Leftover: the module comment in `crash.rs` (~line 54) still says the rotating log is unbuilt.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: dtourolle/DarkRoom#32