Commit Graph

104 Commits

Author SHA1 Message Date
Hasan Turken 28b0e6cb52 package skills as a multi-platform agent plugin
distribution.json is the single source of truth; scripts/generate-manifests.mjs
emits the Agent Plugins, Claude Code, Codex, Cursor, and Gemini CLI manifests,
and CI fails when they are stale.
2026-08-28 15:12:51 +03:00
Hasan Turken 8450c30965 Merge pull request #38 from limrun-inc/cloud-signing-entitlements
limrun-xcode: document entitlements for cloud signing
2026-08-28 12:16:06 +03:00
Hasan Turken b0d8be81e7 limrun-xcode: document entitlements for cloud signing 2026-08-28 12:11:26 +03:00
Hasan Turken 9b8affeb87 Merge pull request #35 from limrun-inc/xctest-docs
limrun-xcode: document lim xcode test
2026-08-25 18:05:40 +03:00
Hasan Turken aa4cbefc8c limrun-xcode: document lim xcode test 2026-08-25 17:50:18 +03:00
Hasan Turken 7d34618746 Merge pull request #34 from limrun-inc/watchos-cloud-signing
limrun-xcode: document watchos cloud signing support
2026-08-25 13:08:28 +03:00
Hasan Turken e7ba3621f6 Merge pull request #20 from limrun-inc/ios-tunnel-phase1
Document released iOS destination tunnel workflows
2026-08-24 21:27:29 +03:00
Hasan Turken 625edc4889 skills: fix tunnel workflow prerequisites and cleanup
Make Detox session wiring mandatory, split Android and iOS Metro paths, and preserve inactivity and failure semantics.
2026-08-24 21:22:22 +03:00
Hasan Turken 12908c7ba0 skills: document released iOS destination tunnels
Teach the general simulator, Expo, and Detox flows with exact localhost routes, immutable route sets, and complete cleanup.
2026-08-24 21:05:18 +03:00
Hasan Turken ac4ff3347b skills: use transparent localhost tunnels
Keep Expo and Detox on their normal localhost destinations and make the long-lived Detox process ordering explicit.
2026-08-24 20:53:54 +03:00
Hasan Turken 2e33adbf2a expo: use destination tunnel for Metro 2026-08-24 20:53:54 +03:00
Hasan Turken 70c68f52cf detox: use destination tunnel routing
Consume the allocated simulator endpoint while keeping the local mediator on its natural port.
2026-08-24 20:52:33 +03:00
Hasan Turken 34aae4eccd limrun-xcode: document watchos cloud signing support 2026-08-24 18:39:10 +03:00
muvaffak e29a129cea Merge pull request #29 from limrun-inc/attach-flow
expo: build on a standalone Xcode sandbox before creating the simulator
2026-08-21 11:32:47 +03:00
muvaffak b57415d5de Merge pull request #31 from limrun-inc/asset-ttl-build-only
Scope the 14-day default ttl to build uploads only
2026-08-20 17:41:17 +03:00
Muvaffak Onus cc676b681d Scope the 14-day default ttl to build uploads only
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 17:03:53 +03:00
muvaffak e0b1ca05b1 Merge pull request #30 from limrun-inc/asset-default-ttl
Document the 14-day default asset expiry and --upload-ttl on build uploads
2026-08-20 16:48:29 +03:00
Muvaffak Onus 8fdb585962 Document the 14-day default asset expiry and --upload-ttl on build uploads
Assets created without a ttl now expire after 14 days (limrun-inc/limrun#682),
and lim xcode build / lim gradle build gained --upload-ttl
(limrun-inc/typescript-sdk#336).

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 16:37:28 +03:00
muvaffak 0298949bce Merge pull request #28 from limrun-inc/xcode-upload-product-name
skills: document --artifact-name for artifact-not-found uploads
2026-08-20 16:17:49 +03:00
Muvaffak Onus a813d690b3 skills: rename to --artifact-name with the full .app filename
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 15:49:12 +03:00
Muvaffak Onus fae7c7ce9a expo: build on a standalone Xcode sandbox before creating the simulator
The paired `lim ios create --xcode` flow let a long fresh build outlive the
idle simulator's inactivity timeout, killing the build sandbox mid-build.
Teach the build-first order: create the Xcode sandbox, build, then create
the simulator with --attach so it installs the build immediately.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 14:53:43 +03:00
Muvaffak Onus b525bb073d skills: document --upload-product-name for artifact-not-found uploads
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-20 14:51:23 +03:00
Hasan Turken daeb532eea Merge pull request #26 from limrun-inc/android-parity-followups
skills: android coverage for the expo dev loop and lifecycle commands
2026-08-18 16:18:13 +03:00
Hasan Turken 2dcd86fe65 skills: address review, avoid blocking launch-app in verify steps
The install check and the expo verify step both pointed at a bare
launch-app, which blocks watching the app until it exits and would hang
an agent on a healthy app; use --detach for the install check and frame
the watched relaunch as a backgrounded crash-diagnosis step. Show the
asset list prefix per platform instead of prose describing the Android
variant.
2026-08-18 16:11:55 +03:00
Hasan Turken 7fcd6e787f skills: android coverage for the expo dev loop and lifecycle commands
limrun-expo-development was iOS-only, and limrun-gradle routed all Expo
dev-loop intent to it, so Android users had no documented Metro/hot
reload path. Extend the expo skill with per-step Android variants in the
same flow: package/asset derivation (including the missing
android.package placeholder trap), gradle Debug builds as assets, the
adb reverse tunnel on Metro's default 8081 (no port range or packager
hostname override needed, unlike iOS), dev-client deep links via
open-url, screenshot-first verification (Expo apps expose no
accessibility nodes on Android), and assembleRelease preview assets
with platform=android links.

Update limrun-android-emulator for the new lim android launch-app and
terminate-app commands: app lifecycle moves out of the adb section into
its own Launching the app section with the watch-until-exit crash
report; adb keeps logcat, files, shell, and package discovery. Route
gradle's Expo pointers to the expo skill.

Every command verified live against production e2e-org emulators: full
dev loop with hot reload observed on sample-expo56-app, both reverse
tunnel and deep-link paths, and a standalone assembleRelease APK
(debug-keystore signed by the Expo template) running without Metro.
2026-08-18 16:05:52 +03:00
Hasan Turken faecc7f07d Merge pull request #24 from limrun-inc/android-emulator
skills: add limrun-android-emulator device-driving skill
2026-08-18 13:55:04 +03:00
Hasan Turken b322bf8e00 android-emulator: read the adb serial from connect output
lim 0.28.4 prints the tunnel address in the connect started message,
so the serial no longer needs to be parsed out of adb devices. Verified
against the released CLI.
2026-08-18 13:53:52 +03:00
Hasan Turken 7cbe6dc693 android-emulator: fold in findings from live multi-model agent test runs
Ran the skill as the sole documentation for 8 subagent sessions (haiku,
sonnet, opus) against production emulators in the e2e org: basic install,
web interaction, adb lane, multi-instance targeting, non-git resolution,
and record/microphone/bandwidth scenarios. All 8 completed their tasks
with no leaked instances, so the changes are refinements, not rescues.

Recurring friction fixed:
- element-tree is one line, so plain grep echoes the whole document;
  document the sed newline split every agent had to invent (works on
  both BSD and GNU sed)
- verifying installs via the launcher fails because new apps land in
  the app drawer; point to pm list packages or launching the app
- page loads after open-url are async; an empty WebView subtree means
  still loading, not a broken tree
- web pages expose DOM ids, not pkg:id/... resource ids; select by
  text plus class-name there
- type takes the same selectors as tap-element, useful for fields
  with no resource id
- lim android list filters with --label-selector; four of eight agents
  guessed --label first
- create blocks until the instance is ready; recorded video frames are
  half the screenshot resolution; monkey exits nonzero on success
2026-08-18 13:20:39 +03:00
Hasan Turken aebdcd0941 android-emulator: align section structure and wording with the iOS simulator skill
Mirror the iOS skill's install subsection names (Build and install /
Install app from local) and fold sync iteration into the local-install
flow like iOS does. Move the create --no-open/--no-connect defaults note
from Auth and CLI into Installing an app, match the signed stream URL
sharing wording, rename the microphone section to the iOS 'Simulate the
X' pattern, and repeat the element-tree check block after interactions.

Fix the logcat example: the previous line passed a package name where
logcat expects a tag filter; replace it with the verified
logcat --pid=$(pidof -s <pkg>) recipe for app-scoped logs.
2026-08-18 13:01:45 +03:00
Hasan Turken 6b604db4c0 skills: add limrun-android-emulator device-driving skill
Android emulators had no device-driving skill; the only guidance was a
4-line aside in limrun-gradle. Add limrun-android-emulator as the Android
counterpart of limrun-ios-simulator, covering install paths (install-asset,
install-app by URL, sync), the exact-match selector model, the adb tunnel
escape hatch for app lifecycle/logcat/files/shell, microphone audio
injection, bandwidth shaping, preview URLs, and fleet gotchas (x86_64 ABI,
RN empty element trees, background installs, session-bound tunnels).

Every command was verified against a live production instance. Slim the
gradle skill's emulator section to a cross-reference and route its
description to the new skill.
2026-08-18 12:48:21 +03:00
muvaffak c34f5b4f40 Merge pull request #23 from limrun-inc/ios-container-ls-docs
ios-simulator: document app container file discovery
2026-08-17 23:31:08 +03:00
Muvaffak Onus 905d8cbaeb ios-simulator: document app container file discovery
Teach agents to list an app data container before pulling generated files and to reuse the same container flags across file operations.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-17 23:20:42 +03:00
Hasan Turken 2befa235d6 Merge pull request #22 from limrun-inc/skill-content-fixes
Fix stale and unresolvable references in gradle, detox, and expo skills
2026-08-14 18:21:25 +03:00
Hasan Turken 48064116f5 skills: fix Play Store publish contradiction, dead example paths, undefined TUNNEL_URL 2026-08-14 18:19:44 +03:00
Hasan Turken 98e210a31f Merge pull request #21 from limrun-inc/input-followups
ios-simulator: tap-element fail-fast and --scroll-search; type --no-require-focus
2026-08-14 16:00:24 +03:00
Hasan Turken 46d18185d2 ios-simulator: tap-element fail-fast and --scroll-search; type --no-require-focus 2026-08-14 15:17:52 +03:00
Hasan Turken d37341f667 Merge pull request #19 from limrun-inc/dep-security-bumps
deps: refresh package-lock to clear audit findings
2026-08-14 15:01:49 +03:00
Hasan Turken 707b49960e Merge pull request #18 from limrun-inc/ios-input-fidelity
ios: document real-key typing, set-text, swipe, and tap-element sweep
2026-08-12 20:05:46 +03:00
Hasan Turken 7c160d2b1d deps: refresh package-lock to clear audit findings 2026-08-12 15:58:32 +03:00
Hasan Turken cade8f0ea2 ios: document real-key typing, set-text, swipe, and tap-element sweep
type now sends real key events and errors without focus; set-text is the
verbatim path. tap-element scrolls off-screen elements into view. Also fix
a tap-element flag that does not exist (--text -> --ax-label).
2026-08-12 13:33:12 +03:00
muvaffak 8176dd2754 Merge pull request #15 from limrun-inc/feature/ios-camera-video
ios-simulator: document camera simulation from a video file
2026-08-07 17:17:14 +03:00
Muvaffak Onus e225d76967 ios-simulator: rename camera-video command to camera
Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 17:15:54 +03:00
Muvaffak Onus bdca5c3e0a ios-simulator: document camera simulation from a video file
Adds the new `lim ios camera-video play|clear` commands so agents can
drive QR-scan and other camera flows with deterministic frames.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 16:46:07 +03:00
muvaffak 84c77230c2 Merge pull request #7 from limrun-inc/limrun-gradle-skill
limrun-gradle: add the remote Gradle build skill
2026-08-05 15:52:01 +03:00
muvaffak e3bccf19b7 Merge pull request #8 from limrun-inc/xcode-build-webhook
limrun-xcode: teach Apple cloud signing
2026-08-05 15:51:11 +03:00
Muvaffak Onus 9e78d1585b limrun-xcode: keep modern cloud signing methods
Stop teaching agents the legacy ad-hoc export alias.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 15:50:35 +03:00
Muvaffak Onus 02ff4a328d limrun-xcode: teach agents Apple cloud signing
Prefer ASC-key-driven signing, document supported export methods, and surface the Apple permission and team errors agents can act on.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 15:50:35 +03:00
Hasan Turken 63a3bb7f55 Merge pull request #14 from limrun-inc/xcode-multi-provisioning-profiles
xcode: document multi-profile signing and fix stale App Store upload flags
2026-07-31 00:42:39 +03:00
Hasan Turken 1920fa3c73 xcode: document multi-profile signing and fix stale App Store upload flags 2026-07-30 23:01:08 +03:00
Hasan Turken 089b92a52c Merge pull request #12 from limrun-inc/hasan/skill-headless-fixes
skills: headless-agent fixes from an external agent's run
2026-07-28 18:22:17 +03:00