Tags: DongSky/CosKit
Tags
v0.1.3: region-selection (mask) editing — brush/rect/polygon, provide… …r-aware transport, lossless composite Frontend: 4-layer MaskEditor modal (brush/eraser/rect/polygon, feather, undo/redo, invert); polygon closes via first-vertex snap with rubber-band preview, right-click/Backspace vertex undo, Enter/dblclick/button commit. Mask convention: white opaque = protect, transparent = edit. Backend: mask threaded through submit_edit → pipeline → workflow → image clients. OpenAI gets a native multipart mask (image+mask resized to the exact requested canvas so the generate→resize round-trip is self-inverse, eliminating boundary drift); Gemini falls back to red-overlay reference + prompt enhancement. composite_with_mask guarantees protected pixels stay bit-identical regardless of model behavior. Verified E2E against gpt-image-2 (rect, 8-vertex polygon, 25-vertex concave polygon): protected region max diff 0, AA edges blend cleanly (src-tauri/tests/mask_verify.rs, run with --ignored).
v0.1.1: fix gpt-image resize + mitigate compression artifacts - openai_client: floor-snap to 16-multiples + post-clamp pixel-budget re-check; fixes "resolution exceeds pixel budget" on 5776x4336 inputs - gemini_client: thread original_size into imageConfig; emit aspectRatio + imageSize per Nano Banana 2 schema (15 supported ratios, 1K/2K/4K) - image_utils: add lossless PNG save_png/image_to_png_bytes - engine + workflow: store originals, results and intermediates as PNG; bump API upload JPEG quality 90 → 95 - commands: export dialog filename now matches stored extension - about modal: drawer entry + dialog with version / date / author
v0.1.1: fix gpt-image resize + mitigate compression artifacts - openai_client: floor-snap to 16-multiples + post-clamp pixel-budget re-check; fixes "resolution exceeds pixel budget" on 5776x4336 inputs - gemini_client: thread original_size into imageConfig; emit aspectRatio + imageSize per Nano Banana 2 schema (15 supported ratios, 1K/2K/4K) - image_utils: add lossless PNG save_png/image_to_png_bytes - engine + workflow: store originals, results and intermediates as PNG; bump API upload JPEG quality 90 → 95 - commands: export dialog filename now matches stored extension - about modal: drawer entry + dialog with version / date / author
v0.1.0: Mobile platform support (Android + iOS) First release with Android and iOS builds. Desktop functionality unchanged. - **Android**: APK and AAB builds, signed and ready for sideload or Play Store - **iOS**: IPA builds for TestFlight / App Store (pending developer account) - Unified bundle identifier: com.coskit.universal (replaces com.coskit.desktop) - iOS: NSPhotoLibraryAddUsageDescription so long-press → Save to Photos works - Session image_path repair on load: iOS sandbox UUID drift no longer breaks history - Mobile reference-image upload button restored (Tauri pick_image command) - Mobile UI: 16px input font + viewport maximum-scale=1 to disable iOS auto-zoom - Icon set regenerated from 1024px source with android/ios backups for re-init - Cargo: scope `dirs` to non-mobile, switch reqwest to rustls-tls (no OpenSSL) - .gitignore: block build artifacts (apk/aab/ipa/dmg), keystores, signing keys Android APK available immediately for sideload. iOS IPA will be published to TestFlight / App Store once developer account is ready.
PreviousNext