q792602257
62923b9285
docs(openspec): confirm android-driver UiAutomator2 commands via research
...
Resolve the previously-open design questions in the android-driver
change by researching the appium-uiautomator2-driver docs and Appium 3
release notes:
- tap -> mobile: clickGesture
- swipe -> mobile: dragGesture (duration_ms converted to speed px/s)
- home -> mobile: pressKey (KEYCODE_HOME)
- port isolation -> appium:systemPort capability
- Appium 3 breaking changes confirmed to not affect this design
Updates design.md (Decisions/Risks/Open Questions/Migration Plan) and
tasks.md (section 1 and tasks 2.1/2.4/4.1) accordingly.
2026-07-13 13:56:04 +08:00
q792602257
e61dcca801
feat(cloud): add edge host enrollment
2026-07-13 13:54:16 +08:00
q792602257
cd56facbbf
chore(openspec): add android-driver proposal
2026-07-13 12:48:09 +08:00
q792602257
960361493c
chore(openspec): add cloud-console proposal
2026-07-13 11:49:34 +08:00
q792602257
e9006c3a29
chore(openspec): archive cloud control plane integration
2026-07-13 09:00:53 +08:00
q792602257
ea9b15fce7
docs(project): record cloud control plane maturity
2026-07-13 08:25:43 +08:00
q792602257
7b717a05a9
test(openspec): map cloud integration scenarios
2026-07-13 08:21:44 +08:00
q792602257
ffc3df6c5b
test(runtime): verify local interfaces
2026-07-13 08:11:18 +08:00
q792602257
e162ec5041
test(cloud): verify public execution outcomes
2026-07-13 08:10:11 +08:00
q792602257
22d37ca95b
chore(cloud): verify integration change
2026-07-13 08:06:15 +08:00
q792602257
3c5f5509c2
docs(cloud): state deployment limitations
2026-07-13 07:59:56 +08:00
q792602257
e28705b0f2
docs(cloud): add deployment runbook
2026-07-13 07:58:24 +08:00
q792602257
dbd70732e1
build(deploy): add cloud stack containers
2026-07-12 22:58:17 +08:00
q792602257
1f95d23beb
feat(cloud-sdk): authenticate client requests
2026-07-12 22:53:34 +08:00
q792602257
16bcbf5a27
feat(cloud-sdk): expose distributed task status
2026-07-12 19:57:03 +08:00
q792602257
77fadbd9e6
test(host-agent): cover distributed recovery flows
2026-07-12 19:54:30 +08:00
q792602257
b1303569e3
feat(host-agent): shut down gracefully
2026-07-12 19:47:50 +08:00
q792602257
91f08509a7
feat(host-agent): report assignment outcomes
2026-07-12 19:09:07 +08:00
q792602257
ec1e8c20d8
feat(host-agent): renew active assignment leases
2026-07-12 19:06:22 +08:00
q792602257
6dc2803ccc
feat(host-agent): execute cloud assignments
2026-07-12 18:52:32 +08:00
q792602257
ab538513b0
feat(host-agent): compose execution factories
2026-07-12 18:50:21 +08:00
q792602257
6e59f2f3ca
feat(host-agent): synchronize device snapshots
2026-07-12 18:48:17 +08:00
q792602257
f6bc8f6b98
feat(host-agent): add control plane client
2026-07-12 18:44:18 +08:00
q792602257
1e10d5aa95
test(cloud-api): verify restart recovery
2026-07-12 18:40:29 +08:00
q792602257
8131c0124b
feat(cloud-api): add correlated lifecycle logging
2026-07-12 18:37:51 +08:00
q792602257
a5de7399f8
feat(cloud-api): expose health readiness
2026-07-12 18:33:45 +08:00
q792602257
b8d02abf87
fix(cloud-api): retry lifecycle iterations
2026-07-12 18:31:19 +08:00
q792602257
937a4646e1
feat(cloud-api): run lifecycle workers
2026-07-12 18:26:41 +08:00
q792602257
bd261e4992
feat(cloud-api): compose control plane services
2026-07-12 18:21:57 +08:00
q792602257
09cfe54dd9
test(host-protocol): verify internal API isolation
2026-07-12 18:17:39 +08:00
q792602257
a24efc1043
feat(host-protocol): renew and complete leases
2026-07-12 18:15:04 +08:00
q792602257
c7f8d0c128
feat(host-protocol): long poll assignments
2026-07-12 18:12:33 +08:00
q792602257
efb754fbe7
feat(host-protocol): accept heartbeat snapshots
2026-07-12 18:10:42 +08:00
q792602257
b4cbd83dcd
feat(host-protocol): define internal API models
2026-07-12 18:07:42 +08:00
q792602257
a05465458c
test(cloud-auth): cover authorization failures
2026-07-12 18:05:30 +08:00
q792602257
7d22b5234d
feat(cloud-auth): require production credentials
2026-07-12 18:02:49 +08:00
q792602257
82b66f74a2
feat(cloud-auth): bind host principals
2026-07-12 17:58:20 +08:00
q792602257
71f0a892e3
feat(cloud-auth): enforce public scopes
2026-07-12 17:56:14 +08:00
q792602257
b916b394c7
feat(cloud-auth): verify scoped bearer tokens
2026-07-12 17:45:31 +08:00
q792602257
4cb116f527
test(cloud-scheduler): prove assignment concurrency
2026-07-12 17:42:20 +08:00
q792602257
c58d9e5316
feat(cloud-scheduler): reap expired leases
2026-07-12 17:32:11 +08:00
q792602257
e1af4403f5
feat(cloud-scheduler): record terminal results
2026-07-12 17:25:57 +08:00
q792602257
1b15a8a218
feat(cloud-scheduler): renew active leases
2026-07-12 17:23:07 +08:00
q792602257
b0a5b1426f
feat(cloud-scheduler): claim host assignments
2026-07-12 17:20:51 +08:00
q792602257
ac7734c7dc
feat(cloud-scheduler): reserve devices atomically
2026-07-12 17:19:10 +08:00
q792602257
0a9392b7ea
feat(cloud-store): persist task lease history
2026-07-12 17:15:09 +08:00
q792602257
52d2a86a4c
test(cloud-store): verify repository contracts
2026-07-12 17:11:10 +08:00
q792602257
7f5f740e2a
test(cloud-store): verify schema migrations
2026-07-12 16:59:08 +08:00
q792602257
24d9dbf38b
feat(cloud-store): add Alembic baseline migration
2026-07-12 16:55:46 +08:00
q792602257
64aa9b39bc
feat(cloud-store): support SQLite and PostgreSQL engines
2026-07-12 16:53:02 +08:00