Skip to content

Alpha#495

Merged
felix-schultz merged 18 commits intodevfrom
alpha
Feb 9, 2026
Merged

Alpha#495
felix-schultz merged 18 commits intodevfrom
alpha

Conversation

@felix-schultz
Copy link
Copy Markdown
Member

This pull request addresses cross-platform compatibility and configuration improvements for the desktop and storage packages. The main focus is on fixing Windows build issues, refining directory handling, and updating platform-specific settings for iOS and Windows.

Platform compatibility fixes:

  • Added a patch to esaxx-rs to resolve Windows CRT mismatch errors by switching to dynamic MSVC linking, preventing linker conflicts with ort_sys. (Cargo.toml)
  • Removed the fp16kernels feature from lancedb on Windows, as these kernels are not supported and would cause build failures; retained the feature for macOS and Linux via conditional dependency. (packages/storage/Cargo.toml) [1] [2]

Configuration and directory handling:

  • Changed directory variables in the Settings implementation to be mutable, preparing for platform-specific adjustments (especially for iOS). (apps/desktop/src-tauri/src/settings.rs)
  • Updated deep link registration logic to enable it for all Windows builds, not just debug builds, improving feature parity across platforms. (apps/desktop/src-tauri/src/lib.rs)

iOS and macOS application settings:

  • Removed the ITSAppUsesNonExemptEncryption key from Info.plist files for both macOS and iOS, simplifying app store compliance and clarifying encryption usage. (apps/desktop/src-tauri/Info.plist, apps/desktop/src-tauri/gen/apple/flow-like-desktop_iOS/Info.plist) [1] [2]

felix-schultz and others added 18 commits October 27, 2025 21:05
Fixed deployment Bugs
PDF Nodes.. need to be part of the release
Quick Fix: Object Detection
Added Temporary Fix For File Attachments in Chats
feat(flow-copilot): add GetNodeDetailsTool for detailed node informat…
feat: update thiserror dependency to version 2.0.17
feat: Update alpha release workflow platforms and add new blog posts …
fix: patch esaxx-rs for Windows CRT mismatch and update lancedb depen…
@felix-schultz felix-schultz merged commit fdd412b into dev Feb 9, 2026
6 of 12 checks passed
@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello @felix-schultz, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances cross-platform compatibility and configuration across the desktop and storage components. It primarily addresses critical Windows build issues, refines how application directories are handled, and updates platform-specific settings for iOS and macOS to improve build reliability and compliance.

Highlights

  • Windows Build Fixes: Resolved Windows CRT mismatch in esaxx-rs by patching its Cargo.toml to use dynamic MSVC linking, preventing linker conflicts with ort_sys.
  • lancedb Feature Management: Disabled the fp16kernels feature for lancedb on Windows to avoid build failures, while conditionally re-enabling it for macOS and Linux on specific architectures.
  • Mutable Directory Settings: Updated the Settings implementation in apps/desktop/src-tauri/src/settings.rs to use mutable directory variables, preparing for platform-specific path adjustments, especially for iOS.
  • Windows Deep Link Expansion: Extended deep link registration in apps/desktop/src-tauri/src/lib.rs to apply to all Windows builds, not just debug configurations, enhancing feature consistency across platforms.
  • iOS/macOS Info.plist Cleanup: Removed the ITSAppUsesNonExemptEncryption key from Info.plist files for both macOS and iOS, streamlining App Store compliance and clarifying encryption usage.
Changelog
  • Cargo.lock
    • Updated the source for esaxx-rs to a specific git branch (feat/dynamic-msvc-link) to incorporate a fix for Windows CRT mismatch.
  • Cargo.toml
    • Introduced a [patch.crates-io] section to override esaxx-rs with a git-sourced version that uses dynamic MSVC linking to resolve Windows CRT conflicts.
  • apps/desktop/src-tauri/Info.plist
    • Removed the ITSAppUsesNonExemptEncryption boolean key.
  • apps/desktop/src-tauri/gen/apple/flow-like-desktop_iOS/Info.plist
    • Removed the ITSAppUsesNonExemptEncryption boolean key.
  • apps/desktop/src-tauri/src/lib.rs
    • Modified the #[cfg] attribute for deep link registration to include all windows targets, removing the debug_assertions constraint, thus enabling deep links for all Windows builds.
  • apps/desktop/src-tauri/src/settings.rs
    • Changed bit_dir, project_dir, and user_dir local variables from immutable (let) to mutable (let mut) to allow for platform-specific modifications.
  • packages/storage/Cargo.toml
    • Removed the fp16kernels feature from the default lancedb dependency, adding a comment indicating it's not supported on Windows.
    • Added a target-specific dependency for lancedb under [target.'cfg(all(any(target_os = "macos", target_os = "linux"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies] to re-enable the fp16kernels feature for specific macOS/Linux architectures.
Activity
  • No specific activity (comments, reviews) has been recorded for this pull request yet.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces several valuable cross-platform compatibility fixes, particularly for Windows and iOS. The changes, such as patching dependencies to resolve build issues and conditionally enabling features, are well-reasoned. I have a couple of suggestions to enhance maintainability and address a potential configuration issue with platform-specific features.

Comment on lines +44 to +45
[target.'cfg(all(any(target_os = "macos", target_os = "linux"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
lancedb = { git = "https://github.com/lancedb/lancedb.git", branch = "codex/update-lance-3-0-0-beta-1", features = ["fp16kernels"]}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

This conditional dependency configuration has two points to consider:

  1. Missing ios target: The cfg expression seems to be missing ios. The comments in the Cargo.toml mention that the lancedb branch includes a fix for fp16kernels on iOS, so it should probably be included here to leverage the performance benefits on that platform.
  2. Dependency Duplication: This re-definition of the lancedb dependency duplicates the git URL and branch from line 11. This creates a maintenance risk, as any updates to the dependency source will need to be made in two places. A comment reminding developers to update both locations would be helpful.

Here's a suggested change to address the first point:

Suggested change
[target.'cfg(all(any(target_os = "macos", target_os = "linux"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
lancedb = { git = "https://github.com/lancedb/lancedb.git", branch = "codex/update-lance-3-0-0-beta-1", features = ["fp16kernels"]}
[target.'cfg(all(any(target_os = "macos", target_os = "linux", target_os = "ios"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
lancedb = { git = "https://github.com/lancedb/lancedb.git", branch = "codex/update-lance-3-0-0-beta-1", features = ["fp16kernels"]}

Comment on lines +138 to +139
[patch.crates-io]
esaxx-rs = { git = "https://github.com/thewh1teagle/esaxx-rs.git", branch = "feat/dynamic-msvc-link" }
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

Using a patch from a personal fork introduces a maintenance risk. It's great that you've documented the reason for the patch. To improve long-term maintainability, I suggest also adding a comment with a link to the upstream pull request or issue that tracks merging this change. This will make it easier to remove the patch once the fix is released in an official version of esaxx-rs.

Comment on lines +44 to +45
[target.'cfg(all(any(target_os = "macos", target_os = "linux"), any(target_arch = "x86_64", target_arch = "aarch64")))'.dependencies]
lancedb = { git = "https://github.com/lancedb/lancedb.git", branch = "codex/update-lance-3-0-0-beta-1", features = ["fp16kernels"]}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: The target-specific dependency for lancedb enables fp16kernels only for macOS and Linux, but the conditional compilation flag omits target_os = "ios", which was an intended target.
Severity: MEDIUM

Suggested Fix

Update the conditional compilation flag in packages/storage/Cargo.toml to include iOS. A possible solution is to change the condition to cfg(all(any(target_os = "macos", target_os = "linux", target_os = "ios"), any(target_arch = "x86_64", target_arch = "aarch64"))). This will ensure that iOS builds correctly receive the fp16kernels feature as intended.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent.
Verify if this is a real issue. If it is, propose a fix; if not, explain why it's not
valid.

Location: packages/storage/Cargo.toml#L44-L45

Potential issue: The `Cargo.toml` file adds a target-specific override to enable the
`fp16kernels` feature for the `lancedb` dependency. The condition `cfg(all(any(target_os
= "macos", target_os = "linux"), any(target_arch = "x86_64", target_arch = "aarch64")))`
is used to apply this feature. While the intent, as stated in a comment, was to include
an "iOS fp16kernels fix", the condition explicitly excludes `target_os = "ios"`. As a
result, iOS builds will not benefit from the `fp16kernels` feature, which is designed
for ARM performance optimization and was a key goal of this change. This oversight means
iOS devices will not receive the intended performance improvements.

Did we get this right? 👍 / 👎 to inform future reviews.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant