Diagnostics
When something behaves differently from the terminal, the diagnostics surfaces answer three questions: what command ran, which configuration applied, and what state the repository is in.
Git output
Git output shows the commands the application executed, their arguments and their output, streamed as they run. It is the first place to look when a Git operation fails in a way the UI summary does not explain.
- Arguments are shown as executed, with credentials and URL userinfo redacted.
- Long operations stream; a cancelled operation stops where it was cancelled.
- Hook output appears here too, because hooks run as part of the Git command that triggered them.
The panel is a log, not a shell. It cannot run a command.
Effective Git config
The config viewer lists the effective value of every Git setting for the open repository, with its origin:
| Origin | Meaning |
|---|---|
system | Machine-wide Git installation config |
global | Your user config |
local | The repository’s .git/config |
Values are searchable and the whole list can be copied. It is the same view Git itself resolves, which makes it the fastest way to answer “why is this repository using that identity / signing key / pull strategy”.
Repository health
Repository health runs a bounded, local audit of the open repository. It never contacts a remote.
| Check | What it reports |
|---|---|
fsck | Corrupt or missing objects, with the raw Git output capped for display |
| Objects | Loose object count, packed state and disk usage |
| Largest | The largest blobs, up to a bounded list |
| Branches | Merged branches that can be deleted |
| Refs | Upstreams that no longer exist, and other broken refs |
| Clone | Shallow or partial clones that explain missing history |
| LFS | Whether LFS is used, whether git-lfs is installed, and how many files are still pointers |
| Untracked | Large untracked files that would bloat the next commit |
Findings are severity-ranked and each can offer an action: garbage collect, fsck, prune a gone remote branch, delete merged branches, pull LFS objects. Actions run through the same flows as the rest of the application and ask for confirmation where the flow does. Nothing runs automatically.
A check that cannot complete becomes a finding of its own, so a single failure does not hide the checks that succeeded. The scan is capped (50 000 objects, 2 000 untracked paths, 20 large items) and reports when it stopped early.
Diagnostics ZIP
Export diagnostics writes a ZIP into exports/logs under the data directory:
- Application logs.
panic.log, if a previous run wrote one.system.jsonwith platform, version and data paths.- A copy of
settings.json. - A short README explaining what the bundle contains.
The bundle does not include repository content, diffs, note bodies, tokens, agent environment values or the MCP token. Local paths and repository names can still appear in logs; read the bundle before sharing it publicly.
Logging
| Setting | Range | Default |
|---|---|---|
| Level | debug, info, warn, error | info |
| Max size | 1 to 100 MB per file | 10 MB |
| Max files | 1 to 50 | 5 |
Logs are structured (slog) with stable keys. They never contain diff bodies, note bodies, credentials or AI prompt contents. Rotation happens by size and count, so the total disk usage is bounded.
Log locations:
- macOS:
~/Library/Logs/Gitwright - Windows:
%AppData%\Gitwright\logs - Linux:
~/.config/Gitwright/logs
Open logs reveals the directory; Export diagnostics creates the bundle.
GUI PATH check
On macOS and Linux, a GUI application does not always inherit the PATH your shell has. Check GUI PATH compares the application’s environment with the login shell, and can copy the missing entries so you can fix the launch environment or set an absolute Git binary path in Settings.
Crash records
A fatal runtime error writes a crash record next to the logs rather than to a terminal no one is watching. Recovered panics in background work are logged normally. Both paths stay local; nothing is uploaded.
Next
- Settings — logging level, backup and reset.
- Troubleshooting — the problems these tools are used for.
- Privacy — what a support bundle can contain.