Repository navigation
chore: merge develop into main for 1.6.0 release - #65
Merged
Merged
Conversation
…ild instructions (#12)
* ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability
Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release.
…errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required)
…ization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel)
* docs: update README with current screenshots * docs: add local engine path guide for contributors
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator
- Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme
…ilds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround
Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens).
- Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: release 1.3.0 (#22) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. * chore: release 1.3.0 --------- Co-authored-by: Jean Philippe <jeanphilippe02666592@outlook.fr> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Release/1.4.0 (#35) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * ci: lint only first-parent commits to avoid failures from old history * ci: skip commitlint on PRs targeting main --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: update release-please manifest to 1.4.0 (#36) * ci: trigger publish on tag push and add workflow_dispatch for manual releases (#41) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Add paths filters to push and pull_request triggers so the 3-platform build matrix only runs when C#, AXAML, project, manifest, or workflow files are modified.
…y config (#46) Replace ImportDirectory (Imported/Textures, Imported/Sounds) with AssetDirectories grouping all asset paths under Assets/: - Assets/Textures, Assets/Sounds, Assets/Meshes - Assets/Materials, Assets/Sprites, Assets/EnvironmentMaps Add SkyConfig with mode (atmosphere/hdri/skySphere) and optional environmentMap filename for HDRI mode. Rename defaultImportDir -> assetDirs in the generated project.json. sceneDir/sceneDataDir now use the $(workingSpace) token for consistency. ProjectWindowViewModel creates all 8 subdirectories on project creation.
* feat(project): standardize asset directories under Assets/ and add sky config Replace ImportDirectory (Imported/Textures, Imported/Sounds) with AssetDirectories grouping all asset paths under Assets/: - Assets/Textures, Assets/Sounds, Assets/Meshes - Assets/Materials, Assets/Sprites, Assets/EnvironmentMaps Add SkyConfig with mode (atmosphere/hdri/skySphere) and optional environmentMap filename for HDRI mode. Rename defaultImportDir -> assetDirs in the generated project.json. sceneDir/sceneDataDir now use the $(workingSpace) token for consistency. ProjectWindowViewModel creates all 8 subdirectories on project creation. * feat(config): remove sky block from generated project.json Sky configuration (mode, environment map) is now per-scene, serialized in .zescene. project.json has no business owning sky settings since different scenes loaded from the same project can each have a different sky type and environment map. Remove SkyConfig class and the sky field from ProjectConfigJson. The environmentMapDir asset directory remains in AssetDirectories — it is a project-level import path used by the env map importer, not a sky setting. Generated project.json will no longer contain a "sky" block. Engine reads sky config from the active .zescene file at scene load time.
Cooked mesh/material artifacts now live under Assets/Meshes and Assets/Materials respectively. The SceneData directory and its corresponding sceneDataDir config field no longer serve a purpose.
AppIcon.png: 512x512 white rounded-rect badge (22% corner radius), indigo ZE mark at 58% scale, orange rocket-badge in lower-right with gaussian glow — generated at 4x supersampled resolution for clean AA. AppIcon.ico: multi-size Windows icon (256/128/64/48/32/16px). Panzerfaust.csproj: ApplicationIcon -> AppIcon.ico; AppIcon.png registered as AvaloniaResource. MainWindow.axaml: Window.Icon set to avares://Panzerfaust/Assets/AppIcon.png.
* chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: release 1.3.0 (#22) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. * chore: release 1.3.0 --------- Co-authored-by: Jean Philippe <jeanphilippe02666592@outlook.fr> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Release/1.4.0 (#35) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe0. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * ci: lint only first-parent commits to avoid failures from old history * ci: skip commitlint on PRs targeting main --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: update release-please manifest to 1.4.0 (#36) * ci: trigger publish on tag push and add workflow_dispatch for manual releases (#41) * ci: add skip workflow for non-source PRs to satisfy required checks When a PR only touches non-source files (docs, config, changelog), the main Engine-CI paths filter skips the workflow entirely — leaving the 4 required checks permanently pending and blocking the merge. A companion workflow with the same name and job names fires on the inverse paths-ignore, immediately passing all 4 checks. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* ci: set target-branch to main in release-please config Release Please reads config from the default branch (develop) and was defaulting to target develop for releases. This caused it to find PR #42 in main's history and fail trying to re-create the already-existing v1.4.0 release. Setting target-branch explicitly fixes the stable release flow. * ci: update skip workflow to call reusable workflows with all-false inputs
* chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: release 1.3.0 (#22) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 --------- Co-authored-by: Jean Philippe <jeanphilippe02666592@outlook.fr> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Release/1.4.0 (#35) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * ci: lint only first-parent commits to avoid failures from old history * ci: skip commitlint on PRs targeting main --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: update release-please manifest to 1.4.0 (#36) * ci: trigger publish on tag push and add workflow_dispatch for manual releases (#41) * chore: merge develop into main for 1.5.0 release (#52) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * chore: release 1.4.0 (#37) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: sync develop with main after 1.4.0 release (#38) * ci: restore commitlint check for all PRs (#39) * ci: ignore legacy non-conventional commits in commitlint (#40) * chore: release 1.4.0 (#42) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Chore/sync develop post release workflow (#43) * chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: release 1.3.0 (#22) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 --------- Co-authored-by: Jean Philippe <jeanphilippe02666592@outlook.fr> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Release/1.4.0 (#35) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * ci: lint only first-parent commits to avoid failures from old history * ci: skip commitlint on PRs targeting main --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: update release-please manifest to 1.4.0 (#36) * ci: trigger publish on tag push and add workflow_dispatch for manual releases (#41) --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * ci: drop macOS x64 build from all workflows (#44) * ci: skip build for non-source file changes (#45) Add paths filters to push and pull_request triggers so the 3-platform build matrix only runs when C#, AXAML, project, manifest, or workflow files are modified. * feat(project): standardize asset directories under Assets/ and add sky config (#46) Replace ImportDirectory (Imported/Textures, Imported/Sounds) with AssetDirectories grouping all asset paths under Assets/: - Assets/Textures, Assets/Sounds, Assets/Meshes - Assets/Materials, Assets/Sprites, Assets/EnvironmentMaps Add SkyConfig with mode (atmosphere/hdri/skySphere) and optional environmentMap filename for HDRI mode. Rename defaultImportDir -> assetDirs in the generated project.json. sceneDir/sceneDataDir now use the $(workingSpace) token for consistency. ProjectWindowViewModel creates all 8 subdirectories on project creation. * project config standardize (#47) * feat(project): standardize asset directories under Assets/ and add sky config Replace ImportDirectory (Imported/Textures, Imported/Sounds) with AssetDirectories grouping all asset paths under Assets/: - Assets/Textures, Assets/Sounds, Assets/Meshes - Assets/Materials, Assets/Sprites, Assets/EnvironmentMaps Add SkyConfig with mode (atmosphere/hdri/skySphere) and optional environmentMap filename for HDRI mode. Rename defaultImportDir -> assetDirs in the generated project.json. sceneDir/sceneDataDir now use the $(workingSpace) token for consistency. ProjectWindowViewModel creates all 8 subdirectories on project creation. * feat(config): remove sky block from generated project.json Sky configuration (mode, environment map) is now per-scene, serialized in .zescene. project.json has no business owning sky settings since different scenes loaded from the same project can each have a different sky type and environment map. Remove SkyConfig class and the sky field from ProjectConfigJson. The environmentMapDir asset directory remains in AssetDirectories — it is a project-level import path used by the env map importer, not a sky setting. Generated project.json will no longer contain a "sky" block. Engine reads sky config from the active .zescene file at scene load time. * feat(project): remove SceneData directory from project layout (#48) Cooked mesh/material artifacts now live under Assets/Meshes and Assets/Materials respectively. The SceneData directory and its corresponding sceneDataDir config field no longer serve a purpose. * feat(ui): add ZodiacEngineHub app icon (#49) AppIcon.png: 512x512 white rounded-rect badge (22% corner radius), indigo ZE mark at 58% scale, orange rocket-badge in lower-right with gaussian glow — generated at 4x supersampled resolution for clean AA. AppIcon.ico: multi-size Windows icon (256/128/64/48/32/16px). Panzerfaust.csproj: ApplicationIcon -> AppIcon.ico; AppIcon.png registered as AvaloniaResource. MainWindow.axaml: Window.Icon set to avares://Panzerfaust/Assets/AppIcon.png. * chore: resolve merge conflicts with main (#51) * chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: release 1.3.0 (#22) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 --------- Co-authored-by: Jean Philippe <jeanphilippe02666592@outlook.fr> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Release/1.4.0 (#35) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * ci: lint only first-parent commits to avoid failures from old history * ci: skip commitlint on PRs targeting main --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: update release-please manifest to 1.4.0 (#36) * ci: trigger publish on tag push and add workflow_dispatch for manual releases (#41) * ci: add skip workflow for non-source PRs to satisfy required checks When a PR only touches non-source files (docs, config, changelog), the main Engine-CI paths filter skips the workflow entirely — leaving the 4 required checks permanently pending and blocking the merge. A companion workflow with the same name and job names fires on the inverse paths-ignore, immediately passing all 4 checks. --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --------- Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * ci: set target-branch to main in release-please config (#54) * ci: set target-branch to main in release-please config * ci: update skip workflow to call reusable workflows with all-false inputs Calling the reusable workflows (instead of plain echo jobs) creates the nested check names (e.g. windows / build-release / build-windows-x64-Release) as skipped entries, satisfying both develop's top-level and main's nested required status checks for non-source PRs. * chore: release 1.5.0 (#55) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * chore: release 1.3.0 (#19) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Revert "chore: release 1.3.0 (#19)" (#20) This reverts commit da5cbe058b7873a76d38bcb28e3439687bbb6985. * chore: release 1.3.0 (#23) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * docs(roadmap): add roadmap with planned features and current implementation status (#24) * fix: restore Windows caption buttons and fix app version display (#25) * Fix/startup perf and native titlebar (#26) * fix: improve startup perf and switch to native title bar - Add PublishReadyToRun to all Release configurations to cut cold-start JIT time - Move RefreshInstalledEngines, ScanLocalAssets, and LoadProjectsAsync to background tasks with status bar feedback so the window opens immediately - Remove acrylic/extended client area in favour of a solid WindowBackground and standard OS title bar to avoid per-platform chrome friction * feat: show orange border on RC builds, automated via CI - Add IsRcBuild property reading AssemblyInformationalVersionAttribute to detect -rc suffix at runtime - Add non-interactive orange border overlay in MainWindow visible only on RC builds - Inject InformationalVersion from the git tag at publish time in all three platform build jobs so RC binaries automatically activate the indicator * fix: bump version to trigger RC build with orange border indicator (#27) * feat: RC build indicator with orange bloom border and version tag (#28) - Orange glow border overlay (3-layer BoxShadow bloom) covers the full window edge including title bar via ExtendClientAreaToDecorationsHint - RootPanel.Margin bound to WindowDecorationMargin so content stays below native caption buttons - Status bar shows full version string including -rc suffix, stripping the +commitHash appended by .NET - IsRcBuild and AppVersion both read AssemblyInformationalVersionAttribute - Remove acrylic from ProjectWindow, EnginePickerDialog and MessageBoxWindow so all dialogs correctly respect light and dark theme * fix: surface engine crash errors and resolve stale rpath for local builds (#30) * fix: resolve engine dylib path for release zips and local dev builds Set the correct platform library search env var when launching the engine: PATH on Windows, LD_LIBRARY_PATH on Linux, DYLD_LIBRARY_PATH on macOS. Walk up to 4 parent directories to locate a lib/ folder so both flat release zip layouts and nested local dev build trees are covered. Also surface crash details in the toast and validate the project config exists before attempting to start the engine. * fix: set execute permission on engine binary before launch GitHub release zip extraction does not preserve the execute bit on Unix, causing a permission denied error when launching a tagged engine. * fix: chmod and ad-hoc codesign engine binaries on macOS before launch GitHub release zips strip execute bits and corrupt existing signatures. Fix execute permissions on all tools in bin/, then re-sign every binary and dylib in the install tree so Gatekeeper does not SIGKILL the process. * chore: mark ad-hoc codesign block as temporary workaround * fix: pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash (#31) Avalonia.FreeDesktop 11.2.1 was compiled against Tmds.DBus.Protocol 0.20.0. Pinning a higher version caused a TypeLoadException on Linux at Avalonia X11/DBus initialization (exit before window opens). * feat: engine UX improvements and Linux startup fixes (#32) - Fix Linux debug program path in launch.json - Pin Tmds.DBus.Protocol to 0.20.0 to fix Linux startup crash; suppress NU1903 warning - Add Open Location button on installed engine rows to reveal install directory in file manager - Add Fetch button on available releases header to refresh without restarting the app - Sort engine picker list by semver descending (most recent first) * chore: resolve conflicts merging main into develop (#34) * chore: release 1.4.0 (#37) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * chore: sync develop with main after 1.4.0 release (#38) * ci: restore commitlint check for all PRs (#39) * ci: ignore legacy non-conventional commits in commitlint (#40) * chore: release 1.4.0 (#42) Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> * Chore/sync develop post release workflow (#43) * chore: release 1.3.0 (#18) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right-panel detail for local files with mesh stats - Delete scoped to individual file; resolution dir cleaned only when empty - AdditionalEngineSearchPath persisted and applied on change - Modernize project cards: gradient overlay, hover-reveal action strip, ZEngine logo placeholder, themed rename buttons - Register ZEngine logo as StreamGeometry from SVG source files - Theme all new colors via AppResourceDictionary dark/light variants - Replace format ListBox with ComboBox dropdown - Remove unused GltfPreviewControl (superseded by local asset detail panel) * docs: update README with current screenshots (#17) * docs: update README with current screenshots * docs: add local engine path guide for contributors * Chore: release 1.3.0 (#21) * docs: add README with features, downloads, system requirements and build instructions (#12) * ci: enable single-file publish across all platform build jobs (#13) * ci: enable single-file publish across all platform build jobs * build: remove redundant System.Text.Json, override Tmds.DBus.Protocol to fix vulnerability * feat: show app release version in status bar (#14) Add AppVersion property read from assembly metadata and display it in the status bar right section. Wire release-please to keep the csproj Version tag in sync with VERSION.txt on every release. * feat: configure VS Code for cross-platform debugging and fix binding errors (#15) - Add .vscode/launch.json, tasks.json, settings.json, extensions.json with full Windows/macOS/Linux support - Add docs/debugging-with-vscode.md covering all three platforms - Fix BoolToTransformConverter and StringEqualityConverter to return ITransform instead of raw strings for RenderTransform bindings - Add FallbackValue to all nullable dotted-path bindings in MainWindow.axaml - Fix translateY units in AppResourceDictionary.axaml (px required) * feat: assets page redesign, local asset grouping, project card modernization (#16) - Redesign Assets page as unified card browser with right-panel detail - Add 3D GLTF preview sidecar panel (later replaced by local asset detail panel) - Fix GLTF mesh rendering, 3D viewer input controls and animation glitches - Group local assets by AssetId with expandable versions panel; fixes intermittent expand button by moving the panel outside UniformGridLayout - LocalAssetDetailViewModel: right…
…textures (#64) * fix(assets): preserve companion file relative paths on download The Poly Haven API includes companion file relative paths as inc.Key (e.g. 'textures/foo_diff_4k.jpg', 'foo.bin'). The previous code only stored the URL and derived the filename via Path.GetFileName, dropping the subdirectory prefix entirely. All textures were placed flat next to the primary model, breaking GLTF/FBX/Blend/USD texture references. - AssetFormatOption: replace CompanionUrls List<string> with CompanionFiles List<(string RelativePath, string Url)> - LoadAssetFormatsAsync: store (inc.Key, url) instead of url only - LoadAndDownloadAssetAsync: use RelativePath verbatim relative to destDir, creating subdirectories (e.g. textures/) as needed * fix(assets): migrate existing flat texture files into textures/ on startup Existing downloaded assets have textures sitting flat next to the primary model file instead of in a textures/ subdirectory, breaking GLTF/FBX/Blend/USD texture references. MigrateAssetFoldersAsync runs once at startup in the background: it collects all flat image files (jpg/jpeg/png/webp/hdr/exr) under AppPaths.Assets, moves them into the textures/ subdirectory alongside their primary model, and notifies the user with toasts before and after. Dirs that are already correctly structured are skipped. Non-fatal — any individual move failure leaves the file in place. * feat(ui): rename sidebar title from Panzerfaust to Zodiac Hub * fix(engine): guard ScanInstalledEngines against UnauthorizedAccessException Directory.EnumerateFiles with SearchOption.AllDirectories throws when it walks into protected system paths (e.g. Photos Library.photoslibrary) if the user sets the engine install location to a broad directory like their home folder. Catch IOException and UnauthorizedAccessException at both the top-level directory scan and per-version file search so the scan completes gracefully instead of crashing the app.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Changes since 1.5.0
textures/matching GLTF/FBX/Blend/USD references (fix(assets): preserve companion file paths and migrate existing flat textures #64)textures/on startup with toast notifications (fix(assets): preserve companion file paths and migrate existing flat textures #64)ScanInstalledEnginesagainstUnauthorizedAccessExceptionwhen scanning broad paths (fix(assets): preserve companion file paths and migrate existing flat textures #64)Merge to main triggers Release Please to open the
chore: release 1.6.0PR.