Michał Pierzchała
cd0cd16a9e
build: migrate the library build from rslib to tsdown (Rolldown) ( #1087 )
...
* build: migrate the library build from rslib to tsdown (Rolldown)
Replace the Rspack-based rslib build with tsdown, the Rolldown-based
library bundler from the Vite toolchain family, so bundling, testing
(Vitest/Vite), linting (oxlint), and formatting (oxfmt) all run on the
same OXC/Rolldown stack.
Outcome vs the rslib baseline (size-report):
- build time: ~53s -> ~2s
- JS raw +16.2 kB (+1.1%), JS gzip +2.7 kB (+0.6%) - the residual gap
is OXC vs SWC minifier tightness, not chunking
- npm tarball -3.0 kB
- CLI --version startup ~3 ms faster; --help within the +/-5 ms
measurement noise of interleaved A/B runs
Chunk-merging experiments (single shared group, entries-aware groups,
small-module groups) all regressed either total size or --help startup
(a merged shared chunk adds +140 ms), so the default Rolldown split
graph is kept. Custom codeSplitting groups also currently trip a
rolldown-plugin-dts bug that re-emits type-only imports as runtime
imports.
Declarations still bundle per entry via tsgo; dist layout, entry names,
and the internal/ worker/daemon entry resolution contract are unchanged.
@microsoft/api-extractor was only consumed by rslib dts bundling and is
removed together with @rslib/core.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FqeW8sA2ZnvnftdvpCqFMS
* ci: only cache the pnpm store when setup installs dependencies
The layering-guard job uses setup-node-pnpm with install-deps: false, so
it never creates a pnpm store. setup-node's post-job cache save then
fails with a path validation error whenever the lockfile hash misses the
cache - which any lockfile-changing PR does. Gate the cache on
install-deps so no-install jobs skip pnpm store caching entirely.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
Claude-Session: https://claude.ai/code/session_01FqeW8sA2ZnvnftdvpCqFMS
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-07-04 15:58:05 +02:00
Michał Pierzchała
a3e967526a
refactor: rename ios-runner -> apple-runner ( #981 ) ( #996 )
...
Finish the cosmetic ios-runner -> apple-runner rename now that the
top-level XCTest runner is the OS-agnostic Apple engine
(iOS/iPadOS/tvOS/macOS/visionOS from one Xcode project).
Cosmetic only, no behavior change:
- git mv ios-runner/ -> apple-runner/ (AgentDeviceRunner, README, RUNNER_PROTOCOL)
- Update repo project-path consumers: build-xcuitest-apple.sh, package.json
files globs, .fallowrc.json, write-xcuitest-cache-metadata.mjs,
runner-xctestrun.ts fingerprint/project paths, recording overlay + test,
daemon-client-timeout kill pattern, setup-apple-replay hashFiles glob,
ci.yml swift-compat scan, AGENTS.md.
- Rename runtime home cache/derived/lease dir default
~/.agent-device/ios-runner -> ~/.agent-device/apple-runner (build script,
package/clean scripts, runner-xctestrun RUNNER_DERIVED_ROOT, runner-lease,
runner-contract hint, cli-help/commands.md docs) and the tests asserting it.
- Rename OS-agnostic runner symbols: runIosRunnerCommand ->
runAppleRunnerCommand, prewarmIosRunnerCache -> prewarmAppleRunnerCache,
createIosRunnerCachePrewarmOnColdBoot / createIosRunnerCacheColdBootPrewarmForOpen
-> createAppleRunner* (+ call sites, type aliases, test mocks).
Intentionally left as ios-runner (out of scope / would change behavior):
- prepare ios-runner CLI subcommand (user-facing command name)
- AGENT_DEVICE_IOS_RUNNER_* env var names and .tmp/ios-runner-derived CI values
- ios-runner-prebuilt cache-key-prefix, ci.yml job id, workflow/ADR filenames
- agent-device-ios-runner-<version> release artifact basenames
Part of #972 (Phase 3 - Apple PlatformPlugin).
2026-07-01 14:24:48 +02:00
Michał Pierzchała
19f73c8fe3
ci: fix iOS simulator boot timeout ( #845 )
2026-06-23 16:24:50 +02:00
Michał Pierzchała
bf8d952e21
fix: speed up web snapshots ( #842 )
...
* fix: speed up web snapshots
* ci: stabilize iOS simulator smoke boot
2026-06-23 14:13:30 +02:00
Michał Pierzchała
d05cfc727b
feat: manage web backend setup ( #833 )
2026-06-20 11:44:00 +02:00
Michał Pierzchała
0f7187f543
fix: scope source daemon state by worktree ( #719 )
...
* fix: scope source daemon state by worktree
* docs: clarify worktree daemon state tradeoffs
* ci: harden Apple runner cache
* chore: keep daemon state helper internal
* ci: validate Apple runner cache restores
* ci: simplify Apple runner cache setup
2026-06-10 10:32:58 +02:00
Michał Pierzchała
ad7b386444
feat: cache iOS runner artifacts during prepare ( #688 )
...
* feat: cache ios runner artifacts during prepare
* refactor: deepen ios runner lifecycle
* refactor: generalize apple runner prepare
* refactor: simplify apple runner lifecycle
* fix: clarify runner prepare recovery diagnostics
* refactor: trim apple runner provider surface
* test: simplify runner recovery diagnostics assertion
2026-06-04 15:37:05 -07:00
Michał Pierzchała
c1550721ce
fix: collapse Android snapshot row noise ( #545 )
...
* fix: collapse Android snapshot row noise
* docs: clarify agent-facing snapshot text
* fix: preserve semantics when collapsing Android snapshots
* fix: trim redundant Android collapse hints
* fix: collapse passive Android duplicate children
* refactor: drop unused Android snapshot hint code
* docs: clarify Android Metro verification guidance
* test: cover Android Metro reverse planning
* test: fix codex skillgym runner
* fix: satisfy fallow snapshot checks
* docs: clarify PR validation guidance
2026-05-15 18:52:11 +02:00
Michał Pierzchała
5260ac8edd
fix: harden Node runtime cleanup ( #457 )
...
* fix: harden node runtime cleanup
* fix: propagate command cancellation
* fix: address runtime cleanup review
* fix: close partial artifact writes before cleanup
2026-04-27 17:19:08 -04:00
Michał Pierzchała
497a54deb7
test: expand replay coverage and CI reporting with JUnit ( #317 )
...
* test: add benchmark .ad scripts for iOS and Android (02-06)
Add 10 new replay scripts covering deep navigation, scroll discovery,
text input & keyboard, app lifecycle, and swipe gestures for both
iOS simulator and Android emulator. Each script combines multiple
command types (snapshot, click, wait, is, find, get, scroll,
scrollintoview, swipe, back, home, keyboard, screenshot, appstate)
to provide comprehensive baseline coverage for version-over-version
comparison.
https://claude.ai/code/session_01VkHLzVc7NULQFaWHnhuBCm
* test: move replay benchmarks out of CI suite
* test: trim replay benchmark script comments
* test: relaunch replay app opens
* fix: stop focusing iOS simulator for screenshots
* fix: open Simulator app on cold boot
* test: trim iOS cold boot coverage
* test: move replay benchmarks into integration suites
* ci: align Android emulator with local setup
* ci: raise iOS replay daemon timeout
* test: add replay junit reports
* ci: use supported Android emulator profile
* fix: stabilize replay cleanup and Android CI flows
* test: trim flaky replay coverage
* fix: exclude replay tests from daemon request timeout
* test: relax android scroll discovery replay
* refactor: rename ios simulator app opener
* ci: remove obsolete android replay timeout override
* test: remove duplicate android replay opens
* test: relax ios swipe replay assertion
* ci: move full replay suites to nightly
* ci: extract shared replay workflow setup
* ci: fail nightly replay jobs on test errors
---------
Co-authored-by: Claude <noreply@anthropic.com >
2026-03-30 11:45:49 +02:00
Michał Pierzchała
9a3570fa1c
feat: Daemon modularization + capability-gated command routing + CI/test pipeline ( #20 )
...
* feat: Daemon modularization + capability-gated command routing + CI/test pipeline updates
* update android test
* fix arch
* no serial
* fixup tests locally; update runner on CI
* increase timeout
* drop unnecessary node build
2026-02-08 15:20:59 +01:00
Michał Pierzchała
e84612a393
feat: docs ( #7 )
...
* feat: docs v1
* update wording
* update action
2026-02-05 15:25:52 +01:00