Skip to content

fix: use explicit type for Image.create() to fix export build#1

Merged
krazyjakee merged 1 commit into
masterfrom
claude/test-latest-release-mc2kc
Feb 28, 2026
Merged

fix: use explicit type for Image.create() to fix export build#1
krazyjakee merged 1 commit into
masterfrom
claude/test-latest-release-mc2kc

Conversation

@krazyjakee

Copy link
Copy Markdown
Contributor

Image.create() returns Variant in exported builds, causing a type
inference failure with :=. Use explicit type annotation instead.

https://claude.ai/code/session_01VWHsKegWBvnUuhMasaH4Y5

Image.create() returns Variant in exported builds, causing a type
inference failure with :=. Use explicit type annotation instead.

https://claude.ai/code/session_01VWHsKegWBvnUuhMasaH4Y5
@krazyjakee krazyjakee merged commit 4f9945b into master Feb 28, 2026
1 check passed
@krazyjakee krazyjakee deleted the claude/test-latest-release-mc2kc branch February 28, 2026 22:50
krazyjakee pushed a commit that referenced this pull request Mar 1, 2026
Same issue as Image.create() (fixed in #1): static create() on native
classes returns Variant in template_release builds, causing a parse
error with :=. Use explicit type annotation instead.

Also fix duplicate libpipewire-0.3-dev in godotlite-validation job.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1
krazyjakee added a commit that referenced this pull request Mar 1, 2026
* ci: add GodotLite export validation job

CI was only testing with the full-featured Godot editor binary, so it
would never catch incompatibilities with the stripped-down GodotLite
templates used in release builds. Add a new job that downloads the
GodotLite Linux template, exports the project with it, and runs the
resulting binary headless to verify it starts without errors from
missing modules or classes.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: strip GDExtensions before GodotLite validation export

The GodotLite validation job failed because the exported binary couldn't
find the godot-livekit GDExtension libraries at runtime. Since this job
tests GodotLite engine module compatibility (not native plugin loading),
strip all .gdextension files before export. The release workflow already
handles per-platform GDExtension inclusion separately.

Also filter GDExtension warnings from the error summary since they are
expected after stripping.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: remove GDExtension stripping, verify all addons installed

Stripping .gdextension files breaks the GDScript dependency chain —
native classes like SentrySDK and LiveKitRoom disappear but GDScript
files still reference them, causing cascading SCRIPT ERRORs.

Instead: keep all GDExtensions, add a verification step that fails
fast if any addon (godot-livekit, gut, sentry) is missing, list build
directory contents after export for debugging, and run the exported
binary from its own directory so library paths resolve correctly.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: add libpipewire-0.3-dev to all CI jobs

godot-livekit's native library depends on libpipewire-0.3.so.0 at
runtime. Without it the GDExtension fails to load, cascading into
a "dynamic library not found" error. Add the package to all three
CI jobs (unit tests, integration tests, and GodotLite validation).

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* fix: use explicit type for SentryBreadcrumb.create() in export builds

Same issue as Image.create() (fixed in #1): static create() on native
classes returns Variant in template_release builds, causing a parse
error with :=. Use explicit type annotation instead.

Also fix duplicate libpipewire-0.3-dev in godotlite-validation job.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* fix: avoid Image.create() static method for GodotLite compatibility

GodotLite template_release builds don't register Image.create() as a
static method, causing "Static function create() not found in base
GDScriptNativeClass" at parse time. Use Image.new() + set_data()
instead, which are instance methods and work in all builds.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

---------

Co-authored-by: Claude <noreply@anthropic.com>
krazyjakee added a commit that referenced this pull request Mar 1, 2026
The DPI-aware window resize left the window offset from center on high
DPI displays. Now re-centers on the current screen after resizing.

Screen sharing captured and transmitted frames at full native resolution,
causing poor performance. Frames are now downscaled to a configurable max
size (default 1280px longest edge) before encoding/transmission.

Closes #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@krazyjakee

Copy link
Copy Markdown
Contributor Author

Fixed in 1fc37be — window is now re-centered after HiDPI resize, and screen share frames are downscaled to a configurable max capture size (default 1280px) before encoding.

krazyjakee added a commit that referenced this pull request Mar 5, 2026
Image.create() returns Variant in exported builds, causing a type
inference failure with :=. Use explicit type annotation instead.

https://claude.ai/code/session_01VWHsKegWBvnUuhMasaH4Y5

Co-authored-by: Claude <noreply@anthropic.com>
krazyjakee added a commit that referenced this pull request Mar 5, 2026
* ci: add GodotLite export validation job

CI was only testing with the full-featured Godot editor binary, so it
would never catch incompatibilities with the stripped-down GodotLite
templates used in release builds. Add a new job that downloads the
GodotLite Linux template, exports the project with it, and runs the
resulting binary headless to verify it starts without errors from
missing modules or classes.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: strip GDExtensions before GodotLite validation export

The GodotLite validation job failed because the exported binary couldn't
find the godot-livekit GDExtension libraries at runtime. Since this job
tests GodotLite engine module compatibility (not native plugin loading),
strip all .gdextension files before export. The release workflow already
handles per-platform GDExtension inclusion separately.

Also filter GDExtension warnings from the error summary since they are
expected after stripping.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: remove GDExtension stripping, verify all addons installed

Stripping .gdextension files breaks the GDScript dependency chain —
native classes like SentrySDK and LiveKitRoom disappear but GDScript
files still reference them, causing cascading SCRIPT ERRORs.

Instead: keep all GDExtensions, add a verification step that fails
fast if any addon (godot-livekit, gut, sentry) is missing, list build
directory contents after export for debugging, and run the exported
binary from its own directory so library paths resolve correctly.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* ci: add libpipewire-0.3-dev to all CI jobs

godot-livekit's native library depends on libpipewire-0.3.so.0 at
runtime. Without it the GDExtension fails to load, cascading into
a "dynamic library not found" error. Add the package to all three
CI jobs (unit tests, integration tests, and GodotLite validation).

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* fix: use explicit type for SentryBreadcrumb.create() in export builds

Same issue as Image.create() (fixed in #1): static create() on native
classes returns Variant in template_release builds, causing a parse
error with :=. Use explicit type annotation instead.

Also fix duplicate libpipewire-0.3-dev in godotlite-validation job.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

* fix: avoid Image.create() static method for GodotLite compatibility

GodotLite template_release builds don't register Image.create() as a
static method, causing "Static function create() not found in base
GDScriptNativeClass" at parse time. Use Image.new() + set_data()
instead, which are instance methods and work in all builds.

https://claude.ai/code/session_01VGBbeacXMewW3dgWecMzA1

---------

Co-authored-by: Claude <noreply@anthropic.com>
krazyjakee added a commit that referenced this pull request Mar 5, 2026
The DPI-aware window resize left the window offset from center on high
DPI displays. Now re-centers on the current screen after resizing.

Screen sharing captured and transmitted frames at full native resolution,
causing poor performance. Frames are now downscaled to a configurable max
size (default 1280px longest edge) before encoding/transmission.

Closes #1

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
krazyjakee added a commit that referenced this pull request Mar 6, 2026
Image.create() returns Variant in exported builds, causing a type
inference failure with :=. Use explicit type annotation instead.
krazyjakee added a commit that referenced this pull request Mar 6, 2026
* ci: add GodotLite export validation job

CI was only testing with the full-featured Godot editor binary, so it
would never catch incompatibilities with the stripped-down GodotLite
templates used in release builds. Add a new job that downloads the
GodotLite Linux template, exports the project with it, and runs the
resulting binary headless to verify it starts without errors from
missing modules or classes.

* ci: strip GDExtensions before GodotLite validation export

The GodotLite validation job failed because the exported binary couldn't
find the godot-livekit GDExtension libraries at runtime. Since this job
tests GodotLite engine module compatibility (not native plugin loading),
strip all .gdextension files before export. The release workflow already
handles per-platform GDExtension inclusion separately.

Also filter GDExtension warnings from the error summary since they are
expected after stripping.

* ci: remove GDExtension stripping, verify all addons installed

Stripping .gdextension files breaks the GDScript dependency chain —
native classes like SentrySDK and LiveKitRoom disappear but GDScript
files still reference them, causing cascading SCRIPT ERRORs.

Instead: keep all GDExtensions, add a verification step that fails
fast if any addon (godot-livekit, gut, sentry) is missing, list build
directory contents after export for debugging, and run the exported
binary from its own directory so library paths resolve correctly.

* ci: add libpipewire-0.3-dev to all CI jobs

godot-livekit's native library depends on libpipewire-0.3.so.0 at
runtime. Without it the GDExtension fails to load, cascading into
a "dynamic library not found" error. Add the package to all three
CI jobs (unit tests, integration tests, and GodotLite validation).

* fix: use explicit type for SentryBreadcrumb.create() in export builds

Same issue as Image.create() (fixed in #1): static create() on native
classes returns Variant in template_release builds, causing a parse
error with :=. Use explicit type annotation instead.

Also fix duplicate libpipewire-0.3-dev in godotlite-validation job.

* fix: avoid Image.create() static method for GodotLite compatibility

GodotLite template_release builds don't register Image.create() as a
static method, causing "Static function create() not found in base
GDScriptNativeClass" at parse time. Use Image.new() + set_data()
instead, which are instance methods and work in all builds.

---------
krazyjakee added a commit that referenced this pull request Mar 6, 2026
The DPI-aware window resize left the window offset from center on high
DPI displays. Now re-centers on the current screen after resizing.

Screen sharing captured and transmitted frames at full native resolution,
causing poor performance. Frames are now downscaled to a configurable max
size (default 1280px longest edge) before encoding/transmission.

Closes #1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants