Skip to content

Aspid.MVVM 1.1.0#25

Open
VPDPersonal wants to merge 391 commits intomainfrom
Version/Aspid.MVVM-1.1.0
Open

Aspid.MVVM 1.1.0#25
VPDPersonal wants to merge 391 commits intomainfrom
Version/Aspid.MVVM-1.1.0

Conversation

@VPDPersonal
Copy link
Copy Markdown
Owner

@VPDPersonal VPDPersonal commented Oct 13, 2025

Aspid.MVVM.Analyzers: VPDPersonal/Aspid.MVVM.Analyzers#1
Aspid.MVVM.Generators: VPDPersonal/Aspid.MVVM.Generators#7
Aspid.MVVM.Unity.Generators: VPDPersonal/Aspid.MVVM.Unity.Generators#2

VPDPersonal and others added 21 commits April 20, 2026 11:58
Single-binder BindSafely/UnbindSafely overloads now accept the same
optional `owner`/`memberName` pair as the collection overloads (unused
in the body, present for signature parity). Lets the generator emit one
uniform call shape and drops the collection-vs-single check.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Also fix first [Header]-attribute label zeroing in AspidPropertyField so it
works when the field is wrapped (e.g. MonoBinderPropertyField) instead of
being a direct child of AspidBox.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Introduce a virtual GetScriptSubtext() on ViewVisualElement and
ViewModelVisualElement, populated by Mono/Scriptable subclasses and the
ViewInitializer editors. The associated ViewModel/script type name now
renders as the header subtext instead of being appended in parentheses
to the primary label.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
IMGUI drawers (e.g. AssetReferenceSprite) paint over their own UIElements
background, so the Aspid frame wasn't visible on IMGUI-based fields. Wrap
the IMGUIContainer in a styled VisualElement so the frame renders around
the IMGUI content while [Header] decorators stay above it, matching the
layout of non-IMGUI fields.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Foldout-style IMGUI drawers (e.g. Localization StringReference) render their
foldout arrow and children at a different left offset than single-line
drawers like AssetReferenceSprite. Detect foldout drawers by comparing
EditorGUI.GetPropertyHeight under both isExpanded states and apply
margin-left: -5px instead of the default -18px so the arrow and nested
fields don't run under the frame.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
When EditorGUIUtility.pixelsPerPoint < 2, tag the element with a
low-dpi USS class that overrides thin/medium/bold from 1/2/3 to 2/3/4,
so sub-pixel strokes stop anti-aliasing into invisibility on
non-Retina Windows monitors.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Move the trailing Enum/EnumGroup/Switcher word into AspidInspectorHeader.Subtext via
per-type VisualElement overrides, add HeaderNameHelper for index-preserving suffix
stripping, and reorganize StarterKit binder editors into Enum/EnumGroup/Switchers
subfolders (renaming EnumMonoBinderEditorBase to EnumMonoBinderEditor).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- Add animated VisualElement components (AspidAnimatedLogo, AspidAnimatedTitle, AspidAnimatedDotsBackground, AspidGradientButton, AspidHoverGradientOverlay)
- Add Welcome window with auto-startup
- Reorganize VisualElement folder layout into per-component directories with dedicated Styles
- Refactor Id registries around shared RegistryEditorCore, IdRegistryAccessor, IdRegistryResolver, and IdRegistryValidator
- Add SerializedPropertyExtensions and VisualElementExtensions documentation
- Add EnumValues sample scene
- Rebuild Aspid.FastTools.Generators.dll

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…urces

Add the four aspid_icon_medium PNGs under MVVM/Unity/Editor/Resources/Icons
and rewrite 952 .cs.meta references from the old Internal green-icon GUID
to the new MVVM one so script icons survive the module removal.
…bleTo

Reduce public API surface of the MVVM editor assembly by marking
inspector editors, visual elements, and meta types as internal, then
grant access to Aspid.MVVM.StarterKit.Unity.Editor through a new
AssemblyInfo. Also realigns reflection imports to Aspid.FastTools.Reflection.
Adds MonoImporter metadata with the shared MVVM script icon to the
.meta files of Enum, EnumGroup, and Switcher binder editors and
visual elements so they render with the project's binder icon
in the Unity Inspector.
@VPDPersonal
Copy link
Copy Markdown
Owner Author

@claude review once

@claude
Copy link
Copy Markdown

claude Bot commented Apr 30, 2026

Claude finished @VPDPersonal's task in 2m 25s —— View job


PR Review: Aspid.MVVM 1.1.0

  • Gather context and understand the request
  • Examine PR diff and changed files
  • Review documentation additions
  • Review configuration/submodule changes
  • Post comprehensive review feedback

Summary

This is a substantial 1.1.0 release PR (384 commits, 6064 files, +137k/-90k lines). The overall quality is high — comprehensive documentation, a solid MIGRATION.md, and a well-structured CLAUDE.md. A few actionable issues are noted below.


Issues Found

🔴 Critical

.claude/settings.local.json contains hardcoded developer machine paths

.claude/settings.local.json is committed but contains absolute paths from the developer's local machine:

"Bash(git -C /Users/vladislavpanin/Documents/Docs/Aspid/Packages/Aspid.MVVM/Projects/Aspid.MVVM log --oneline -20)",
"Bash(BASE=\"/Users/vladislavpanin/Documents/Docs/Aspid/Packages/Aspid.MVVM/Projects/Aspid.MVVM/Aspid.MVVM/Assets/...\")"

It also contains malformed entries that appear to be tool artifacts:

"Bash(__NEW_LINE_b15d87ac0ea57aa9__ cat)",
"Bash(__NEW_LINE_1294fcabc7fd5c8c__ python3:*)"

settings.local.json is a per-machine Claude Code file and should not be committed. A root-level .gitignore should exclude it. Since the Unity .gitignore was moved to Aspid.MVVM/.gitignore, there is currently no root .gitignore protecting .claude/, skills-lock.json, or similar tooling files at the repo root.

Fix this →


🟡 Bugs / Typos

Broken link in Aspid.MVVM/Assets/Plugins/Aspid/MVVM/Documentation/Readme.md (line 29)

The link text and URL for the Generators repo both say Aspid.MVMM.Generators (double-M) instead of Aspid.MVVM.Generators:

- [[Aspid.MVVM.Generators](https://github.com/VPDPersonal/Aspid.MVMM.Generators)]
+ [[Aspid.MVVM.Generators](https://github.com/VPDPersonal/Aspid.MVVM.Generators)]

Fix this →


🟡 Warnings

.gitmodules uses mixed SSH and HTTPS protocols

Four submodules use git@github.com: (SSH) while one (Aspid.Collections) uses https://. SSH URLs require a configured SSH key and will fail for external contributors and most CI systems without additional setup:

git@github.com:VPDPersonal/Aspid.MVVM.Unity.Generators.git   ← SSH
git@github.com:VPDPersonal/Aspid.MVVM.Analyzers.git          ← SSH
git@github.com:VPDPersonal/Aspid.MVVM.Generators.git         ← SSH
git@github.com:VPDPersonal/Aspid.Internal.Unity.git          ← SSH
https://github.com/VPDPersonal/Aspid.Collections             ← HTTPS

If any of these are public repos, switching them to HTTPS would make cloning work without SSH key configuration.


Positives

  • CLAUDE.md is thorough and well-organized — covers project structure, conventions, solutions, commands, gotchas, and submodule setup. Good onboarding reference.
  • CHANGELOG.md follows Keep a Changelog with clear categorization and a semantic version header.
  • MIGRATION.md is comprehensive — lists all compilation breakers with before/after code examples and a TL;DR checklist.
  • Documentation coverage is solid — 14 main docs plus a full StarterKit reference and Tutorials directory; all SUMMARY.md links resolve to existing files.
  • SUMMARY.md is consistent: no broken internal links found.
  • Aspid.MVVM/ relocation is handled correctly — .gitignore moved, Readme.md image path updated.

claude and others added 7 commits April 30, 2026 11:27
Ignore .claude/settings.local.json and skills-lock.json so per-developer
Claude Code state stays out of the repository, and remove the tracked
settings.local.json which contained hardcoded local machine paths.
…ettings-dGT2y

Add .gitignore and remove machine-specific Claude settings
…ypo-UKkgl

# Conflicts:
#	Aspid.MVVM/Assets/Plugins/Aspid/MVVM/Documentation/Readme.md
…Kkgl

Fix typo in Aspid.MVVM.Generators repository link
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants