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

<!-- cursor Session 9d47ad7e-a8c1-4b72-b7cb-d27d2232bf50 (2026-03-10 17:24Z) -->

# Version and commit history check (2026-03-10 17:24Z)

_**User**_

1. First, check if there's a version file or manifest in T:\Dynamic-Link-Manager. Look for:
   - blender_manifest.toml
   - __init__.py with version/bl_info
   - Any version.txt or similar files

2. Check if there's a CHANGELOG.md or similar file

3. Run `git log --oneline -11` in the T:\Dynamic-Link-Manager directory to get the last 11 commits

Report back what you find for the current version and the commit history.

---

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



---

<think><details><summary>Thought Process</summary>
The user wants me to:
1. Check for version files in T:\Dynamic-Link-Manager
2. Check for a CHANGELOG.md file
3. Run git log --oneline -11 in that directory

Let me start by listing the files in the directory to see what exists, and then read the relevant files.</details></think>

---

I'll check for version files, changelog, and commit history in the repository.

---

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: ls -la T:\Dynamic-Link-Manager</summary>

```bash
ls -la T:\Dynamic-Link-Manager
```

```
Get-ChildItem: C:\Users\Nathan\AppData\Local\Temp\ps-script-64c6ec1b-14fb-4817-ae61-5c5dd0a3abc6.ps1:7
Line |
   7 |  ls -la T:\Dynamic-Link-Manager
     |     ~~~
     | A parameter cannot be found that matches parameter name 'la'.

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

---

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: git log --oneline -11</summary>

```bash
git log --oneline -11
```

```
a570949 Purge orig actions and cleanup rep actions
968425e make rm original work as intended
48f0065 rm run migration
50d3f05 add remove original button
53927a6 make tweak tools collapsible
b7a8366 separate functions into situational fixes
0299cc5 FKrot bake finally working
b681d02 tweak FKRot baking and removal
1de7ec5 fix error print on migfkrot
7e738fc add FKRotBake, armature parent functionality in RetargRelatives
440b206 migfkrot working for 1 frame

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

---

<think><details><summary>Thought Process</summary>
The ls -la command failed because it's using PowerShell, not bash. Let me try a PowerShell-compatible command to list the directory contents.</details></think>

---

Let me list the files using the correct PowerShell syntax.

---

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Get-ChildItem -Path T:\Dynamic-Link-Manager | Select-Object Name</summary>

```bash
Get-ChildItem -Path T:\Dynamic-Link-Manager | Select-Object Name
```

```


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

---

<tool-use data-tool-type="shell" data-tool-name="run_terminal_command_v2">
<details><summary>Tool use: **run_terminal_command_v2** • Run command: Get-ChildItem -Path T:\Dynamic-Link-Manager -Filter "*.md"</summary>

```bash
Get-ChildItem -Path T:\Dynamic-Link-Manager -Filter "*.md"
```

```

    Directory: T:\Dynamic-Link-Manager

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a---            3/9/2026  2:28 PM           2424 CHANGELOG.md

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

---

<think><details><summary>Thought Process</summary>
Good, I found a CHANGELOG.md. Now let me read the key files to check the version:
1. blender_manifest.toml (already seen as open in the editor)
2. __init__.py
3. CHANGELOG.md

Let me read these files using the shell.</details></think>

---

Now let me read the version files and CHANGELOG.

---

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

```bash
Get-Content 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** • Run command: Get-Content T:\Dynamic-Link-Manager\CHANGELOG.md</summary>

```bash
Get-Content T:\Dynamic-Link-Manager\CHANGELOG.md
```

```
# 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** • Run command: if (Test-Path T:\Dynamic-Link-Manager\__init__.py) { Get-Content T:\Dynamic-Link-Manager\__init__.py } else { "No __init__.py file found" }</summary>

```bash
if (Test-Path T:\Dynamic-Link-Manager\__init__.py) { Get-Content T:\Dynamic-Link-Manager\__init__.py } else { "No __init__.py file found" }
```

```
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTIBILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program. If not, see &lt;http://www.gnu.org/licenses/&gt;.

import bpy

from .ui import CLASSES
from .ui.properties import DynamicLinkManagerProperties
from .ui.preferences import DynamicLinkManagerPreferences


def ensure_default_search_path():
    addon = bpy.context.preferences.addons.get(__name__)
    if addon and len(addon.preferences.search_paths) == 0:
        addon.preferences.search_paths.add().path = "//"


def register():
    DynamicLinkManagerPreferences.bl_idname = __name__
    for cls in CLASSES:
        bpy.utils.register_class(cls)
    bpy.types.Scene.dynamic_link_manager = bpy.props.PointerProperty(type=DynamicLinkManagerProperties)
    bpy.app.handlers.load_post.append(ensure_default_search_path)


def unregister():
    if ensure_default_search_path in bpy.app.handlers.load_post:
        bpy.app.handlers.load_post.remove(ensure_default_search_path)
    del bpy.types.Scene.dynamic_link_manager
    for cls in reversed(CLASSES):
        try:
            bpy.utils.unregister_class(cls)
        except RuntimeError:
            pass


if __name__ == "__main__":
    register()

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

---

<think><details><summary>Thought Process</summary>
I now have all the information the user requested. Let me summarize:

1. **Version file**: `blender_manifest.toml` exists with `version = "0.1.2"`
2. **CHANGELOG.md**: Exists with detailed changelog
3. **__init__.py**: Exists but does NOT have a `bl_info` dict with version info - this appears to be a modern Blender 4.x extension format that uses `blender_manifest.toml` instead
4. **Git log**: 11 commits provided

Let me report back the findings.</details></think>

---

Here's what I found:

## Version Information

**Current Version: `0.1.2`**

The version is defined in `blender_manifest.toml`:

```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"
maintainer = "Nathan Lindsay <nathanlindsay9@gmail.com>"
license = ["GPL-3.0-or-later"]
blender_version_min = "4.5.0"
```

The `__init__.py` file exists but **does not contain a `bl_info` version dict** - this project uses the newer Blender 4.x extension manifest format (`blender_manifest.toml`) instead of the legacy add-on format.

## CHANGELOG.md

Found `CHANGELOG.md` with the following recent entries:

| Version | Date | Highlights |
|---------|------|------------|
| 0.1.2 | 2026-02-19 | MigFKRot operator for FK arm/finger rotations; expanded bone pattern matching |
| 0.1.1 | 2026-02-19 | Fixed action slots, constraint copying, AnimLayers detection, custom properties |
| 0.1.0 | 2026-02-19 | Initial release with Gitea workflow, tweak tools, NLA migration, AnimLayers support |

## Git Commit History (Last 11)

```
a570949 Purge orig actions and cleanup rep actions
968425e make rm original work as intended
48f0065 rm run migration
50d3f05 add remove original button
53927a6 make tweak tools collapsible
b7a8366 separate functions into situational fixes
0299cc5 FKrot bake finally working
b681d02 tweak FKRot baking and removal
1de7ec5 fix error print on migfkrot
7e738fc add FKRotBake, armature parent functionality in RetargRelatives
440b206 migfkrot working for 1 frame
```

---

