Skip to content

Docs and preferences.

Choose a tag to compare

@dankoverride dankoverride released this 09 Sep 16:57
· 8 commits to main since this release
ba66801
Rewrite Preferences from the Unity source (#112)

* docs(3D): rewrite Preferences from the Unity source

The page described a settings dialog that does not exist. It listed audio
volumes, mouse sensitivity, invert-Y, sprint multiplier, VR comfort options,
locomotion type, connection timeouts and a server-region picker. None of those
are in the client, in any form. Twenty of roughly twenty-five rows were marked
"coming soon" or "not yet configurable", which read as a roadmap but described
settings with no counterpart in the code.

Rewritten against PreferencesConfigurationDescriptors on the Unity branch that
introduces them, which declares every preference with a key, label, description,
category, section, control kind, value type and bounds. All twenty-three are
documented here with the labels and descriptions the UI itself uses, so the page
and the dialog say the same words.

The real categories are World, Display, Effects, Assistant and Advanced. Most of
what a user actually tunes is grid behaviour, not engine settings: which blocks
are drawn, whether errored and lost blocks age out, phantom-node detection.

Three things the old page did not say and should have:

Tessa can change twelve of these herself. The descriptors mark them
AgentWritable, and it is deliberately a short list -- redaction, sign-in and the
frame budget are excluded. Marked with an icon and explained once.

Demo mode redacts hosts, URLs and database names. It was not mentioned at all,
and it is the setting to reach for before screen-sharing.

Blocks per frame is the first thing to lower when the client struggles on a busy
grid.

Removed with the rest, and worth naming: "Server Region - Preferred data center
region". That is the same claim retired from the Data Security page in #109.
There is one region, and no user-facing picker exists.

Corrected the reset paths. The product folder is DC, not "Immersive APM" --
ProjectSettings has companyName "Immersive Fusion" and productName "DC" -- which
resolves the SP-074 TODO that was waiting for the shipped app to create it. The
Linux path is dropped rather than guessed: Unity's persistentDataPath on Linux
is not the path that was published, and I could not verify the correct one.

The F10 access line is dropped rather than restated. The dialog is opened from
the scene, not from code, so nothing in source confirms it and I could not
verify it either way.

Not documented: the Graphics, Audio and Comfort categories exist in the
PreferenceCategory enum with no descriptors yet. Those are where volume and
comfort settings will land. Tracked separately rather than pre-announced here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(3D): preferences open on F9, and restore the access line

Founder-confirmed: F9 opens preferences, not F10. The Navigation controls
table said F10 and the Preferences page said "F10 -> Main Menu -> Preferences".

The Preferences rewrite dropped the access line rather than restate a path it
could not verify from source, since the dialog is wired in the scene. It is
back, as the single key it actually is.

Not touched, and worth recording why. The Navigation table also lists
"Console | F12 | Open the developer console". SP-067 finds the McMaster console
unreachable and retires it, which looked like a second stale row -- but F2 of
the same spike says the QFSW Quantum Console is a different system and stays.
Two consoles, one being removed and one remaining, so the F12 row may well be
correct and is left alone rather than removed on a misreading.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(3D): document the function keys, and where they do not work

Founder-confirmed, filling gaps the controls table never had. The help dialog
defines ten key containers; the docs covered six of them and had one wrong.

  F1   Help          was undocumented
  F6   Copy          was undocumented
  F9   Preferences   was documented as F10
  F10  Main menu     was undocumented as itself
  F12  Console       already correct

That explains the old "F10 -> Main Menu -> Preferences" phrasing: F10 does open
the main menu, and preferences used to be reached through it. F9 opens
preferences directly.

Also recorded, and not derivable from the source: F1 and F9 are grid-only. The
lobby and the login screen do not have them and neither dialog opens there. A
reader following the controls table from the login screen would otherwise
conclude the app was broken.

Still undocumented: the help dialog also defines KEY_P, and what it does is not
established. Left out rather than guessed.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(3D): drop the UI panel keys that are not a thing

Founder-confirmed: C, L and T are not implemented and are not planned in the
form the table described. They claimed to toggle the AI assistant panel, the log
panel and trace details. None appears in the help dialog's key set, and the
client has no such bindings.

Removed with them: "Toggle Metrics", which had no key at all and a not-yet-
configurable marker. A row with no key, no implementation and no date is not
documentation.

That leaves the UI & Panels table with the two camera-view keys that are real,
M and N.

On KEY_P, which the help dialog defines and which prompted this: the only
first-party reference is PlayerControlsControl.cs line 12, and it is commented
out --

  //public KeyCode ToggleKey = KeyCode.P;

-- so P does nothing in the client while the help dialog still advertises it.
That is a product defect rather than a documentation gap, and it stays out of
the docs until the key does something. The Avatar input map does bind
<Keyboard>/p, but to SecondaryPointerButtonPress in the XR simulator, which is
not a user-facing shortcut.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

* docs(3D): mark Grid map and Avatar as unfinished

Both descriptors carry ComingSoon = true, which the descriptor documents as a
setting that is present but not finished -- "a dropdown with no options is
normally a defect worth an error; on a setting nobody has finished, it is just
the truth."

The rewrite listed them as working settings with a default. A reader would open
the dialog, find an empty dropdown, and reasonably conclude the client was
broken.

Found while verifying a different claim. The page says Tessa can change twelve
of these, which I had taken from AgentWritable without checking that anything
consumes it. It does: AssistantBootstrapper registers GetPreferencesTool and
SetPreferenceTool as tools, and PreferenceToolGateway enforces AgentWritable on
write and rejects unknown keys. The claim holds.

What the same check turned up is that the gateway computes writability as
"AgentWritable && !ComingSoon", which is what surfaced these two. Neither is
agent-writable, so the robot markers are unaffected.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>