Everything Directive 47 wrote this session, as it wrote it — the reading that still answers when nothing else does.

1 One file, every part of the app at once.

App Journal Voice Llm Capabilities Settings Vr Input LOG FILE today's file on disk, beside the executable in data\logs — never in AppData

This is where every diagnostic goes: what started, what the model was asked and what it cost, what the headset did, in-game comms, and every error with its cause.

2 It answers with nothing else working.

NO GAME running NO MODEL configured NO MIC and no headset STILL READS every time It is a file. Nothing has to be working for it to be there and be true. This is the first reading to open when something is wrong, not the last.

3 Read when you open it, not tailed.

SWITCH AWAY AND BACK to re-read it. A log nobody is looking at is not worth a file read on every tick CLEAR IS GREYED this is a file on disk, and a control that appeared to empty it would be offering to delete it A spinner beside the picker while it reads. This is the only reading that has one, because it is the only one that waits.

The details

Log File is the second of the Transcript’s readings: today’s log, as Directive 47 wrote it. Every subsystem writes into the one file, in order, so this is the page that says what actually happened rather than what was said about it.

What is in it

Startup and composition. Which journal is being tailed. Every model request with its token counts and price. What the voice provider was asked for and which voice answered. What the headset did. In-game comms, with their sender. And every error, with its cause.

It is the only place several of those are written down, which is deliberate: a diagnostic that also appeared in the conversation would be a page repeating another page, and the conversation is the one reading that has to stay readable.

Reading it

It is read when you open the page, not tailed continuously — a log nobody is looking at is not worth a file read on every tick, and one you are looking at is open because something already went wrong. Switch away and back to re-read it. A spinner beside the picker shows while it reads; this is the only reading with one, because it is the only one that waits on a disk.

Search highlights every match, counts them, and steps forward and back through them.

Newest appears once you have scrolled away from the end and takes you back. The log grows downwards, so its arrow points down.

Copy All puts the whole file as shown on the clipboard — the same text you are looking at, and not something assembled for the occasion.

Clear what is shown is greyed here. There is nothing of Directive 47’s to clear: this is a file, and a control that appeared to empty it would be offering to delete a log. The same is true of both journal readings.

The share button offers this reading to a bug report, because a log and the game’s own journal are the two halves of an incident. What leaves your machine is reviewed by you first — see Privacy.

It is a file, not a feed

Nothing here is Directive 47 talking to you. The lines are written for grepping, they are in the order things happened, and they do not stop when the model is unavailable or the microphone is off. That is the whole value of this reading: it is the one that still answers.

Turning the detail up

Each part of the app carries its own level, and you can raise one without raising the rest:

“turn journal logging up to debug”

The change takes effect on the next line written — no restart. Trace grows a file quickly, so turn it back down once you have what you came for. What the parts are and what each covers is on the Diagnostics page.

Where the file is

Beside the executable, in data\logs, never in %APPDATA%. Ask “what’s your status” and Directive 47 names the folder along with the version and every other place it writes.