Commit Graph
336 Commits
Author SHA1 Message Date
Kaede Akino 428181b611 fix(ui): refine color picker selection indicators 2026-10-16 08:50:03 +08:00
Kaede Akino 9738605dd3 feat(terminal): add Mosh and Eternal Terminal transports
Add SSH-authenticated transports with independent settings, protocol-aware menus and snippets, and tmux session persistence.

Restore eligible iOS workspaces from encrypted transport checkpoints without adding a macOS recovery entry. Include schema migrations and regression coverage.
2026-10-16 08:36:56 +08:00
Kaede Akino 5e19dcc219 test(sftp): wait for all transfers to finish 2026-10-16 08:36:54 +08:00
Kaede Akino 59bcfd92ee feat(hosts): add selectable macOS and Windows icons 2026-10-16 02:03:09 +08:00
Kaede Akino 798f11c265 fix(macos): make close confirmations default to closing 2026-10-16 01:25:49 +08:00
Kaede Akino 45bb569e25 fix(sessions): preserve remote sessions when closing windows
Keep explicit workspace and pane closure destructive for owned sessions, but let window dismissal disconnect clients and retain recovery references. Cover managed-session window closure and restoration.
2026-10-16 01:13:28 +08:00
Kaede Akino 8e3f1128da feat(sessions): add tmux persistence and terminal context tracking
Add extensible remote session backends, safe ownership and restore handling, and pane-scoped shell integration over the existing SSH connection.

Keep iOS workspaces in memory and rebuild expired Activity targets on demand. Integrate session selection into Connection Journey with consistent controls, cancellation behavior, and localized counts.
2026-10-16 01:04:12 +08:00
Kaede Akino 42b0ecfecf fix(ui): balance card spacing across platforms 2026-10-15 17:23:33 +08:00
Kaede Akino a03397ad22 feat(review): replace automatic prompts with inline invitations 2026-10-14 18:17:08 +08:00
Kaede Akino a5b269ee20 feat(i18n): complete localized screenshots and language ordering
Localize German, French, and Korean demo content and capture workflows. Preserve real software keyboards and invariant numeric parsing during captures. Sort language choices by code and update the published documentation and marketing asset submodules.
2026-10-14 17:14:32 +08:00
Kaede Akino 0eba936203 feat(localization): complete German, French, and Korean support
Update AgentKit to 0.19.2, align the maintenance gitlink and resolved package revision, and unify localization validation.
2026-10-14 13:05:48 +08:00
Kaede Akino e89954982a fix(ssh): preserve authentication failures across fallback 2026-10-14 13:05:46 +08:00
Kaede Akino dcd750c238 fix(macos): distinguish quit and window close confirmations 2026-10-10 20:51:57 +08:00
Kaede Akino 7524f3c3f6 fix(assistant): allow editing turns with tool activity 2026-10-10 17:55:59 +08:00
Kaede Akino af575287a1 fix(settings): remove automatic language relaunch 2026-10-10 02:22:58 +08:00
Kaede Akino 63325e14ab refactor(connections): share desktop connection lifecycle
Centralize route lookup, progress fencing, reconnect scheduling, and authentication continuation while retaining channel-specific teardown and persistence policies.

Validate architecture boundaries, authentication, reconnect, routing, and new regression coverage. The full macOS suite had two timing failures; both passed focused reruns.
2026-10-08 13:08:32 +08:00
Kaede Akino 5c50b68f73 fix(sftp): make mobile context menu previews opaque 2026-10-07 20:39:08 +08:00
Kaede Akino 7148691114 feat(localization): add Japanese language support and CJK validation 2026-10-07 12:43:39 +08:00
Kaede Akino 19beba46c9 fix(screenshots): capture Workspace window separately 2026-10-07 11:26:23 +08:00
Kaede Akino 603d6560d1 fix(screenshots): clip device frames and clear stale hover 2026-10-07 01:40:51 +08:00
Kaede Akino 210816f65a chore: move website and assets into public submodule 2026-10-06 21:17:00 +08:00
Kaede Akino bbeb7603b7 build(screenshots): migrate capture and framing to fastlane 2026-10-06 19:20:15 +08:00
Kaede Akino 9a59a22497 fix: remove useless fix for menu bar overflow 2026-10-06 17:04:28 +08:00
Kaede Akino 3c82f64818 test: remove redundant assertions and brittle layout checks 2026-10-06 15:48:05 +08:00
Kaede Akino efe8b7e31d test: remove brittle model catalog assertions 2026-10-06 15:22:43 +08:00
Kaede Akino 59fbd11030 refactor(history): remove redundant closed workspace state 2026-10-06 15:16:19 +08:00
Kaede Akino 231be54e08 feat(history): refine recent history and restore closed windows 2026-10-06 14:42:51 +08:00
Kaede Akino b5e022419a fix(terminal): remove menu bar title display and setting 2026-10-06 13:49:23 +08:00
Kaede Akino c15fdbb761 feat(history): add history menus across platforms 2026-10-06 11:39:46 +08:00
Kaede Akino ca7c10b689 feat(shortcuts): align window and assistant commands across platforms 2026-10-06 11:04:36 +08:00
Kaede Akino 8cd8d98fdd test: consolidate planning and workspace behavior cases 2026-10-06 06:14:50 +08:00
Kaede Akino 3daff4f053 test: parameterize transfer and token storage cases 2026-10-06 00:42:27 +08:00
Kaede AkinoandCopilot 7a6d0e6e80 test: merge near-identical cases into parameterized tests
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-06 00:22:18 +08:00
Kaede AkinoandCopilot 27a1e51660 test: remove unused imports, helpers, and fake members
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-05 23:49:46 +08:00
Kaede AkinoandCopilot b33c03a62d refactor: remove unused declarations, overloads, and parameters
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-10-05 23:49:46 +08:00
Kaede Akino 6dc5c82123 feat(terminal): remove keyword highlighting 2026-10-05 09:15:04 +08:00
Kaede Akino 09c5c8d886 fix(terminal): include CIDR prefixes in address highlighting 2026-10-05 08:01:32 +08:00
Kaede Akino c46344a7c0 feat(models): adopt the typed Pi 1.0.2 catalog 2026-10-04 22:23:41 +08:00
Kaede Akino ad2bf28790 refactor: remove obsolete application paths and adapters
Remove the transfer forwarding adapter, borrowed SFTP channel scheduling,
legacy assistant send entry points, unreachable Telnet password state,
unused Tailscale APIs, and unused host deletion impact projections.
Migrate behavioral tests to current paths and cover SFTP passphrase saving.

Validation: Swift formatting and shared-copy/localization checks passed.
The macOS test run reported failures in ConnectionStatusIconLayoutTests
and AgentRuntimeTests; investigation and iOS validation remain pending.
2026-10-04 22:10:09 +08:00
Kaede Akino ec4eb3172d fix(welcome): stabilize recent host context menu width 2026-10-04 21:46:27 +08:00
Kaede Akino 9b5ae755ca fix(ssh): retire PTY resources before releasing the worker 2026-10-04 21:26:41 +08:00
Kaede Akino f2cdaafd3a feat: refine confirmation UX 2026-10-04 21:09:22 +08:00
Kaede Akino 72ea5ae355 fix(tailscale)!: use data protection keychain storage
Update TailscaleKit to 1.0.2, align the state namespace with the app identifier, and verify scoped cleanup in signed macOS and iOS app hosts.

BREAKING CHANGE: Existing legacy Tailscale Keychain state is not migrated. Sign in again to create device-local Data Protection Keychain state.
2026-10-04 18:39:23 +08:00
Kaede Akino b3066afe77 feat(snippets): share cards and add color selection
Reuse card content across macOS and iOS with platform-sized icons and matching card heights. Add the shared Color field below Package and preserve selection, drag, and execution behavior.

Migrate stored snippets to V51 and write color in Vault V2 while retaining V1 decoding and guarding against lossy V1 writes.

Validation: macOS focused snippet, migration, architecture, and localization tests pass; 30 iOS focused tests pass; Swift format and localization checks pass. Full macOS testing also reports failures in unchanged KeyExport, MCP, and Agent suites.
2026-10-04 12:25:52 +08:00
Kaede Akino b3b4899a59 fix(tailscale): refine forms and peer details 2026-10-04 12:01:48 +08:00
Kaede Akino 981106f687 fix(assistant): align markdown and command rendering with upstream 2026-10-04 11:11:50 +08:00
Kaede Akino 6e411e9c55 build: update libghostty to 2.2.20261003 2026-10-03 22:16:30 +08:00
Kaede Akino 996ea85196 fix(tailscale)!: scope host identities and defer saved logout
Derive groupScopedV2 host UUIDs from the group, MagicDNS suffix and stable
node ID. Remove experimental identity compatibility and Tailnet conflict
handling, and hide unavailable Metrics hosts while retaining configuration.

Keep saved enrollments active until Save. Retire unsaved login candidates
on Logout or Discard, including repeated replacement logins, while preserving
the original enrollment. Use the same behavior in New and Edit forms.

Validation: 94 focused tests, iOS Simulator build, Swift formatting and
AppStrings/Chinese localization checks passed. The default suite still has
9 failures in untouched notification, agent and key export tests.

BREAKING CHANGE: Tailscale only accepts groupScopedV2 identities. Remove
old Tailscale test data before using this build; no ID migration is provided.
2026-10-03 16:58:40 +08:00
Kaede Akino 09a58f300d test: group opt-in screenshot suites 2026-10-03 16:14:12 +08:00
Kaede Akino 37b0de899f feat(keychain): add single-host export and deferred public keys 2026-10-03 13:48:19 +08:00