Repository navigation
feat(sdk): start an embedded runtime from the main entry - #3843
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Use distinct host working directories and exercise disposal through the packed consumer. Keep the subprocess source with its integration test. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Exact-head local validation, independent review and live run for
Validation receipt (run-RYwqUF){
"status": "passed",
"exitCode": 0,
"refs": {
"base": "origin/main",
"head": "HEAD",
"resolvedBase": "620228b8ca67a69a108fa4fc5041fdd88880b792",
"resolvedHead": "7c2dfc79fc9fe38ca318b78be2c59eb2d72e4de9",
"mergeBase": "620228b8ca67a69a108fa4fc5041fdd88880b792"
},
"checkoutChanged": false,
"exactCommit": true,
"startedAt": "2026-10-20T09:24:34.555Z",
"finishedAt": "2026-10-20T09:31:08.480Z",
"results": [
{
"id": "format",
"status": "passed",
"command": [
"pnpm",
"run",
"format:check"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/0.log",
"exitCode": 0,
"durationMs": 1391,
"testReportPaths": [],
"tests": []
},
{
"id": "lint",
"status": "passed",
"command": [
"pnpm",
"run",
"lint"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/1.log",
"exitCode": 0,
"durationMs": 2178,
"testReportPaths": [],
"tests": []
},
{
"id": "typecheck",
"status": "passed",
"command": [
"pnpm",
"run",
"typecheck"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/2.log",
"exitCode": 0,
"durationMs": 1175,
"testReportPaths": [],
"tests": []
},
{
"id": "test-app-typecheck",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "test-app-security",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "layering",
"status": "passed",
"command": [
"pnpm",
"run",
"check:layering"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/5.log",
"exitCode": 0,
"durationMs": 21854,
"testReportPaths": [],
"tests": []
},
{
"id": "di-seams",
"status": "passed",
"command": [
"pnpm",
"run",
"check:di-seams"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/6.log",
"exitCode": 0,
"durationMs": 1442,
"testReportPaths": [],
"tests": []
},
{
"id": "fallow",
"status": "passed",
"command": [
"pnpm",
"run",
"check:fallow",
"--base",
"620228b8ca67a69a108fa4fc5041fdd88880b792"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/7.log",
"exitCode": 0,
"durationMs": 7579,
"testReportPaths": [],
"tests": []
},
{
"id": "mcp-metadata",
"status": "passed",
"command": [
"pnpm",
"run",
"check:mcp-metadata"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/8.log",
"exitCode": 0,
"durationMs": 614,
"testReportPaths": [],
"tests": []
},
{
"id": "build",
"status": "passed",
"command": [
"pnpm",
"run",
"build"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/9.log",
"exitCode": 0,
"durationMs": 4811,
"testReportPaths": [],
"tests": []
},
{
"id": "package",
"status": "passed",
"command": [
"pnpm",
"run",
"check:package"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/10.log",
"exitCode": 0,
"durationMs": 7787,
"testReportPaths": [],
"tests": []
},
{
"id": "integration-node",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:node"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/11.log",
"exitCode": 0,
"durationMs": 28692,
"testReportPaths": [],
"tests": []
},
{
"id": "macos-coverage",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:macos-coverage"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/12.log",
"exitCode": 0,
"durationMs": 1134,
"testReportPaths": [],
"tests": []
},
{
"id": "ios-snapshot-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "vitest-related",
"status": "passed",
"command": [
"pnpm",
"exec",
"vitest",
"related",
"--run",
"--passWithNoTests",
".changeset/host-entry.md",
".fallowrc.json",
"examples/sdk/host-runtime.ts",
"examples/sdk/tsconfig.json",
"package.json",
"packages/contracts/src/client-connection.ts",
"packages/contracts/src/facades/client.ts",
"packages/daemon/src/index.ts",
"packages/daemon/src/server/http/daemon-runtime.ts",
"scripts/layering/process-globals-policy.test.ts",
"scripts/layering/process-globals-policy.ts",
"scripts/layering/root-module-zones.ts",
"src/__tests__/agent-device-client-daemon-binding.test.ts",
"src/agent-device-client.ts",
"src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"src/daemon-client/daemon-client-attach.ts",
"src/daemon-client/daemon-client-binding.ts",
"src/daemon-client/daemon-client-lifecycle.ts",
"src/daemon-client/daemon-client.ts",
"src/daemon-composition.ts",
"src/host.test.ts",
"src/host.ts",
"src/provider-device-runtimes.ts",
"test/integration/installed-package-metro.test.ts",
"test/repo-guards/package-exports.test.ts",
"tsdown.config.ts",
"website/docs/docs/client-api.md"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/14.log",
"exitCode": 0,
"durationMs": 215181,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/14.tests.50037.json"
],
"tests": [
{
"passed": 16513,
"failed": 0,
"skipped": 1,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "unit",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "unit-ci",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage, Integration Tests)"
},
{
"id": "coverage",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "coverage-crap",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "provider-integration",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "integration-progress",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:progress:check"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/20.log",
"exitCode": 0,
"durationMs": 1704,
"testReportPaths": [],
"tests": []
},
{
"id": "swift-runner-ios",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Conformance Differential / iOS Conformance Differential, XCTest Nightly / iOS Runner Full XCTest Suite)"
},
{
"id": "swift-runner-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "android-helpers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Android / Smoke Tests)"
},
{
"id": "macos-helper",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "web-smoke",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Integration Tests, Lint, Typecheck & Package)"
},
{
"id": "replay-compat",
"status": "passed",
"command": [
"pnpm",
"run",
"check:replay-compat"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/26.log",
"exitCode": 0,
"durationMs": 916,
"testReportPaths": [],
"tests": []
},
{
"id": "daemon-wire-compat",
"status": "passed",
"command": [
"pnpm",
"run",
"check:daemon-wire-compat"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/27.log",
"exitCode": 0,
"durationMs": 3019,
"testReportPaths": [],
"tests": []
},
{
"id": "affected-selector",
"status": "passed",
"command": [
"pnpm",
"run",
"check:affected:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/28.log",
"exitCode": 0,
"durationMs": 8047,
"testReportPaths": [],
"tests": []
},
{
"id": "gate-manifest",
"status": "passed",
"command": [
"pnpm",
"run",
"check:gate-manifest"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/29.log",
"exitCode": 0,
"durationMs": 1063,
"testReportPaths": [],
"tests": []
},
{
"id": "gate-manifest-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:gate-manifest:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/30.log",
"exitCode": 0,
"durationMs": 3341,
"testReportPaths": [],
"tests": []
},
{
"id": "depgraph",
"status": "passed",
"command": [
"pnpm",
"run",
"depgraph:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/31.log",
"exitCode": 0,
"durationMs": 12314,
"testReportPaths": [],
"tests": []
},
{
"id": "tmpdir-leaks",
"status": "passed",
"command": [
"pnpm",
"run",
"check:tmpdir-leaks"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/32.log",
"exitCode": 0,
"durationMs": 737,
"testReportPaths": [],
"tests": []
},
{
"id": "tmpdir-leaks-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:tmpdir-leaks:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/33.log",
"exitCode": 0,
"durationMs": 7032,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/33.tests.4503.json",
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/33.tests.4526.json"
],
"tests": [
{
"passed": 1,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
},
{
"passed": 1,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "coverage-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:coverage-changed:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/34.log",
"exitCode": 0,
"durationMs": 2525,
"testReportPaths": [],
"tests": []
},
{
"id": "coverage-crap-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:coverage-crap:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/35.log",
"exitCode": 0,
"durationMs": 14637,
"testReportPaths": [],
"tests": []
},
{
"id": "wire-compat-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:daemon-wire-compat:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/36.log",
"exitCode": 0,
"durationMs": 953,
"testReportPaths": [],
"tests": []
},
{
"id": "production-exports",
"status": "passed",
"command": [
"pnpm",
"run",
"check:production-exports"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/37.log",
"exitCode": 0,
"durationMs": 2329,
"testReportPaths": [],
"tests": []
},
{
"id": "bundle-owner-files",
"status": "passed",
"command": [
"pnpm",
"run",
"check:bundle-owner-files"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/38.log",
"exitCode": 0,
"durationMs": 723,
"testReportPaths": [],
"tests": []
},
{
"id": "freerange",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Repo Guards & Compatibility)"
},
{
"id": "fixture-cache",
"status": "passed",
"command": [
"pnpm",
"run",
"test:fixture-cache"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/40.log",
"exitCode": 0,
"durationMs": 2073,
"testReportPaths": [],
"tests": []
},
{
"id": "fixture-fallback",
"status": "passed",
"command": [
"pnpm",
"run",
"test:fixture-fallback"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/41.log",
"exitCode": 0,
"durationMs": 6735,
"testReportPaths": [],
"tests": []
},
{
"id": "command-docs",
"status": "passed",
"command": [
"pnpm",
"run",
"check:command-docs"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/42.log",
"exitCode": 0,
"durationMs": 1221,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/42.tests.26067.json"
],
"tests": [
{
"passed": 12,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "docs-links",
"status": "passed",
"command": [
"pnpm",
"run",
"check:doc-links"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/43.log",
"exitCode": 0,
"durationMs": 3184,
"testReportPaths": [],
"tests": []
},
{
"id": "docs-prose",
"status": "passed",
"command": [
"pnpm",
"run",
"check:doc-prose"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/44.log",
"exitCode": 0,
"durationMs": 1357,
"testReportPaths": [],
"tests": []
},
{
"id": "agent-guidance",
"status": "passed",
"command": [
"pnpm",
"run",
"check:agent-guidance"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/45.log",
"exitCode": 0,
"durationMs": 952,
"testReportPaths": [],
"tests": []
},
{
"id": "xctest-selection",
"status": "passed",
"command": [
"pnpm",
"run",
"check:xctest-selection"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/46.log",
"exitCode": 0,
"durationMs": 824,
"testReportPaths": [],
"tests": []
},
{
"id": "packaged-runner-swift",
"status": "passed",
"command": [
"pnpm",
"run",
"check:packaged-runner-swift"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/47.log",
"exitCode": 0,
"durationMs": 8586,
"testReportPaths": [],
"tests": []
},
{
"id": "maestro-conformance",
"status": "passed",
"command": [
"pnpm",
"run",
"maestro:conformance"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/48.log",
"exitCode": 0,
"durationMs": 2463,
"testReportPaths": [],
"tests": []
},
{
"id": "maestro-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Differential / iOS Conformance Differential)"
},
{
"id": "maestro-regenerate",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Regenerate Verify / Regenerate & Verify Fixtures)"
},
{
"id": "fuzz-parsers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Replay Nightly / Parser Fuzz Lane)"
},
{
"id": "mutation",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Mutants (${{ matrix.name }}), Mutation Weekly / Mutants (${{ matrix.name }}))"
},
{
"id": "mutation-affected",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Select harness validation kernels)"
},
{
"id": "mutation-check",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Weekly / Mutation score report)"
},
{
"id": "mutation-model",
"status": "passed",
"command": [
"pnpm",
"run",
"mutation:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-RYwqUF/55.log",
"exitCode": 0,
"durationMs": 12731,
"testReportPaths": [],
"tests": []
},
{
"id": "concurrency-torture",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Concurrency Torture Nightly / Session/lease/lock torture sweep, Integration Tests)"
},
{
"id": "replay-ios",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-ios-device",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "replay-linux",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "linux-command-evidence",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "replay-android",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / Android Full Emulator Suite)"
}
]
}Built-package live smoke used an isolated temp stateDir and session Node smoke script and full outputimport { mkdtemp } from 'node:fs/promises';
import os from 'node:os';
import path from 'node:path';
import { startAgentDevice } from 'agent-device/host';
const stateDir = await mkdtemp(path.join(os.tmpdir(), 'agent-device-3757-live-'));
const target = { platform: 'ios', udid: 'BDA9B772-A0A9-46A4-AC91-C9107FAE0277', session: 'host-3757-live' };
const host = await startAgentDevice({ stateDir });
console.log(JSON.stringify({ stateDir, entry: 'agent-device/host', ownership: 'embedded' }));
try {
const devices = await host.client.devices.list(target);
console.log(JSON.stringify({ devices: devices.map(({ id, name, platform }) => ({ id, name, platform })) }));
const opened = await host.client.apps.open({ ...target, app: 'com.apple.Preferences' });
console.log(JSON.stringify({ opened }));
const snapshot = await host.client.capture.snapshot({ ...target, interactive: true });
console.log(JSON.stringify({ snapshot }));
console.log(JSON.stringify({ sessionClosed: await host.client.sessions.close(target) }));
} finally {
console.log(JSON.stringify({ shutdownReport: await host.close() }));
}{"stateDir":"/var/folders/pn/0s6xww5x5tj2brz0nrvlx96w0000gn/T/agent-device-3757-live-1cN66N","entry":"agent-device/host","ownership":"embedded"}
{"devices":[{"id":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","name":"iPhone 18 Pro","platform":"ios"},{"id":"B83CF61F-1CEA-452A-8750-B77C14C74F98","name":"apex-2758-rn","platform":"ios"},{"id":"A149E1A0-1BBE-4F0E-B981-7E261206D043","name":"bench-golden-v1","platform":"ios"},{"id":"7E76ECA9-D40C-4833-A711-F870F8CE9363","name":"bench-golden-v2","platform":"ios"},{"id":"0E0FCBDC-88E2-4CB6-A1DA-E148F77743F4","name":"iPhone 17","platform":"ios"},{"id":"BC54AC11-CD86-4C10-8C4E-5101C773FFEB","name":"iPhone 17 Pro","platform":"ios"},{"id":"DBEA214F-555F-4DDA-B62B-E34285CE63DB","name":"iPhone 17 Pro Max","platform":"ios"},{"id":"F25C7515-D67E-4838-BEAC-0AD08DB056EC","name":"iPhone 17e","platform":"ios"},{"id":"1C2C9FD4-B720-4160-BAEB-7D4724D7B5F3","name":"iPhone 18 Pro Max","platform":"ios"},{"id":"1B89356B-961C-4993-B0BE-4C0F3917D995","name":"iPhone Air","platform":"ios"},{"id":"4F879835-4AB3-4046-B033-5AB769209DD4","name":"iPhone Duo","platform":"ios"},{"id":"9542F4F5-51D1-4F5D-B3C9-02D78A69F0D9","name":"iPhone Duo","platform":"ios"},{"id":"79AC7886-EA61-4F02-9090-78285ACB2BA4","name":"pr3825-live-ad4","platform":"ios"},{"id":"A14201BD-0C41-4ECB-94D9-1E6F152BCD40","name":"iPad (A16)","platform":"ios"},{"id":"26CA145D-29F1-40A8-873D-8EE69BCFCA71","name":"iPad Air 11-inch (M4)","platform":"ios"},{"id":"88A96121-4ED4-423C-973D-38B60D5BBF17","name":"iPad Air 13-inch (M4)","platform":"ios"},{"id":"3913B067-2886-40C7-9504-21412FCA2A94","name":"iPad mini (A17 Pro)","platform":"ios"},{"id":"9D075F91-A796-49ED-8C83-947137E611B6","name":"iPad Pro 11-inch (M5)","platform":"ios"},{"id":"94E640D3-5ED2-456F-A408-2622CE3E1A35","name":"iPad Pro 13-inch (M5)","platform":"ios"}]}
{"opened":{"session":"host-3757-live","sessionStateDir":"/var/folders/pn/0s6xww5x5tj2brz0nrvlx96w0000gn/T/agent-device-3757-live-1cN66N/sessions/host-3757-live","runnerLogPath":"/var/folders/pn/0s6xww5x5tj2brz0nrvlx96w0000gn/T/agent-device-3757-live-1cN66N/sessions/host-3757-live/runner.log","requestLogPath":"/var/folders/pn/0s6xww5x5tj2brz0nrvlx96w0000gn/T/agent-device-3757-live-1cN66N/sessions/host-3757-live/requests/7ec1c33be597662f.ndjson","eventLogPath":"/var/folders/pn/0s6xww5x5tj2brz0nrvlx96w0000gn/T/agent-device-3757-live-1cN66N/sessions/host-3757-live/events.ndjson","appName":"com.apple.Preferences","appBundleId":"com.apple.Preferences","appId":"com.apple.Preferences","selection":{"reason":"explicit-selector","source":"local","candidateCount":1,"bootOccurred":false},"startup":{"durationMs":6955,"measuredAt":"2026-10-20T09:19:25.105Z","method":"open-command-roundtrip","appTarget":"com.apple.Preferences","appBundleId":"com.apple.Preferences"},"device":{"platform":"ios","target":"mobile","id":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","name":"iPhone 18 Pro","identifiers":{"deviceId":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","deviceName":"iPhone 18 Pro","udid":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277"},"ios":{"udid":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","simulatorSetPath":null}},"identifiers":{"session":"host-3757-live","deviceId":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","deviceName":"iPhone 18 Pro","udid":"BDA9B772-A0A9-46A4-AC91-C9107FAE0277","appId":"com.apple.Preferences","appBundleId":"com.apple.Preferences"}}}
{"snapshot":{"nodes":[{"index":0,"rect":{"x":0,"y":0,"width":402,"height":874},"label":"Settings","depth":0,"type":"Application","hittable":false,"enabled":true,"ref":"e1","kind":"application"},{"index":1,"rect":{"x":0,"y":0,"width":402,"height":874},"label":"Toolbar","depth":1,"type":"Other","hittable":true,"parentIndex":0,"enabled":true,"ref":"e2","kind":"other"},{"index":2,"rect":{"x":0,"y":0,"width":402,"height":874},"label":"Settings","depth":2,"type":"Other","hittable":true,"parentIndex":1,"enabled":true,"ref":"e3","kind":"other"},{"index":3,"identifier":"Settings","rect":{"x":0,"y":62,"width":402,"height":106},"label":"Settings","depth":3,"type":"NavigationBar","hittable":true,"parentIndex":2,"enabled":true,"ref":"e4","kind":"navigation-bar"},{"index":4,"rect":{"x":16,"y":119.66666666666667,"width":133,"height":40.66666666666667},"label":"Settings","depth":4,"type":"StaticText","hittable":true,"parentIndex":3,"enabled":true,"ref":"e5","kind":"text"},{"index":5,"rect":{"x":0,"y":0,"width":402,"height":874},"label":"Vertical scroll bar, 2 pages","depth":3,"type":"Other","hittable":true,"parentIndex":2,"enabled":true,"ref":"e6","kind":"other"},{"index":6,"identifier":"com.apple.settings.sidebar.collectionView","rect":{"x":0,"y":0,"width":402,"height":874},"label":"Vertical scroll bar, 2 pages","depth":4,"type":"CollectionView","hittable":true,"parentIndex":5,"enabled":true,"ref":"e7","kind":"collection"},{"index":7,"rect":{"x":16,"y":168,"width":370,"height":90.33333333333331},"label":"Apple Account, Sign in to access your iCloud data, the App Store, Apple services, and more.","depth":5,"type":"Cell","hittable":true,"parentIndex":6,"enabled":true,"ref":"e8","kind":"cell"},{"index":8,"rect":{"x":16,"y":168,"width":370,"height":90.33333333333331},"label":"Apple Account, Sign in to access your iCloud data, the App Store, Apple services, and more.","depth":6,"type":"Other","hittable":true,"parentIndex":7,"enabled":true,"ref":"e9","kind":"other"},{"index":9,"identifier":"com.apple.settings.primaryAppleAccount","rect":{"x":16,"y":168,"width":370,"height":90.33333333333331},"label":"Apple Account, Sign in to access your iCloud data, the App Store, Apple services, and more.","depth":7,"type":"Button","hittable":true,"parentIndex":8,"enabled":true,"ref":"e10","kind":"button"},{"index":10,"identifier":"apple.id","rect":{"x":32,"y":183,"width":60,"height":60.333333333333314},"label":"apple.id","depth":8,"type":"Image","hittable":true,"parentIndex":9,"enabled":true,"ref":"e11","kind":"image"},{"index":11,"rect":{"x":100,"y":183,"width":138.33333333333331,"height":24},"label":"Apple Account","depth":8,"type":"StaticText","hittable":true,"parentIndex":9,"enabled":true,"ref":"e12","kind":"text"},{"index":12,"rect":{"x":100,"y":209.66666666666666,"width":236,"height":33.66666666666666},"label":"Sign in to access your iCloud data, the App Store, Apple services, and more.","depth":8,"type":"StaticText","hittable":true,"parentIndex":9,"enabled":true,"ref":"e13","kind":"text"},{"index":13,"identifier":"chevron.forward","rect":{"x":360.6666666666667,"y":207,"width":7,"height":12},"depth":8,"type":"Image","hittable":true,"parentIndex":9,"enabled":true,"ref":"e14","kind":"image"},{"index":14,"rect":{"x":16,"y":293.3333333333333,"width":370,"height":52},"label":"General","depth":5,"type":"Cell","hittable":true,"parentIndex":6,"enabled":true,"ref":"e15","kind":"cell"},{"index":15,"rect":{"x":16,"y":293.3333333333333,"width":370,"height":52},"label":"General","depth":6,"type":"Other","hittable":true,"parentIndex":14,"enabled":true,"ref":"e16","kind":"other"},{"index":16,"identifier":"com.apple.settings.general","rect":{"x":16,"y":293.3333333333333,"width":370,"height":52},"label":"General","depth":7,"type":"Button","hittable":true,"parentIndex":15,"enabled":true,"ref":"e17","kind":"button"},{"index":17,"rect":{"x":30,"y":305.3333435058594,"width":101.33332824707031,"height":28},"label":"General","depth":8,"type":"StaticText","hittable":true,"parentIndex":16,"enabled":true,"ref":"e18","kind":"text"},{"index":18,"identifier":"chevron.forward","rect":{"x":360.6666666666667,"y":313.3333333333333,"width":7,"height":12},"depth":8,"type":"Image","hittable":true,"parentIndex":16,"enabled":true,"ref":"e19","kind":"image"},{"index":19,"rect":{"x":16,"y":345.33333333333337,"width":370,"height":52},"label":"Accessibility","depth":5,"type":"Cell","hittable":true,"parentIndex":6,"enabled":true,"ref":"e20","kind":"cell"},{"depth":6,"label":"Accessibility","rect":{"x":16,"y":345.33333333333337,"width":370,"height":52},"hittable":true,"index":20,"enabled":true,"type":"Other","parentIndex":19,"ref":"e21","kind":"other"},{"depth":7,"label":"Accessibility","identifier":"com.apple.settings.accessibility","rect":{"x":16,"y":345.33333333333337,"width":370,"height":52},"hittable":true,"enabled":true,"index":21,"type":"Button","parentIndex":20,"ref":"e22","kind":"button"},{"depth":8,"label":"Accessibility","rect":{"x":30,"y":357.3333435058594,"width":136.66665649414062,"height":28},"hittable":true,"index":22,"enabled":true,"type":"StaticText","parentIndex":21,"ref":"e23","kind":"text"},{"depth":8,"identifier":"chevron.forward","rect":{"x":360.6666666666667,"y":365.33333333333337,"width":7,"height":12},"hittable":true,"index":23,"enabled":true,"type":"Image","parentIndex":21,"ref":"e24","kind":"image"},{"depth":5,"label":"Action Button","rect":{"x":16,"y":397.33333333333337,"width":370,"height":52},"hittable":true,"index":24,"enabled":true,"type":"Cell","parentIndex":6,"ref":"e25","kind":"cell"},{"depth":6,"label":"Action Button","rect":{"x":16,"y":397.33333333333337,"width":370,"height":52},"hittable":true,"index":25,"enabled":true,"type":"Other","parentIndex":24,"ref":"e26","kind":"other"},{"depth":7,"label":"Action Button","identifier":"com.apple.settings.actionButton","rect":{"x":16,"y":397.33333333333337,"width":370,"height":52},"hittable":true,"enabled":true,"index":26,"type":"Button","parentIndex":25,"ref":"e27","kind":"button"},{"depth":8,"label":"Action Button","rect":{"x":30,"y":409.3333435058594,"width":145.66665649414062,"height":28},"hittable":true,"index":27,"enabled":true,"type":"StaticText","parentIndex":26,"ref":"e28","kind":"text"},{"depth":8,"identifier":"chevron.forward","rect":{"x":360.6666666666667,"y":417.33333333333337,"width":7,"height":12},"hittable":true,"index":28,"enabled":true,"type":"Image","parentIndex":26,"ref":"e29","kind":"image"},{"depth":5,"label":"Appearance","rect":{"x":16,"y":449.3333333333333,"width":370,"height":52},"hittable":true,"index":29,"enabled":true,"type":"Cell","parentIndex":6,"ref":"e30","kind":"cell"},{"depth":6,"label":"Appearance","rect":{"x":16,"y":449.3333333333333,"width":370,"height":52},"hittable":true,"index":30,"enabled":true,"type":"Other","parentIndex":29,"ref":"e31","kind":"other"},{"depth":7,"label":"Appearance","identifier":"com.apple.settings.appearance","rect":{"x":16,"y":449.3333333333333,"width":370,"height":52},"hittable":true,"enabled":true,"index":31,"type":"Button","parentIndex":30,"ref":"e32","kind":"button"},{"depth":8,"label":"Appearance","rect":{"x":30,"y":461.3333435058594,"width":134,"height":28},"hittable":true,"index":32,"enabled":true,"type":"StaticText","parentIndex":31,"ref":"e33","kind":"text"},{"depth":8,"identifier":"chevron.forward","rect":{"x":360.6666666666667,"y":469.3333333333333,"width":7,"height":12},"hittable":true,"index":33,"enabled":true,"type":"Image","parentIndex":31,"ref":"e34","kind":"image"},{"depth":5,"label":"Camera","rect":{"y":501.3333333333333,"width":370,"height":51.99999999999994,"x":16},"hittable":true,"index":34,"enabled":true,"type":"Cell","parentIndex":6,"ref":"e35","kind":"cell"},{"depth":6,"label":"Camera","rect":{"y":501.3333333333333,"width":370,"height":51.99999999999994,"x":16},"hittable":true,"index":35,"enabled":true,"type":"Other","parentIndex":34,"ref":"e36","kind":"other"},{"depth":7,"identifier":"com.apple.settings.camera","label":"Camera","rect":{"y":501.3333333333333,"width":370,"height":51.99999999999994,"x":16},"hittable":true,"index":36,"enabled":true,"type":"Button","parentIndex":35,"ref":"e37","kind":"button"},{"depth":8,"label":"Camera","rect":{"y":513.3333129882812,"width":101.33332824707031,"height":28,"x":30},"hittable":true,"index":37,"enabled":true,"type":"StaticText","parentIndex":36,"ref":"e38","kind":"text"},{"depth":8,"identifier":"chevron.forward","rect":{"y":521.3333333333333,"width":7,"height":12,"x":360.6666666666667},"hittable":true,"index":38,"enabled":true,"type":"Image","parentIndex":36,"ref":"e39","kind":"image"},{"depth":5,"label":"Home Screen & App Library","rect":{"y":553.3333333333333,"width":370,"height":52,"x":16},"hittable":true,"index":39,"enabled":true,"type":"Cell","parentIndex":6,"ref":"e40","kind":"cell"},{"depth":6,"label":"Home Screen & App Library","rect":{"y":553.3333333333333,"width":370,"height":52,"x":16},"hittable":true,"index":40,"enabled":true,"type":"Other","parentIndex":39,"ref":"e41","kind":"other"},{"index":41,"parentIndex":40,"type":"Button","identifier":"com.apple.settings.homeScreen","hittable":true,"rect":{"y":553.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Home Screen & App Library","depth":7,"ref":"e42","kind":"button"},{"index":42,"parentIndex":41,"hittable":true,"type":"StaticText","rect":{"y":565.3333129882812,"width":253.66668701171875,"height":28,"x":30},"enabled":true,"label":"Home Screen & App Library","depth":8,"ref":"e43","kind":"text"},{"index":43,"parentIndex":41,"type":"Image","identifier":"chevron.forward","hittable":true,"rect":{"y":573.3333333333333,"width":7,"height":12,"x":360.6666666666667},"enabled":true,"depth":8,"ref":"e44","kind":"image"},{"index":44,"parentIndex":6,"hittable":true,"type":"Cell","rect":{"y":605.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Search","depth":5,"ref":"e45","kind":"cell"},{"index":45,"parentIndex":44,"hittable":true,"type":"Other","rect":{"y":605.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Search","depth":6,"ref":"e46","kind":"other"},{"index":46,"parentIndex":45,"type":"Button","identifier":"com.apple.settings.search","hittable":true,"rect":{"y":605.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Search","depth":7,"ref":"e47","kind":"button"},{"index":47,"parentIndex":46,"hittable":true,"type":"StaticText","rect":{"y":617.3333129882812,"width":95.33332824707031,"height":28,"x":30},"enabled":true,"label":"Search","depth":8,"ref":"e48","kind":"text"},{"index":48,"parentIndex":46,"type":"Image","identifier":"chevron.forward","hittable":true,"rect":{"y":625.3333333333333,"width":7,"height":12,"x":360.6666666666667},"enabled":true,"depth":8,"ref":"e49","kind":"image"},{"index":49,"parentIndex":6,"hittable":true,"type":"Cell","rect":{"y":657.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Siri","depth":5,"ref":"e50","kind":"cell"},{"index":50,"parentIndex":49,"hittable":true,"type":"Other","rect":{"y":657.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Siri","depth":6,"ref":"e51","kind":"other"},{"index":51,"parentIndex":50,"type":"Button","identifier":"com.apple.settings.siri","hittable":true,"rect":{"y":657.3333333333333,"width":370,"height":52,"x":16},"enabled":true,"label":"Siri","depth":7,"ref":"e52","kind":"button"},{"index":52,"parentIndex":51,"hittable":true,"type":"StaticText","rect":{"y":669.3333129882812,"width":66,"height":28,"x":30},"enabled":true,"label":"Siri","depth":8,"ref":"e53","kind":"text"},{"index":53,"parentIndex":51,"type":"Image","identifier":"chevron.forward","hittable":true,"rect":{"y":677.3333333333333,"width":7,"height":12,"x":360.6666666666667},"enabled":true,"depth":8,"ref":"e54","kind":"image"},{"index":54,"parentIndex":6,"hittable":true,"type":"Cell","rect":{"y":709.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"StandBy","depth":5,"ref":"e55","kind":"cell"},{"index":55,"parentIndex":54,"hittable":true,"type":"Other","rect":{"y":709.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"StandBy","depth":6,"ref":"e56","kind":"other"},{"index":56,"parentIndex":55,"type":"Button","identifier":"com.apple.settings.standBy","hittable":true,"rect":{"y":709.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"StandBy","depth":7,"ref":"e57","kind":"button"},{"index":57,"parentIndex":56,"hittable":true,"type":"StaticText","rect":{"y":721.3333129882812,"width":106.33334350585938,"height":28,"x":30},"enabled":true,"label":"StandBy","depth":8,"ref":"e58","kind":"text"},{"index":58,"parentIndex":56,"type":"Image","identifier":"chevron.forward","hittable":true,"rect":{"y":729.3333333333334,"width":7,"height":12,"x":360.6666666666667},"enabled":true,"depth":8,"ref":"e59","kind":"image"},{"index":59,"parentIndex":6,"hittable":true,"type":"Cell","rect":{"y":796.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"Screen Time","depth":5,"ref":"e60","kind":"cell"},{"index":60,"parentIndex":59,"hittable":true,"type":"Other","rect":{"y":796.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"Screen Time","depth":6,"ref":"e61","kind":"other"},{"index":61,"parentIndex":60,"type":"Button","identifier":"com.apple.settings.screenTime","hittable":true,"rect":{"y":796.3333333333334,"width":370,"height":52,"x":16},"enabled":true,"label":"Screen Time","depth":7,"ref":"e62","kind":"button"},{"index":62,"hittable":true,"depth":8,"type":"StaticText","rect":{"y":808.3333129882812,"width":137.33334350585938,"height":28,"x":30},"parentIndex":61,"enabled":true,"label":"Screen Time","ref":"e63","kind":"text"},{"index":63,"hittable":true,"depth":8,"type":"Image","rect":{"y":816.3333333333334,"width":7,"height":12,"x":360.6666666666667},"parentIndex":61,"enabled":true,"identifier":"chevron.forward","ref":"e64","kind":"image"},{"index":64,"hittable":true,"depth":5,"type":"Other","rect":{"y":116,"width":30,"height":696,"x":369},"parentIndex":6,"enabled":true,"label":"Vertical scroll bar, 2 pages","value":"0%","ref":"e65","kind":"other"},{"index":65,"hittable":true,"depth":3,"type":"Toolbar","rect":{"y":0,"width":402,"height":874,"x":0},"parentIndex":2,"enabled":true,"label":"Toolbar","identifier":"Toolbar","ref":"e66","kind":"toolbar"},{"index":66,"hittable":false,"depth":4,"type":"Other","rect":{"y":62,"width":0,"height":0,"x":0},"parentIndex":65,"enabled":true,"label":"Search","ref":"e67","kind":"other"},{"index":67,"hittable":true,"depth":5,"type":"Other","rect":{"y":798,"width":346,"height":48,"x":28},"parentIndex":66,"enabled":true,"label":"Search","ref":"e68","kind":"other"},{"index":68,"hittable":true,"depth":6,"type":"Other","rect":{"y":808,"height":28,"x":28,"width":346},"parentIndex":67,"enabled":true,"label":"Search","ref":"e69","kind":"other"},{"index":69,"placeholder":"Search","hittable":true,"depth":7,"type":"SearchField","rect":{"x":28,"y":808,"width":346,"height":28},"parentIndex":68,"enabled":true,"label":"Search","password":false,"editable":true,"ref":"e70","kind":"search"},{"index":70,"hittable":true,"depth":8,"type":"Button","rect":{"x":341.6666666666667,"width":17.333333333333314,"y":811,"height":22},"parentIndex":69,"enabled":true,"label":"Dictate","identifier":"Dictate","ref":"e71","kind":"button"},{"index":71,"hittable":true,"depth":8,"type":"Image","rect":{"x":40,"width":20.66666666666667,"y":812,"height":19.33333333333337},"parentIndex":69,"enabled":true,"label":"Search","identifier":"magnifyingglass","ref":"e72","kind":"image"}],"truncated":false,"appName":"com.apple.Preferences","appBundleId":"com.apple.Preferences","keyboard":{"kind":"absent"},"viewport":{"width":402,"height":874},"presentedSurface":"unknown","visibility":{"partial":true,"visibleNodeCount":72,"totalNodeCount":72,"reasons":["scroll-hidden-below"]},"snapshotQuality":{"state":"healthy","backend":"tree","timing":{"acquisitionMs":237.25104331970215,"presentationMs":0.33402442932128906}},"warnings":["Simulator AX snapshot unavailable (circuit-disabled); used XCTest for this app generation."],"snapshotDiagnostics":{"stats":{"count":2,"p50Ms":648,"p95Ms":35174,"maxMs":35174,"slowThresholdMs":1500,"platform":"ios","backends":{"xctest":2}}},"refsGeneration":293614,"identifiers":{"session":"host-3757-live","appId":"com.apple.Preferences","appBundleId":"com.apple.Preferences"}}}
{"sessionClosed":{"session":"host-3757-live","identifiers":{"session":"host-3757-live"}}}
{"shutdownReport":{"providerReleases":{"completed":[],"pending":[],"unknown":[]},"requests":{"drained":0,"abandoned":0},"platformOwners":"closed","runners":{"stopped":["BDA9B772-A0A9-46A4-AC91-C9107FAE0277"],"handedOff":[]},"sessions":{"closed":0,"failed":0},"plugins":{"disposed":["browserstack","aws-device-farm"],"failed":[],"pending":[]}}}
Compared with the prior two unpushed commits: use main’s single record reader and centralized retirement, retain main’s direct-close completion and entered runtime store, pass an explicit captured host to client construction, publish the required |
|
Size Report
Startup median (7 runs, lower is better):
|
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Current head: The packed consumer now imports its fixture plugin from a standalone module inside the installed consumer. Independent review of this test-only delta found no findings. Production code is identical to the live-run source posted above.
CI size review of the unchanged production code: +17.9 kB unpacked / +6.1 kB download. The independent reviewer found no material design reduction needed: the host reuses runtime/registration/shutdown/registry owners, adds no dependency or parallel lifecycle framework, and the host entry itself is 2,893 bytes. Current exact-head receipt{
"status": "passed",
"exitCode": 0,
"refs": {
"base": "origin/main",
"head": "HEAD",
"resolvedBase": "620228b8ca67a69a108fa4fc5041fdd88880b792",
"resolvedHead": "d7ece9964d8b07e5e929671977729432fffb3b69",
"mergeBase": "620228b8ca67a69a108fa4fc5041fdd88880b792"
},
"checkoutChanged": false,
"exactCommit": true,
"startedAt": "2026-10-20T09:35:57.892Z",
"finishedAt": "2026-10-20T09:42:21.277Z",
"checks": [
{
"id": "format",
"status": "passed",
"exitCode": 0
},
{
"id": "lint",
"status": "passed",
"exitCode": 0
},
{
"id": "typecheck",
"status": "passed",
"exitCode": 0
},
{
"id": "test-app-typecheck",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "test-app-security",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "layering",
"status": "passed",
"exitCode": 0
},
{
"id": "di-seams",
"status": "passed",
"exitCode": 0
},
{
"id": "fallow",
"status": "passed",
"exitCode": 0
},
{
"id": "mcp-metadata",
"status": "passed",
"exitCode": 0
},
{
"id": "build",
"status": "passed",
"exitCode": 0
},
{
"id": "package",
"status": "passed",
"exitCode": 0
},
{
"id": "integration-node",
"status": "passed",
"exitCode": 0
},
{
"id": "macos-coverage",
"status": "passed",
"exitCode": 0
},
{
"id": "ios-snapshot-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "vitest-related",
"status": "passed",
"exitCode": 0
},
{
"id": "unit",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "unit-ci",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage, Integration Tests)"
},
{
"id": "coverage",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "coverage-crap",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "provider-integration",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "integration-progress",
"status": "passed",
"exitCode": 0
},
{
"id": "swift-runner-ios",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Conformance Differential / iOS Conformance Differential, XCTest Nightly / iOS Runner Full XCTest Suite)"
},
{
"id": "swift-runner-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "android-helpers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Android / Smoke Tests)"
},
{
"id": "macos-helper",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "web-smoke",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Integration Tests, Lint, Typecheck & Package)"
},
{
"id": "replay-compat",
"status": "passed",
"exitCode": 0
},
{
"id": "daemon-wire-compat",
"status": "passed",
"exitCode": 0
},
{
"id": "affected-selector",
"status": "passed",
"exitCode": 0
},
{
"id": "gate-manifest",
"status": "passed",
"exitCode": 0
},
{
"id": "gate-manifest-model",
"status": "passed",
"exitCode": 0
},
{
"id": "depgraph",
"status": "passed",
"exitCode": 0
},
{
"id": "tmpdir-leaks",
"status": "passed",
"exitCode": 0
},
{
"id": "tmpdir-leaks-model",
"status": "passed",
"exitCode": 0
},
{
"id": "coverage-model",
"status": "passed",
"exitCode": 0
},
{
"id": "coverage-crap-model",
"status": "passed",
"exitCode": 0
},
{
"id": "wire-compat-model",
"status": "passed",
"exitCode": 0
},
{
"id": "production-exports",
"status": "passed",
"exitCode": 0
},
{
"id": "bundle-owner-files",
"status": "passed",
"exitCode": 0
},
{
"id": "freerange",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Repo Guards & Compatibility)"
},
{
"id": "fixture-cache",
"status": "passed",
"exitCode": 0
},
{
"id": "fixture-fallback",
"status": "passed",
"exitCode": 0
},
{
"id": "command-docs",
"status": "passed",
"exitCode": 0
},
{
"id": "docs-links",
"status": "passed",
"exitCode": 0
},
{
"id": "docs-prose",
"status": "passed",
"exitCode": 0
},
{
"id": "agent-guidance",
"status": "passed",
"exitCode": 0
},
{
"id": "xctest-selection",
"status": "passed",
"exitCode": 0
},
{
"id": "packaged-runner-swift",
"status": "passed",
"exitCode": 0
},
{
"id": "maestro-conformance",
"status": "passed",
"exitCode": 0
},
{
"id": "maestro-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Differential / iOS Conformance Differential)"
},
{
"id": "maestro-regenerate",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Regenerate Verify / Regenerate & Verify Fixtures)"
},
{
"id": "fuzz-parsers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Replay Nightly / Parser Fuzz Lane)"
},
{
"id": "mutation",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Mutants (${{ matrix.name }}), Mutation Weekly / Mutants (${{ matrix.name }}))"
},
{
"id": "mutation-affected",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Select harness validation kernels)"
},
{
"id": "mutation-check",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Weekly / Mutation score report)"
},
{
"id": "mutation-model",
"status": "passed",
"exitCode": 0
},
{
"id": "concurrency-torture",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Concurrency Torture Nightly / Session/lease/lock torture sweep, Integration Tests)"
},
{
"id": "replay-ios",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-ios-device",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "replay-linux",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "linux-command-evidence",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "replay-android",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / Android Full Emulator Suite)"
}
]
} |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
At d7ece99, the pinned attach path has a gap that needs a fix before merge. I did not run the version-skew case. This finding comes from reading the code. Not blocking, and you can take or leave these: Does the pin fit as a predicate inside The failed iOS smoke check looks unrelated to this change. The live iOS host run is the author's, posted for 7c2dfc7. I only checked that production code is unchanged up to d7ece99, and I did not re-run the size assessment or the affected-check receipts. Before merge, a pinned client must also pass the attach compatibility check and refuse a stale daemon with |
|
CI follow-up at The previous Apple run failed in the TypeScript iOS fixture scenario at Added the existing bounded Attribution limits: the same pre-fix navigation/click sequence passed 10/10 on exact base The checked-in full smoke entry point on the new head passed 22/22, zero skips, including all seven live scenarios: AGENT_DEVICE_FIXTURE_APP_ID=com.callstack.agentdevicelab \
AGENT_DEVICE_FIXTURE_APP_PATH=<repacked Release fixture.app> \
AGENT_DEVICE_IOS_E2E=1 AGENT_DEVICE_IOS_E2E_TIER=smoke \
AGENT_DEVICE_IOS_UDID=BDA9B772-A0A9-46A4-AC91-C9107FAE0277 \
AGENT_DEVICE_STATE_DIR=<isolated stateDir> \
node --experimental-strip-types scripts/node-test-tmpdir.ts --test \
test/integration/smoke-ios-simulator-coverage.test.ts \
test/integration/smoke-ios-simulator.test.tsThe simulator keyboard preference was restored; owned sessions/daemon were closed. The disposable base checkout was removed. The built host-entry live evidence above is unchanged (this delta changes test readiness only).
Exact-head receipt run-4abtUk{
"version": 1,
"cwd": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry",
"startedAt": "2026-10-20T10:36:00.516Z",
"status": "passed",
"exitCode": 0,
"refs": {
"base": "origin/main",
"head": "HEAD",
"resolvedBase": "620228b8ca67a69a108fa4fc5041fdd88880b792",
"resolvedHead": "c59deb41049a4fe52359702e3e7fbeb3e730e0db",
"mergeBase": "620228b8ca67a69a108fa4fc5041fdd88880b792"
},
"checkoutChanged": false,
"exactCommit": true,
"results": [
{
"id": "format",
"status": "passed",
"command": [
"pnpm",
"run",
"format:check"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/0.log",
"exitCode": 0,
"durationMs": 1367,
"testReportPaths": [],
"tests": []
},
{
"id": "lint",
"status": "passed",
"command": [
"pnpm",
"run",
"lint"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/1.log",
"exitCode": 0,
"durationMs": 2193,
"testReportPaths": [],
"tests": []
},
{
"id": "typecheck",
"status": "passed",
"command": [
"pnpm",
"run",
"typecheck"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/2.log",
"exitCode": 0,
"durationMs": 1398,
"testReportPaths": [],
"tests": []
},
{
"id": "test-app-typecheck",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "test-app-security",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Test App Build Cache / Resolve native fingerprint)"
},
{
"id": "layering",
"status": "passed",
"command": [
"pnpm",
"run",
"check:layering"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/5.log",
"exitCode": 0,
"durationMs": 22772,
"testReportPaths": [],
"tests": []
},
{
"id": "di-seams",
"status": "passed",
"command": [
"pnpm",
"run",
"check:di-seams"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/6.log",
"exitCode": 0,
"durationMs": 1360,
"testReportPaths": [],
"tests": []
},
{
"id": "fallow",
"status": "passed",
"command": [
"pnpm",
"run",
"check:fallow",
"--base",
"620228b8ca67a69a108fa4fc5041fdd88880b792"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/7.log",
"exitCode": 0,
"durationMs": 7464,
"testReportPaths": [],
"tests": []
},
{
"id": "mcp-metadata",
"status": "passed",
"command": [
"pnpm",
"run",
"check:mcp-metadata"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/8.log",
"exitCode": 0,
"durationMs": 605,
"testReportPaths": [],
"tests": []
},
{
"id": "build",
"status": "passed",
"command": [
"pnpm",
"run",
"build"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/9.log",
"exitCode": 0,
"durationMs": 4982,
"testReportPaths": [],
"tests": []
},
{
"id": "package",
"status": "passed",
"command": [
"pnpm",
"run",
"check:package"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/10.log",
"exitCode": 0,
"durationMs": 6681,
"testReportPaths": [],
"tests": []
},
{
"id": "integration-node",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:node"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/11.log",
"exitCode": 0,
"durationMs": 26461,
"testReportPaths": [],
"tests": []
},
{
"id": "macos-coverage",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:macos-coverage"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/12.log",
"exitCode": 0,
"durationMs": 1057,
"testReportPaths": [],
"tests": []
},
{
"id": "ios-snapshot-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "vitest-related",
"status": "passed",
"command": [
"pnpm",
"exec",
"vitest",
"related",
"--run",
"--passWithNoTests",
".changeset/host-entry.md",
".fallowrc.json",
"examples/sdk/host-runtime.ts",
"examples/sdk/tsconfig.json",
"package.json",
"packages/contracts/src/client-connection.ts",
"packages/contracts/src/facades/client.ts",
"packages/daemon/src/index.ts",
"packages/daemon/src/server/http/daemon-runtime.ts",
"scripts/layering/process-globals-policy.test.ts",
"scripts/layering/process-globals-policy.ts",
"scripts/layering/root-module-zones.ts",
"src/__tests__/agent-device-client-daemon-binding.test.ts",
"src/agent-device-client.ts",
"src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"src/daemon-client/daemon-client-attach.ts",
"src/daemon-client/daemon-client-binding.ts",
"src/daemon-client/daemon-client-lifecycle.ts",
"src/daemon-client/daemon-client.ts",
"src/daemon-composition.ts",
"src/host.test.ts",
"src/host.ts",
"src/provider-device-runtimes.ts",
"test/integration/installed-package-metro.test.ts",
"test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"test/repo-guards/package-exports.test.ts",
"tsdown.config.ts",
"website/docs/docs/client-api.md"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/14.log",
"exitCode": 0,
"durationMs": 210006,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/14.tests.89700.json"
],
"tests": [
{
"passed": 16513,
"failed": 0,
"skipped": 1,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "unit",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "unit-ci",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage, Integration Tests)"
},
{
"id": "coverage",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "coverage-crap",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Coverage)"
},
{
"id": "provider-integration",
"status": "deduplicated",
"reason": "covered by related tests"
},
{
"id": "integration-progress",
"status": "passed",
"command": [
"pnpm",
"run",
"test:integration:progress:check"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/20.log",
"exitCode": 0,
"durationMs": 1706,
"testReportPaths": [],
"tests": []
},
{
"id": "swift-runner-ios",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Conformance Differential / iOS Conformance Differential, XCTest Nightly / iOS Runner Full XCTest Suite)"
},
{
"id": "swift-runner-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "android-helpers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Android / Smoke Tests)"
},
{
"id": "macos-helper",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "web-smoke",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests, Integration Tests, Lint, Typecheck & Package)"
},
{
"id": "replay-compat",
"status": "passed",
"command": [
"pnpm",
"run",
"check:replay-compat"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/26.log",
"exitCode": 0,
"durationMs": 932,
"testReportPaths": [],
"tests": []
},
{
"id": "daemon-wire-compat",
"status": "passed",
"command": [
"pnpm",
"run",
"check:daemon-wire-compat"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/27.log",
"exitCode": 0,
"durationMs": 3026,
"testReportPaths": [],
"tests": []
},
{
"id": "affected-selector",
"status": "passed",
"command": [
"pnpm",
"run",
"check:affected:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/28.log",
"exitCode": 0,
"durationMs": 8114,
"testReportPaths": [],
"tests": []
},
{
"id": "gate-manifest",
"status": "passed",
"command": [
"pnpm",
"run",
"check:gate-manifest"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/29.log",
"exitCode": 0,
"durationMs": 1031,
"testReportPaths": [],
"tests": []
},
{
"id": "gate-manifest-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:gate-manifest:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/30.log",
"exitCode": 0,
"durationMs": 3115,
"testReportPaths": [],
"tests": []
},
{
"id": "depgraph",
"status": "passed",
"command": [
"pnpm",
"run",
"depgraph:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/31.log",
"exitCode": 0,
"durationMs": 10800,
"testReportPaths": [],
"tests": []
},
{
"id": "tmpdir-leaks",
"status": "passed",
"command": [
"pnpm",
"run",
"check:tmpdir-leaks"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/32.log",
"exitCode": 0,
"durationMs": 733,
"testReportPaths": [],
"tests": []
},
{
"id": "tmpdir-leaks-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:tmpdir-leaks:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/33.log",
"exitCode": 0,
"durationMs": 7148,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/33.tests.59451.json",
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/33.tests.59475.json"
],
"tests": [
{
"passed": 1,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
},
{
"passed": 1,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "coverage-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:coverage-changed:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/34.log",
"exitCode": 0,
"durationMs": 2525,
"testReportPaths": [],
"tests": []
},
{
"id": "coverage-crap-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:coverage-crap:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/35.log",
"exitCode": 0,
"durationMs": 14399,
"testReportPaths": [],
"tests": []
},
{
"id": "wire-compat-model",
"status": "passed",
"command": [
"pnpm",
"run",
"check:daemon-wire-compat:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/36.log",
"exitCode": 0,
"durationMs": 948,
"testReportPaths": [],
"tests": []
},
{
"id": "production-exports",
"status": "passed",
"command": [
"pnpm",
"run",
"check:production-exports"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/37.log",
"exitCode": 0,
"durationMs": 2313,
"testReportPaths": [],
"tests": []
},
{
"id": "bundle-owner-files",
"status": "passed",
"command": [
"pnpm",
"run",
"check:bundle-owner-files"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/38.log",
"exitCode": 0,
"durationMs": 726,
"testReportPaths": [],
"tests": []
},
{
"id": "freerange",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Repo Guards & Compatibility)"
},
{
"id": "fixture-cache",
"status": "passed",
"command": [
"pnpm",
"run",
"test:fixture-cache"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/40.log",
"exitCode": 0,
"durationMs": 2025,
"testReportPaths": [],
"tests": []
},
{
"id": "fixture-fallback",
"status": "passed",
"command": [
"pnpm",
"run",
"test:fixture-fallback"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/41.log",
"exitCode": 0,
"durationMs": 6227,
"testReportPaths": [],
"tests": []
},
{
"id": "command-docs",
"status": "passed",
"command": [
"pnpm",
"run",
"check:command-docs"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/42.log",
"exitCode": 0,
"durationMs": 1183,
"testReportPaths": [
"/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/42.tests.80868.json"
],
"tests": [
{
"passed": 12,
"failed": 0,
"skipped": 0,
"pending": 0,
"failedModules": 0,
"unhandledErrors": 0,
"failures": [],
"omittedFailures": 0
}
]
},
{
"id": "docs-links",
"status": "passed",
"command": [
"pnpm",
"run",
"check:doc-links"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/43.log",
"exitCode": 0,
"durationMs": 2468,
"testReportPaths": [],
"tests": []
},
{
"id": "docs-prose",
"status": "passed",
"command": [
"pnpm",
"run",
"check:doc-prose"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/44.log",
"exitCode": 0,
"durationMs": 1118,
"testReportPaths": [],
"tests": []
},
{
"id": "agent-guidance",
"status": "passed",
"command": [
"pnpm",
"run",
"check:agent-guidance"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/45.log",
"exitCode": 0,
"durationMs": 970,
"testReportPaths": [],
"tests": []
},
{
"id": "xctest-selection",
"status": "passed",
"command": [
"pnpm",
"run",
"check:xctest-selection"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/46.log",
"exitCode": 0,
"durationMs": 914,
"testReportPaths": [],
"tests": []
},
{
"id": "packaged-runner-swift",
"status": "passed",
"command": [
"pnpm",
"run",
"check:packaged-runner-swift"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/47.log",
"exitCode": 0,
"durationMs": 8485,
"testReportPaths": [],
"tests": []
},
{
"id": "maestro-conformance",
"status": "passed",
"command": [
"pnpm",
"run",
"maestro:conformance"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/48.log",
"exitCode": 0,
"durationMs": 1611,
"testReportPaths": [],
"tests": []
},
{
"id": "maestro-differential",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Differential / iOS Conformance Differential)"
},
{
"id": "maestro-regenerate",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Conformance Regenerate Verify / Regenerate & Verify Fixtures)"
},
{
"id": "fuzz-parsers",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Replay Nightly / Parser Fuzz Lane)"
},
{
"id": "mutation",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Mutants (${{ matrix.name }}), Mutation Weekly / Mutants (${{ matrix.name }}))"
},
{
"id": "mutation-affected",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Harness Canary / Select harness validation kernels)"
},
{
"id": "mutation-check",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Mutation Weekly / Mutation score report)"
},
{
"id": "mutation-model",
"status": "passed",
"command": [
"pnpm",
"run",
"mutation:test"
],
"logPath": "/Users/michal/.t3/worktrees/agent-device/feat-agent-device-host-entry/.tmp/validation/run-4abtUk/55.log",
"exitCode": 0,
"durationMs": 10952,
"testReportPaths": [],
"tests": []
},
{
"id": "concurrency-torture",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Concurrency Torture Nightly / Session/lease/lock torture sweep, Integration Tests)"
},
{
"id": "replay-ios",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-ios-device",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / iOS Replay Suite)"
},
{
"id": "replay-macos",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Apple / Smoke Tests)"
},
{
"id": "replay-linux",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "linux-command-evidence",
"status": "skipped",
"reason": "GitHub-authoritative (jobs: Linux / Smoke Tests)"
},
{
"id": "replay-android",
"status": "skipped",
"reason": "parked, workflow_dispatch only (Replay Manual / Android Full Emulator Suite)"
}
],
"initial": {
"head": "c59deb41049a4fe52359702e3e7fbeb3e730e0db",
"status": "",
"fingerprint": "6397c7390806f47106a90b860a46ac4711e2a3be5573ca8964d48a43561f6a71"
},
"changedFiles": [
".changeset/host-entry.md",
".fallowrc.json",
"examples/sdk/host-runtime.ts",
"examples/sdk/tsconfig.json",
"package.json",
"packages/contracts/src/client-connection.ts",
"packages/contracts/src/facades/client.ts",
"packages/daemon/src/index.ts",
"packages/daemon/src/server/http/daemon-runtime.ts",
"scripts/layering/process-globals-policy.test.ts",
"scripts/layering/process-globals-policy.ts",
"scripts/layering/root-module-zones.ts",
"src/__tests__/agent-device-client-daemon-binding.test.ts",
"src/agent-device-client.ts",
"src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"src/daemon-client/daemon-client-attach.ts",
"src/daemon-client/daemon-client-binding.ts",
"src/daemon-client/daemon-client-lifecycle.ts",
"src/daemon-client/daemon-client.ts",
"src/daemon-composition.ts",
"src/host.test.ts",
"src/host.ts",
"src/provider-device-runtimes.ts",
"test/integration/installed-package-metro.test.ts",
"test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"test/repo-guards/package-exports.test.ts",
"tsdown.config.ts",
"website/docs/docs/client-api.md"
],
"plan": {
"failOpen": true,
"checks": [
"format",
"lint",
"typecheck",
"test-app-typecheck",
"test-app-security",
"layering",
"di-seams",
"fallow",
"mcp-metadata",
"build",
"package",
"integration-node",
"macos-coverage",
"ios-snapshot-differential",
"vitest-related",
"unit",
"unit-ci",
"coverage",
"coverage-crap",
"provider-integration",
"integration-progress",
"swift-runner-ios",
"swift-runner-macos",
"android-helpers",
"macos-helper",
"web-smoke",
"replay-compat",
"daemon-wire-compat",
"affected-selector",
"gate-manifest",
"gate-manifest-model",
"depgraph",
"tmpdir-leaks",
"tmpdir-leaks-model",
"coverage-model",
"coverage-crap-model",
"wire-compat-model",
"production-exports",
"bundle-owner-files",
"freerange",
"fixture-cache",
"fixture-fallback",
"command-docs",
"docs-links",
"docs-prose",
"agent-guidance",
"xctest-selection",
"packaged-runner-swift",
"maestro-conformance",
"maestro-differential",
"maestro-regenerate",
"fuzz-parsers",
"mutation",
"mutation-affected",
"mutation-check",
"mutation-model",
"concurrency-torture",
"replay-ios",
"replay-ios-device",
"replay-macos",
"replay-linux",
"linux-command-evidence",
"replay-android"
],
"reasons": [
{
"check": "format",
"path": "packages/contracts/src/client-connection.ts",
"rule": "gate:format",
"detail": "oxfmt covers packages/"
},
{
"check": "lint",
"path": "packages/contracts/src/client-connection.ts",
"rule": "gate:lint",
"detail": "oxlint covers packages/"
},
{
"check": "typecheck",
"path": "packages/contracts/src/client-connection.ts",
"rule": "gate:typecheck",
"detail": "tsc includes packages/"
},
{
"check": "fallow",
"path": "packages/contracts/src/client-connection.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "packages/contracts/src/client-connection.ts",
"rule": "package-src",
"detail": "layering R11 guards workspace package boundaries"
},
{
"check": "vitest-related",
"path": "packages/contracts/src/client-connection.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "build",
"path": "packages/contracts/src/client-connection.ts",
"rule": "package-src",
"detail": "package source is bundled into the published artifact"
},
{
"check": "replay-ios",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "packages/contracts/src/client-connection.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "packages/contracts/src/facades/client.ts",
"rule": "gate:format",
"detail": "oxfmt covers packages/"
},
{
"check": "lint",
"path": "packages/contracts/src/facades/client.ts",
"rule": "gate:lint",
"detail": "oxlint covers packages/"
},
{
"check": "typecheck",
"path": "packages/contracts/src/facades/client.ts",
"rule": "gate:typecheck",
"detail": "tsc includes packages/"
},
{
"check": "fallow",
"path": "packages/contracts/src/facades/client.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "packages/contracts/src/facades/client.ts",
"rule": "package-src",
"detail": "layering R11 guards workspace package boundaries"
},
{
"check": "vitest-related",
"path": "packages/contracts/src/facades/client.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "build",
"path": "packages/contracts/src/facades/client.ts",
"rule": "package-src",
"detail": "package source is bundled into the published artifact"
},
{
"check": "replay-ios",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "packages/contracts/src/facades/client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "packages/daemon/src/index.ts",
"rule": "gate:format",
"detail": "oxfmt covers packages/"
},
{
"check": "lint",
"path": "packages/daemon/src/index.ts",
"rule": "gate:lint",
"detail": "oxlint covers packages/"
},
{
"check": "typecheck",
"path": "packages/daemon/src/index.ts",
"rule": "gate:typecheck",
"detail": "tsc includes packages/"
},
{
"check": "fallow",
"path": "packages/daemon/src/index.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "packages/daemon/src/index.ts",
"rule": "package-src",
"detail": "layering R11 guards workspace package boundaries"
},
{
"check": "vitest-related",
"path": "packages/daemon/src/index.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "build",
"path": "packages/daemon/src/index.ts",
"rule": "package-src",
"detail": "package source is bundled into the published artifact"
},
{
"check": "replay-ios",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "packages/daemon/src/index.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "gate:format",
"detail": "oxfmt covers packages/"
},
{
"check": "lint",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "gate:lint",
"detail": "oxlint covers packages/"
},
{
"check": "typecheck",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "gate:typecheck",
"detail": "tsc includes packages/"
},
{
"check": "fallow",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "package-src",
"detail": "layering R11 guards workspace package boundaries"
},
{
"check": "vitest-related",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "build",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "package-src",
"detail": "package source is bundled into the published artifact"
},
{
"check": "replay-ios",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "packages/daemon/src/server/http/daemon-runtime.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/__tests__/agent-device-client-daemon-binding.test.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/__tests__/agent-device-client-daemon-binding.test.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/__tests__/agent-device-client-daemon-binding.test.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/__tests__/agent-device-client-daemon-binding.test.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "vitest-related",
"path": "src/__tests__/agent-device-client-daemon-binding.test.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "format",
"path": "src/agent-device-client.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/agent-device-client.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/agent-device-client.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/agent-device-client.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/agent-device-client.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/agent-device-client.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/agent-device-client.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/agent-device-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "vitest-related",
"path": "src/daemon-client/__tests__/daemon-client-embedded-lifecycle.test.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "format",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/daemon-client/daemon-client-attach.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/daemon-client/daemon-client-binding.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/daemon-client/daemon-client-lifecycle.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/daemon-client/daemon-client.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-client/daemon-client.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-client/daemon-client.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-client/daemon-client.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/daemon-client/daemon-client.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/daemon-client/daemon-client.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/daemon-client/daemon-client.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/daemon-client/daemon-client.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/daemon-composition.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/daemon-composition.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/daemon-composition.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/daemon-composition.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/daemon-composition.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/daemon-composition.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/daemon-composition.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/daemon-composition.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/host.test.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/host.test.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/host.test.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/host.test.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "vitest-related",
"path": "src/host.test.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "format",
"path": "src/host.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/host.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/host.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/host.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/host.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/host.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/host.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "build",
"path": "src/host.ts",
"rule": "own:public-surface",
"detail": "public package entry affects declarations"
},
{
"check": "package",
"path": "src/host.ts",
"rule": "own:public-surface",
"detail": "a public entry must still resolve from a clean install"
},
{
"check": "replay-ios",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/host.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "src/provider-device-runtimes.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "src/provider-device-runtimes.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "src/provider-device-runtimes.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "src/provider-device-runtimes.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "layering",
"path": "src/provider-device-runtimes.ts",
"rule": "gate:layering",
"detail": "layering guard reads production src/ modules"
},
{
"check": "build",
"path": "src/provider-device-runtimes.ts",
"rule": "src-prod",
"detail": "production source is compiled by the build"
},
{
"check": "vitest-related",
"path": "src/provider-device-runtimes.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "src/provider-device-runtimes.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "integration-node",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "node-integration",
"detail": "node --test integration smoke"
},
{
"check": "replay-ios",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-ios-device",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-macos",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-android",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "replay-linux",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "linux-command-evidence",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "web-smoke",
"path": "test/integration/installed-package-metro.test.ts",
"rule": "own:device-lane:shared",
"detail": "shared runtime surface: every device lane drives the CLI and daemon through it"
},
{
"check": "format",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "vitest-related",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "replay-ios",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "own:device-lane:ios",
"detail": "ios-owned tree: only the ios device lanes execute it"
},
{
"check": "replay-ios-device",
"path": "test/integration/ios-simulator-e2e/live-automation-scenario.ts",
"rule": "own:device-lane:ios",
"detail": "ios-owned tree: only the ios device lanes execute it"
},
{
"check": "format",
"path": "test/repo-guards/package-exports.test.ts",
"rule": "gate:format",
"detail": "oxfmt covers src/ and test/"
},
{
"check": "lint",
"path": "test/repo-guards/package-exports.test.ts",
"rule": "gate:lint",
"detail": "oxlint covers the source tree"
},
{
"check": "typecheck",
"path": "test/repo-guards/package-exports.test.ts",
"rule": "gate:typecheck",
"detail": "tsc includes src/ and test/"
},
{
"check": "fallow",
"path": "test/repo-guards/package-exports.test.ts",
"rule": "gate:fallow",
"detail": "fallow audits changed TypeScript for dead code"
},
{
"check": "vitest-related",
"path": "test/repo-guards/package-exports.test.ts",
"rule": "vitest:related",
"detail": "Vitest resolves affected tests through its static module graph"
},
{
"check": "docs-links",
"path": "website/docs/docs/client-api.md",
"rule": "own:docs-links",
"detail": "internal docs links must land on an existing page and heading"
},
{
"check": "docs-prose",
"path": "website/docs/docs/client-api.md",
"rule": "own:docs-prose",
"detail": "user docs avoid filler, marketing, and time-relative words"
}
],
"failOpenReasons": [
{
"path": ".fallowrc.json",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
},
{
"path": "examples/sdk/host-runtime.ts",
"rule": "unknown-path",
"detail": "path has no derivable owner; run the full set to stay safe"
},
{
"path": "examples/sdk/tsconfig.json",
"rule": "unknown-path",
"detail": "path has no derivable owner; run the full set to stay safe"
},
{
"path": "package.json",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
},
{
"path": "scripts/layering/process-globals-policy.test.ts",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
},
{
"path": "scripts/layering/process-globals-policy.ts",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
},
{
"path": "scripts/layering/root-module-zones.ts",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
},
{
"path": "tsdown.config.ts",
"rule": "workflow-tooling",
"detail": "workflow/tooling change can alter any gate"
}
],
"docsOnlyPaths": [
".changeset/host-entry.md"
]
},
"final": {
"head": "c59deb41049a4fe52359702e3e7fbeb3e730e0db",
"status": "",
"fingerprint": "6397c7390806f47106a90b860a46ac4711e2a3be5573ca8964d48a43561f6a71"
},
"finishedAt": "2026-10-20T10:42:20.859Z"
}
|
|
Final CI at Apple run passed, including iOS fixture E2E, Swift XCTest, and macOS smoke. No Swift retry was needed. Android/Linux smoke, coverage, integration, package, repository guards, security, docs, size, and affected mutation checks also passed. The foreground |
|
The changes since d7ece99 fix CI: the iOS smoke failure at automation-open-sheet was a readiness race in the test, and the new selector wait in that scenario does not touch the host or daemon-client code. All 23 checks pass or are non-blocking at c59deb4. One code problem from the earlier review (#3843 (comment)) is still open at that commit, because the delta does not change it.
Could I did not run the version-skew case. This finding comes from reading the code at head, as before. I did not open the Apple CI run artifacts, so the CI state comes from the check list and the author's comment. There are no conflicts. Before merge, the pin check must move into |
Route pinned clients through attach compatibility before checking their instance pin. Publish the embedded runtime's package code identity rather than the host application's entry identity. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep src/host.ts as the actual capture boundary behind the SDK's lazy factory. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Round 2 at
Physical production lines against c59deb4: direct Exact-head local validation: ADR 0027's eager-closure walker, run directly on The built tarball was installed into a separate consumer with npm. Its script imports Size/startup baseline at c59deb4: +17.9 kB unpacked, +6.1 kB download; CLI --version +0.9 ms (35.7 → 36.6 ms, seven-run medians). New same-runner CI report: +12.1 kB unpacked, +4.3 kB download; CLI --version −1.7 ms (35.2 → 33.5 ms, seven-run medians). CLI --help: +0.8 ms (65.4 → 66.3 ms), previously +2.2 ms. The small timing differences are observational noise, not a performance claim. Absolute package bytes, c59deb4 → this head: unpacked 5,469,895 → 5,464,066 (−5,829); download 1,658,064 → 1,656,215 (−1,849). Final CI at this exact head: 17 success, 1 skipped, 1 neutral; no pending or failed checks. Apple passed iOS and macOS smoke. Android/Linux, coverage, integrations, repository guards, package, security, docs and size checks passed. |
|
The code looks good at 78ce25c. The earlier evidence gap from c59deb4 is closed: the author reports the packed-tarball iOS run (a 66-node Settings snapshot with a clean shutdown report), and the 249-module claim rests on the CI no-growth gate. I did not rerun that iOS run or the module walker, and I did not run tests locally. CI shows 19 checks with 0 not passing, and no conflicts. Nothing else blocks human review. Not blocking, and fine to take or leave: the missing-stateDir refusal in src/host.ts#L15 lost its typed reason and hint, so it could get a reason back; |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
Applied all three 13:40Z notes in 0eaa324:
Exact-head |
|
The code looks good at 0eaa324. The three notes from the 78ce25c review are applied, and the delta adds no new problems. Not blocking, and fine to take or leave: All 19 checks pass at this head. I read the code only and did not run tests here, so the exact-head |
* origin/main: (28 commits) feat(gesture): add gesture tap with 2 to 5 simultaneous contacts (callstack#3847) chore: mark 0.21.29 as released chore(diagnostics): trace Apple prepare phases and subprocess lifecycle (callstack#3846) feat(sdk): start an embedded runtime from the main entry (callstack#3843) fix(alert): align local Apple and Limrun button choices (callstack#3825) docs(adr): drop the withdrawn host allocator design from ADR 0021 (callstack#3845) feat(screenshot): support selector crops on CoreDevice iPhones (callstack#3839) feat(scroll): support explicit budgets for long target searches (callstack#3837) fix(apple): key the toolchain fingerprint memo on the resolved xcode-select dir (callstack#3726) feat(android): hand rotation back to the sensor with orientation auto (callstack#3822) fix(sdk): scope released entries and deferred provider calls (callstack#3833) test(android): prepare the snapshot helper before landmark waits (callstack#3834) perf(ci): overlap iOS simulator boot with the native build (callstack#3836) docs(ios): record SpringBoard sessions as verified on a physical iPhone (callstack#3840) feat(apple): admit two-finger gestures on physical iOS devices (callstack#3838) perf(android): bound target readiness and confirm moved clears (callstack#3815) perf(android): reuse live helper for input and capture (callstack#3811) chore(gates): forbid process globals outside declared entry points (callstack#3753) (callstack#3823) refactor(commands): resolve command inputs and output from the caller host (callstack#3753) (callstack#3829) refactor(runtime): use the owning host environment at process boundaries (callstack#3753) (callstack#3828) ...
Summary
Add
startAgentDevice({ stateDir, plugins?, host? })to the mainagent-deviceentry (#3757, umbrella #3747).The runtime loads when called.
clientConfigserializes the exact-instance pin; one attach flow applies normal compatibility checks before the pin predicate. The pin comes from the runtime controller's identity. Remove the host subpath and optional logging/disposal/inventory wrappers. Registry validation and runtime cleanup keep their existing owners. Amend ADR 0034 to this simplified contract.29 files; scope includes the unanswered pinned-attach review and maintainer-requested simplification. No new dependency or gate approval row.
Validation
0eaa324c85d14397041a6c4ef31fc4cf5b61a0b0.pnpm check:affected --run --head HEADpassed,exactCommit=true, clean unchanged checkout; receiptrun-pnR5w1(14:00:46Z). All 36 runnable gates passed, 25 explicit skips, 2 deduplicated. Related tests: 2,375 / 215 files; Node integrations: 146 pass / 12 opt-in skips.78ce25c6d1: iOS Settings snapshot, session close and clean shutdown. That head's CI passed, including coverage, integrations and native lanes. Follow-up changes affect diagnostics and optional registration metadata; current-head CI passed: 17 success, 1 skipped, 1 neutral, including Apple iOS/macOS, Android/Linux, coverage and integrations. Foreground watch exited 0; no rerun needed.