Skip to content

Commit 6657b7e

Browse files
committed
docs: update documentation to reflect actual registry behavior
1 parent 9ac65d0 commit 6657b7e

3 files changed

Lines changed: 15 additions & 14 deletions

File tree

docs/Architecture/Overview.md

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,14 +21,17 @@ OpenTweak scans for installed games across multiple launchers, fetches tweak rec
2121
**In scope:**
2222
- Game discovery from Steam, Epic, GOG, Xbox, Manual
2323
- PCGamingWiki Cargo API integration
24-
- Config file modification (INI, CFG, JSON, XML, Registry)
24+
- Config file modification (INI, CFG, JSON, XML)
2525
- Automatic backup and restore
2626
- Windows 11 WPF UI with Mica backdrop
2727

2828
**Out of scope:**
2929
- Game installation/management
3030
- Online multiplayer modifications
3131
- Cheat/hack detection bypass
32+
- **Registry modifications** (explicitly blocked at validation)
33+
34+
> **Note:** Registry modifications are not supported. The TweakEngine validates recipes and marks any with `TargetType.Registry` as unsupported. The PCGWService skips registry extraction entirely.
3235
3336
---
3437

@@ -66,7 +69,6 @@ flowchart TB
6669
GOG[GOG Registry]
6770
Xbox[Xbox Game Pass]
6871
Files[Config Files]
69-
Reg[Windows Registry]
7072
end
7173
7274
MW --> MVM
@@ -83,7 +85,6 @@ flowchart TB
8385
PCGW --> PCGW_API
8486
TE --> BS
8587
TE --> Files
86-
TE --> Reg
8788
BS --> Files
8889
DBS --> G
8990
DBS --> TR
@@ -110,15 +111,13 @@ flowchart LR
110111
Cargo[Cargo API]
111112
Wiki[Wiki Parse API]
112113
Files[File System]
113-
Reg[Registry]
114114
end
115115
116116
UI --Commands--> Services
117117
UI --INPC--> UI
118118
PCGW_API --HTTP--> Cargo
119119
PCGW_API --HTTP--> Wiki
120120
TE_API --> Files
121-
TE_API --> Reg
122121
BS_API --> Files
123122
```
124123

docs/Features/PCGWIntegration.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,17 +41,16 @@ flowchart TD
4141
SaveGames --> Pattern2[Regex: {{Game data/saves|...}}]
4242
4343
Recipes --> IniFixes[ExtractIniFixes]
44-
Recipes --> RegFixes[ExtractRegistryFixes]
4544
Recipes --> CmdFixes[ExtractCommandLineFixes]
4645
4746
IniFixes --> ParseCode[Parse <pre> blocks]
48-
RegFixes --> ParseReg[Parse registry patterns]
4947
CmdFixes --> ParseCmd[Parse launch options]
5048
5149
ParseCode --> CreateRecipes[Create TweakRecipe objects]
52-
ParseReg --> CreateRecipes
5350
ParseCmd --> CreateRecipes
5451
52+
Note1[NOTE: ExtractRegistryFixes returns empty list - Registry not supported] -.-> Recipes
53+
5554
CreateRecipes --> Cache[Cache to LiteDB]
5655
Cache --> Display[Display in GameDetailView]
5756
```
@@ -155,14 +154,15 @@ OpenTweak/1.0 (Automated Game Tweaks)
155154
| Type | Pattern | Example |
156155
|------|---------|---------|
157156
| INI | `[Section]\nKey=Value` | `[Graphics]\nMotionBlur=0` |
158-
| Registry | `HKEY_...\Key\Value` | `HKEY_CURRENT_USER\Game\Setting` |
159157
| Command Line | `-argument` | `-novid -high` |
160158

159+
> **Not Extracted:** Registry patterns are NOT extracted. `ExtractRegistryFixes` returns an empty list because the TweakEngine blocks registry modifications.
160+
161161
### Extraction Methods
162162

163163
1. **ExtractIniFixes**: Parses `<pre>` blocks and INI-style patterns
164-
2. **ExtractRegistryFixes**: Matches registry key/value patterns
165-
3. **ExtractCommandLineFixes**: Finds launch option arguments
164+
2. **ExtractCommandLineFixes**: Finds launch option arguments
165+
3. ~~ExtractRegistryFixes~~: Returns empty list (registry not supported)
166166

167167
---
168168

docs/Features/TweakEngine.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,9 @@ Tests: [`OpenTweak.Tests/Services/TweakEngineTests.cs`](../../OpenTweak.Tests/Se
1111

1212
## Summary
1313

14-
Safely applies configuration tweaks with automatic backup and restore capabilities. Supports INI, CFG, JSON, XML files, and Windows Registry modifications. Uses Salaros.ConfigParser to preserve comments in config files.
14+
Safely applies configuration tweaks with automatic backup and restore capabilities. Supports INI, CFG, JSON, and XML config files. Uses Salaros.ConfigParser to preserve comments in config files.
15+
16+
> **Note:** Registry modifications are NOT supported. The engine explicitly blocks registry tweaks at validation with the reason "Registry modifications are not yet implemented safely." This is a deliberate safety decision.
1517
1618
---
1719

@@ -44,7 +46,6 @@ flowchart TD
4446
ApplyEach --> Ini[ApplyIniTweakAsync]
4547
ApplyEach --> Json[ApplyJsonTweakAsync]
4648
ApplyEach --> Xml[ApplyXmlTweakAsync]
47-
ApplyEach --> Reg[ApplyRegistryTweak]
4849
4950
Ini --> UseParser[Use Salaros.ConfigParser]
5051
UseParser --> PreserveComments[Preserve comments]
@@ -159,7 +160,8 @@ public class Snapshot
159160
| INI/CFG | `ApplyIniTweakAsync` | Salaros.ConfigParser |
160161
| JSON | `ApplyJsonTweakAsync` | System.Text.Json |
161162
| XML | `ApplyXmlTweakAsync` | System.Xml.XmlDocument |
162-
| Registry | `ApplyRegistryTweak` | Microsoft.Win32.Registry |
163+
164+
> **Not Supported:** Registry modifications are blocked at validation. Recipes with `TargetType.Registry` are marked `IsSupported=false` and filtered from the UI.
163165
164166
### Environment Variable Expansion
165167

0 commit comments

Comments
 (0)