Commit Graph
1054 Commits
Author SHA1 Message Date
Kaede Akino d115cc2df4 test: remove over-specified assertions and translation lock-ins
Drop assertions that could not fail in a meaningful way or that only
restated copy already validated by Scripts/check-localization.py.

- Screenshot suites asserted arbitrary PNG byte counts, which AGENTS.md
  forbids; the opt-in Attachment.record exports stay.
- AgentSkillTests compared a snapshot revision with itself.
- MetricsCPUUsageTests asserted point.cpu, an alias of cpuUsage.utilization
  already pinned by the sibling assertion in that test.
- TerminalTransportTests locked enum declaration order and localized
  display names; symbol distinctness now compares against allCases.count
  instead of a magic 4.
- AppLanguageTests transcribed catalogs that check-localization.py already
  enforces for coverage, format arguments, plurals and spacing. Locale
  routing, migration and fallback tests remain, with the Chinese fallback
  checks rewritten as relationships rather than literal copy.
2026-10-17 10:31:50 +08:00
Kaede Akino 64e9a28b58 chore(deps): upgrade 2026-10-17 10:06:11 +08:00
Kaede Akino dca37ca72f fix(icons): use the Simple Icons macOS logo
Replace the Apple silhouette with the unmodified macOS wordmark from
Simple Icons 16.29.0. Update generator and provenance, retain the stable
HostOS-macos asset/detection IDs, and add a real-bundle source regression.
Other 45 assets and all license files remain byte-identical.

Validation: 19 macOS and 20 iOS focused tests passed; icon integrity,
formatting, AppStrings, localization, and diff checks passed.

Full integration before this isolated resource change: all 1206 shared
iOS tests passed. Two inherited hosted-iOS identity/artwork tests remain
failing. Two unchanged macOS Keychain/Secure Enclave tests return -25308
(errSecInteractionNotAllowed), including a narrow retry. Neither default
full scheme is claimed completely green; no security checks were relaxed.
2026-10-17 09:51:04 +08:00
Kaede Akino 9743589f86 refactor(ui): remove unused copy and repair metrics fixtures
Remove six unused title/discovery resource APIs and catalog entries while
retaining legacy preference compatibility and all remaining translations.
Replace stale negative discovery assertions with observable row/actions.

Provide the required AppModel to two direct metrics fixtures, sharing their
hosts/model and cleanup. Keep production ownership and UI opt-ins intact.
Validation: 38 focused layout/localization tests, strict formatting,
AppStrings validation, and localization checks passed.
2026-10-17 09:51:00 +08:00
Kaede Akino 3bf5915395 fix(sync): reconcile untouched legacy theme seeds safely
Reconcile only untouched baseline theme seeds after an accepted newer
legacy terminal winner. Protect explicit native choices, edits, tombstones,
and same-batch native selections while preserving stable IDs and rollback.

Keep materialized theme ordering consistent with persisted loads. Require
complete-envelope equality before clearing a live saved record's pending
upload so stale acknowledgements cannot discard a changed baseline seed.
Hoist V6/V7 peer-key validation instead of rebuilding groups per key.
Validation: 143 focused persistence, sync, transport, and host tests passed,
including disk reopen, rollback, two-store propagation, and stale ACKs.
2026-10-17 09:50:58 +08:00
Kaede Akino c6d9aad810 fix(hosts): validate wake addresses before saving credentials
Validate configured MAC addresses in desktop/mobile editors and ordinary,
managed, and custom-identity save paths before credential writes. Preserve
the Auto Wake preference while editing and add localized invalid-address
feedback with regression coverage for rejected writes.

Keep production artwork observation unchanged. Diagnostics confirmed an
inherited hosted-test static-link identity issue; temporary linker and
trace experiments were removed without weakening behavioral assertions.
Validation: 83 focused macOS tests passed; iOS MAC cases passed while the
two known hosted-test identity/artwork failures remain.
2026-10-17 09:50:56 +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 f0b71db566 fix(transport): serialize resumable session lifecycle operations
Queue and coalesce lifecycle requests, drain outstanding writes, and replay
viewport and integration state before reopening admission. Preserve engine
connected state, keep failed recovery frozen, and fence late close results.
Active work is session-owned; caller cancellation removes only its waiter.
Ignore the initial healthy network-path snapshot.

Mosh remote-exit detection is intentionally unchanged.
Validation: 77 focused macOS and 15 focused iOS tests passed.
2026-10-17 09:50:53 +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 01530326eb fix(commerce): refresh Pro product copy and lifetime naming 2026-10-17 06:42:30 +08:00
Kaede Akino ea099fc5a6 fix(ssh): support Tailscale approval on ordinary connections
Detect Tailscale SSH by server identification and authenticate with the configured username without requiring credentials or Pro. Keep browser approval concurrent with transport polling and dismiss prompts when authentication finishes. Preserve managed Tailnet access limits and add loopback regression coverage.
2026-10-17 06:31:55 +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 b79b05e46b docs: correct localization validation commands 2026-10-17 02:37:13 +08:00
Kaede Akino 2ea6eb0dcd fix(host-editor): simplify MAC address lookup presentation 2026-10-17 02:37:13 +08:00
Kaede Akino 82daa906a1 fix(terminal): preserve theme fallbacks for preferred fonts 2026-10-17 02:37:08 +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 1398ff94e1 fix(terminal): unify resumable recovery in connection journey 2026-10-17 01:34:50 +08:00
Kaede Akino b139fbc841 feat(hosts): expand icons and fix automatic previews 2026-10-17 00:54:34 +08:00
Kaede Akino 21accf8ae5 fix(settings): simplify copy and polish native settings layouts 2026-10-17 00:14:12 +08:00
Kaede Akino b24e303725 refactor(ui): simplify discovery and custom theme cards 2026-10-16 23:45:08 +08:00
AkinoKaede a4f0a5622f docs: update OpenWiki 2026-10-16 22:34:45 +08:00
Kaede Akino d92318a2bb fix(terminal): restore multiplexer paths and silent session close 2026-10-16 22:32:31 +08:00
Kaede Akino 4492121c6c fix(hosts): group wake with tailscale and hide unconfigured action 2026-10-16 20:34:39 +08:00
Kaede Akino 7bb516771b chore(web): update website submodule
Pull in refreshed feature comparisons, Session Persistence copy, Pro ordering, and localized footer navigation with community links.
2026-10-16 20:22:18 +08:00
Kaede Akino 672b68d2da test(persistence): remove bundled migration fixtures 2026-10-16 20:15:25 +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 5a74809da8 feat(sessions): unify multiplexer backends and preserve cwd
Add Zellij, zmx, and Herdr alongside tmux using shared lifecycle, shell startup, journal, and runtime infrastructure. Keep verified shell directories visible during commands without restoring unsafe operation capabilities.

Cover backend ownership, startup replay, runtime context, and desktop/mobile cwd regressions. Preserve conservative degradation where client focus cannot be verified.
2026-10-16 18:50:55 +08:00
Kaede Akino 7d77acd3ed feat(themes): add synced custom themes and native editors 2026-10-16 17:03:57 +08:00
Kaede Akino 7f66b3a444 fix(terminal): use default transport for SFTP companion sessions 2026-10-16 15:21:10 +08:00
Kaede Akino 3c06c23435 feat: add local discovery and Pro Wake-on-LAN 2026-10-16 14:56:39 +08:00
Kaede Akino e2a4ae9505 fix(terminal): synchronize tmux size on workspace activation 2026-10-16 13:42:39 +08:00
Kaede Akino 7e82343da4 fix(terminal): restore and cache context-aware shell history 2026-10-16 12:37:20 +08:00
Kaede Akino 7725e7c1ae fix(terminal): handle resumable transport session endings 2026-10-16 12:27:44 +08:00
Kaede Akino f6b2c4f444 feat(hosts): add BSD detection and expand system icons 2026-10-16 11:47:22 +08:00
Kaede Akino 3a79f0603c fix(hosts): place transport settings below authentication 2026-10-16 08:51:37 +08:00
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 6dd59b0974 fix(terminal): use native SFTP context menu icons 2026-10-16 01:25:51 +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 babb6711b5 feat(ios): add optional compact card layout 2026-10-15 18:41:17 +08:00
Kaede Akino 42b0ecfecf fix(ui): balance card spacing across platforms 2026-10-15 17:23:33 +08:00
AkinoKaede 6b315ecea4 docs: update OpenWiki 2026-10-15 09:27:46 +08:00
Kaede Akino 7090cc16c4 bump: 1.16.6 2026-10-14 18:17:44 +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 6befb61b1d chore(deps): upgrade 2026-10-14 13:23:01 +08:00