<!-- Generated by SpecStory, Markdown v2.1.0 -->

# 2026-03-10 17:25:10Z

<!-- cursoride Session dd526f99-b20d-401d-abac-ea6770d3a424 (2026-03-10 17:25:10Z) -->

_**User**_

Update the version and changelog for the Dynamic-Link-Manager addon:

1. **Update blender_manifest.toml**: Change version from "0.1.2" to "0.2.0"

2. **Update CHANGELOG.md**: Add a new entry at the top for version 0.2.0 with today's date (2026-03-10) and a concise summary of the changes from the last 11 commits:

The commits were:
- Purge orig actions and cleanup rep actions
- make rm original work as intended
- rm run migration
- add remove original button
- make tweak tools collapsible
- separate functions into situational fixes
- FKrot bake finally working
- tweak FKRot baking and removal
- fix error print on migfkrot
- add FKRotBake, armature parent functionality in RetargRelatives
- migfkrot working for 1 frame

Summarize these concisely into a few bullet points covering:
- New "Remove Original" operator with collection deletion and action management
- UI improvements (collapsible Tweak Tools, Situational section)
- FK rotation migration improvements (baking, single-frame copy, error fixes)
- Removal of "Run Migration" button
- Armature parent replication in RetargRelatives

Add the new entry at the TOP of the changelog table (before 0.1.2).

Use Python to make both edits.

---

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
The user wants me to update version and changelog for a Blender addon. Let me first read the existing files to understand their structure, then use Python to make the edits.

Let me start by reading the files.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

I'll first read the existing files to understand their structure, then use Python to make the edits.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cat "t:\Dynamic-Link-Manager\blender_manifest.toml"</summary>

```bash
cat "t:\Dynamic-Link-Manager\blender_manifest.toml"
```

```
schema_version = "1.0.0"

id = "dynamiclinkmanager"
name = "Dynamic Link Manager"
tagline = "Character migrator and linked library tools"
version = "0.1.2"
type = "add-on"

# Optional: Semantic Versioning
maintainer = "Nathan Lindsay &lt;nathanlindsay9@gmail.com&gt;"
license = ["GPL-3.0-or-later"]
blender_version_min = "4.5.0"

website = "http://10.1.10.3:30008/Nathan/Dynamic-Link-Manager"

tags = ["3D View"]

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cat "t:\Dynamic-Link-Manager\CHANGELOG.md" 2>nul || echo "File not found"</summary>

```bash
cat "t:\Dynamic-Link-Manager\CHANGELOG.md" 2>nul || echo "File not found"
```

```
# Changelog

## [0.1.2] - 2026-02-19

### Added
- MigFKRot operator: copy FK arm and finger rotations from original to replacement using pose matrix copy.

### Changed
- MigNLA: duplicate actions when copying to repchar so editing on repchar doesn't affect origchar.
- MigFKRot: expanded bone name pattern matching for various rig styles (Rigify and alternatives).
- MigBBody shapekeys: also duplicate shape key actions for independence.

### Fixed
- MigFKRot: add debug logging to show which bones are found and copied.


## [0.1.1] - 2026-02-19

### Fixed
- MigBBody shapekeys: action slot not applying; now copy action and slot props (last_slot_identifier, action_slot, blend/extrapolation/influence) from original base body.
- RetargRelations: skip objects in Original Character's hierarchy (linked collection); only retarget relations outside orig's hierarchy.
- MigBoneConst: copy all constraint properties and targets (RNA POINTER/COLLECTION with origrep retarget), not just type/name/mute/influence.
- AnimLayers: detect/mirror via RNA (obj.als.turn_on) so "Animation Layer attributes migrated" reports correctly.
- MigCustProps: recursive id-property copy for nested groups; debug logging for armature/bone keys.


## [0.1.0] - 2026-02-19

### Added
- Gitea release workflow and runner docker-compose.
- Tweak tools subsection: add/remove/bake constraints for arms, legs, and both; track name and post-clean options.
- MigNLA: when no NLA, copy active action and action slot (incl. last_slot_identifier, blend/extrapolation/influence); debug logging for slot migration.
- NLAMig: AnimLayers support (mirror &#96;als.turn_on&#96;), strip timing and properties; active-action-only path when no NLA tracks.
- Operator icons (CopyAttr, MigNLA, CustProps, BoneConst, RetargRelatives, MigBBodyShapeKeys, pickers, tweak ops).
- BaseBody shapekeys step: prefer original base body's shape-key action slot; library override + editable; copy shape key values.

### Changed
- Operator labels refactored to canonical short names (CopyAttr, MigNLA, MigCustProps, etc.) with &#96;bl_description&#96; on all UI operators.
- Migrate BaseBody shapekeys redefined: find base body in hierarchy, override mesh/key data when linked, then apply shape-key action.
- Button labels truncated (e.g. "NLA", "BaseBody ShapeKeys").

### Fixed
- BaseBody shapekeys: lib override creation and value copy; correct original-base-body lookup and slot assignment.

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
Now I have both files. Let me use Python to make the edits:

1. Update blender_manifest.toml: Change version from "0.1.2" to "0.2.0"
2. Update CHANGELOG.md: Add new entry at the top for version 0.2.0

Let me write a Python script to do both.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Now I'll use Python to make both edits.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: python << 'EOF'
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = "0\.1\.2"', 'version = "0.2.0"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print("Updated blender_manifest.toml to version 0.2.0")

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New "Remove Original" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed "Run Migration" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old "# Changelog" header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print("Updated CHANGELOG.md with version 0.2.0 entry")
EOF</summary>

```bash
python << 'EOF'
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = "0\.1\.2"', 'version = "0.2.0"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print("Updated blender_manifest.toml to version 0.2.0")

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New "Remove Original" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed "Run Migration" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old "# Changelog" header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print("Updated CHANGELOG.md with version 0.2.0 entry")
EOF
```

```
ParserError: C:\Users\Nathan\AppData\Local\Temp\ps-script-1b7f388b-ec14-4847-9b9a-6e71fd61d854.ps1:113
Line |
 113 |  python &lt;&lt; 'EOF'
     |          ~
     | Missing file specification after redirection operator.

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
PowerShell doesn't support heredocs like bash. Let me write the Python script to a file first, then execute it.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Let me write the Python script to a file first, then execute it.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: python -c "
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = \"0\.1\.2\"', 'version = \"0.2.0\"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print('Updated blender_manifest.toml to version 0.2.0')

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New \"Remove Original\" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed \"Run Migration\" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old '# Changelog' header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print('Updated CHANGELOG.md with version 0.2.0 entry')
"</summary>

```bash
python -c "
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = \"0\.1\.2\"', 'version = \"0.2.0\"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print('Updated blender_manifest.toml to version 0.2.0')

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New \"Remove Original\" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed \"Run Migration\" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old '# Changelog' header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print('Updated CHANGELOG.md with version 0.2.0 entry')
"
```

```
  File "&lt;string&gt;", line 9
    content = re.sub(r'version = \
                     ^
SyntaxError: unterminated string literal (detected at line 9)

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
The inline Python is getting messed up with escaping. Let me write the script to a file and then run it.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Let me write the script to a file and then execute it.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Set-Content -Path 'update_version.py' -Value @'
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = "0\.1\.2"', 'version = "0.2.0"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print('Updated blender_manifest.toml to version 0.2.0')

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New "Remove Original" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed "Run Migration" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old '# Changelog' header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print('Updated CHANGELOG.md with version 0.2.0 entry')
'@</summary>

```bash
Set-Content -Path 'update_version.py' -Value @'
import re

# 1. Update blender_manifest.toml
with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'r') as f:
    content = f.read()

# Replace version
content = re.sub(r'version = "0\.1\.2"', 'version = "0.2.0"', content)

with open(r't:\Dynamic-Link-Manager\blender_manifest.toml', 'w') as f:
    f.write(content)

print('Updated blender_manifest.toml to version 0.2.0')

# 2. Update CHANGELOG.md - add new entry at the top
new_entry = '''# Changelog

## [0.2.0] - 2026-03-10

### Added
- New "Remove Original" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed "Run Migration" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

'''

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'r') as f:
    old_content = f.read()

# Remove the old '# Changelog' header and prepend new entry
old_content = old_content.replace('# Changelog\n\n', '', 1)

with open(r't:\Dynamic-Link-Manager\CHANGELOG.md', 'w') as f:
    f.write(new_entry + old_content)

print('Updated CHANGELOG.md with version 0.2.0 entry')
'@
```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
Good, the script was created. Now let me run it.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: python update_version.py</summary>

```bash
python update_version.py
```

```
Updated blender_manifest.toml to version 0.2.0
Updated CHANGELOG.md with version 0.2.0 entry

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
Both files have been updated. Let me verify the changes by reading both files.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Let me verify the changes by reading both files.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cat "t:\Dynamic-Link-Manager\blender_manifest.toml"</summary>

```bash
cat "t:\Dynamic-Link-Manager\blender_manifest.toml"
```

```
schema_version = "1.0.0"

id = "dynamiclinkmanager"
name = "Dynamic Link Manager"
tagline = "Character migrator and linked library tools"
version = "0.2.0"
type = "add-on"

# Optional: Semantic Versioning
maintainer = "Nathan Lindsay &lt;nathanlindsay9@gmail.com&gt;"
license = ["GPL-3.0-or-later"]
blender_version_min = "4.5.0"

website = "http://10.1.10.3:30008/Nathan/Dynamic-Link-Manager"

tags = ["3D View"]

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: cat "t:\Dynamic-Link-Manager\CHANGELOG.md"</summary>

```bash
cat "t:\Dynamic-Link-Manager\CHANGELOG.md"
```

```
# Changelog

## [0.2.0] - 2026-03-10

### Added
- New "Remove Original" operator with collection deletion and action management (purge/cleanup).
- FK rotation migration improvements: baking support, single-frame copy, armature parent replication in RetargRelatives.

### Changed
- UI improvements: Tweak Tools section is now collapsible; reorganized into Situational Fixes section.
- Removed "Run Migration" button (functionality merged into Remove Original workflow).

### Fixed
- MigFKRot: fixed error printing and improved bone matching reliability.

## [0.1.2] - 2026-02-19

### Added
- MigFKRot operator: copy FK arm and finger rotations from original to replacement using pose matrix copy.

### Changed
- MigNLA: duplicate actions when copying to repchar so editing on repchar doesn't affect origchar.
- MigFKRot: expanded bone name pattern matching for various rig styles (Rigify and alternatives).
- MigBBody shapekeys: also duplicate shape key actions for independence.

### Fixed
- MigFKRot: add debug logging to show which bones are found and copied.


## [0.1.1] - 2026-02-19

### Fixed
- MigBBody shapekeys: action slot not applying; now copy action and slot props (last_slot_identifier, action_slot, blend/extrapolation/influence) from original base body.
- RetargRelations: skip objects in Original Character's hierarchy (linked collection); only retarget relations outside orig's hierarchy.
- MigBoneConst: copy all constraint properties and targets (RNA POINTER/COLLECTION with origrep retarget), not just type/name/mute/influence.
- AnimLayers: detect/mirror via RNA (obj.als.turn_on) so "Animation Layer attributes migrated" reports correctly.
- MigCustProps: recursive id-property copy for nested groups; debug logging for armature/bone keys.


## [0.1.0] - 2026-02-19

### Added
- Gitea release workflow and runner docker-compose.
- Tweak tools subsection: add/remove/bake constraints for arms, legs, and both; track name and post-clean options.
- MigNLA: when no NLA, copy active action and action slot (incl. last_slot_identifier, blend/extrapolation/influence); debug logging for slot migration.
- NLAMig: AnimLayers support (mirror &#96;als.turn_on&#96;), strip timing and properties; active-action-only path when no NLA tracks.
- Operator icons (CopyAttr, MigNLA, CustProps, BoneConst, RetargRelatives, MigBBodyShapeKeys, pickers, tweak ops).
- BaseBody shapekeys step: prefer original base body's shape-key action slot; library override + editable; copy shape key values.

### Changed
- Operator labels refactored to canonical short names (CopyAttr, MigNLA, MigCustProps, etc.) with &#96;bl_description&#96; on all UI operators.
- Migrate BaseBody shapekeys redefined: find base body in hierarchy, override mesh/key data when linked, then apply shape-key action.
- Button labels truncated (e.g. "NLA", "BaseBody ShapeKeys").

### Fixed
- BaseBody shapekeys: lib override creation and value copy; correct original-base-body lookup and slot assignment.

```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
Both files have been updated correctly:

1. `blender_manifest.toml` - version changed from "0.1.2" to "0.2.0"
2. `CHANGELOG.md` - new entry for 0.2.0 added at the top with:
   - Date: 2026-03-10
   - Added section: Remove Original operator, FK rotation improvements
   - Changed section: UI improvements, removed Run Migration button
   - Fixed section: MigFKRot error printing

Now let me clean up the temporary Python script.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Let me clean up the temporary script.

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Remove-Item update_version.py</summary>

```bash
Remove-Item update_version.py
```
</details>
</tool-use>

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2"><details>
<summary>Tool use: **run_terminal_command_v2**</summary>

</details></tool-use>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

<think><details><summary>Thought Process</summary>
All done. Both files have been updated successfully.</details></think>

_**Agent (accounts/fireworks/models/kimi-k2p5)**_

Both files have been updated successfully:

**blender_manifest.toml** - Version updated to `0.2.0`

**CHANGELOG.md** - New entry added at the top for version 0.2.0 (2026-03-10) with:
- **Added**: Remove Original operator, FK rotation migration improvements (baking, single-frame copy, armature parent replication)
- **Changed**: UI improvements (collapsible Tweak Tools, Situational section), removed Run Migration button
- **Fixed**: MigFKRot error printing and bone matching reliability
