Skip to content

Release 1.2.1#27

Merged
CoderGamester merged 11 commits into
masterfrom
develop
Apr 26, 2026
Merged

Release 1.2.1#27
CoderGamester merged 11 commits into
masterfrom
develop

Conversation

@CoderGamester
Copy link
Copy Markdown
Owner

@CoderGamester CoderGamester commented Apr 26, 2026

New:

  • Added CLAUDE.md wrapper at the package root that imports AGENTS.md for Claude Code integration
  • Added per-sample README.md documentation for every entry under Samples~/ (BasicUiFlow, DataPresenter, DelayedPresenter, UiToolkit, DelayedUiToolkit, UiSets, MultiInstance, CustomFeatures, AssetLoadingStrategies)

Changed:
Changed:

  • Renamed package displayName from UiService to GameLovers UiService to align with the GameLovers GameData and GameLovers Services packages (UPM name com.gamelovers.uiservice and the GitHub repository name are unchanged)
  • Reorganized editor menu items under Tools/GameLovers/... to align with the GameLovers Services package layout: Tools/UI Service/Presenter ManagerTools/GameLovers/UI Presenter Manager; Tools/UI Service/Select UiConfigsTools/GameLovers/UI Configs/Select UI Configs; Tools/UI Service/Layer VisualizerTools/GameLovers/UI Configs/Layer Visualizer
  • Moved runtime [CreateAssetMenu] paths from ScriptableObjects/Configs/UiConfigs/... to GameLovers UiService/UiConfigs/... for AddressablesUiConfigs, ResourcesUiConfigs, and PrefabRegistryUiConfigs; moved the UiSets sample's [CreateAssetMenu] to GameLovers UiService Samples/UiSets Sample Configs
  • Reorganized Tests/PlayMode/ so unit tests live under Tests/PlayMode/Unit/ alongside the existing Integration/, Performance/, Smoke/ subfolders
  • Moved TestPresenter and other MonoBehaviour-based test fixtures from Tests/EditMode/Helpers/ to Tests/Helpers/ (runtime-compatible) so PlayMode tests can AddComponent<T>() them without hitting the editor-script restriction
  • Improved the README.md and AGENTS.mddocumentation

Fixed:

  • Fixed the information in the README.md files to be up to date with the API and project library structure
  • Fixed PlayMode test noise by declaring expected warnings via LogAssert.Expect (loading/open-close/UI-set tests) and assigning an empty ThemeStyleSheet to runtime-created PanelSettings in UI Toolkit test helpers to silence the No Theme Style Sheet set to PanelSettings warning

…me-compatible helpers asmdef

TestUiPresenter and TestDataUiPresenter were owned by
GameLovers.UiService.Tests.asmdef, which has includePlatforms: ["Editor"].
Unity refuses AddComponent<T> on MonoBehaviours compiled into editor-only
assemblies, so TestHelpers.CreateTestPresenterPrefab<T> was silently
attaching null and logging "Can't add script behaviour 'TestPresenter'
because it is an editor script" for every prefab-loader EditMode test.
The tests passed because they only inspected GameObject-level state, but
the presenter wiring was never exercised.

Introduce Tests/Helpers/GameLovers.UiService.Tests.Helpers.asmdef
(includePlatforms: [], gated by UNITY_INCLUDE_TESTS) and move TestPresenter.cs
into it. The .cs.meta GUID is preserved so existing asset references survive.
Reference the new asmdef from both the EditMode and PlayMode test assemblies;
no test source changes are required because TestPresenter.cs stays in the
GameLovers.UiService.Tests namespace.

Update AGENTS.md Tests section to document the three-asmdef layout and the
editor-only MonoBehaviour pitfall that motivated the split.

Made-with: Cursor
…iet ThemeStyleSheet noise

UiService logs warnings by design on:
- LoadUiAsync for an already-loaded presenter ("was already loaded")
- OpenUiAsync for an already-open presenter ("is already open")
- CloseUi for a not-open presenter ("but is not open")

The affected PlayMode integration tests exercised these paths without
declaring them, so the Unity console was littered with warnings alongside
the green results. Add matching LogAssert.Expect calls at each site.

TestMultiFeatureToolkitPresenter and TestUiToolkitPresenter now assign an
empty ThemeStyleSheet before handing the PanelSettings to the UIDocument,
silencing Unity's "No Theme Style Sheet set to PanelSettings" warning
that otherwise fires twice per test (on assignment and on SetActive).

Refactor Perf_LoadUi_SinglePresenter and Perf_UnloadUi_SinglePresenter so
each measured iteration performs a real load/unload rather than a cache
hit that would trigger an "already loaded" warning inside the measurement
scope; introduces Measure.CleanUp for the load case and tightens the
unload case to only measure the unload itself.

Also refreshes Runtime/AssemblyInfo.cs.meta with a regenerated GUID.

Made-with: Cursor
- Add CLAUDE.md + .meta at package root; thin @AGENTS.md import wrapper
- AGENTS.md: add Companion-files blockquote
- README.md: trim Contributing to one paragraph + AGENTS.md link; add
  Related docs footer linking to docs/, AGENTS.md, and CHANGELOG.md

Made-with: Cursor
Bump package.json to 1.2.1 and consolidate the post-1.2.0 work
(CLAUDE.md wrapper, sample READMEs, shared test helpers asmdef,
PlayMode test reorg, doc/AGENTS.md updates, expected-warning fixes)
into the existing 1.2.1 CHANGELOG section, dated 2026-04-26.

Made-with: Cursor
…menus

Aligns with the GameLovers Services/GameData package family conventions.

- package.json displayName: "UiService" -> "GameLovers UiService"
  (UPM name "com.gamelovers.uiservice" and GitHub repo unchanged)
- Editor menus moved under Tools/GameLovers/...:
    Tools/UI Service/Presenter Manager     -> Tools/GameLovers/UI Presenter Manager
    Tools/UI Service/Select UiConfigs      -> Tools/GameLovers/UI Configs/Select UI Configs (100)
    Tools/UI Service/Layer Visualizer      -> Tools/GameLovers/UI Configs/Layer Visualizer (200)
- [CreateAssetMenu] paths reparented:
    ScriptableObjects/Configs/UiConfigs/{Addressables,Resources,PrefabRegistry}
        -> GameLovers UiService/UiConfigs/{Addressables,Resources,PrefabRegistry}
    GameLovers/UiService/Samples/UiSets Sample Configs
        -> GameLovers UiService Samples/UiSets Sample Configs
- Fix UiConfigsEditorBase<TSet>.OnEnable reentrancy crash that surfaced when
  invoking the Layer Visualizer: SyncConfigs() ends with AssetDatabase.SaveAssets
  which synchronously triggers Selection_CallSelectionChanged ->
  InspectorWindow.OnSelectionChanged -> reentrant CreateInspectorGUI() before
  ConfigsProperty/SetsProperty are assigned. Reordered OnEnable to init the
  SerializedProperty fields and resize _sets before SyncConfigs, with a final
  serializedObject.Update() after the sync path mutates the asset directly.
- README/AGENTS/CHANGELOG updated; folded into existing 1.2.1 (not yet published)

Made-with: Cursor
@CoderGamester CoderGamester merged commit 18df2a3 into master Apr 26, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant