docs: file #438 — launcher crash-report bundles (upcoming work); flip #435's stale PARTLY CLOSED header
#438 records the design agreed with the owner: launcher-owned opt-in WER LocalDumps key (HKCU, minidump, capped count), crash bundle assembled on the next launch from the dump + log tail + version + capability report, and an explicit NO-auto-upload line — dumps can hold the plaintext session password, so sharing stays a user action until there is real infrastructure and a consent flow. The owner's own machine is already armed manually for the #422 hunt; this productizes it for alpha users. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
1360b71684
commit
373d003f1b
1 changed files with 56 additions and 2 deletions
|
|
@ -24,9 +24,63 @@ What does NOT go here:
|
||||||
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
- Every session: scan OPEN issues at start; promote/close anything we touched during the session before ending.
|
||||||
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
- Promoting to a Phase: mark as `DONE (promoted to Phase X)` + commit SHA where the Phase entry landed.
|
||||||
|
|
||||||
## #435 — PARTLY CLOSED: Probe debt: 25 temporary probes outlived their closed investigations, 6 more name no owner
|
## #438 — Launcher crash-report bundles (WER dump capture + local bundle, no upload)
|
||||||
|
|
||||||
**Status:** The 17 orphaned probes from part 1 are DELETED (2026-08-24) —
|
**Status:** OPEN — designed, ready to pick up as a launcher slice
|
||||||
|
**Severity:** ENHANCEMENT (post-current-queue; owner-approved as upcoming
|
||||||
|
work 2026-08-24)
|
||||||
|
**Component:** launcher / crash diagnostics
|
||||||
|
|
||||||
|
**Problem:** the launcher already records a truthful
|
||||||
|
`exited{reason:"crashed", code}` with bounded stderr (#405–#407), but for
|
||||||
|
native fail-fasts — #422's `0xC0000374` heap corruption, three sightings,
|
||||||
|
zero stacks — no evidence exists anywhere: fail-fast bypasses in-process
|
||||||
|
exception filters BY DESIGN, so .NET's own `DOTNET_DbgEnableMiniDump`
|
||||||
|
crash handler never fires for this class. Windows' WER LocalDumps is the
|
||||||
|
OS-level catcher that still does. Today an alpha user can say "it
|
||||||
|
crashed" but never why.
|
||||||
|
|
||||||
|
**Design (agreed with the owner):**
|
||||||
|
1. **Launcher owns the WER key, with consent.** First-run opt-in ("save
|
||||||
|
crash dumps locally") writes
|
||||||
|
`HKCU\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps\AcDream.App.exe`
|
||||||
|
(HKCU — no elevation): `DumpFolder` inside the launcher's data dir,
|
||||||
|
`DumpCount` small (e.g. 3), `DumpType=1` (**minidump**, not full — a
|
||||||
|
minidump carries the faulting stack #422 needs without carrying the
|
||||||
|
process's whole memory). Uninstall removes the key.
|
||||||
|
2. **Bundle on next launch.** The launcher already detects the crash exit;
|
||||||
|
it gathers minidump + client log tail + version + the Vulkan capability
|
||||||
|
report into one folder and shows "the client crashed last time — the
|
||||||
|
report is here" with an open-folder button.
|
||||||
|
3. **NO auto-upload — this is the deliberate line.** Dumps can contain
|
||||||
|
account names and the plaintext session password in memory; there is no
|
||||||
|
upload endpoint and no privacy story. The user choosing to send the
|
||||||
|
folder is consent by construction. Revisit only with real
|
||||||
|
infrastructure and an explicit consent flow.
|
||||||
|
4. **Linux:** set `DOTNET_DbgEnableMiniDump=1` / `DOTNET_DbgMiniDumpType`
|
||||||
|
from the launcher for the non-fail-fast classes; system `core_pattern`
|
||||||
|
is out of scope.
|
||||||
|
|
||||||
|
**Prior art / constraints:** the project's stance that the CLIENT never
|
||||||
|
writes registry keys stands — this is launcher-owned, opt-in, per-user.
|
||||||
|
The owner's dev machine already has the key armed manually (2026-08-24)
|
||||||
|
for the #422 hunt; this slice productizes that for alpha users, whose
|
||||||
|
crashes are otherwise invisible telemetry.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## #435 — CLOSED: Probe debt: temporary probes outlived their closed investigations or named no owner
|
||||||
|
|
||||||
|
**Status:** CLOSED 2026-08-24 across two passes (`0c5057c9` part 1,
|
||||||
|
`c1e6e3da` part 2 + the `35454a9f`-adjacent doc correction): 24 probes
|
||||||
|
deleted, 8 reclassified as standing tools, 1 deleted-and-restored
|
||||||
|
(`ACDREAM_DUMP_MOVE_TRUTH`, #437 — the canonical soak hard-gates on it).
|
||||||
|
End state: 137 flags (from 161), 31 temporary probes, every one attributed
|
||||||
|
to an owning issue or campaign. The default-off invariant is frozen by
|
||||||
|
`LaunchOptionsDocumentationTests.OnlyTheFourRetailBehaviorFlagsDefaultOn`.
|
||||||
|
Part-1 record follows.
|
||||||
|
|
||||||
|
**Status (part 1):** The 17 orphaned probes from part 1 are DELETED (2026-08-24) —
|
||||||
3,493 lines removed, flag count 161 → 144, temporary probes 64 → 47. Build
|
3,493 lines removed, flag count 161 → 144, temporary probes 64 → 47. Build
|
||||||
clean; full hermetic suite 15,321 passed / 0 failed (baseline 15,333 minus
|
clean; full hermetic suite 15,321 passed / 0 failed (baseline 15,333 minus
|
||||||
the 12 tests whose only subject was a deleted probe). Four files went
|
the 12 tests whose only subject was a deleted probe). Four files went
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue