Commit graph

30 commits

Author SHA1 Message Date
Darkatse
8ed6c627f0 fix(macos): keep actool stdin open during icon compilation 2026-10-22 06:46:49 -04:00
Darkatse
8dfd1f4282 fix(macos): give the app icon a light and dark backdrop on macOS 26
macOS 26 shrinks irregular .icns icons onto a gray plate. Bundle an Icon Composer document with the iOS light background and the logo as one layer; Tauri compiles it into Assets.car, the system derives the dark, tinted and clear appearances, and icon.icns remains the fallback for macOS 15 and earlier.

Validation: pnpm run check; debug app bundle carries CFBundleIconName and Aqua/DarkAqua/Tintable stacks, rendered by system icon services.
2026-10-22 05:17:36 -04:00
Darkatse
052d0338a6 chore(deps): upgrade Tauri to 2.12.3
Tauri 2.12.3, swift-rs 1.0.9 and the official plugin releases mark the
Swift `@_cdecl` entry points that Rust links against `public`, so iOS
release builds made with Xcode 27 link again. With the runtime exports
kept in optimized builds, drop the dev-profile overrides that built
Tauri and the Swift plugins unoptimized.

fs 2.7.0 returns only the bytes it read; the file stream already
validates the trailing count, so only its comment changes. The dialog
wrapper stays: 2.8.2 still turns confirm() into async IPC.

OpenHarmony stays on its 2.11 forks until they follow. The Nix pnpmDeps
hash is updated separately.

Validation: pnpm run check. Pending: iOS dev build on device and release
build with Xcode 27.
2026-10-10 17:47:48 -04:00
Darkatse
62ff55a9ab feat(pilot): drive Android and iOS Simulator builds
Upgrade tauri-plugin-pilot to 0.8.1, which reaches mobile webviews,
and register it on every platform the devtools-pilot feature builds.
Mobile builds take the plugin without the desktop-only press backend.
The pilot config lists the mobile capabilities too, since its explicit
list replaces the default capability set.

Add android:dev:pilot and ios:dev:pilot. The Simulator socket is found
directly; Android forwards the app's abstract socket over ADB, as
AndroidDevelopment describes.

Validation: cargo check with devtools-pilot for the host and
aarch64-apple-ios-sim; pilot 0.8.1 ping, eval, assert and snapshot on
macOS dev, the iPhone 17 Simulator and an API 36.1 emulator.
2026-10-09 23:20:10 -04:00
Darkatse
ab98b96fbb chore(deps): upgrade Tauri to 2.12.2
Tao 0.35.3 handed UIKit a UISceneConfiguration it had already
released, so iOS release builds crashed at launch. Tao 0.37 fixes
this and enables the scene lifecycle from the scene manifest alone:
the app now declares a single scene and no longer closes extra ones.
Wry 0.57 enables element fullscreen on every iOS version, so the host
stops configuring it.

Rebase the two Android Wry overrides on the 0.57.0 originals and keep
their approved differences; the chrome client uses WryActivity's
launchers. LAN discovery releases its multicast lock in the plugin's
Activity callback, the same source as Rust's resume event. Align the
CLI, official plugins and tauri-winrt-notification with the 2.12 line,
list the features the CLI writes in every tauri entry, and drop the
no-op macos-private-api feature.

OpenHarmony stays on its 2.11.6 fork and cannot build until the fork
follows. The Nix pnpmDeps hash is updated separately.

Fixes #337

Validation: pnpm run check; cargo check with devtools-pilot and for
aarch64-apple-ios; macOS pilot dev launch and Android API 36.1 debug
launch. Pending: iOS release on device, R8, Windows and Linux
artifacts, TestFlight.
2026-10-09 22:52:43 -04:00
Darkatse
9717e2fc9b feat(ios): dismiss the keyboard with a native drag
Hide WebKit's form accessory bar and let UIKit's interactive dismissal
own the gesture. A full-window KeyboardScrollView inside WindowHost is
the pan surface: it has no content, recognizes alongside WebKit's
overflow scroll views, never cancels page touches, and keeps a zero
content offset because an empty bounce makes WebKit recompute visible
geometry every frame. The WebView stays constrained to the host's safe
area and keyboard guides.

The accessory bar also caused the two-stage dismissal: keyboardLayoutGuide
tracks the union of bar and keyboard, and the bar leaves about 400 ms
after the keyboard. Without it the guide returns to the safe area in one
animation.

While the pan is active the WebView height is held. iOS WebKit treats
every view-height change as a stylesheet-environment change and rebuilds
all styles (WebPage::viewportConfigurationChanged ->
updateSizeForCSSDefaultViewportUnits -> didChangeStyleSheetEnvironment),
about 30 ms per step on an iPhone 13. Like Safari, the page relayouts
once when the keyboard settles while the keyboard itself follows the
finger.
2026-10-06 02:37:26 -04:00
Darkatse
854ed06393 build(ios): build Swift packages unoptimized in Xcode 27 dev builds
swift-rs picks Swift optimization from the Rust debug setting, and with
Xcode 27 an optimized Swift package loses the runtime exports Tauri's
plugin registration needs (Brendonovich/swift-rs#79). Keep debug info
for tauri and for every plugin that ships a Swift package so they build
in one mode: mixing modes passes on the simulator but aborts on device
in registerPlugin with swift_deletedMethodError.

swift-rs 1.0.8 fixes the SDK mix-up in SwiftPM cross builds. Remove the
overrides once the upstream export fix ships.
2026-10-06 02:37:25 -04:00
Darkatse
e99cb76d33 fix(ios): adopt scene lifecycle while keeping a single window
Enable the scene lifecycle required by iOS 27 through Tao's current
multi-scene switch, and close extra system-requested scenes.
2026-10-05 05:50:47 -04:00
Darkatse
f4e48eccc5 refactor(layout): move mobile viewport ownership into native hosts
Consume system bars, cutouts and docked keyboards in Android and iOS,
then let web content use the resulting viewport. Publish window wallpaper
strips through one shared background path.

Remove the old CSS and IME compensation layers, update layout ABI v2,
and keep the matching documentation and behavior tests together.
2026-10-05 05:50:20 -04:00
Darkatse
9329278c6d refactor(files): unify native file selection and delivery
Centralize file picking, staging and delivery across platforms, with explicit cancellation outcomes and source ownership.

Remove superseded platform bridges and redundant tests, and document the shared contract and platform differences.

Validation: pnpm run check; Android aarch64 cargo check; 117 host tests.
2026-10-04 16:28:48 -04:00
Darkatse
068f8c8574 feat(ios): enable increased memory limit 2026-10-02 19:10:49 -04:00
Darkatse
a273ba9f8d refactor(sync): replace UDP discovery with Bonjour and mDNS 2026-09-08 13:53:23 -04:00
Darkatse
57910386b7 docs(sync): condense architecture and platform guidance 2026-09-07 23:23:25 -04:00
Darkatse
a3532dde5b feat(ios): add limited iOS 15 support 2026-08-29 20:52:16 -04:00
Darkatse
5fd500b84a feat(mobile): keep AI generations running in the background #18 2026-08-11 19:47:12 -04:00
Darkatse
008ab07af3 feat(skills): support batch ZIP and folder imports #153 2026-08-07 00:05:23 -04:00
Darkatse
027582c792 refactor: remove obsolete phase terminology 2026-07-22 20:00:59 -04:00
Darkatse
55a3f7e721 fix(characters): use native file picker for card replacement #123 2026-07-09 19:47:29 -04:00
Darkatse
34e9d8b6dd refactor(rust): move Tauri host crate into workspace crates 2026-07-02 15:30:20 -04:00
Darkatse
e6111d6363 refactor(data-archive): close platform boundaries for archive delivery 2026-06-28 16:20:47 -04:00
Darkatse
187dc020aa feat(agent): export Skill archives as zip by default 2026-05-30 18:04:17 +08:00
Darkatse
1a6722a1e8 feat(data-migration): support tar archive imports #20 2026-05-11 17:45:20 +08:00
Darkatse
4d3eb4fc3e fix(agent): support mobile skill imports 2026-05-05 23:30:14 -04:00
Darkatse
303153cbf1 fix (ios): Add dark and tinted app icon variants 2026-04-25 12:24:05 -04:00
Darkatse
841ca76b41 Refactor (iOS/macOS): centralize WKUIDelegate JS dialog bridge into shared Apple module 2026-04-21 15:30:45 -04:00
Darkatse
99b1939976 feat (iOS policy): Implement iOS policy tiering strategy 2026-04-15 21:39:01 -04:00
Darkatse
461cb996e0 Fix (iOS/macOS): Added WKWebView Fullscreen API for iOS/macOS. 2026-03-29 02:53:04 -04:00
Darkatse
e1a5416cea Fix (iOS): Added native iOS download and export functionality. 2026-03-28 22:23:23 -04:00
Darkatse
46ed58d51d fix (iOS): Fixed import/export issues with the data-migration extension on iOS. 2026-03-20 00:39:01 -04:00
Darkatse
6e19134edb fix (iOS): fixed an issue in WKWebView on iOS where automatic safe-area insets caused a dead zone at the bottom. 2026-03-16 22:17:59 -04:00