chore: release v2.0.0 - #101
Closed
1313 wants to merge 12 commits into
Closed
Conversation
1313
force-pushed
the
release-plz-2025-11-28T08-32-01Z
branch
from
November 28, 2025 08:48
4435b8b to
d2551ab
Compare
1313
force-pushed
the
release-plz-2025-11-28T08-32-01Z
branch
from
November 28, 2025 08:58
d2551ab to
8b86bba
Compare
- Add context pointer to FFI callbacks for proper state correlation - Implement completion callback mechanism using Arc<(Mutex, Condvar)> - Stream methods now block until operation completes and propagate errors - Update Swift bridge to pass context through async callbacks - start_capture returns CaptureStartFailed on error - stop_capture returns CaptureStopFailed on error - update_configuration and update_content_filter return StreamError BREAKING CHANGE: FFI callback signatures now include context pointer
1313
force-pushed
the
release-plz-2025-11-28T08-32-01Z
branch
from
November 28, 2025 09:48
8b86bba to
55f6a60
Compare
- Add SyncCompletion<T> utility for generic async-to-sync FFI callbacks - Add UnitCompletion type alias with pre-built callback for void results - Update sc_stream.rs to use UnitCompletion for stream operations - Update screenshot_manager.rs to use SyncCompletion for captures - Update shareable_content to use callback pattern instead of Swift semaphore - Add comprehensive tests for sync_completion module - Remove duplicate code across modules (~90 lines reduced)
- Add AsyncCompletion<T> and AsyncCompletionFuture<T> for Future-based callbacks - Update async_api.rs to use AsyncCompletion for shareable content - Update async_api.rs to use AsyncCompletion for screenshot manager - Remove duplicate ShareableContentState, ScreenshotState structs - Reduce async_api.rs by ~90 lines through code reuse - Add test for async completion immediate resolution
- Replace custom SyncPicker/SyncPickerState with SyncCompletion<T> - Remove 34 lines of duplicate completion handling code - Consistent pattern across all sync FFI callbacks
SCStreamConfiguration now uses mutable set_* methods instead of builder.
Before:
let config = SCStreamConfiguration::builder()
.width(1920)
.height(1080)
.build();
After:
let mut config = SCStreamConfiguration::default();
config.set_width(1920);
config.set_height(1080);
- Remove SCStreamConfigurationBuilder type
- Change set_* methods to take &mut self
- Update all examples, tests, and documentation
- Replace redundant closures with tuple variant constructors - Add missing semicolon for consistent formatting
Add sc_initialize_core_graphics() FFI function that calls CGMainDisplayID() to prevent CGS_REQUIRE_INIT assertion crashes on headless systems. Called via cg_init_for_headless_ci() in content_filter_tests.
- Add independent 'lint' job for clippy and fmt checks (runs once) - Build job now only runs build and tests per platform - Downstream jobs (docs, release) now depend on both lint and build
SCStream.updateConfiguration(_:) is only available on macOS 14.0+. On macOS 13, the async call would hang indefinitely because the method doesn't exist. Now returns an error on unsupported versions instead.
1313
force-pushed
the
release-plz-2025-11-28T08-32-01Z
branch
from
November 28, 2025 15:00
55f6a60 to
34443f2
Compare
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.
🤖 New release
screencapturekit: 1.1.0 -> 2.0.0Changelog
This PR was generated with release-plz.