Adds a "Report Bug" button to the web UI (top bar) that files an issue on Gitea via the daemon, enriched with auto-collected context: version, hostname, GPU, offset summary, active profile, and a collapsed recent-log tail.
Security model:
Gitea token (nvcurve_bot, scope write:issue) is a built-in default → works out of the box for every install of this public repo, no configuration.
Token is used server-side only; never reaches browser, logs, or API responses.
Behind existing session auth when enabled; rate-limited to 1 report / 5 min per client IP.
config.json can override gitea_url/gitea_repo/gitea_token (forks pointing at their own repo); gitea_token: "" disables it.
Changed:
nvcurve/config.py — gitea_* fields with built-in defaults
nvcurve/cli.py — loads overrides from /etc/nvcurve/config.json
nvcurve/server.py — POST /api/report-bug + GET /api/report-bug/status
Verified end-to-end: issue created via UI with full auto-context; 429 on repeat; zero-config path confirmed.
Adds a "Report Bug" button to the web UI (top bar) that files an issue on Gitea via the daemon, enriched with auto-collected context: version, hostname, GPU, offset summary, active profile, and a collapsed recent-log tail.
Security model:
- Gitea token (nvcurve_bot, scope write:issue) is a built-in default → works out of the box for every install of this public repo, no configuration.
- Token is used server-side only; never reaches browser, logs, or API responses.
- Behind existing session auth when enabled; rate-limited to 1 report / 5 min per client IP.
- config.json can override gitea_url/gitea_repo/gitea_token (forks pointing at their own repo); gitea_token: "" disables it.
Changed:
- nvcurve/config.py — gitea_* fields with built-in defaults
- nvcurve/cli.py — loads overrides from /etc/nvcurve/config.json
- nvcurve/server.py — POST /api/report-bug + GET /api/report-bug/status
- frontend: ReportBugDialog.tsx (new), StatusBar.tsx (button), api/client.ts
Verified end-to-end: issue created via UI with full auto-context; 429 on repeat; zero-config path confirmed.
Adds a 'Report Bug' button to the web UI (top bar) that files an issue
on Gitea via the daemon. The issue body is enriched with auto-collected
context: nvcurve version, hostname, GPU name, applied offset summary,
active profile, and a collapsed tail of the recent server log.
Security model:
- The Gitea token (nvcurve_bot, scope write:issue) is embedded as a
built-in default so the feature works out of the box for every
install of this public repo — no configuration required.
- The token is only ever used server-side; it never reaches the
browser, logs, or API responses.
- The endpoint is behind the existing session auth when enabled, and
rate-limited to one report per 5 minutes per client IP.
- config.json can override gitea_url/gitea_repo/gitea_token (e.g.
forks pointing at their own repo); gitea_token: '' disables it.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Adds a "Report Bug" button to the web UI (top bar) that files an issue on Gitea via the daemon, enriched with auto-collected context: version, hostname, GPU, offset summary, active profile, and a collapsed recent-log tail.
Security model:
Changed:
Verified end-to-end: issue created via UI with full auto-context; 429 on repeat; zero-config path confirmed.