You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Commit 82c49da
Browse filesBrowse the repository at this point in the historyBrowse files
|`miniapps/`| Build-time packaging and isolated document bridge for product-owned offline tools; native storage and WebView lifecycle stay in each app |
28
29
|`design-system/`| HarmonyOS-derived mobile tokens, component contracts, deterministic preview scenarios, and the desktop comparison surface |
29
30
30
31
## Native UI Contract
@@ -90,3 +91,13 @@ UiState or an Intent declared there, and no module above it is visible to them.
90
91
from `shared/`, with an emulator or handset attached. Those suites compile the
91
92
same `commonTest` sources onto ART; they are not in CI, so run them by hand
92
93
when touching either module.
94
+
95
+
## Offline Mini Apps
96
+
97
+
Android preBuild and the iOS resource phase run `miniapps/generate.cjs` (Node.js
98
+
must be on PATH). Generated native HTML is ignored; update product-owned built-in
99
+
sources or the packaging owner, never the generated resources. Harmony retains
100
+
its existing native host and invokes the same generator without native wrappers.
101
+
Run `node --test src/apps/mobile/miniapps/*.test.cjs src/apps/mobile/harmonyos/miniapps/*.test.cjs`
102
+
from the repository root after bundle/bridge changes. Storage keys remain scoped
103
+
to an allowlisted app; retain unreadable records and surface the error.
Copy file name to clipboardExpand all lines: src/apps/mobile/README.md
+17Lines changed: 17 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -21,6 +21,12 @@ interfaces.
21
21
All three apps can send images with or without text. Camera photos are decoded
22
22
on the phone and converted to a supported format before upload. Failed sends
23
23
retain the draft and images; acknowledgement removes only the submitted content.
24
+
Android supports selecting several photos at once and retains prepared attachments
25
+
across Activity recreation and process restarts. Android stores prepared image drafts
26
+
in app-private files excluded from backups, scoped by account endpoint, account,
27
+
device and session. Failed saves and unreadable records offer retry without erasing
28
+
the stored draft. An in-progress photo conversion still needs to be retried if the
29
+
process stops before preparation and saving finish.
24
30
25
31
Model selection belongs to the connected host. A primary model that supports
26
32
images receives their pixels directly. For a text-only primary model, select an
@@ -57,6 +63,10 @@ metadata, execution-mode IDs, speech draft merging, and completion observation i
57
63
| Capability | Android and iOS behavior | Compatibility and verification boundary |
58
64
|---|---|---|
59
65
| Execution modes | Minimal / Standard / Ultimate, with the HarmonyOS density glyph; workspace menus also retain Cowork | Enabled only by live `get_workspace_info.capabilities` containing `harness_profiles_v1`; older hosts keep Code / Cowork. Capability absence in old payloads is covered by a round-trip test. |
66
+
| Running-turn input | A nonempty remote draft offers Send; an empty composer retains Stop | Hosts advertising `dialog_steer_v1` receive `steer_turn` with the active turn ID. Older hosts retain `send_message` queueing; failed sends retain the draft and attachments. |
67
+
| Plans | Legacy CreatePlan, structured plans and `.plan.md` writes show a plan card with file preview and Build | Build requires `plan_build_v1`, a completed plan tool and an idle connected session. Paths remain remote; the mobile app never runs the plan locally. |
68
+
| Offline Mini Apps | Gomoku, Regex Playground and Daily Divination open from welcome and sidebar without login | Product-owned sources are bundled by `miniapps/generate.cjs`; native WebView hosts expose only per-app allowlisted storage and clipboard. No network, Node or shell bridge. |
69
+
| Code preview | Native lexical colors, line numbers and referenced-line backgrounds | Both apps use the core-feature highlighter with native theme tokens; large files retain its bounded plain-text fallback. |
60
70
| Account profile | Public GitHub login and avatar replace the numeric-ID placeholder | The immutable Relay user ID still authorizes devices. Display metadata uses a separate encrypted 24-hour cache; offline refreshes preserve credentials and cached display. |
61
71
| Task completion | Notify for a previously observed successful remote turn while backgrounded | Identity includes target, session and turn. Replayed, failed and cancelled turns do not notify. These are local notifications, not server push. iOS observes within its OS background-task allowance; Android observes while the controller process remains alive. Neither promises notification after process termination. |
62
72
| Speech input | Continue an existing draft without trimming its whitespace or inserting spaces into Chinese text | iOS owns Speech/AVAudio lifecycle in a platform adapter and cancels on route, target or scene changes. Android uses the system recognition activity. |
@@ -81,3 +91,10 @@ or opens system notification settings for an existing decision.
81
91
Camera and microphone access stays contextual to scanning and voice input.
82
92
Notification authorization does not extend the platform background-execution
83
93
limits described above.
94
+
95
+
## Connection recovery
96
+
97
+
Native iOS and Android controllers probe idle session lists while the app is in the
98
+
foreground. An open transcript uses its existing session poll for recovery instead
99
+
of duplicating the health request. Temporary transport failures keep the displayed
100
+
list or transcript; a successful response restores the connected state.
Copy file name to clipboardExpand all lines: src/apps/mobile/android/app/src/androidTest/kotlin/com/openbitfun/mobile/app/MobileDesignPreviewVisualTest.kt
0 commit comments