Repository navigation
refactor(platforms): share direct lifecycle binding and the interactor operation set - #3304
Conversation
Size Report
Startup median (7 runs, lower is better):
|
|
The code in 208cae0 looks right to me. I did not run the tests or the typecheck, and I did not do a live device run. CI is green with 19 checks and none failing, and the PR body says the runtime tests for web, Linux, Vega and HarmonyOS and the contracts tests cover the changed binding route. I read the code and found the HarmonyOS bound set equivalent to the old one, but I did not diff the exact bound key set in the Not blocking, and you can take or leave these: the doc block in local-interactor-operation-set.ts says the set serves Android and Linux, but HarmonyOS now uses it too, so please name every pointer-driving local family or drop the list; and the Apple classifier removal in runner-session.ts is unrelated to this dedupe, and Is there a smaller shape than one function call per owner? A registry row of owner and identity would work, but it is not simpler for four call sites, so I see no simpler option. Nothing else needs to change before merge. |
|
Addressed at 785c049: the |
isBenignSimulatorRunnerUninstallResult sniffed simctl output, and both branches of its verdict returned without acting on it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… platform Web, Linux, Vega, and HarmonyOS each carried a 30-line lifecycle.ts that differed only in the owner label and open-target identity. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…n void from the uninstall step Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
785c049 to
fe77520
Compare
|
The earlier concern on 208cae0 is resolved. At 785c049 the code looks good, and the new commit only changes one doc comment and one return type in runner-session.ts, so it has no runtime effect. All 19 of 19 checks passed at 785c049. I did not rerun pnpm check:affected or typecheck locally. I relied on green CI and your report. You pushed fe77520 after this review. It is a rebase onto current main with the same patch (only import context moved in the HarmonyOS commit), and GitHub no longer reports conflicts. The next step is green CI on fe77520. |
|
All checks passed on fe77520, the rebase covered in my previous comment. The code verdict is unchanged, and GitHub reports no conflicts. This is ready for human review. |
|
Summary
Three platform-package de-duplications, no behavior change:
lifecycle.tsthat differed only in the owner label and open-target identity.@agent-device/contracts/application-lifecycle-interactionnow exportsbindLocalDirectApplicationLifecycleand the four files are gone.bindLocalInteractorOperationSetalready owns for Android and Linux. The shared set is a superset (it also bindsreadTextAtPoint, which HarmonyOS marks unavailable, so nothing new binds).isBenignSimulatorRunnerUninstallResultsniffed simctl output and both branches of its verdict returned without acting on it; the uninstall stays best-effort without the classifier.10 files, net −159 lines.
Validation
Tested at 208cae0:
pnpm check:affected --runpassed (format, lint, typecheck, related tests including each platform'sruntime.test.ts, the contracts package, andrunner-session-stale-bundles.test.ts). No device run applies; the bound operations are the same functions reached through the shared binder.🤖 Generated with Claude Code