55 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 52ced1d570 refactor(assistant): decouple tool presentation policies
Inject tool-owned presentation profiles and semantic vocabulary, remove legacy inference and stream compatibility, and update AgentKit to 3.1.0.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-19 02:47:06 +08:00
Kaede Akino d41f236220 refactor: centralize tool names in TermindToolName registry
Tool names are protocol surface: they appear in the MCP export list,
persisted disabled-tool preferences, audit records, and presentation
registries. Spelling them as literals at each of those sites let one
place drift from another with no compile error to catch it.

Add TermindToolName as the single source of truth for the 25 names
Termind owns, and route every non-documentation reference through it.
The registry lives in TermindApplication because presentation cannot
import TermindRemoteInfrastructure, and TermindApplication cannot depend
on it either.

Names owned by AgentKit (request_user_secret, present_plan, the
scratch_* build tools) and retired aliases (ssh_exec, ssh_wait) stay as
literals, as do the prose in MCP instructions and descriptor summaries.
The legacyToolNames compatibility list is a historical data contract and
is unchanged.

This also removes the sshExecRunToolName and sshExecStdinToolName
constants from TermindAgentPolicy, which the registry replaces.
2026-10-18 18:20:51 +08:00
Kaede AkinoandClaude Code c97f389bff refactor: remove verified unused Swift code
Remove unused helpers, payload fields, string accessors, imports, and test fixture storage identified by cross-platform Periphery scans.

Preserve historical SwiftData storage schemas, wire formats, and runtime lifetime anchors.

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-10-18 16:57:37 +08:00
Kaede Akino 286045ab24 refactor: ui perf 2026-10-18 12:44:38 +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 3d246294bf refactor(assistant): use tool-registered presentation policies 2026-10-17 23:50:26 +08:00
Kaede Akino 60e9f59b48 fix(assistant): unify expandable tool output details 2026-10-17 23:17:15 +08:00
Kaede Akino 7e78bc00c4 feat(agent): unify output truncation and scratch capture
Integrate AgentKit 2.0.1 with shared scratch storage, whole-line tool policies, generated capture paths, and external MCP projection bypass. Update ssh-exec instructions and document the complete tool policy inventory.

Keep compact expansion controls left aligned and display the AgentKit truncation marker above them on both platforms. Cover narrow and wide native layouts, both button states, and marker ordering.
2026-10-17 22:51:26 +08:00
Kaede Akino ebeb0027d4 feat(ssh)!: redesign command execution tools
Split command execution into run, output, stdin, cancel and list tools for the assistant and MCP. Preserve bounded output tails and use conversation-scoped handles and secret storage with AgentKit 1.20.0.

Add the built-in ssh-exec skill with timestamped log redirection and text/secret stdin workflows. Expand long tool output without adjacent copy controls, update localized presentation, and refresh regression coverage and the website tool name.

BREAKING CHANGE: Replace ssh_exec and ssh_wait with ssh_exec_run and ssh_exec_output. Move stdin to ssh_exec_stdin and remove execution timeout and cwd arguments. Use run_in_background to control foreground execution.
2026-10-17 12:26:48 +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 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 981106f687 fix(assistant): align markdown and command rendering with upstream 2026-10-04 11:11:50 +08:00
Kaede Akino 6eafa29369 feat: add Pro Tailscale SSH and SFTP integration 2026-10-03 03:12:12 +08:00
Kaede Akino beea076810 fix(assistant): correct terminal tool targeting and presentation 2026-10-02 19:58:09 +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 7084145c47 feat(assistant): remove todo tool and task list UI 2026-09-30 14:12:16 +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 b58c8beb5e fix(ssh): restore saved passphrases and authentication saving 2026-09-28 18:37:21 +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 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 b6ff9fd7d1 feat(assistant): add terminal pane reading tools 2026-09-27 13:00:15 +08:00
Kaede Akino c1239e9106 Make tools presentation better 2026-09-23 19:09:39 +08:00
Kaede Akino 70c41b9225 Make Agent connection waits cancellation-aware 2026-09-23 17:00:43 +08:00
Kaede Akino f79c4905d0 Clarify agent tool availability contracts 2026-09-23 09:33:15 +08:00
Kaede Akino fce93864c6 refactor: match SSH authorized host key 2026-09-22 07:20:10 +08:00
Kaede Akino 762e6b1b57 Remove Host Key Changed 2026-09-22 01:28:47 +08:00
Kaede Akino 759c1d8f7b Add Telnet 2026-09-21 21:09:11 +08:00
Kaede Akino fa734f1e1c Add charset 2026-09-21 18:30:39 +08:00
Kaede Akino 7bce4291b1 Refine SSH command presentation 2026-09-21 16:48:53 +08:00
Kaede Akino 9cfe2005d6 request_user_secret use zeroize 2026-09-21 10:42:05 +08:00
Kaede Akino 4ae95df1f7 Add proxy identity choose UI 2026-09-21 09:13:28 +08:00
Kaede Akino 3db8cdbf85 Harden one-shot SSH secret handling 2026-09-20 20:33:18 +08:00
Kaede Akino cb106ba15d Clear SSH secrets after each connection attempt 2026-09-20 20:33:17 +08:00
Kaede Akino f09c57e332 Clarify SSH connection and channel APIs 2026-09-20 16:54:31 +08:00
Kaede Akino 8fdf2eb0d3 Unify SFTP channel implementation 2026-09-20 00:34:30 +08:00
Kaede Akino 15d2eec23a Combine Agent SSH and SFTP session 2026-09-19 23:49:43 +08:00
Kaede Akino 145cfd535a Unified SFTP scheduler 2026-09-19 22:42:15 +08:00
Kaede Akino d9616b7b77 Refactor connection model 2026-09-19 21:25:39 +08:00
Kaede Akino ec0f685cfe Add SSH keyboard-interactive authentication across connection flows 2026-09-18 14:22:11 +08:00
Kaede Akino e0ee4641bf Clarify SSH tool selection and authentication guidance 2026-09-18 11:21:25 +08:00
Kaede Akino 7cdb755d5f Bulk: Vertex AI & Better Memory 2026-09-17 12:47:14 +08:00
Kaede Akino de89c37aec Add cross-host SFTP copy to Assistant and MCP 2026-09-16 17:57:38 +08:00
Kaede Akino 9e1426393a Fix identities last used time 2026-09-15 13:23:37 +08:00
Kaede Akino 01b6bf4d25 Add Guardian auto-reviewing 2026-09-15 08:16:16 +08:00
Kaede Akino dc82167481 Preserve Agent cache prefixes across terminal changes 2026-09-14 22:26:21 +08:00
Kaede Akino ad4e72e35d Adopt AgentKit approval policies 2026-09-14 17:33:57 +08:00
Kaede Akino d3145bcccf Fix Assistant approval interaction 2026-09-14 10:09:06 +08:00
Kaede Akino f039827737 Show swap usage in Metrics status 2026-09-14 08:33:28 +08:00