# Choose JoSIM settings by scope and recover an override

Identify the effective editor layer, distinguish active-tab run settings and recover first project Save or invalid JSON.

## Compatibility

2.9.0 release target; maintained Linux CLI and Windows native settings candidate checks

Published guidance with release-applicability limits. Confirm package applicability before following this guide.

**KB-SETTINGS-001 · verified workaround**: Create only the missing .josim-pro directory under the dialog's resolved project root, then reopen the dialog and retry Save. Do not assume the working directory is the project root.

## Choose the setting owner first

Editor appearance and language settings, simulation options and saved results have different owners. Start with Tools > Preferences for your user defaults. Open Tools > Project and netlist settings... to inspect editor overrides and their effective sources. The manual calls this command Settings scopes; the reviewed Windows menu uses the longer label.

A User netlist override is the user’s netlist-language layer. It is not an override for only the currently named circuit file. In the checked example, Tab Width 8 applies to both open netlist files. Project netlist is likewise the netlist layer of the selected project file; it is not a map keyed by individual source filenames.

| Owner | What it controls and how it wins |
| --- | --- |
| User Preferences | User defaults in the normal configuration. A project override can take precedence. |
| User netlist | Supported editor/language settings above Preferences, shared by the user’s netlist views. |
| Project: editor object | Supported project editor settings above the user layers. |
| Project netlist: netlist object | Highest configured project netlist layer. Removing an override inherits the next lower value. |
| Run > Run settings... | Execution defaults for the active netlist tab. Deck/block options win unless the corresponding explicit Override is selected. These are separate from editor JSON. |

![Native User netlist scope stages Tab Width 8 and identifies its effective source. Save or Cancel is required before changing scope.](https://static.wixstatic.com/media/31de30_020d9fe4397f45ce911ac543a2303ca1~mv2.png)

Actual staged User netlist Tab Width override. The dialog identifies the winner before Save; Cancel discards the staged change.

## Set, cancel or remove an editor override

The checked sequence starts at width 4, cancels a staged 8, saves User netlist 8, saves Project 4 and then Project netlist 6. Removing those two project overrides returns to 4 and then 8. The source text and simulation options remain unchanged. Display configuration alone does not rewrite circuit text; an explicit format or save action can.

1. Open a saved teaching netlist and choose Tools > Project and netlist settings.... Select the intended Edit scope and Tab Width setting. Read the displayed effective value and its source.
2. Set the numeric value, choose Set override and inspect the staged winner. Choose Save to commit or Cancel to discard. Save or Cancel before switching scope after an edit.
3. To inherit again, choose the same scope and setting, then Remove override and Save. Removing Project netlist exposes Project; removing Project exposes User netlist, when those lower values exist.
4. Check the effective source and the actual editor after it regains focus. Existing per-view indentation/wrapping choices can remain above unchanged configured defaults; a settings layer and a temporary view choice are distinct.

## Find the project file deliberately

Project overrides use .josim-pro/settings.json. The nearest containing settings file wins. Lookup stops at a Git root or after 32 parent directories; when neither is found, the source folder becomes the project folder. Untitled editors use the configured working directory. Only the selected file is read; parent project settings are not merged.

Check the resolved project path in the dialog before saving. A source nested inside an unrelated repository may otherwise resolve to that repository’s project boundary. Opening the dialog or previewing values does not create a project file.

KB-SETTINGS-001: in the reviewed Windows 2.9 source, the first Project Save fails with “System Error. Code: 3. The system cannot find the path specified” when the resolved .josim-pro directory does not exist. Dismiss the error, Cancel, create that directory under the displayed project root, reopen the dialog and repeat the intended override. This exact recovery passed; product source was unchanged. Do not create a directory at an assumed project root.

## Use a complete typed project definition

This complete .josim-pro/settings.json sets project Tab Width 4 and project-netlist Tab Width 6. The final effective configured value is 6. The native Save actions produced this exact two-layer object. Save it as UTF-8 only after checking the resolved project location; keep licensing and global paths in their normal user configuration.

```text
{
  "editor": {"EditorTabWidth": 4},
  "netlist": {"EditorTabWidth": 6}
}
```

## Recover from invalid or changed settings

Only supported editor, suggestion and diagnostic settings are accepted. Values require the displayed type and range. Project files cannot set licensing, global paths, autosave or keybindings. DiagnosticRules replaces the lower object as a whole; it is not merged key by key.

Strict UTF-8 JSON is limited to 64 KiB and 32 nesting levels. Unknown or repeated keys, invalid types/ranges and invalid decoding invalidate the whole project file. The user layers remain effective, and settings! plus the dialog warning identifies the problem. Repair the original file, then refocus or reopen and inspect the current winner.

The checked invalid string value "wide" falls back to User netlist width 8; replacing it with the valid two-layer object restores 6. Production validation also rejects width 999, repeated EditorTabWidth and a project LicenseLocation field.

If another editor changes the project file after the dialog opens, Save rejects the changed hash. Reopen and review the current file before reapplying. Safe save also has read-only and link restrictions; do not bypass those protections by replacing an unfamiliar target.

## Keep execution defaults and source options separate

Run > Run settings... applies to the active netlist tab. A new tab starts with core defaults. Netlist and block-local options can override these defaults; select the matching Override checkbox only when this execution must take precedence. Put portable numerical policy in the saved deck and inspect the resolved plan.

The checked native dialog cancels a staged seed change without changing options, then saves seed 99 with explicit Override seed. The six-case saved plan resolves seed 99 while a second tab retains defaults. Preview publishes no CSV. Run validates a fresh plan; changing settings after a successful run makes retained results stale until rerun.

These checks cover the current source candidate. They do not establish automatic session restoration or a final installed package. Keep saved source, selected runtime and current case records with any reproducibility report.

## Sources and verification details

Recorded inputs/builds only. Complete walkthrough and final-package acceptance remain separate.

- VAL-050: Frozen maintained Windows JoSIM-Pro 2.9 GUI. Frozen maintained Windows JoSIM 2.9 GUI with normal licensed runtime: actual Run settings Cancel/OK, per-tab options, saved-plan preview, serial run/stale state and actual editor-scope Save/Cancel/remove. First project save reproduces path-not-found; explicit settings-directory creation recovers without product changes. Typed/hash guards use production owners. Images are exact native regions. No physical menu/picker, complete restart, Linux GUI or final-package qualification Linux CLI and Windows native controls are distinct routes. No physical picker, complete restart, Linux GUI, whole-process memory guarantee, product repair or final-package qualification.

- josim-user-netlist-scope: Windows current-source JoSIM 2.9 native settings scenario, reviewed 4 November 2026. Actual Windows settings controls and bounded native actions. Linux CLI execution is checked separately; no physical picker or final-package acceptance.

- josim-pro:docs/manual_source/sections/gui_settings.tex: Choose defaults and setting scopes; project resolution, typed JSON and safe-save limits
- josim-pro:docs/manual_source/sections/gui_simulation_results.tex: Simulation lifecycle and Run settings; platform eligibility, active-tab precedence and preview
- validation:josim-policies-20261104: VAL-049 Linux CLI admission/output/interruption; VAL-050 native Windows settings and first-save recovery

- 38 scoped checks keep Windows native controls and Linux CLI execution distinct. KB-SETTINGS-001 is a reproduced first-save issue with explicit directory-creation recovery; no product repair. Final distributed packages and full operator routes remain open.

## Related guides

- [Run isolated Linux sweep workers with explicit memory limits](/knowledge-base/josim-parallel-runs)
- [Sweep parameters and keep every case separate](/knowledge-base/josim-parameter-sweeps)
