expo-harmony-toolkit 1.7.0 → 1.7.2

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.
@@ -0,0 +1,111 @@
1
+ # v1.7.1 验收记录(模拟器收口版)
2
+
3
+ 日期:2026-04-02
4
+
5
+ 基线:
6
+
7
+ - 仓库:`Expo-Harmony-Toolkit`
8
+ - 版本:`1.7.1`
9
+ - 验收约束:当前无真机,只做模拟器与构建层收口
10
+
11
+ ## 当前结论
12
+
13
+ `v1.7.1` 这一轮的正确结论不是“所有 preview capability 已 verified”,而是:
14
+
15
+ - 四个 official sample 都已经收口成可理解、可上手、可重复操作的官方示例
16
+ - `official-minimal-sample` 不再只是空白 smoke 卡片,而是最短链路说明页
17
+ - `official-app-shell-sample` 不再只是回归页,而是 router / linking / constants 的最小 onboarding sample
18
+ - `official-ui-stack-sample` 继续作为 verified UI-stack 主 sample,并把成功信号写得更显式
19
+ - `official-native-capabilities-sample` 现在按“每页一个模块、只讲核心支持子集、unsupported 边界明确”的方式收口
20
+ - `expo-file-system`、`expo-image-picker`、`expo-location`、`expo-camera` 仍然全部保持 `preview`
21
+ - 在没有真机前,不把任何 preview capability 提升到 `verified`
22
+
23
+ 这份记录里默认使用以下判读:
24
+
25
+ - `🟡` 表示实现已到位,主要只差真机 / release 证据
26
+ - `🟠` 表示包已进入 `preview`,但这个具体子 API 还没补齐到可信实现;不是“只差真机”
27
+
28
+ ## 本轮实现范围
29
+
30
+ - 统一重做四个 official sample 的页面表达和使用文档
31
+ - `expo-file-system` sample 补齐目录创建、写入、读回、列目录、复制、移动、清理
32
+ - `expo-image-picker` sample 保留单图选择 / 单次拍照 / denied / canceled / asset-return 主路径
33
+ - `expo-location` sample 收口到 foreground permission、current、last-known、geocode、reverse-geocode
34
+ - `expo-camera` sample 收口到 camera permission + still capture through Harmony system camera UI
35
+ - `expo-location` shim 明确把 `watchPositionAsync`、background permission、heading API 降为 unsupported
36
+ - `expo-camera` shim 明确把 embedded preview、pause/resume、microphone、video 相关入口降为 unsupported
37
+ - sample 指南、support matrix、README、acceptance 记录同步到真实状态
38
+
39
+ ## 自动化检查结果
40
+
41
+ 执行:
42
+
43
+ - `pnpm build`
44
+ - `pnpm test`
45
+
46
+ 结果:
47
+
48
+ - `pnpm build`:通过
49
+ - `pnpm test`:通过,`11` suites / `61` tests
50
+
51
+ 另外,sample 相关针对性回归也已通过:
52
+
53
+ - `tests/officialSample.test.ts`
54
+ - `tests/officialAppShellSample.test.ts`
55
+ - `tests/officialUiStackSample.test.ts`
56
+ - `tests/officialNativeCapabilitiesSample.test.ts`
57
+ - `tests/init.test.ts`
58
+ - `tests/docs.test.ts`
59
+
60
+ ## 这版 sample 的实际完成度
61
+
62
+ ### Official Minimal Sample
63
+
64
+ - 页面现在明确说明它验证的是最短 `doctor -> init -> bundle -> build-hap` 链路
65
+ - 页面明确写出成功标准与故意不覆盖的范围
66
+ - 适合作为新开发者的最小入口,而不是仅供维护者理解的 smoke baseline
67
+
68
+ ### Official App Shell Sample
69
+
70
+ - 首页明确展示 app name、pathname、observed URL、generated details URL
71
+ - 同时提供 router push、`Link` 组件、generated deep link 三条入口
72
+ - `/details` 页面也会回显当前 pathname / URL,便于判断 deep-link 是否真正解析成功
73
+
74
+ ### Official UI Stack Sample
75
+
76
+ - 保留 router、linking、constants、SVG、reanimated 的 verified 主线
77
+ - 首页新增“Success signals”表达,降低验收歧义
78
+ - `/details` 页面会回显 route / URL,帮助判断动画和路由是否互相影响
79
+
80
+ ### Official Native Capabilities Sample
81
+
82
+ - `/file-system`
83
+ - 现在是完整 sandbox 文件流 sample
84
+ - 覆盖目录创建、读写、inspect、列目录、copy、move、cleanup
85
+ - `/image-picker`
86
+ - 继续聚焦 permission、单图选择、单次拍照、deny/cancel/success 三类结果
87
+ - `/location`
88
+ - `🟡` foreground permission、current、last-known、geocode、reverse-geocode 可直接操作
89
+ - `🟠` `watchPositionAsync`、background permission、heading API 已不再伪装成主路径支持;这些不是“只差真机”
90
+ - `/camera`
91
+ - `🟡` 相机权限和 through-system-ui 的 still capture 可直接操作
92
+ - `🟠` embedded preview、pause/resume、microphone、video 已不再伪装成主路径支持;这些不是“只差真机”
93
+
94
+ ## 当前未完成的边界
95
+
96
+ 在没有真机前,以下内容仍未完成:
97
+
98
+ - 任一 preview capability 的 `verified` 晋升
99
+ - `🟡` 已实现子集的真机与 release 证据补齐
100
+ - `🟠` `expo-location` 的真实 continuous watch、background permission parity、heading API 实现与验收
101
+ - `🟠` `expo-camera` 的 embedded live preview、preview pause/resume、microphone / video API 实现与验收
102
+ - release signing 配置以外的真机 release HAP 运行证据
103
+
104
+ ## 版本结论
105
+
106
+ 因此,`v1.7.1` 现在可以对外保持的准确说法是:
107
+
108
+ - verified 主线仍然只有 `expo55-rnoh082-ui-stack`
109
+ - 四个 native capability 已经收口成“模拟器下真正可用的高质量 preview sample”
110
+ - 工具链、sample、矩阵、README、acceptance 文档现在口径一致
111
+ - 下一步只有在拿到真机后,才应该讨论 capability promotion
@@ -0,0 +1,37 @@
1
+ # v1.7.2 验收记录(Preview 子集收口版)
2
+
3
+ - 版本:`1.7.2`
4
+ - 日期:`2026-04-02`
5
+ - 目标:把 `expo-file-system`、`expo-image-picker`、`expo-location`、`expo-camera` 当前文档中的 `🟠` 子项全部收口到明确 `🟡` 子集
6
+
7
+ ## 结论
8
+
9
+ `v1.7.2` 的正确结论不是“preview capability 已 verified”,而是:
10
+
11
+ - 四项能力继续全部保持 `preview`
12
+ - `runtimeMode` 继续保持 `adapter`
13
+ - `evidence.release` 继续保持 `false`
14
+ - 公开文档、official sample、模板生成与测试口径已收口到新的 yellow subset
15
+
16
+ ## 这轮收口内容
17
+
18
+ - `expo-file-system`
19
+ - base64、append / partial read、`getInfoAsync({ md5: true })`、`downloadAsync`
20
+ - `expo-image-picker`
21
+ - multi-select、mixed library selection、camera photo/video capture、`getPendingResultAsync`
22
+ - `expo-location`
23
+ - background permission、`watchPositionAsync`、`getHeadingAsync`、`watchHeadingAsync`
24
+ - `expo-camera`
25
+ - embedded `CameraView`、preview pause/resume、video recording、microphone permission
26
+
27
+ ## 文档与 sample 口径
28
+
29
+ - [support-matrix](./support-matrix.md) 已更新为新的 yellow subset
30
+ - [official-native-capabilities-sample](./official-native-capabilities-sample.md) 已改成四条 route 的收口版 walkthrough
31
+ - README 中英、acceptance link、sample route copy 已同步更新
32
+
33
+ ## 保持不变的边界
34
+
35
+ - 这轮不做 `preview -> verified` 晋升
36
+ - 这轮不扩张到 `expo-notifications`、scanner parity、resumable task 家族等非目标能力
37
+ - 真机与 release 证据仍需后续验收补齐
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "expo-harmony-toolkit",
3
- "version": "1.7.0",
3
+ "version": "1.7.2",
4
4
  "description": "面向 Managed/CNG Expo 项目的 HarmonyOS 迁移、准入检查与 UI-stack 构建工具链",
5
5
  "main": "app.plugin.js",
6
6
  "types": "build/index.d.ts",