Repository navigation
feat(limrun): map boot and shutdown to instance leases - #4275
Conversation
There was a problem hiding this comment.
All reported issues were addressed across 39 files
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
|
Thanks for this. At e28ba51 this needs one code fix and live device evidence before merge. CI shows 13 checks with none failing. The GitHub-owned device lanes remain open obligations per the PR body, and they exercise the changed local
This is a device-facing change: local Apple and Android Not blocking, take or leave: (a) session-close.ts#L142 now keeps the session and retries the whole teardown when any local Could the close path be smaller? For example, pass There are no conflicts. |
|
Addressed the code and evidence requests at The default CLI connection was already refused by tenant admission with I took the local-close simplification: Apple and Android lifecycle implementations now match main, including IME restoration before Android shutdown. The daemon invokes the extra shutdown operation only for provider runtimes. The callback remains explicit so the runtime supplies the target lease ID and the daemon checks it against admitted request ownership before release. I did not add a generic shutdown-effect field. The callback now shares the release result instead of duplicating its payload. The other follow-ups are included: only callers in the holder's inventory scope receive its session address; cleanup failures retain the underlying error; stored-lease clearing stays limited to proxy/Limrun; provider-session recording is shared; pending Android cleanup no longer advertises runtime-hint support; shared command descriptions expose deletion semantics to CLI and MCP; and Live results on November 6, 2026:
Snapshots used the native Android helper matching Raw outputs, receipt, and regression logs. The exact-commit affected gate passes; nine regression assertions fail on |
There was a problem hiding this comment.
All reported issues were addressed across 25 files (changes from recent commits).
Reply with feedback, questions, or to request a fix.
View guided diff | Re-trigger cubic
|
Thanks for the update. The code at b32b218 fixes the problems from the earlier review of e28ba51, and I found no new blocking problem. There are no conflicts. Smoke Tests is still running, so CI is not yet a result; if it fails on a Not blocking, take or leave: the rule that a request with a provider connection never resolves a local device is enforced only in Could the The two open threads on the headless boot hint remap and the leaked mock implementation still apply and need a fix before merge. Your live table covers the Limrun and local shutdown routes; the CLI-side refusal for a lease-less connection rests on that run. |
b32b218 to
378f995
Compare
|
Addressed the three open bot findings and both suggestions from your review through The missing-lease refusal now belongs to the shared provider-first inventory gateway. Both request resolvers carry lease metadata into it, including SDK Rebased onto Receipt, base comparisons, live results, and review. CI is running on the new head; the prior head's checks, including Smoke Tests, passed. |
|
This PR is ready at 378f995. Both P2 findings from the earlier review are fixed, and nothing from that review remains open. All checks pass, including Smoke Tests and Coverage, there are no conflicts, and nothing else must happen before merge. The earlier live rows for local open, close and boot still hold, because the later commits do not change local requests. Not blocking, and you can take or leave these: session-close.ts:150 throws the kept-session cleanup error inside the try block, so the catch at line 177 replaces its hint with the generic retry hint. The hint of a kept-session cleanup report should reach the caller unchanged, ideally with one assertion on it. Also, the lease-less provider rule is stated twice as the same inline predicate, in composed-inventory-gateways.ts:52 and session-device-resolution.ts:64. One named predicate on |
Summary
Limrun owns instance lifetime, so powering off its guest would leave the instance allocated. This 45-file change maps
bootto create/reuse andshutdownto lease release. Created instances are deleted; attachments detach without deleting the externally owned instance. Explicit shutdown releases retained leases. Failed cleanup preserves its session, lease, and diagnostic for retry.Unallocated provider requests fail in shared inventory before local selection, including SDK
openand session-lessboot. Headless boot preserves allocation guidance. Stored-lease clearing follows declared connection policy. Scope includes session-aware recovery hints and preserving local finalizer/IME ordering from #3318. CLI/MCP descriptions explain deletion and data loss.Examples:
agent-device boot,agent-device shutdown,agent-device close --shutdown. Merged #4268 covers Android text/performance.Validation
Rebased onto
df8391a63. At378f995d1e8ed21854911293986ad718a1c27ec8,pnpm check:affected --run --head HEADpassed withexactCommit: true. Receipt, focused tests, base comparisons, independent review, and live results. Headless/inventory regressions fail onb32b21848and pass here.Fresh live runs cover owned Android/iOS lifecycle, native snapshots, and unallocated SDK refusals while a local simulator stays booted. Earlier evidence covers attachments, retained leases, and local shutdown. All resources were cleaned up. GitHub-owned coverage/native/device checks remain CI obligations.
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.