Repository navigation
feat(limrun): sync local iOS and Android app installs - #4225
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 120 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
|
At a95049b, the install change looks right, but the published bundle will likely fail when a changed app is installed again. All 17 checks pass. The bundle still aliases Your live run uses the built Not blocking, take or leave: the versioned help at cli-help.ts:631 still says install needs On the open inline threads: the limrun.md:50 thread still applies, since an attached Android session also needs the ADB URL. Most of the other threads are about #4224 files this commit does not change, so they belong there. The three about leaving the abort signal out of |
a95049b to
a6a2a7c
Compare
|
Confirmed the bundle finding on both platforms at The expanded live script runs the built dist client, installs one build, installs a rebuilt binary at the same path, then reinstalls the first build. Both platforms pass stopped-state and installed-content checks. Actual uploads contain 5,698/5,665-byte iOS deltas and 1,632/1,629-byte Android deltas. Base/head logs, wire records, build logs and receipts are published with their exact source SHAs. The optional fixes are included too: aligned help and Android ADB credentials, typed SDK errors, obsolete fixture cleanup, and one serialized session-owned basis cache with pruning and disposal. In-flight SDK work retains its source until completion; canceled queued work never starts. The full affected gate passes at |
|
The first push exposed a CI timing race in the existing Apple launch-confirmation test: all five kernel-errors shards failed their initial run because the test exhausted 1,000 event-loop turns before the lazy lookup started. The full selected mutation shard passed locally before and after the barrier change, with 72 killed and 4 surviving mutants. The Linux failure was not reproduced on this Mac. Final All 24 inline threads on this PR and 25 on #4224 have replies and are resolved. #4224's GitHub checks are green; this sync PR still follows it. |
There was a problem hiding this comment.
All reported issues were addressed across 1 file (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
|
At bafbb75, the code looks good, and the issues from the earlier review are fixed: the real delta encoder is bundled with its notices, rebuilt-app installs sync on both platforms, and the basis store is session-owned. The sync evidence (a built dist client, a changed binary at the same path, and the byte deltas on iOS and Android) is accepted from your report; I could not open the linked receipts. The failing Mutants (kernel-errors-4) shard broke in its dry run on a daemon-client startup-race test, and this diff changes nothing under daemon-client, daemon-contracts or daemon, so it looks unrelated; please re-run that shard. The "Affected decision-kernel mutants" check fails only because shard 4 has no report. There are no conflicts. This PR stacks on #4224, which needs to land first, then a rebase. Not blocking, take or leave:
Open threads: the P2 on launch-confirmation.test.ts:304 (bounded fallback in the race) still stands. The earlier threads on this PR's own changes are fixed and can be resolved; the ones on runner code belong to #4224's scope, and the three on cancellation during sync are deliberate, since the SDK keeps reading the artifact until it settles and the outer deploy still observes cancellation. |
|
#4224 has merged, so this now conflicts with main. Please rebase onto main; the review at bafbb75 (#4225 (comment)) still stands, and review will continue on the rebased head. |
bafbb75 to
12c2b67
Compare
|
Rebased onto current main at
This update is limited to the requested rebase. The existing bounded-wait review finding and optional cleanup suggestions are unchanged. The PR stays draft; fresh CI results will replace the old-head results, and earlier live evidence remains attributed to its original source. |
There was a problem hiding this comment.
All reported issues were addressed across 38 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
|
At 12c2b67, the rebase is clean: the code looks good, the conflict from bafbb75 is gone, and all 25 checks pass. The rebase is patch-equivalent, so the live iOS and Android sync evidence accepted at bafbb75 still covers this head. I did not run tests locally or open the receipt links. A few inline threads still apply, all test or wording issues that do not block merge: the license test portability, the truncated license body check, the weak queued-sync test, the SDK comment wording, and the launch-confirmation test race, which still holds even though that thread is resolved. The basis prune thread is unconfirmed, since The cancellation-order thread can be resolved, since the deployment rejects only after the pending sync settles, matching the daemon's finally, and so can the help-text sentence thread. |
12c2b67 to
d2c9b9f
Compare
|
Addressed the latest review in The tests now assert complete normalized xdelta notices, cover LF/CRLF input, and read the queued APK basis before teardown. The cancellation comment and apps help wording are corrected. I also fixed the earlier bounded-wait finding, even though the bot had marked it resolved: its real-I/O guard is independent of the fake clock, and both the guard and owned lookup are cleaned up. Isolated checks reproduce the CRLF assertion failure and show that truncated notices and premature removal of the APK basis pass the old tests but fail the stronger tests. All 55 focused cases and all 13 unchanged cancellation integration cases pass. Independent review found no remaining findings after the lookup-cleanup refinement. The two production reports do not apply to this code: materialized install cleanup waits for sync settlement, and pinned SDK 0.69.1 writes source-relative basis files without a separate metadata file in that directory. I replied with the call paths and evidence rather than adding speculative behavior.
Regression/mutation logs, independent-review disposition, and exact-commit validation. Runtime installation logic is unchanged. Earlier live evidence remains attributed to its original source; fresh GitHub CI checks remain authoritative. |
|
At d2c9b9f, the code looks good. The test and wording threads from the earlier review are fixed, and the |
Summary
Use Limrun app sync for local iOS and Android install/reinstall, including changed binaries. The package bundles the delta encoder and license notices. A session-owned basis cache survives artifact materialization, and SDK operations retain their source until completion. Install-only sync leaves apps stopped; asset URL installation remains supported.
This 38-file change uses released SDK 0.69.1 and follows the merged native runner replacement. Scope also includes the Apple deadline-test fixture added after CI exposed a race, now with an independent bounded wait and cleanup. CLI syntax is unchanged:
agent-device install ./MyApp.apporagent-device install ./app.apkin a Limrun session.Validation
Tested
d2c9b9fc16e221ecd68e0bc7d3358a0a2c57a7dc:pnpm check:affected --run --head HEADpasses withexactCommit: true, including 17,400 unit tests, provider integration and compatibility checks. Review evidence includes independent review, 55 focused tests, 13 cancellation integration cases, and isolated checks proving the CRLF, complete-notice, queued-basis and bounded-wait coverage.Earlier live evidence remains attributed to the pre-rebase source. It verifies changed-binary installs on both platforms, stopped state, installed contents, and 5.7 KB iOS/1.6 KB Android deltas. This follow-up changes tests and wording, with no new live-device claim. GitHub-owned checks remain CI obligations.
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.