chore(release): bump version to 2.1.6 (build 131)

Version: CURRENT_PROJECT_VERSION 130 -> 131 (project.yml, AGENTS.md, READMEs,
docs/llms.txt).

fix(flow): host-app identification now compiles in every build configuration
(Debug, TestFlight, Release). The arbiter probe and HostAppIdentity were
DEBUG-only, so TestFlight/App Store builds never knew the host bundle id and
could not auto-return after a startflow handoff. Debug-only logging and the
Home test card are unchanged.

Also includes the pending work in the tree:
- Home: single account/setup card surface (HomeAccountSurfacePolicy/Views)
- Wide screens: voice key row and centred mic placement, iPhone Duo layout
- Keyboard: clipboard skill ranking and AI skill layout updates
- Debug: account session handoff to the Simulator (+ import script)
- Docs: portfolio assets, privacy policy URL, site/README refresh
This commit is contained in:
Rocky
2026-10-29 11:54:13 +08:00
parent 055a40976f
commit 4dce67df84
65 changed files with 3682 additions and 787 deletions
@@ -131,10 +131,10 @@ final class AssistantKeyboardUITests: XCTestCase {
XCTAssertTrue(element("assistant.edit", in: app).exists)
}
func testClipboardSkillsPageHorizontallyAndDismissTogether() {
func testClipboardSkillsAreTopBarCapsulesAndDismissTogether() {
let app = launch(scenario: "skills")
let pager = requiredElement("assistant.skills.pager", in: app)
let navigate = element("assistant.skill.navigate", in: app)
let reply = requiredElement("assistant.otherSkill.reply", in: app)
let navigate = element("assistant.otherSkill.navigate", in: app)
let sideActions = [
requiredElement("assistant.delete", in: app),
requiredElement("assistant.space", in: app),
@@ -145,8 +145,11 @@ final class AssistantKeyboardUITests: XCTestCase {
for action in sideActions {
XCTAssertTrue(action.isHittable)
}
// Skills live in the top bar, above the mic; no circular chips remain.
XCTAssertLessThan(reply.frame.maxY, requiredElement("assistant.mic.idle", in: app).frame.minY)
XCTAssertFalse(element("assistant.skills.pager", in: app).exists)
pager.swipeLeft()
reply.swipeLeft()
XCTAssertTrue(navigate.waitForExistence(timeout: 3))
XCTAssertTrue(navigate.isHittable)
@@ -157,7 +160,7 @@ final class AssistantKeyboardUITests: XCTestCase {
element("assistant.mic.idle", in: app)
.waitForExistence(timeout: 3)
)
XCTAssertFalse(element("assistant.skills.pager", in: app).exists)
XCTAssertFalse(element("assistant.otherSkill.navigate", in: app).exists)
}
func testReliableSemanticResultShowsCompactBadge() {