android-midscene-automation 1.1.3 → 1.1.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (28) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/README.md +9 -0
  3. package/artemis-main/apps/admin_console/server.py +33 -0
  4. package/package.json +1 -1
  5. package/server/appium-recorder/appium-runner.ts +231 -78
  6. package/server/appium-recorder/element-tap.test.ts +171 -6
  7. package/server/appium-recorder/managed-cleanup.test.ts +7 -7
  8. package/server/appium-recorder/replay-lifecycle.test.ts +4 -4
  9. package/server/appium-recorder/repository.ts +39 -9
  10. package/server/appium-recorder/request-timeout.ts +5 -0
  11. package/server/appium-recorder/routes.ts +38 -15
  12. package/server/appium-recorder/script-import.test.ts +45 -0
  13. package/server/appium-recorder/tree-dump.ts +44 -0
  14. package/server/remote-agents/replay-integration.test.ts +4 -4
  15. package/src/App.vue +10 -10
  16. package/src/appium-recorder/AppiumPage.vue +58 -12
  17. package/src/appium-recorder/RunHistoryDialog.vue +91 -51
  18. package/src/appium-recorder/api.ts +4 -0
  19. package/src/appium-recorder/components/ComponentTree.vue +72 -10
  20. package/src/appium-recorder/components/FlowStepEditor.vue +51 -9
  21. package/src/appium-recorder/components/NodeDetail.vue +129 -52
  22. package/src/appium-recorder/components/RecordedSteps.vue +1 -0
  23. package/src/appium-recorder/components/ScriptParameterSettings.vue +44 -10
  24. package/src/appium-recorder/components/VariableTable.vue +44 -5
  25. package/src/appium-recorder/tree.ts +1 -0
  26. package/src/components/config/AiDeduplicationSettings.vue +0 -1
  27. package/src/components/config/MidsceneConfigPanel.vue +12 -2
  28. package/src/style.css +296 -55
package/CHANGELOG.md CHANGED
@@ -1,4 +1,13 @@
1
1
  # 更新记录
2
+ ## v1.1.5
3
+ - UI优化
4
+
5
+ ## v1.1.4
6
+ - [Appium]修复持续刷新页面中的操作超时,以及可选元素未出现时误报失败的问题。
7
+ - [Appium]脚本列表支持批量导入并自动重建连接脚本关系;导入后保留列表页,不自动加载脚本。
8
+ - [Appium]点击节点改为优先使用组件定位,失败后才使用备用坐标;节点配置中显示备用坐标并过滤无效区域。
9
+ - [Appium]优化连接脚本参数和返回值配置,使用自适应卡片布局并简化空状态。
10
+
2
11
  ## v1.1.3
3
12
  - [Appium]修复登录等点击操作已经触发 Activity 跳转后,UiAutomator2 仍等待点击确认、最终误报超时并占用命令队列的问题;元素点击先读取实时区域,再通过 ADB 点击中心坐标,并限制界面空闲等待时间。
4
13
 
package/README.md CHANGED
@@ -1502,6 +1502,15 @@ Linux: ~/.local/share/android-midscene-automation
1502
1502
 
1503
1503
  # 项目更新记录
1504
1504
 
1505
+ ## v1.1.5
1506
+ - UI优化
1507
+
1508
+ ## v1.1.4
1509
+ - [Appium]修复持续刷新页面中的操作超时,以及可选元素未出现时误报失败的问题。
1510
+ - [Appium]脚本列表支持批量导入并自动重建连接脚本关系;导入后保留列表页,不自动加载脚本。
1511
+ - [Appium]点击节点改为优先使用组件定位,失败后才使用备用坐标;节点配置中显示备用坐标并过滤无效区域。
1512
+ - [Appium]优化连接脚本参数和返回值配置,使用自适应卡片布局并简化空状态。
1513
+
1505
1514
  ## v1.1.3
1506
1515
  - [Appium]修复登录等点击操作已经触发 Activity 跳转后,UiAutomator2 仍等待点击确认、最终误报超时并占用命令队列的问题;元素点击先读取实时区域,再通过 ADB 点击中心坐标,并限制界面空闲等待时间。
1507
1516
 
@@ -19,7 +19,9 @@ Modular entrypoint for full trace inspection, step replay, and task execution ma
19
19
 
20
20
  import argparse
21
21
  import asyncio
22
+ import copy
22
23
  from contextlib import asynccontextmanager
24
+ import logging
23
25
  import os
24
26
  from pathlib import Path
25
27
  import secrets
@@ -452,6 +454,35 @@ class ArtemisUvicornServer(uvicorn.Server):
452
454
  super().handle_exit(sig, frame)
453
455
 
454
456
 
457
+ class QuietProbeAccessFilter(logging.Filter):
458
+ """Hide successful high-frequency probe requests from Uvicorn access logs."""
459
+
460
+ _quiet_paths = frozenset({"/api/status", "/api/system/readiness"})
461
+
462
+ def filter(self, record: logging.LogRecord) -> bool:
463
+ args = record.args
464
+ if not isinstance(args, tuple) or len(args) < 5:
465
+ return True
466
+ method = str(args[1]).upper()
467
+ path = str(args[2]).partition("?")[0]
468
+ try:
469
+ status_code = int(args[4])
470
+ except (TypeError, ValueError):
471
+ return True
472
+ return not (method == "GET" and path in self._quiet_paths and status_code == 200)
473
+
474
+
475
+ def _uvicorn_log_config() -> dict:
476
+ """Keep normal access logs while silencing successful background probes."""
477
+ config = copy.deepcopy(uvicorn.config.LOGGING_CONFIG)
478
+ filter_name = "quiet_artemis_probes"
479
+ config.setdefault("filters", {})[filter_name] = {"()": QuietProbeAccessFilter}
480
+ access_handler = config.get("handlers", {}).get("access")
481
+ if access_handler is not None:
482
+ access_handler["filters"] = [*access_handler.get("filters", []), filter_name]
483
+ return config
484
+
485
+
455
486
  def run_ui_server(host: str, port: int, reload: bool = False) -> None:
456
487
  """Run the UI server with bounded, signal-aware graceful shutdown."""
457
488
  state.host = host
@@ -466,6 +497,7 @@ def run_ui_server(host: str, port: int, reload: bool = False) -> None:
466
497
  port=port,
467
498
  reload=True,
468
499
  timeout_graceful_shutdown=5,
500
+ log_config=_uvicorn_log_config(),
469
501
  )
470
502
  return
471
503
 
@@ -474,6 +506,7 @@ def run_ui_server(host: str, port: int, reload: bool = False) -> None:
474
506
  host=host,
475
507
  port=port,
476
508
  timeout_graceful_shutdown=5,
509
+ log_config=_uvicorn_log_config(),
477
510
  )
478
511
  server = ArtemisUvicornServer(config)
479
512
  app.state.uvicorn_server = server
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "android-midscene-automation",
3
- "version": "1.1.3",
3
+ "version": "1.1.5",
4
4
  "repository": {
5
5
  "type": "git",
6
6
  "url": "git+https://github.com/oooooooko/android-midscene-automation.git"