Switch the equipment config (RIE / MBE / MOCVD) from the application
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
Research direction
Start with SemiStep.UI/StartupOptions.cs:10 and SemiStep.UI/Program.cs:75 to trace config loading, culture resolution, and DI construction. Review the existing RestartPromptDialog precedent, then map the PLC sync lifecycle, open recipe, and grid surfaces before settling the mechanism, ownership, discovery, and persistence decisions. Done means the design is agreed and switching safely handles config-specific recipes and dirty-close behavior.
Written by the indexing model from the issue text.
Description
Intention only. Scope and mechanism are not settled; to be edited as the design firms up.
Current state
The equipment config is chosen once, before the UI exists.
StartupOptions.ConfigDir (SemiStep.UI/StartupOptions.cs:10) defaults to
C:\DISTR\Config\SemiStep\MBE and can only be overridden by the --config-dir command-line argument.
Program.StartupAsync (SemiStep.UI/Program.cs:75) loads and validates that directory, resolves the
UI culture from it, and then builds the entire DI graph — metadata registry, PLC connection settings,
grid style — before Avalonia starts. Nothing re-reads the config afterwards.
In practice, switching between RIE, MBE and MOCVD means a separate shortcut per config.
Intention
Let the operator switch the active equipment config from inside the application, rather than through
command-line arguments maintained outside it.
Open questions
- Mechanism. Relaunch the process with a new
--config-dir(small;RestartPromptDialogalready
exists as precedent for the style editor), or tear down and rebuild the DI graph in place (large;
touches the PLC sync lifecycle, the open recipe, and both grid surfaces). - Ownership. This may belong inside the planned config-editor feature rather than standing on its
own. - Recipe lifetime. A recipe is config-specific — its action keys and column keys only mean
something inside one config. Switching has to close or block on the open recipe, and a dirty-close
guard is mandatory. - Discovery. A fixed list of subdirectories under a configured root, or a folder picker?
- Persistence. Does the choice survive a restart, and if so, where is it written?
- Dominant language
- C#
- Stars
- 3
- Forks
- 1
- PR merge metrics
- No merged PRs in 30d
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from Semiteq/SemiStep
-
Difficulty 4/5 3-5 days Newbie friendliness 68/100
-
bug
-
bug
-
bug
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 38/100
All issues in Semiteq/SemiStep
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
-
:watch: Not Triaged 11.0 fundamentals/subsvc
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
dotnet/AspNetCore.Docs#37699 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
SubtitleEdit/subtitleedit#15108 · 1 comment ·
-
area/docs-content Bug pulumi/docs
Difficulty 1/5 1-3 hours Newbie friendliness 94/100
-
agentic-workflows untriaged
Difficulty 2/5 1-3 hours Newbie friendliness 76/100