mirror of
https://github.com/nestriness/nestri.git
synced 2026-09-19 17:25:19 +03:00
fix: nesdoctor.json was committed to a public repository (#312)
My mistake, in a76cb2a, now merged to dev. nesdoctor writes its report
next to wherever it is run, and during development that is the
repository root. `git add -A` took it.
What the committed file exposed, all of it the operator's own machine:
- two home paths, /home/<user>/.steam/steam and .local/share/Steam
- one installed game title
- mount points
- the answers given to a test run of the questionnaire
Low severity -- the username is already public and matches the account,
and one game title is not much -- but it is exactly the class of thing
this tool exists to be careful with, and shipping it in the repository
that asks strangers to trust the tool is worse than the content.
Removed from HEAD and added to .gitignore, along with the wildcard form.
The `--json` default keeps its name on purpose: an ignore rule cannot
protect a default called something generic like report.json, and
renaming it would leave the old name unguarded for anyone who scripted
against it.
**History is not cleaned by this commit.** The file is in pushed history
on a public repository, which per our own rule about published history
means it should be treated as permanent rather than as something a
revert fixes. Rewriting dev is possible and is a judgement call about
whether the content above is worth the disruption; it is not mine to
make unilaterally.
This commit is contained in:
7
.gitignore
vendored
7
.gitignore
vendored
@@ -43,3 +43,10 @@ lunora/_generated
|
||||
|
||||
#turbo
|
||||
.turbo
|
||||
|
||||
# nesdoctor writes its report next to wherever it is run, and it is run from
|
||||
# the repository root during development. It contains the operator's own
|
||||
# machine: home paths, installed game titles, launch times. Committed once by
|
||||
# accident; never again.
|
||||
nesdoctor.json
|
||||
*.nesdoctor.json
|
||||
|
||||
@@ -74,6 +74,13 @@ struct Args {
|
||||
yes: bool,
|
||||
|
||||
/// Where to write the full report.
|
||||
///
|
||||
/// Relative to the working directory, which during development is a git
|
||||
/// checkout -- and this file contains the operator's own machine: home
|
||||
/// paths, installed titles, launch times. It was committed to the public
|
||||
/// repository once by accident. `.gitignore` now covers the default name,
|
||||
/// and the default is deliberately not something like `report.json` that
|
||||
/// an ignore rule would miss.
|
||||
#[arg(long, default_value = "nesdoctor.json")]
|
||||
json: PathBuf,
|
||||
|
||||
|
||||
163
nesdoctor.json
163
nesdoctor.json
@@ -1,163 +0,0 @@
|
||||
{
|
||||
"nesdoctor": "0.1.0",
|
||||
"sys": {
|
||||
"os": "linux",
|
||||
"arch": "x86_64",
|
||||
"release": "CachyOS",
|
||||
"kernel": "7.1.8-1-cachyos",
|
||||
"cpu_model": "AMD Ryzen 5 7530U with Radeon Graphics",
|
||||
"cpu_threads": 12,
|
||||
"ram_gib": 13.496604919433594,
|
||||
"gpus": [
|
||||
{
|
||||
"name": "AMD Barcelo",
|
||||
"vendor": "AMD",
|
||||
"render_node": "/dev/dri/renderD128"
|
||||
}
|
||||
],
|
||||
"disks": [
|
||||
{
|
||||
"mount": "/",
|
||||
"fs": "btrfs",
|
||||
"source": "/dev/nvme0n1p2",
|
||||
"free_gib": 90.39772033691406
|
||||
},
|
||||
{
|
||||
"mount": "/tmp",
|
||||
"fs": "tmpfs",
|
||||
"source": "tmpfs",
|
||||
"free_gib": 3.8342933654785156
|
||||
}
|
||||
],
|
||||
"uptime_hours": 12.97486111111111,
|
||||
"powered_hours_per_day": null,
|
||||
"powered_span_days": 2.0136990167476854
|
||||
},
|
||||
"host": {
|
||||
"checks": [
|
||||
{
|
||||
"id": "kvm",
|
||||
"what": "/dev/kvm present and openable",
|
||||
"state": "pass",
|
||||
"detail": "yes",
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"id": "gpu",
|
||||
"what": "an AMD or Intel GPU with a DRM render node",
|
||||
"state": "pass",
|
||||
"detail": "AMD Barcelo at /dev/dri/renderD128",
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"id": "vkvideo",
|
||||
"what": "VK_KHR_video_encode_queue plus a codec extension",
|
||||
"state": "pass",
|
||||
"detail": "extensions present. Note: presence is not proof — a working extension list with a broken path has happened here before, so this row is a necessary and not a sufficient condition.",
|
||||
"blocking": true
|
||||
},
|
||||
{
|
||||
"id": "virgl",
|
||||
"what": "libvirglrenderer with DRM native context, patched",
|
||||
"state": "unknown",
|
||||
"detail": "libvirglrenderer.so.1.11.0 found. Whether it carries the native-context patches cannot be told from outside — the contract calls this the requirement most likely to be silently wrong, so we report presence only.",
|
||||
"blocking": false
|
||||
},
|
||||
{
|
||||
"id": "content-store",
|
||||
"what": "a ZFS pool for game datasets",
|
||||
"state": "fail",
|
||||
"detail": "no ZFS mount found. One dataset per game, cloned per player, is the whole of the content store — no other filesystem gives clones and send/recv.",
|
||||
"blocking": false
|
||||
},
|
||||
{
|
||||
"id": "box-store",
|
||||
"what": "ext4 or xfs, not /, for box images (O_DIRECT)",
|
||||
"state": "fail",
|
||||
"detail": "none found. A box image must be openable O_DIRECT or the box has no storage bound at all — ZFS ignores the flag, and a warm page cache let a capped guest read at 13.3 GB/s against a 20 MB/s cap. Games are hundreds of GiB, so / is not an option either.",
|
||||
"blocking": false
|
||||
},
|
||||
{
|
||||
"id": "cgroup-io",
|
||||
"what": "the io cgroup controller available",
|
||||
"state": "pass",
|
||||
"detail": "present at the root",
|
||||
"blocking": false
|
||||
},
|
||||
{
|
||||
"id": "virtiofsd",
|
||||
"what": "virtiofsd, for shared directories into the guest",
|
||||
"state": "pass",
|
||||
"detail": "/usr/bin/virtiofsd",
|
||||
"blocking": false
|
||||
}
|
||||
],
|
||||
"could_host": true,
|
||||
"unknowns": 0
|
||||
},
|
||||
"net": {
|
||||
"idle_rtt_ms": null,
|
||||
"loaded_rtt_ms": null,
|
||||
"loaded_rtt_p95_ms": null,
|
||||
"bloat_ms": null,
|
||||
"upstream_mbps": null,
|
||||
"grade": null,
|
||||
"note": "skipped with --no-net"
|
||||
},
|
||||
"steam": {
|
||||
"found": true,
|
||||
"roots": [
|
||||
"/home/wanjohiryan/.steam/steam",
|
||||
"/home/wanjohiryan/.local/share/Steam"
|
||||
],
|
||||
"titles": 1,
|
||||
"bytes_on_disk": 45003193272,
|
||||
"largest": [
|
||||
[
|
||||
"Control Ultimate Edition",
|
||||
45003193272
|
||||
]
|
||||
],
|
||||
"launch_hours": [
|
||||
8,
|
||||
4,
|
||||
2,
|
||||
8,
|
||||
0,
|
||||
4,
|
||||
0,
|
||||
4,
|
||||
2,
|
||||
0,
|
||||
0,
|
||||
0,
|
||||
4,
|
||||
6,
|
||||
2,
|
||||
0,
|
||||
8,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
2,
|
||||
8,
|
||||
6,
|
||||
0
|
||||
],
|
||||
"launch_samples": 74,
|
||||
"peak_window": [
|
||||
20,
|
||||
3
|
||||
]
|
||||
},
|
||||
"answers": {
|
||||
"role": "play",
|
||||
"share_for": null,
|
||||
"pays_today": "1-9",
|
||||
"other_linux": null,
|
||||
"steam_consent": true,
|
||||
"asked": 2
|
||||
},
|
||||
"verdict": "unknown",
|
||||
"region_hint": null
|
||||
}
|
||||
Reference in New Issue
Block a user