Repository navigation
feat(harmony): drive HarmonyOS devices over hdc #767
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 114 commits
Commits
Show all changes
133 commits
Select commit
Hold shift + click to select a range
0ab3c51
feat(harmony): add HarmonyOS emulator discovery and boot
latekvo 83b485c
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 704f9f6
fix(harmony): drop two exports nothing imports
latekvo 364223c
fix(harmony): bound the -list call under the discovery deadline
latekvo 7dd0717
feat(harmony): drive real HarmonyOS devices over hdc
latekvo a9dd876
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo e2cc063
feat(harmony): drive a HarmonyOS device with the interaction tools
latekvo 0a5dce5
feat(harmony): batch and diff on a HarmonyOS device
latekvo 26b892c
fix(harmony): scope the screenshot-diff rotation guard to a live capture
latekvo 63bba28
docs(harmony): name HarmonyOS where a tool description lists its plat…
latekvo afca62f
chore(harmony): trim comments that restate the error beside them
latekvo 44e56d2
fix(harmony): say the panel is off even when the dump has windows
latekvo 727e385
docs(harmony): name every tool that returns 501, and why each does
latekvo 78f260c
feat(harmony): hand back the connect key a booted emulator registers as
latekvo af1e94e
test(harmony): pin that boot-device hands back a drivable id
latekvo fbbc394
chore(harmony): cut the emulator-boot comments to what the code canno…
latekvo cd49be2
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo de209d7
test(harmony): pin the hdc row shape against real tconn output
latekvo 261a830
fix(harmony): stop the boot budget from running out inside the start
latekvo f41ae42
docs(harmony): say what the emulator was verified against
latekvo d677d3b
fix(harmony): reject a prototype key name instead of shelling it out
latekvo 1840a2b
docs(harmony): say what the unsupported tools actually return, and na…
latekvo 9f7bb55
test(harmony): cover the four tool branches that carry real logic
latekvo 2ec6000
fix(harmony): clip describe frames, keep what a collapsed wrapper kne…
latekvo 90be9c5
fix(harmony): stop boot-device adopting a device it did not start
latekvo 4807a3b
fix(harmony): ask the manager whether it died when there is no connec…
latekvo e41cd44
fix(harmony): make the no-connector liveness check actually fire, and…
latekvo 66a26b1
test(harmony): make the new tests hermetic, leak-free and able to fail
latekvo a3a5d78
fix(harmony): let a force restart outlast the shutdown it asked for
latekvo 508bafa
docs(harmony): state the measured connect key once, not twice
latekvo 4ade1c2
fix(harmony): close the device-found gaps the review round proved
latekvo 95e81ad
fix(harmony): stop open-url and restart-app reporting more than the d…
latekvo 173ffe5
fix(button): say which buttons the platform does take
latekvo 509deac
fix(harmony): match aa's own error-code line, not the bare digits
latekvo 64a05ba
fix(harmony): resolve the key a restarted instance comes back on
latekvo 57a3e8e
fix(harmony): refuse a button press the suspended panel would swallow
latekvo bc44e3a
fix(harmony): keep a layout container that knows something itself
latekvo 4d13ab5
fix(await-ui-element): keep a standing warning off a successful wait
latekvo 9664b94
fix(harmony): try $DEVECO_STUDIO_HOME ahead of the default, not inste…
latekvo 5242c03
fix(screenshot-diff): remove the capture it has copied in
latekvo c156057
test(harmony): pin the dispatch entry each harmony tool hangs from
latekvo ef98e5d
test(harmony): cover a value carrying more than one quote in shellQuote
latekvo afbe0ce
docs(await-screen-idle): describe the note returned with an unsettled…
latekvo a0a1493
fix(screenshot-diff): drop the capture even when the copy fails
latekvo d65017b
fix(boot-device): stop the harmony boot latching a verdict off one ea…
latekvo 66efe56
fix(boot-device): refuse the harmony boot when the pre-start snapshot…
latekvo bc901b5
fix(boot-device): read a refused hdc listing as a refusal, not an emp…
latekvo 24e7d0e
test(harmony): prime the hdc probe the dispatch cases do not depend on
latekvo db13bed
fix(harmony): catch the connector failure hdc reports on stderr with …
latekvo 148402f
fix(boot-device): keep the harmony boot inside the budget it was given
latekvo a4dd81f
fix(harmony): report the screen-off caveat from await-screen-idle too
latekvo cc2a9e4
test(harmony): pin the behaviours a mutation run found nothing held
latekvo cd6cf1b
fix(harmony): classify hdc's unprefixed failures and the boot's own r…
latekvo cc87916
fix(harmony): tell a cut-off command from a connector that never reac…
latekvo 21187f9
test(harmony): pin the uitest queue, sentinel parsing and role table
latekvo ed61b88
fix(harmony): keep the boot's own listings inside the caller's budget
latekvo 5a53003
fix(await-screen-idle): report why the screen was never read
latekvo 7e73156
test(wait): pin the caveats both wait tools fold onto a timeout
latekvo e8bf073
fix(harmony): give a describe read only the wait's remaining budget
latekvo dacdb2c
fix(harmony): refuse a boot target the host does not have
latekvo fda201c
fix(harmony): classify a killed CLI as a timeout, take the keys the o…
latekvo e981ec5
fix(harmony): only refuse a boot against a listing that has rows
latekvo bc7629a
fix(harmony): bound an interaction to one budget, and refuse a panel …
latekvo 2322bfc
fix(harmony): fail a stop closed, and stop reading an unreadable list…
latekvo 7f734eb
docs(harmony): say which tools the platform actually has, and name it…
latekvo 54a56f6
test(harmony): pin the budget split the interaction ceiling depends on
latekvo 56f7ef3
fix(harmony): read hdc's own words, not whatever came back beside them
latekvo 9539893
fix(harmony): name the condition that failed, not the area it failed in
latekvo 641b6c0
fix(describe,gesture-tap): stop offering HarmonyOS interactions it ca…
latekvo 7d3523d
fix(flows): refuse a run device the engine has no arm for
latekvo e6afdfc
docs(flows): say what a run on these two platforms actually does
latekvo 8027265
fix(harmony): cap each describe leg at its own ceiling
latekvo c232384
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 0eace9a
test(harmony): stop pinning budget boundaries to the millisecond
latekvo 0922f9e
Merge origin/main into harmony branch
latekvo dbd37c8
fix(harmony): read the panel's size and power off one dump line
latekvo c4f81cd
fix(harmony): allowlist the power states a touch can land in
latekvo 86477c0
fix(flows): refuse the gestures HarmonyOS cannot make, before dispatc…
latekvo 72163c7
fix(harmony): name an unreadable device table, and redact a secret a …
latekvo b99dabd
fix(secrets): redact the pieces a backend really sends, in one pass
latekvo 1c34379
fix(secrets): match by hand, so a large secret cannot be leaked by th…
latekvo 7ee564b
test(harmony): pin the invariants three fixtures were too kind to catch
latekvo 584ce22
test(harmony): refuse a silent launch and open, as the stop path alre…
latekvo 87cb8cf
Merge branch 'main' into feat/harmonyos-emulator
latekvo 4c43e90
Merge branch 'main' into feat/harmonyos-emulator
latekvo b2e7c17
Merge branch 'main' into feat/harmonyos-emulator
latekvo e06e562
Merge branch 'main' into feat/harmonyos-emulator
latekvo ff5b85a
fix(harmony): close out the device-review round
latekvo 2c74374
fix(harmony): review-round followups
latekvo 0131374
docs(harmony): align two comments with what the code now does
latekvo b65e66f
Merge origin/main into feat/harmonyos-emulator
latekvo 03d62ab
feat(harmony): multi-touch over `uinput`, so `gesture-pinch` runs on …
latekvo bcb4df8
docs(harmony): tighten the uinput diagnostic comment
latekvo 38ca868
Merge origin/main into feat/harmonyos-emulator
latekvo 82bfe8f
Merge origin/main into feat/harmonyos-emulator
latekvo d165c0c
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 6a95dd7
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 6271b32
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo f6c23aa
Merge remote-tracking branch 'origin/main' into HEAD
latekvo c1d15c7
revert(secrets): keep the redaction rewrite out of the HarmonyOS PR
latekvo 5eb8479
fix(await-ui-element): a suspended HarmonyOS panel times out unreadab…
latekvo e427a18
refactor(await-ui-element): drop the unreachable final-read stale check
latekvo 1f0cb47
chore(harmony): trim comments to what the code cannot say
latekvo fdaf949
test(harmony): trim test comments; restore main's keyboard-secrets test
latekvo 199a76c
test(harmony): mock hdcFileRecv in queue tests, sort start logs numer…
latekvo d0a334a
test(harmony): widen two wait budgets that flaked under load
latekvo ed6ae93
Merge remote-tracking branch 'origin/main' into HEAD
latekvo e516cf2
fix(harmony): keep wait-tool notes and capture cleanup on HarmonyOS only
latekvo 8c76d6f
fix(harmony): inject nothing once an input call is cancelled
latekvo 78e6533
test(await-screen-idle): pin that a degraded simulator settles withou…
latekvo 092bca7
fix(describe): leave the Chromium header's gesture list as on main
latekvo 18b26d1
fix(await-ui-element): keep a stale final read from timing out as unmet
latekvo b302c2d
revert(flow-run): leave the tool-step capability gate to #796
latekvo ded66f5
fix(describe): restore main's gesture-space sentence
latekvo 5a52ca4
Merge branch 'main' into feat/harmonyos-emulator
latekvo 8099514
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 32d13f2
feat(harmony): gate HarmonyOS support behind the harmonyos flag
latekvo 9ce8770
fix(harmony): review fixes, and run the harmony tests with the flag on
latekvo 37c8eb5
docs(harmony): move HarmonyOS guidance behind the harmonyos flag
latekvo 7bedc40
feat(harmony): hide HarmonyOS text in tool descriptions behind the ha…
latekvo 33a1715
test(harmony): pin the flag-off tool catalog and boot-device error to…
latekvo 39dfebc
fix(harmony): scale input to the rotated display in landscape
latekvo 1520d1d
Merge branch 'harmony-flag-tagging' into feat/harmonyos-emulator
latekvo 92949ca
Merge branch 'harmony-flag-docs' into feat/harmonyos-emulator
latekvo d2144a3
fix: scrub shell-quoted secrets from errors; correct two HarmonyOS de…
latekvo b035135
chore(harmony): format registry types, sync the HarmonyOS reference w…
latekvo e1cdc74
test(harmony): pin the no-flow-tree arms of e2e step scoring and the …
latekvo d708762
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 8e5ce6e
Merge remote-tracking branch 'origin/main' into feat/harmonyos-emulator
latekvo 7138191
feat(harmony): reinstall-app installs a .hap over hdc
latekvo daf3843
test(harmony): give the failed-dump await case room for one read unde…
latekvo 0362e84
docs(harmony): call HarmonyOS just HarmonyOS outside its platform sec…
latekvo 817e9d8
fix(harmony): drop the em dashes the platform added to tool descriptions
latekvo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Widening
Platformalso admits harmony ids into subsystems that have no harmony branch and no capability gate.flow-executeacceptsdevice: "harmony-<connectKey>", validates, and then fails per-step withui-tree matching is not supported on platform "harmony"- verified against a live emulator with a one-step flow. Flows and the step recorder are not in the PR's supported/refused tables either way, so an agent has nothing to tell it in advance.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
[Diplomat]: Acknowledged, and deliberately not gated in code in 4ade1c2. A flow with a harmony device fails per-step only if a step reads the tree — a flow of pure
tool:calls against the harmony tool surface runs fine, since binding is device-agnostic and the failure you measured comes fromfetchFlowTreenaming the platform. The gap was that the PR never documented flows either way; the passing-target docstrings now note flows have no harmony tree adapter rather than leaving an agent to discover the per-step failure.