Skip to content

agent-device changelog

io.github.callstack/agent-device

17 changes recorded. MCP Harbor re-reads this listing from the official registry every six hours and asks the live server what it exposes, and keeps what changed between one look and the next.

  • server.json 1 field changed
    version
    0.21.36 0.21.37

  • server.json 1 field changed
    version
    0.21.34 0.21.36

  • server.json 2 fields changed
    description
    MCP server for mobile app automation: verify, control, and debug iOS, Android, TV, and desktop apps Open source device layer for AI agents: control mobile, web, TV, and desktop apps over MCP
    version
    0.21.33 0.21.34

  • server.json 1 field changed
    version
    0.21.32 0.21.33

  • server.json 1 field changed
    version
    0.21.31 0.21.32

  • AGENTS.md +45 −113

    https://raw.githubusercontent.com/callstack/agent-device/HEAD/AGENTS.md

    − `agent-device` is a CLI and daemon for automating Apple, Android, HarmonyOS, Vega, Linux, and web− targets. A long-lived daemon owns sessions; registry-derived commands route to platform runtimes.− Load only the procedures relevant to the task:− | Domain vocabulary | `CONTEXT.md`, `docs/agents/domain.md` |− | Architecture decisions | `docs/adr/README.md` |− | Tests or gate selection | `docs/agents/testing.md` |− | Writing, auditing, or sweeping tests; dispatching test-audit subagents | `docs/agents/test-audit.md` |− | Selector capture, polling, or interaction fast paths | `docs/agents/selector-capture.md` |− | Adding or changing a CLI flag | `docs/agents/cli-flags.md` |− | Opening or reviewing a PR | `docs/agents/pull-requests.md` |− | Apple runner changes or manual device verification | `docs/agents/device-verification.md` |− | Writing issues or PRDs, and triage labels | `docs/agents/issue-tracker.md`, `docs/agents/triage-labels.md` |− Versioned CLI help owns command semantics. Read the relevant topic when behavior is unclear;− normal app-driving startup follows the skill's routing card.− ## Incident-derived principles− - Classify interaction dispatch paths in `packages/contracts/src/interaction-guarantees.ts` and−   verify each claim against the native implementation.− - Delegation on error proves no success-path parity. A fast path may succeed on a candidate the−   shared rules would refuse.− - Prove both paths are reachable before measuring a fast path against its baseline.− - Repair recurring failures at the owning type, registry, or construction path; do not add guards−   that reconstruct another source of truth.− - Keep control-flow narration and review history out of implementation comments. Encode invariants−   in names, types, boundaries, and tests; reserve comments for public API docs, tool directives,−   and non-obvious constraints that cannot be encoded.− - Key behavior on typed reasons and details, never error text; do not copy existing message sniffs.− - A claim about a platform family in code, help, or docs holds for every backend in it (Appium as−   well as ADB on Android), or names the backends it covers.− - Keep metadata at response level when it applies to the whole snapshot. Append warnings through−   the shared response builder; never replace prior warnings.− - Before preserving a compatibility shape, run `git tag --contains <commit>`. Unreleased API has no−   external compatibility obligation.− ## Declaration sites and enforcement− Read the declaration rather than maintaining a prose copy:− - commands and their surface, runtime-use, batch, and timeout traits:−   `packages/command-registry/src/registry.ts`− - daemon route ownership and request-policy traits: `packages/daemon/src/core/daemon-command-registry.ts`− - interaction paths and guarantees: `packages/contracts/src/interaction-guarantees.ts`− - canonical command names: `packages/command-registry/src/catalog.ts`− - device runtime-use declarations and fact admission:+ `agent-device` is a CLI and daemon that automates devices and web targets.+ The daemon owns sessions. Registry declarations route commands to platform runtimes.+ Read only your task's row. Follow other links only when they apply.+ | Domain vocabulary | `CONTEXT.md` |+ | Read architecture decisions | `docs/adr/README.md` |+ | Write or amend an ADR | `docs/adr/FORMAT.md` |+ | Source changes, package boundaries, routing, diagnostics | `docs/agents/code-ownership.md` |+ | Checks or a failed gate | `docs/agents/testing.md` |+ | New or changed tests | `docs/agents/test-authoring.md` |+ | Test audits or deletions | `docs/agents/test-audit.md` |+ | Mutation experiments or base comparisons | `docs/agents/test-experiments.md` |+ | Gate selection, fuzzing, or mutation harnesses | `docs/agents/gates.md` |+ | Selector capture, polling, interaction fast paths, replay | `docs/agents/selector-capture.md` |+ | A new or changed CLI flag | `docs/agents/cli-flags.md` |+ | A PR to open or update | `docs/agents/pull-requests.md` |+ | A change to review | `docs/agents/review.md` |+ | Device-facing changes or manual device verification | `docs/agents/device-verification.md` |+ | Issues, PRDs, or triage labels | `docs/agents/issue-tracker.md`, `docs/agents/triage-labels.md` |+ A device-facing change affects live device behavior: dispatch, capture, interaction, app lifecycle, or native execution.+ If a daemon edit changes none of these, a device run is not required.+ The versioned CLI help owns command semantics. To drive an app, start with the skill's routing card.+ ## Working rules+ - Keep edits in the requested command family or module group. Examine other platforms only when the task requires it.+ - Fix a recurring failure at the owning type, registry, or construction path. Do not rebuild another owner's state.+ - Use typed reasons and details for behavior. Do not match error text.+ - Add compatibility or fallback behavior only on explicit request or approval. During a migration, remove superseded paths.+ - Encode invariants in names, types, and boundaries. Write comments only for public APIs, tool directives, or constraints that code cannot show.+ - Resolve a gate failure at the reported invariant. Do not suppress it. Do not add an allowlist to get a pass.+ - Use `@agent-device/selectors` to parse and match selectors. For other shared owners, see `docs/agents/code-ownership.md`.+ - Keep skills as routing cards. Keep `CONTEXT.md` as a glossary only. When behavior changes, update the owning help and user docs.+ ## Worktree setup+ - Use `pnpm`. Use OXC to lint and format. Run `pnpm format` on the full repository.+ - In a new worktree, run `pnpm install --frozen-lockfile && pnpm build` before you test.+ - Do not change other worktrees, devices, sessions, dirty files, or experiments. Do not use `git stash`; all worktrees share it.+ - Do not copy `.env` into a worktree. For host credentials, source the main checkout's file by its absolute path.+ - Give each parallel worker different files and a different device. `pnpm check:affected --run`, `pnpm check`, and heavy `pnpm gate` ids share one lock.+ - The layering scan reads only tracked files. Stage new modules before you trust its result.+ - When you rename a file, move its Fallow baseline entry. Do not regenerate unrelated baselines.+ The validation lock automatically reclaims provably dead owners. An unknown owner continues to block.+ If the wait times out, report the printed owner and the lock state. Do not remove the lock manually.

    Showing the first 40 of each.

  • server.json 1 field changed
    version
    0.21.30 0.21.31

  • server.json 1 field changed
    version
    0.21.28 0.21.30

  • AGENTS.md +12 −3

    https://raw.githubusercontent.com/callstack/agent-device/HEAD/AGENTS.md

    − - daemon route ownership and request-policy traits: `src/daemon/daemon-command-registry.ts`−   `packages/command-registry/src/registry.ts`, `src/daemon/runtime-admission.ts`, and− session artifact paths come from `src/daemon/session-artifact-paths.ts`. App/device logs remain in `app.log`;+ - A claim about a platform family in code, help, or docs holds for every backend in it (Appium as+   well as ADB on Android), or names the backends it covers.+ - daemon route ownership and request-policy traits: `packages/daemon/src/core/daemon-command-registry.ts`+   `packages/command-registry/src/registry.ts`, `packages/daemon/src/core/runtime-admission.ts`, and+ - A test sits beside the module it is named for: `<module>.test.ts` or `<module>-<aspect>.test.ts`+   (R84). Cross-module package tests are `index-<aspect>.test.ts` beside `index.ts`; repo-level guards on+   Swift sources, manifests, docs or scripts live in `test/repo-guards/`.+ - Add no package `exports` entry that points at test support; R83 only lets the legacy count fall. A+   fixture one package uses stays inside it, imported relatively; helpers shared across packages live only in `@agent-device/test-kit`, a+   `devDependency` production source never imports and that never depends on `platform-*`,+   `provider-*`, the daemon or root.+ session artifact paths come from `packages/daemon-contracts/src/session-artifact-paths.ts`. App/device logs remain in `app.log`;
  • server.json 1 field changed
    version
    0.21.27 0.21.28

  • server.json 1 field changed
    version
    0.21.26 0.21.27
  • server.json 1 field changed
    version
    0.21.25 0.21.26

  • server.json 1 field changed
    version
    0.21.24 0.21.25

  • server.json 1 field changed
    version
    0.21.22 0.21.24

  • AGENTS.md +5 −3

    https://raw.githubusercontent.com/callstack/agent-device/HEAD/AGENTS.md

    − Shared selector parsing and matching belongs in `@agent-device/selectors`; request cancellation− and progress in `@agent-device/host-kit/request`; cross-layer contracts in `packages/contracts/src`;− CLI flags in `src/commands/cli-grammar`; cross-surface schema composition in `src/commands/schema`.+ Shared selector parsing and matching belongs in `@agent-device/selectors`; daemon-side request+ cancellation and progress in `@agent-device/host-kit/request`, and the caller's per-call abort guard+ beside the transports it serves in `src/daemon-client/daemon-client-transport.ts`; cross-layer+ contracts in `packages/contracts/src`; CLI flags in `src/commands/cli-grammar`; cross-surface schema+ composition in `src/commands/schema`.

  • server.json 1 field changed
    version
    0.21.21 0.21.22
  • server.json 1 field changed
    version
    0.21.18 0.21.21