Where your data lives

One directory per application, and what changed when the brand name left the path

Korall Engineering™ stores everything it remembers — settings, identities, keys, scenes, logs — under one directory per application.

Platform Location
Linux ~/.local/share/Korall Engineering/<app>/
Windows %LOCALAPPDATA%\Korall Engineering\<app>\
macOS ~/Library/Application Support/Korall Engineering/<app>/
Android The private storage of the app, which no other app can read

The organization segment is plain ASCII and is the same for every application. The <app> segment is the base id of the application, in lower case, for a node app and for a standalone app alike:

~/.local/share/Korall Engineering/
ā”œā”€ā”€ agent/
ā”œā”€ā”€ construct/
ā”œā”€ā”€ hub/
└── remote/

Each application keeps its own directory, so running two of them never mixes their data.

Pro Tip

Every application resolves this once, at startup, and uses the same answer for the rest of the run. If you need it somewhere else — a portable install, a test rig, a second isolated instance — set it at launch rather than moving the directory afterwards.


Debug builds

A debug build does not use the platform folder. It keeps its data in data/<app>/ beside its own program, in <binary dir>/data/<app>, so two development builds never share one configuration. When the folder of the program is not writable, the debug build falls back to the platform folder above and prints a warning that says so. Pass --base-dir <path> to choose the folder yourself.


Settings and configuration files

A release build keeps the settings of an application in the settings store of the platform, not in the data folder:

Platform Settings
Linux ~/.config/Korall Engineering/<app>.conf
Windows The registry key HKEY_CURRENT_USER\Software\Korall Engineering\<app>
macOS A property list in ~/Library/Preferences/
Android The private storage of the app

Some applications also keep configuration files of their own, for example a library of color gradients. These files go in the configuration folder:

Platform Configuration files
Linux ~/.config/Korall Engineering/<app>/
Windows %LOCALAPPDATA%\Korall Engineering\<app>\, the data folder
macOS ~/Library/Preferences/Korall Engineering/<app>/
Android The private storage of the app

A debug build, and a run with --base-dir, keeps everything in its data folder. The settings are in settings.ini there, and the configuration files are beside it.


What is in the directory

These folders hold the evidence that a bug report or a crash report is made from. See Diagnostic reports.

Folder Holds
logs/ One log file per run, <app>-<yyyyMMdd-HHmmss>-<pid>.log, start time in UTC. The newest 10 runs, at most 96 MiB together
process-health/ The record of the running instance: its start, its build, its log file, and a crash marker if it crashed. A node app uses this folder directly. A standalone app uses one slot per running instance, process-health/run-<k>/, so two windows run side by side
process-health/history/ The records of the newest 20 finished runs, one folder per run
reports/ Diagnostic reports: reports/<id>/bundle.zip and reports/<id>/state.json. At most 100
keys/ A standalone app's key store, made the first time you sign in for reports. It seals your access token. It is not a node identity
diagnostics-<yyyyMMdd-HHmmss>.zip A bundle that system.diagnostics.collect wrote

On Windows, an installer that sets up Windows Error Reporting for the app keeps its crash dumps in %LOCALAPPDATA%\Korall Engineering\crash-dumps\, not in the folder that every program shares. The app deletes a dump from there once the report that holds it is sent or deleted.


If you upgraded and your data looks missing

It is not missing. It is in the directory beside the one you are looking at.

This section is for an edition whose organization name carries a mark, such as ā„¢. Older versions of such an edition stored data under a folder named with the mark, Korall Engineeringā„¢, because the brand name was used directly as a directory name. That turned out to be a bad idea:

  • Windows code pages that cannot represent ā„¢ mangled the path.
  • Different parts of the program disagreed about whether the symbol was there, so the same machine could end up with two data directories and no indication which one was live.

Current versions use the plain ASCII name, Korall Engineering, everywhere, always. An edition whose name never carried a mark had no old directory, and never shows the message below.

What the upgrade does — and does not — do

The first time a new version starts on a machine that has an old directory, it prints this, once:

Data location changed. This version stores data in
    /home/you/.local/share/Korall Engineering/hub
An older directory exists at
    /home/you/.local/share/Korall Engineeringā„¢/hub
and this version does NOT read it. Nothing was moved, copied or deleted — the
old directory is untouched and can be removed by hand once you are sure you do
not want it.

That is the whole behaviour, and each part of it is deliberate:

It does It does not
Start fresh in the ASCII directory Read the old directory
Tell you both paths, once Move, copy, merge or delete anything
Leave the old directory exactly as it was Decide for you which one to keep

Nothing is migrated automatically, on purpose. An automatic move is a one-way operation on data we cannot verify — identities and keys included — and if it went wrong there would be nothing left to go back to. Leaving the old directory untouched means the worst case is that you copy files across yourself.

Moving your old data across

Stop the application first, then copy the contents of the old directory into the new one:

# Linux / macOS
cp -a ~/.local/share/'Korall Engineeringā„¢'/hub/. ~/.local/share/Korall Engineering/hub/

# Windows PowerShell
Copy-Item "$env:LOCALAPPDATA\Korall Engineeringā„¢\hub\*" "$env:LOCALAPPDATA\Korall Engineering\hub\" -Recurse

Copy rather than move until you have confirmed the application starts and your identities are present. Once you are satisfied, delete the old directory by hand.

When the message does not appear

It only appears when there is something to say — when an old directory exists and the new one does not yet. You will not see it on a fresh install, on a second run, or if you have already got a new-style directory. Seeing it once and never again is correct.


Non-ASCII paths generally

Your own paths can contain anything your filesystem allows — accented characters, CJK, emoji in a scene filename. The restriction above was only ever about the directory we create from our own brand name, and it is fixed by us using ASCII, not by restricting you.

Log output is UTF-8 on every platform. If you redirect a log to a file and see mangled characters in a terminal, check the terminal's encoding before assuming the file is wrong — a terminal shows you its own code page's rendering, not the bytes that were written.

In this section
Topics
reference data paths upgrade migration storage
See also