124 Commits
Author SHA1 Message Date
Kaede Akino 3601bd0963 chore: add GPL-3.0-only license and source headers 2026-10-20 12:05:32 +08:00
Kaede AkinoandClaude Code 8b6325db7b refactor(connections): centralize default terminal resolution
Share default transport ordering and connection-kind resolution across desktop and mobile opening paths. Keep explicit transport choices intact and skip unavailable default terminals before admission.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-18 13:20:49 +08:00
Kaede AkinoandClaude Code 72eaa65caf refactor: share connection and assistant policies
Centralize Journey mapping, interaction ordering, and localized tool presentation; remove redundant multiplexer and paywall state. Consume AgentKit 2.2.0 for shared operation, output, and transcript contracts, and correct its maintenance checkout documentation.

Validation: AgentKit 304 tests and local-package macOS/shared 215 regressions passed. iOS app built; 38 focused tests reported passing with an existing broken fixture excluded, but Xcode finalization stalled. Default macOS tests retain timeouts and Secure Enclave failures. A subsequent remote-pin build reported AgentTranscriptMessage.toolResult unavailable; it has not been diagnosed.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-18 09:49:24 +08:00
Kaede Akino 9f41e09e12 fix: ui and live activity 2026-10-17 18:39:00 +08:00
Kaede Akino cbda3f0712 fix: unavaialbe workspace in live activity 2026-10-17 15:58:03 +08:00
Kaede Akino 8c3db48815 fix(workspace): restore unified workspace persistence 2026-10-17 15:19:17 +08:00
Kaede Akino a04db5f867 fix(workspace): close sessions without waiting for remote cleanup
Keep mobile list snapshots and section identity stable during swipe closure.

Move managed-session termination to app-owned background cleanup, transfer existing SSH connections, and allow one silent reconnect when needed. Preserve passive teardown behavior and prevent reopened workspaces from attaching to sessions being terminated.

Cover connection ownership, cleanup cancellation, saved workspace closure, and list updates with regression tests.
2026-10-17 14:34:55 +08:00
Kaede Akino 9a36fde226 fix(pro): enforce protocol-aware host admission before mutation
Distinguish SSH route admission from Telnet target admission and wire
Telnet access and automatic Wake hooks. Await entitlement resolution for
manual Wake and duplication before host or credential mutation.

Use explicit protocol-extension forwarding overloads so existential
single-argument calls cannot bypass the concrete admission witness.
Remove dead paywall state and update obsolete quota/date test fixtures.
Validation: 81 focused macOS and 58 focused iOS tests passed.
2026-10-17 09:50:55 +08:00
Kaede Akino e457e9af98 fix(multiplexer): preserve session ownership and safe shell startup
Detach managed sessions when native mobile windows are discarded, retain
live reopen references, and fence ordinary startup commands by input and
session generation. Handle noexec helpers, isolate tmux discovery locale,
and count only verified live contexts against the journal limit.

Move actual shell execution coverage into the hostless framework suite.
Validation: 76 focused macOS tests passed; iOS multiplexer regressions
passed with the inherited hosted-test artwork failure still present.
2026-10-17 09:50:37 +08:00
Kaede Akino d2cce7d2ce feat: make core features free and add host-based Pro limits
Make AI, MCP, Metrics, and Wake-on-LAN free while retaining iCloud sync as a Pro feature. Limit free accounts to three saved hosts and preserve excess hosts with remote-operation locks.

Gate host creation, import, and runtime access; preserve stable host admission across persistence and sync. Add upgrade states on macOS and iOS, open the paywall from locked Wake actions, and use wrench icons for MCP.

Include regression coverage, opt-in UI review fixtures, localized copy, and the updated pricing website revision.
2026-10-17 06:13:38 +08:00
Kaede Akino 632d913bb3 feat(terminal): add device-local experience preferences
Add local Bell and screen-awake controls with per-session bell observation and scene-aware effects. Provide foreground Connection Journey success haptics independent of terminal preferences.

Replace the notification sound with an original bell resource, make AudioToolbox completion queue-safe, and group mobile theme settings.
2026-10-17 02:20:38 +08:00
Kaede Akino d92318a2bb fix(terminal): restore multiplexer paths and silent session close 2026-10-16 22:32:31 +08:00
Kaede Akino 9da4b350cf refactor: register terminal backends and reuse shared workflows
Extract multiplexer dialect and resumable terminal engine registries while preserving session and checkpoint compatibility.

Share local-network and theme policies, add regression coverage, and update discovery actions to Cancel and Rescan with localized Telnet copy.
2026-10-16 20:02:13 +08:00
Kaede Akino 7d77acd3ed feat(themes): add synced custom themes and native editors 2026-10-16 17:03:57 +08:00
Kaede Akino 3c06c23435 feat: add local discovery and Pro Wake-on-LAN 2026-10-16 14:56:39 +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 59bcfd92ee feat(hosts): add selectable macOS and Windows icons 2026-10-16 02:03:09 +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 a03397ad22 feat(review): replace automatic prompts with inline invitations 2026-10-14 18:17:08 +08:00
Kaede Akino 9a59a22497 fix: remove useless fix for menu bar overflow 2026-10-06 17:04:28 +08:00
Kaede Akino 016542176d fix: history menubar overflow 2026-10-06 16:40:50 +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 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 8efc804dfb fix(shortcuts): complete iOS commands and remove redundant window close 2026-10-06 05:59:45 +08:00
Kaede Akino 6dc5c82123 feat(terminal): remove keyword highlighting 2026-10-05 09:15:04 +08:00
Kaede Akino 5824fbad35 fix(state): remove redundant bindings and presentation state 2026-10-04 22:25:42 +08:00
Kaede Akino f2cdaafd3a feat: refine confirmation UX 2026-10-04 21:09:22 +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 37b0de899f feat(keychain): add single-host export and deferred public keys 2026-10-03 13:48:19 +08:00
Kaede Akino 1ab7ed3da3 feat: isolate tailscale connections and harden history
Bind independent Tailnet connections to group IDs while preserving legacy host identities through the V3 sync format. Persist profile cleanup retries, isolate test storage, and reject stale dialers after re-enrollment.

Recover quarantined sync records safely, refresh metrics compatibility, fix multiline shell history, and remove obsolete mobile history gates. Pin libtailscale-spm to 1.0.1 alongside its submodule revision.

Validation: default macOS suites (2679 tests), targeted iOS suites (26 tests), strict Swift formatting, shared AppStrings checks, and Chinese localization checks passed. Both subagent reviews approved.
2026-10-03 09:46:09 +08:00
Kaede Akino 315054763f feat(ios): close windows with cmd-w without confirmation 2026-10-03 04:34:09 +08:00
Kaede Akino aa5a92c352 feat: remove persistence connection and SFTP history 2026-10-03 04:18:14 +08:00
Kaede Akino 6eafa29369 feat: add Pro Tailscale SSH and SFTP integration 2026-10-03 03:12:12 +08:00
Kaede Akino 82d871c4fe refactor: separate feature policies and UI workflows
Move connection policy out of ProAccess, keep terminal uploads with their
session, and share question interaction and highlight editing operations.
Consolidate CPU usage and settings snapshot handling, and remove obsolete
terminal selection, theme helpers, and hard-coded latest-schema assertions.

Fix draining connection-pool recovery and stale pane upload bindings. Keep
screenshot matrices opt-in and retain behavioral migration coverage.

Validation: 2468 macOS tests passed serially, 31 iOS tests passed, and both
SSH forwarding regressions passed against the local OpenSSH fixture.
Both app builds, Swift formatting, AppStrings, and Chinese localization
checks passed. Parallel test runs still exhibit intermittent timeouts.
2026-10-02 16:40:27 +08:00
Kaede Akino 75a10fbbd0 feat(pro): gate multi-connection acceleration without changing saved settings 2026-10-02 15:32:35 +08:00
Kaede Akino 7c8592d037 feat(terminal): add synced keyword highlighting 2026-10-02 14:01:23 +08:00
Kaede Akino 22f09eaeee feat(diagnosis): add opt-in Firebase diagnostic data reporting 2026-10-01 08:45:38 +08:00
Kaede Akino 565ef17d87 refactor(ssh): share key workflows and wire encoding 2026-09-29 00:05:32 +08:00
Kaede Akino 816a6ff121 feat(ssh): support hardware security key authentication
Add native security key registration, reference import, and signing on macOS and iOS. Store references in Vault metadata and route authentication through connection, Assistant, MCP, and agent forwarding flows.

Preserve signing cancellation and actionable authentication errors for security keys and Secure Enclave. Pin the released libssh2 forks as nested submodules and refresh package resolution.
2026-09-28 23:37:49 +08:00
Kaede Akino ac645aa7b7 feat(ssh): forward vault keys to remote sessions 2026-09-28 20:04:07 +08:00
Kaede Akino 0a9d5100e6 feat(keychain): add mobile public key export and unify menus 2026-09-28 18:03:36 +08:00
Kaede Akino 4d6e4481c0 feat(mcp): add OAuth and 2025-03-26 compatibility
Integrate AgentKit 0.18.1 with native authorization on macOS and iOS, device-local OAuth credentials, V43 configuration persistence, and Assistant authorization prompts.

Add HTTPS callback metadata, keep native callbacks safe across actor boundaries, and distinguish authorization setup failures from cancellation. Extend the external MCP server to negotiate 2025-03-26.
2026-09-28 12:36:32 +08:00
Kaede Akino 15c272816d fix(notifications): defer mobile routing until scene activation 2026-09-28 03:19:17 +08:00
Kaede Akino 2b6f64f0bb fix(notifications): request authorization on first activation 2026-09-27 20:43:44 +08:00
Kaede Akino c1ae0dc0a2 feat(assistant): add cross-chat agent collaboration
Add host-owned chat creation, model discovery, messaging, reading, and waiting with durable delivery receipts. Keep tool presentation compact, mark agent-authored messages, and prevent edits that would remove tool activity.

Adopt the signed AgentKit 0.16.0 release in the package requirement, resolved revision, and submodule.
2026-09-27 19:08:29 +08:00
Kaede Akino abee0e98f5 fix(notifications): reuse assistant windows and prefer sidebar 2026-09-27 17:09:15 +08:00
Kaede Akino 755e1bdf27 refactor(notifications): share delivery and isolate routing lifecycles 2026-09-27 16:30:01 +08:00
Kaede Akino 6140bc3ebe fix(connections): show mobile Vault status for selected workspace 2026-09-27 16:13:02 +08:00