Commit Graph
27 Commits
Author SHA1 Message Date
Kaede Akino 392c72e3fa docs: update OpenWiki 2026-10-07 11:10:01 +08:00
Kaede Akino 210816f65a chore: move website and assets into public submodule 2026-10-06 21:17:00 +08:00
Kaede Akino 6dc5c82123 feat(terminal): remove keyword highlighting 2026-10-05 09:15:04 +08:00
Kaede Akino 150bfbe6a9 build: update libghostty to 2.2.2026100303 2026-10-04 00:16:35 +08:00
Kaede Akino f6122c6306 build: adopt CI-built libssh2 XCFramework
Pin libssh2-spm 2.0.3-termind-4 and document the official submodule plus CI-applied patch workflow. Keep the maintenance gitlink and resolved revision aligned.

Validation: native regressions, all ten Apple package builds, remote binary consumer, 1758 macOS app tests, 43 focused SSH/security-key/architecture tests, and localization checks passed. The full shared framework run hit 60-second time limits in assistant conversation tests.
2026-10-03 10:43:54 +08:00
Kaede Akino c627b6ed1d build(ssh): adopt patch-managed libssh2 package 2026-10-03 03:33:41 +08:00
Kaede Akino 3708a7c54f refactor: remove obsolete code and redundant tests
Remove legacy Commerce types, unused helpers, duplicate SFTP progress code, and 28 unreferenced strings. Drop fixture-only tests and arbitrary screenshot size assertions while retaining behavioral coverage.

Validation: 2,592 macOS tests, 40 focused macOS tests, and 53 iOS tests passed. Swift formatting, AppStrings, and Chinese localization checks passed.
2026-10-02 17:50:47 +08:00
Kaede Akino e4555c6187 docs: update OpenWiki 2026-10-02 17:12:06 +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 a8e00e5122 feat(terminal): add inline selection and native menus 2026-10-02 04:06:18 +08:00
AkinoKaede 1e90f7b730 docs: update OpenWiki 2026-09-29 09:43:58 +08:00
Kaede Akino 9d42c05522 docs(openwiki): document SSH security key authentication 2026-09-29 00:53:16 +08:00
Kaede Akino a3e7f33a83 refactor(appstrings): rename check scripts 2026-09-25 22:20:52 +08:00
Kaede Akino 0be755d4e3 docs: adopt conventional commit guidelines 2026-09-24 15:28:57 +08:00
Kaede Akino 570a0a56fc fix: Localizable.xcstrings items be marked stale wrong 2026-09-24 02:06:48 +08:00
Kaede Akino 2abed0eca6 Rename TermindCopy to AppStrings 2026-09-23 22:54:10 +08:00
Kaede Akino 76c4e9872f Merge copywright 2026-09-23 20:07:12 +08:00
Kaede Akino 29bad8b676 Stabilize mobile integration tests 2026-09-23 17:32:43 +08:00
Kaede Akino 9c6a88a6a8 Make StoreKit tests opt-in 2026-09-23 14:18:56 +08:00
Kaede Akino 93fcaedce4 Merge Memory to OpenWiki 2026-09-22 09:35:19 +08:00
Kaede Akino 4cc42610d8 Add openwiki 2026-09-22 08:35:27 +08:00
Kaede Akino d757d4eb2b Disable window tests by default 2026-09-19 11:52:59 +08:00
Kaede Akino a737283621 Add Traditional Chinese localization 2026-09-13 11:41:09 +08:00
Kaede Akino 66890792b8 Split macOS and iOS targets into shared frameworks 2026-09-11 10:59:38 +08:00
Kaede Akino 1c429a301b Adopt AgentKit 0.3.0 scratch_replace, scratch_copy and scratch_move
scratch_edit is now scratch_replace, and takes a regex mode and a per-entry
count — omit it to require exactly one match as before, 0 for every occurrence,
n for the first n. scratch_copy and scratch_move move a staged file or subtree
without its bytes passing through the transcript, which is what duplicating a
file before a risky change used to cost.

The app-side changes are the ones the rename and the two new tools reach:
ActionKind.copy in both the English and Chinese verb tables, the pull → copy →
replace → push recipe in the built-in config-edit skill, and the same wording in
the system prompt and the plan contract. The legacy tables are deliberately
untouched: legacyToolNames and legacyMetadata describe cards written before
presenter IDs were persisted, and scratch_edit belongs in both. AgentKit keeps
builtin.scratch_edit registered as an alias, so a transcript from before the
rename still draws its diff rather than falling back to generic fields — which
aCardWrittenAsScratchEditStillFindsItsProjection now pins.

AppLanguageTests no longer requires %lld results. That plural moved to AgentKit
with web_search's card, which is what db8796c removed from this catalog; the
test's list had been left behind and was failing.

AGENTS.md said AgentKit was referenced as a local SPM package. It is a versioned
remote dependency, so an uncommitted change in ../AgentKit is invisible to the
app and a change spanning both sides needs a tagged release in between. Said so,
because working the other way wastes a build cycle before the mistake shows.

Verified: AgentKit 0.3.0 builds and passes its 112 tests, and the six suites
this touches pass here. The five failures in the full run — ColorSystemTests,
two ChatComposerStateTests, FileURLDropTargetTests and WindowStateTests — all
reproduce on a clean worktree at HEAD and are unrelated.
2026-09-02 15:44:52 +08:00
Kaede Akino cdd8fe0668 Extract the agent runtime as AgentKit
The loop, the approval gate, the provider adapters, the MCP client, and the
tools with no opinion about transports now live in a package and are consumed
from it. Termind keeps everything that reaches a machine or a person: the SSH
and SFTP tools, the connection pool, the Vault resolver, scratch_pull and
scratch_push, the SwiftData store, and every view.

They meet at four seams. TermindAgentTools registers our tools alongside the
built-in groups; AgentToolServices carries the SSH credential prompt to them
without that prompt appearing in a runtime protocol; TermindAgentPolicy owns the
system prompt, the plan contract, and the ssh_exec plan-mode rule the runtime
cannot write for us; TermindAgentPresentation extends the card vocabulary with
our own semantics.

ChatPermissionMode becomes AgentPermissionMode and moves out of the conversation
model — who authorizes an action is a property of the run, not of a view.
AgentRunRequest takes the session context as rendered text rather than our
SessionContext, because the runtime does nothing with it but insert it in front
of the turn it describes.

Termind's system prompt and plan contract are byte-identical to what shipped.
Every provider cache is a prefix cache, so editing a word there would miss the
cache on every replayed conversation at once.
2026-09-02 13:58:35 +08:00
Kaede Akino 18c6f08947 Add AGENTS.md and CLAUDE.md 2026-08-31 12:29:38 +08:00