oysterun 1.6.0-beta.2 → 1.6.0-beta.21

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 (242) hide show
  1. package/bin/oysterun.mjs +64 -17
  2. package/dev/client/connectivity/completed-message-neighbor-click.mjs +78 -0
  3. package/dev/client/connectivity/completed-message-neighbor-contract.mjs +205 -0
  4. package/dev/client/connectivity/completed-message-visibility.d.mts +4 -4
  5. package/dev/client/connectivity/completed-message-visibility.mjs +14 -11
  6. package/dev/client/connectivity/desktop-chat-sidebar-preference.mjs +57 -0
  7. package/dev/client/connectivity/host-connection-feedback.mjs +12 -1
  8. package/dev/client/connectivity/managed-host-browser.mjs +10 -0
  9. package/dev/client/connectivity/session-navigation-intent.mjs +189 -0
  10. package/dev/client/connectivity/session-transition-state.mjs +18 -6
  11. package/dev/client/connectivity/test-completed-message-neighbor-click.mjs +180 -0
  12. package/dev/client/web/index.html +5367 -609
  13. package/dev/client/web-chat/dist/assets/{ReactPrism-BwJhidYf.js → ReactPrism-C6YiTZTC.js} +1 -1
  14. package/dev/client/web-chat/dist/assets/{ReactPrism-BwJhidYf.js.map → ReactPrism-C6YiTZTC.js.map} +1 -1
  15. package/dev/client/web-chat/dist/assets/SessionsSetupApp-CKJOSPFP.js +6442 -0
  16. package/dev/client/web-chat/dist/assets/SessionsSetupApp-CKJOSPFP.js.map +1 -0
  17. package/dev/client/web-chat/dist/assets/SessionsSetupApp-Dx09Uz-6.css +1 -0
  18. package/dev/client/web-chat/dist/assets/index-Ae5I4LHp.js +9 -0
  19. package/dev/client/web-chat/dist/assets/index-Ae5I4LHp.js.map +1 -0
  20. package/dev/client/web-chat/dist/assets/index-CN_FoTB1.js +2 -0
  21. package/dev/client/web-chat/dist/assets/index-CN_FoTB1.js.map +1 -0
  22. package/dev/client/web-chat/dist/assets/{index--1xmQ99x.js → index-DCQFwgGf.js} +2 -2
  23. package/dev/client/web-chat/dist/assets/{index--1xmQ99x.js.map → index-DCQFwgGf.js.map} +1 -1
  24. package/dev/client/web-chat/dist/assets/matrix-entry-BV7G38kH.css +10 -0
  25. package/dev/client/web-chat/dist/assets/matrix-entry-abAy3aOo.js +594 -0
  26. package/dev/client/web-chat/dist/assets/matrix-entry-abAy3aOo.js.map +1 -0
  27. package/dev/client/web-chat/dist/assets/{pdf-ZjtalfgI.js → pdf-DN7oVvM6.js} +5 -5
  28. package/dev/client/web-chat/dist/assets/pdf-DN7oVvM6.js.map +1 -0
  29. package/dev/client/web-chat/dist/assets/session-notice-DlyODy1z.css +1 -0
  30. package/dev/client/web-chat/dist/assets/web-BlYuDlOV.js +1 -0
  31. package/dev/client/web-chat/dist/assets/{web-c70YaskK.js.map → web-BlYuDlOV.js.map} +1 -1
  32. package/dev/client/web-chat/dist/assets/web-Dabw6cJi.js +1 -0
  33. package/dev/client/web-chat/dist/assets/{web-BzHcZK2M.js.map → web-Dabw6cJi.js.map} +1 -1
  34. package/dev/client/web-chat/dist/index.html +1 -2
  35. package/docs/routec/dev/cloud_deplyments.md +5 -0
  36. package/docs/routec/dev/npm_native_dependency_install.md +6 -2
  37. package/docs/routec/dev/npmjs_publish.md +55 -19
  38. package/docs/routec/dev/p262_setup_input_file.md +117 -0
  39. package/docs/routec/host2_turn_started_idempotency_diagnostics.md +8 -7
  40. package/docs/routec/host_setup.md +39 -10
  41. package/docs/routec/oysterun_operation_interface_spec.md +78 -2
  42. package/docs/routec/provider_contract.md +35 -5
  43. package/host-service/README.md +36 -0
  44. package/host-service/adapters/claude-code-adapter.mjs +48 -5
  45. package/host-service/adapters/codex-app-server-adapter.mjs +320 -18
  46. package/host-service/adapters/debug-fixture-provider-adapter.mjs +102 -1
  47. package/host-service/adapters/debug-large-tool-spillover-provider-adapter.mjs +2 -0
  48. package/host-service/adapters/debug-p135-codex-replay-provider-adapter.mjs +2 -0
  49. package/host-service/adapters/debug-routec-structural-replay-provider-adapter.mjs +2 -0
  50. package/host-service/agent-config.mjs +16 -5
  51. package/host-service/agent-folder-availability.mjs +41 -0
  52. package/host-service/apns-complete-message-dispatcher.mjs +1 -0
  53. package/host-service/assets/product-skills/Oysterun/modules/oysterun-find-context/SKILL.md +24 -0
  54. package/host-service/assets/product-skills/Oysterun/modules/oysterun-session-chat/SKILL.md +94 -5
  55. package/host-service/assets/product-skills/Oysterun/modules/oysterun-sessions/SKILL.md +103 -0
  56. package/host-service/assets/product-skills/Oysterun/modules/oysterun-website/SKILL.md +7 -0
  57. package/host-service/assets/product-skills/oysterun-find-context/SKILL.md +24 -0
  58. package/host-service/assets/product-skills/oysterun-session-chat/SKILL.md +94 -5
  59. package/host-service/assets/product-skills/oysterun-sessions/SKILL.md +103 -0
  60. package/host-service/assets/product-skills/oysterun-website/SKILL.md +7 -0
  61. package/host-service/callback-durable-store.mjs +354 -47
  62. package/host-service/callback-foundation.mjs +21 -1
  63. package/host-service/callback-host-integration.mjs +345 -30
  64. package/host-service/claude-acp-model-discovery.mjs +23 -18
  65. package/host-service/cli/assert-installer-reinstall-target.mjs +9 -0
  66. package/host-service/cli/installer-recovery-guidance.mjs +20 -0
  67. package/host-service/cli/prepare-restart-restore.mjs +2 -0
  68. package/host-service/cli/product-cli.mjs +34 -33
  69. package/host-service/cli/reconcile-initial-preflight.mjs +19 -0
  70. package/host-service/cli/recover-installer-lifecycle.mjs +24 -0
  71. package/host-service/cli/run-host-lifecycle.mjs +2 -0
  72. package/host-service/cli/run-staged-lifecycle-recovery.mjs +161 -0
  73. package/host-service/codex-model-discovery.mjs +23 -18
  74. package/host-service/complete-cli-uninstall.mjs +176 -0
  75. package/host-service/complete-message-notification-predicate.mjs +8 -6
  76. package/host-service/complete-message-notification-title.mjs +4 -0
  77. package/host-service/completed-session-unread.mjs +425 -42
  78. package/host-service/completed-turn-navigation.mjs +444 -144
  79. package/host-service/completed-turn-notification-observer.mjs +116 -0
  80. package/host-service/completed-turn-service.mjs +445 -0
  81. package/host-service/config.mjs +115 -9
  82. package/host-service/desired-open-session-state.mjs +331 -0
  83. package/host-service/fixtures/p218-completed-turn-notification.json +11 -0
  84. package/host-service/frp-agent.mjs +9 -9
  85. package/host-service/grok-acp-model-discovery.mjs +31 -33
  86. package/host-service/host-lifecycle-recovery.mjs +37 -0
  87. package/host-service/host-port-resolution.mjs +98 -0
  88. package/host-service/host-runtime-diagnostics.mjs +18 -1
  89. package/host-service/initial-preflight-recovery.mjs +71 -0
  90. package/host-service/installer-recovery-guidance.mjs +85 -0
  91. package/host-service/installer-reinstall-bindings.mjs +49 -0
  92. package/host-service/installer-reinstall-target.mjs +49 -0
  93. package/host-service/legacy-continuity-observation.mjs +33 -0
  94. package/host-service/lifecycle-compat-cli.mjs +13 -0
  95. package/host-service/lifecycle-compat-preload.mjs +89 -0
  96. package/host-service/lifecycle-compatibility.mjs +164 -0
  97. package/host-service/lifecycle-continuity-assets.mjs +222 -0
  98. package/host-service/lifecycle-continuity-probe.mjs +97 -0
  99. package/host-service/lifecycle-continuity-projection.mjs +29 -0
  100. package/host-service/lifecycle-continuity-runner.mjs +192 -0
  101. package/host-service/lifecycle-continuity.mjs +493 -0
  102. package/host-service/lifecycle-service-render-bundle.mjs +120 -0
  103. package/host-service/lifecycle-user-path.mjs +34 -0
  104. package/host-service/link-annotations.mjs +10 -0
  105. package/host-service/matrix-credential-issuer.mjs +32 -1
  106. package/host-service/matrix-event-correlator.mjs +166 -27
  107. package/host-service/matrix-facade.mjs +96 -19
  108. package/host-service/matrix-room-binding.mjs +24 -0
  109. package/host-service/matrix-transcript-read-adapter.mjs +17 -3
  110. package/host-service/model-discovery-guardian.mjs +40 -0
  111. package/host-service/model-discovery-process.mjs +141 -0
  112. package/host-service/onboard-lifecycle-status.mjs +28 -0
  113. package/host-service/onboard.mjs +479 -0
  114. package/host-service/package.json +2 -1
  115. package/host-service/portable-scheduler-definitions.mjs +28 -0
  116. package/host-service/product-runtime-host-origin.mjs +22 -0
  117. package/host-service/provider-model-params.mjs +14 -17
  118. package/host-service/provider-model-refresh-runner.mjs +124 -169
  119. package/host-service/provider-model-refresh-schedule.mjs +11 -0
  120. package/host-service/provider-resume-contract.mjs +9 -3
  121. package/host-service/restart-restore-state.mjs +25 -0
  122. package/host-service/retained-host-state-holder.mjs +57 -0
  123. package/host-service/routec-matrix-sqlite-store.mjs +155 -10
  124. package/host-service/routec-matrix-storage-adapter.mjs +208 -25
  125. package/host-service/routec-matrix-storage-paths.mjs +12 -0
  126. package/host-service/routec-request-delay-window.mjs +55 -0
  127. package/host-service/scheduler-acp-provider-runner.mjs +2 -1
  128. package/host-service/scheduler-direct-provider-runner.mjs +71 -9
  129. package/host-service/scheduler-run-timeout-policy.mjs +85 -0
  130. package/host-service/scheduler-service.mjs +96 -9
  131. package/host-service/scheduler-store.mjs +9 -2
  132. package/host-service/server.mjs +2202 -552
  133. package/host-service/service-definition-migration.mjs +10 -3
  134. package/host-service/session-collection-service.mjs +320 -0
  135. package/host-service/session-history.mjs +99 -15
  136. package/host-service/session-list-preview-service.mjs +87 -12
  137. package/host-service/session-list-projection-service.mjs +182 -0
  138. package/host-service/session-loop-definitions.mjs +702 -75
  139. package/host-service/session-manager.mjs +473 -38
  140. package/host-service/session-switcher-projection.mjs +11 -3
  141. package/host-service/session-tags.mjs +451 -0
  142. package/host-service/session-transcript-target.mjs +103 -0
  143. package/host-service/setup-input-file.mjs +91 -0
  144. package/host-service/setup-provider-model-defaults.mjs +53 -0
  145. package/host-service/setup.mjs +133 -101
  146. package/host-service/stopped-user-host-package.mjs +60 -0
  147. package/host-service/test-fixtures/p236-navigation-original.mjs +500 -0
  148. package/host-service/update-reminder-state.mjs +7 -0
  149. package/host-service/voice-input-receipt-store.mjs +60 -0
  150. package/package.json +1 -1
  151. package/static/oysterun-social-preview.png +0 -0
  152. package/static/site/assets/oysterun-social-preview.png +0 -0
  153. package/static/site/blog/en/index.html +17 -0
  154. package/static/site/blog/generated_manifest.json +9 -9
  155. package/static/site/blog/index.html +18 -0
  156. package/static/site/blog/voice-input-model-experiment/en/index.html +17 -0
  157. package/static/site/blog/voice-input-model-experiment/zh/index.html +17 -0
  158. package/static/site/blog/zh/index.html +17 -0
  159. package/static/site/docs/choose-and-recover-a-provider/en/index.html +17 -0
  160. package/static/site/docs/choose-and-recover-a-provider/zh/index.html +17 -0
  161. package/static/site/docs/configure-session-files-and-settings/en/index.html +17 -0
  162. package/static/site/docs/configure-session-files-and-settings/zh/index.html +17 -0
  163. package/static/site/docs/en/index.html +17 -0
  164. package/static/site/docs/generated_manifest.json +60 -60
  165. package/static/site/docs/host-authentication-and-connection/en/index.html +17 -0
  166. package/static/site/docs/host-authentication-and-connection/zh/index.html +17 -0
  167. package/static/site/docs/index.html +18 -0
  168. package/static/site/docs/install-and-use-a-skill/en/index.html +17 -0
  169. package/static/site/docs/install-and-use-a-skill/zh/index.html +17 -0
  170. package/static/site/docs/read-large-tool-results/en/index.html +17 -0
  171. package/static/site/docs/read-large-tool-results/zh/index.html +17 -0
  172. package/static/site/docs/recover-from-a-host-runtime-error/en/index.html +17 -0
  173. package/static/site/docs/recover-from-a-host-runtime-error/zh/index.html +17 -0
  174. package/static/site/docs/restore-work-after-a-host-restart/en/index.html +17 -0
  175. package/static/site/docs/restore-work-after-a-host-restart/zh/index.html +17 -0
  176. package/static/site/docs/send-images-and-media/en/index.html +17 -0
  177. package/static/site/docs/send-images-and-media/zh/index.html +17 -0
  178. package/static/site/docs/set-up-and-understand-a-host/en/index.html +17 -0
  179. package/static/site/docs/set-up-and-understand-a-host/zh/index.html +17 -0
  180. package/static/site/docs/understand-agent-activity/en/index.html +19 -2
  181. package/static/site/docs/understand-agent-activity/en/index.md +2 -2
  182. package/static/site/docs/understand-agent-activity/zh/index.html +19 -2
  183. package/static/site/docs/understand-agent-activity/zh/index.md +2 -2
  184. package/static/site/docs/use-the-oysterun-cli-safely/en/index.html +17 -0
  185. package/static/site/docs/use-the-oysterun-cli-safely/zh/index.html +17 -0
  186. package/static/site/docs/zh/index.html +17 -0
  187. package/static/site/en/index.html +18 -1
  188. package/static/site/en/index.md +1 -1
  189. package/static/site/faq/en/index.html +17 -0
  190. package/static/site/faq/index.html +18 -0
  191. package/static/site/faq/zh/index.html +17 -0
  192. package/static/site/getting-started/en/index.html +23 -1
  193. package/static/site/getting-started/en/index.md +7 -1
  194. package/static/site/getting-started/index.html +18 -0
  195. package/static/site/getting-started/zh/index.html +23 -1
  196. package/static/site/getting-started/zh/index.md +7 -1
  197. package/static/site/index.html +18 -0
  198. package/static/site/install.sh +676 -127
  199. package/static/site/overview/en/index.html +18 -1
  200. package/static/site/overview/en/index.md +2 -2
  201. package/static/site/overview/index.html +18 -0
  202. package/static/site/overview/zh/index.html +18 -1
  203. package/static/site/overview/zh/index.md +2 -2
  204. package/static/site/privacy/en/index.html +17 -0
  205. package/static/site/privacy/index.html +18 -0
  206. package/static/site/privacy/zh/index.html +17 -0
  207. package/static/site/zh/index.html +18 -1
  208. package/static/site/zh/index.md +1 -1
  209. package/static/site_source/content/tutorials/published/understand-agent-activity/en/article.html +2 -2
  210. package/static/site_source/content/tutorials/published/understand-agent-activity/zh/article.html +2 -2
  211. package/static/site_source/downloads/install.sh +676 -127
  212. package/static/site_source/manifests/host_install.json +2 -10
  213. package/static/site_source/pages/getting-started/en.html +6 -1
  214. package/static/site_source/pages/getting-started/zh.html +6 -1
  215. package/static/site_source/pages/home/en.html +1 -1
  216. package/static/site_source/pages/home/zh.html +1 -1
  217. package/static/site_source/pages/home_main.html +3 -2
  218. package/static/site_source/pages/overview/en.html +1 -1
  219. package/static/site_source/pages/overview/zh.html +1 -1
  220. package/tool_scripts/install_oysterun_update.mjs +78 -13
  221. package/tool_scripts/oysterun_continuity_transaction.mjs +438 -0
  222. package/tool_scripts/oysterun_npm_package_manifest.mjs +32 -0
  223. package/tool_scripts/oysterun_release_service.sh +5 -0
  224. package/tool_scripts/oysterun_service_common.sh +59 -24
  225. package/tool_scripts/oysterun_setup_input.sh +97 -0
  226. package/tool_scripts/oysterun_update_restart_runner.mjs +19 -3
  227. package/tool_scripts/p233_legacy_bootstrap.mjs +254 -0
  228. package/tool_scripts/resolve_user_host_port.mjs +15 -0
  229. package/tool_scripts/restart_oysterun.sh +8 -2
  230. package/tool_scripts/stack_dashboard_credentials.mjs +2 -1
  231. package/tool_scripts/status_oysterun_launch_agents.sh +13 -1
  232. package/tool_scripts/sync_host_stack_config.mjs +9 -6
  233. package/tool_scripts/test_environment_remote_cloud_deprovision.mjs +419 -0
  234. package/tool_scripts/uninstall_oysterun_launch_agents.sh +3 -5
  235. package/dev/client/web-chat/dist/assets/index-Ce9NZBZf.js +0 -129
  236. package/dev/client/web-chat/dist/assets/index-Ce9NZBZf.js.map +0 -1
  237. package/dev/client/web-chat/dist/assets/index-DzIClZ3T.js +0 -2
  238. package/dev/client/web-chat/dist/assets/index-DzIClZ3T.js.map +0 -1
  239. package/dev/client/web-chat/dist/assets/index-NYnaSGBb.css +0 -1
  240. package/dev/client/web-chat/dist/assets/pdf-ZjtalfgI.js.map +0 -1
  241. package/dev/client/web-chat/dist/assets/web-BzHcZK2M.js +0 -1
  242. package/dev/client/web-chat/dist/assets/web-c70YaskK.js +0 -1
@@ -13,6 +13,23 @@
13
13
  <link rel="alternate" hreflang="zh-Hant" href="https://oysterun.com/overview/zh/index.html" />
14
14
  <link rel="alternate" type="text/markdown" href="/overview/en/index.md" />
15
15
  <link rel="describedby" href="/llms.txt" type="text/plain" />
16
+ <meta property="og:title" content="Overview — Oysterun" />
17
+ <meta property="og:description" content="Understand how Oysterun works, its architecture, installation path, and current features." />
18
+ <meta property="og:type" content="website" />
19
+ <meta property="og:url" content="https://oysterun.com/overview/en/index.html" />
20
+ <meta property="og:site_name" content="Oysterun" />
21
+ <meta property="og:locale" content="en_US" />
22
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
23
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
24
+ <meta property="og:image:type" content="image/png" />
25
+ <meta property="og:image:width" content="1200" />
26
+ <meta property="og:image:height" content="630" />
27
+ <meta property="og:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta name="twitter:title" content="Overview — Oysterun" />
30
+ <meta name="twitter:description" content="Understand how Oysterun works, its architecture, installation path, and current features." />
31
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
32
+ <meta name="twitter:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
16
33
 
17
34
  </head>
18
35
  <body>
@@ -46,7 +63,7 @@
46
63
  <nav class="local-page-nav" aria-label="On this page"><strong>On this page</strong><ol><li><a href="#how-it-works">How it works</a></li><li><a href="#architecture">Architecture</a></li><li><a href="#install">Install</a></li><li><a href="#features">Features</a></li></ol></nav>
47
64
  <section id="how-it-works"><h2>How it works</h2><p>Oysterun runs a Host beside a supported Codex, Claude Code, or Grok provider for the same operating-system user. The phone client and an ordinary website browser are two ways to reach that one Host identity; they open the same Session state instead of creating separate Hosts.</p></section>
48
65
  <section id="architecture"><h2>Architecture</h2><p>After a Client reaches the Host, Chat, Explorer and file access, websites, and Session control use the direct Client-to-Host path.</p><p>Oysterun Cloud separately supports bounded Host registration and notification delivery. Whether those support paths are used depends on the configured feature; they are distinct from direct product traffic.</p></section>
49
- <section id="install"><h2>Install Oysterun Host</h2><p>Prerequisites: Ubuntu 22.04+/Debian 12+ with Bash, or macOS with Bash or zsh. Download requires <code>curl</code>. On Ubuntu/Debian, direct root can run <code>apt-get update &amp;&amp; apt-get install -y curl</code>; an ordinary administrator can run <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>. macOS normally includes <code>/usr/bin/curl</code>; if it is missing, stop and restore it through macOS Software Update or <a href="https://support.apple.com/macos">Apple Support</a>. Use administrator access only for these bounded prerequisites or when the installer explicitly requests it.</p><p>The installer qualifies or repairs Node.js and npm to the Node.js 22 runtime line used by Oysterun for the target user. On macOS without Homebrew it stops before mutation and points to the official Node.js installer.</p><div class="install-summary-grid">
66
+ <section id="install"><h2>Install Oysterun Host</h2><p>Prerequisites: Ubuntu 22.04+ with Bash, or macOS with Bash or zsh. Download requires <code>curl</code>. On Ubuntu, direct root can run <code>apt-get update &amp;&amp; apt-get install -y curl</code>; an ordinary administrator can run <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>. macOS normally includes <code>/usr/bin/curl</code>; if it is missing, stop and restore it through macOS Software Update or <a href="https://support.apple.com/macos">Apple Support</a>. Use administrator access only for these bounded prerequisites or when the installer explicitly requests it.</p><p>The installer downloads and checksum-verifies an Oysterun-managed Node.js 22 runtime. It does not require Homebrew or alter Ubuntu package repositories for Node.js.</p><div class="install-summary-grid">
50
67
  <article class="install-summary-card"><h3>macOS or Linux Host</h3><pre class="install-command"><code>curl -fsSL https://oysterun.com/install.sh | bash</code></pre></article>
51
68
  </div><p>The same installer selects the correct platform path and opens guided setup.</p><p><a class="button secondary" href="/getting-started/en/index.html#install-oysterun-host">Open the complete install and connection steps</a></p></section>
52
69
  <section id="features"><h2>Features</h2><p>The current product surface includes Sessions, Chat, Explorer, File Preview, websites, Scheduler, Mail, notifications, search, and Host lifecycle controls. A particular provider or Host configuration may expose only the surfaces it supports.</p><h3>Current maturity and roadmap</h3><p>Oysterun is currently distributed as Beta software. The documentation records behavior verified today; it does not turn unshipped work or a roadmap date into a delivery promise.</p></section>
@@ -23,9 +23,9 @@ Oysterun Cloud separately supports bounded Host registration and notification de
23
23
 
24
24
  ## Install Oysterun Host
25
25
 
26
- Prerequisites: Ubuntu 22.04+/Debian 12+ with Bash, or macOS with Bash or zsh. Download requires `curl`. On Ubuntu/Debian, direct root can run `apt-get update && apt-get install -y curl`; an ordinary administrator can run `sudo apt-get update && sudo apt-get install -y curl`. macOS normally includes `/usr/bin/curl`; if it is missing, stop and restore it through macOS Software Update or [Apple Support](https://support.apple.com/macos). Use administrator access only for these bounded prerequisites or when the installer explicitly requests it.
26
+ Prerequisites: Ubuntu 22.04+ with Bash, or macOS with Bash or zsh. Download requires `curl`. On Ubuntu, direct root can run `apt-get update && apt-get install -y curl`; an ordinary administrator can run `sudo apt-get update && sudo apt-get install -y curl`. macOS normally includes `/usr/bin/curl`; if it is missing, stop and restore it through macOS Software Update or [Apple Support](https://support.apple.com/macos). Use administrator access only for these bounded prerequisites or when the installer explicitly requests it.
27
27
 
28
- The installer qualifies or repairs Node.js and npm to the Node.js 22 runtime line used by Oysterun for the target user. On macOS without Homebrew it stops before mutation and points to the official Node.js installer.
28
+ The installer downloads and checksum-verifies an Oysterun-managed Node.js 22 runtime. It does not require Homebrew or alter Ubuntu package repositories for Node.js.
29
29
 
30
30
  ### macOS or Linux Host
31
31
 
@@ -4,7 +4,25 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Overview — Oysterun</title>
7
+ <meta name="description" content="Understand how Oysterun works, its architecture, installation path, and current features." />
7
8
  <meta name="robots" content="index,follow" />
9
+ <meta property="og:title" content="Overview — Oysterun" />
10
+ <meta property="og:description" content="Understand how Oysterun works, its architecture, installation path, and current features." />
11
+ <meta property="og:type" content="website" />
12
+ <meta property="og:url" content="https://oysterun.com/overview/" />
13
+ <meta property="og:site_name" content="Oysterun" />
14
+ <meta property="og:locale" content="en_US" />
15
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
16
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
17
+ <meta property="og:image:type" content="image/png" />
18
+ <meta property="og:image:width" content="1200" />
19
+ <meta property="og:image:height" content="630" />
20
+ <meta property="og:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
21
+ <meta name="twitter:card" content="summary_large_image" />
22
+ <meta name="twitter:title" content="Overview — Oysterun" />
23
+ <meta name="twitter:description" content="Understand how Oysterun works, its architecture, installation path, and current features." />
24
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
25
+ <meta name="twitter:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
8
26
  </head>
9
27
  <body>
10
28
  <main>
@@ -13,6 +13,23 @@
13
13
  <link rel="alternate" hreflang="zh-Hant" href="https://oysterun.com/overview/zh/index.html" />
14
14
  <link rel="alternate" type="text/markdown" href="/overview/zh/index.md" />
15
15
  <link rel="describedby" href="/llms.txt" type="text/plain" />
16
+ <meta property="og:title" content="產品總覽 — Oysterun" />
17
+ <meta property="og:description" content="了解 Oysterun 的運作方式、架構、安裝路徑與目前功能。" />
18
+ <meta property="og:type" content="website" />
19
+ <meta property="og:url" content="https://oysterun.com/overview/zh/index.html" />
20
+ <meta property="og:site_name" content="Oysterun" />
21
+ <meta property="og:locale" content="zh_TW" />
22
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
23
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
24
+ <meta property="og:image:type" content="image/png" />
25
+ <meta property="og:image:width" content="1200" />
26
+ <meta property="og:image:height" content="630" />
27
+ <meta property="og:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta name="twitter:title" content="產品總覽 — Oysterun" />
30
+ <meta name="twitter:description" content="了解 Oysterun 的運作方式、架構、安裝路徑與目前功能。" />
31
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
32
+ <meta name="twitter:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
16
33
 
17
34
  </head>
18
35
  <body>
@@ -46,7 +63,7 @@
46
63
  <nav class="local-page-nav" aria-label="本頁內容"><strong>本頁內容</strong><ol><li><a href="#how-it-works">運作方式</a></li><li><a href="#architecture">架構</a></li><li><a href="#install">安裝</a></li><li><a href="#features">功能</a></li></ol></nav>
47
64
  <section id="how-it-works"><h2>運作方式</h2><p>Oysterun Host 與同一作業系統使用者所使用、受支援的 Codex、Claude Code 或 Grok 提供者在同一環境執行。手機 Client 與一般網站瀏覽器只是連到同一個 Host identity 的兩種方式;兩者開啟相同的 Session 狀態,不會建立不同的 Host。</p></section>
48
65
  <section id="architecture"><h2>架構</h2><p>Client 連上 Host 後,Chat、Explorer 與檔案存取、網站及 Session 控制走 Client 到 Host 的直接路徑。</p><p>Oysterun Cloud 另以範圍受限的方式支援 Host 註冊與通知傳送。是否使用這些支援路徑取決於已設定的功能;它們與直接產品流量並非同一條路徑。</p></section>
49
- <section id="install"><h2>安裝 Oysterun Host</h2><p>前置需求:Ubuntu 22.04+/Debian 12+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 <code>curl</code>。Ubuntu/Debian 的 direct root 可執行 <code>apt-get update &amp;&amp; apt-get install -y curl</code>;一般管理員可執行 <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>。macOS 正常內建 <code>/usr/bin/curl</code>;若缺少,請停止並透過 macOS Software Update 或 <a href="https://support.apple.com/macos">Apple 支援</a>恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。</p><p>installer 會替目標使用者把 Node.js 與 npm 確認或修復至 Oysterun 使用的 Node.js 22 runtime line;macOS 未安裝 Homebrew 時會在修改前停止,並指向官方 Node.js installer。</p><div class="install-summary-grid">
66
+ <section id="install"><h2>安裝 Oysterun Host</h2><p>前置需求:Ubuntu 22.04+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 <code>curl</code>。Ubuntu 的 direct root 可執行 <code>apt-get update &amp;&amp; apt-get install -y curl</code>;一般管理員可執行 <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>。macOS 正常內建 <code>/usr/bin/curl</code>;若缺少,請停止並透過 macOS Software Update 或 <a href="https://support.apple.com/macos">Apple 支援</a>恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。</p><p>installer 會下載並驗證 checksum 的 Oysterun-managed Node.js 22 runtime,不要求 Homebrew,也不會為 Node.js 修改 Ubuntu 套件來源。</p><div class="install-summary-grid">
50
67
  <article class="install-summary-card"><h3>macOS 或 Linux Host</h3><pre class="install-command"><code>curl -fsSL https://oysterun.com/install.sh | bash</code></pre></article>
51
68
  </div><p>同一份安裝程式會選擇正確平台流程並開啟引導設定。</p><p><a class="button secondary" href="/getting-started/zh/index.html#install-oysterun-host">查看完整安裝與連線步驟</a></p></section>
52
69
  <section id="features"><h2>功能</h2><p>目前產品介面包含 Sessions、Chat、Explorer、File Preview、網站、Scheduler、Mail、通知、搜尋與 Host lifecycle 控制。特定提供者或 Host 設定只會提供其支援的介面。</p><h3>目前成熟度與路線圖</h3><p>Oysterun 目前以 Beta 軟體形式提供。文件記錄當下已驗證的行為,不會把尚未推出的工作或路線圖日期當作交付承諾。</p></section>
@@ -23,9 +23,9 @@ Oysterun Cloud 另以範圍受限的方式支援 Host 註冊與通知傳送。
23
23
 
24
24
  ## 安裝 Oysterun Host
25
25
 
26
- 前置需求:Ubuntu 22.04+/Debian 12+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 `curl`。Ubuntu/Debian 的 direct root 可執行 `apt-get update && apt-get install -y curl`;一般管理員可執行 `sudo apt-get update && sudo apt-get install -y curl`。macOS 正常內建 `/usr/bin/curl`;若缺少,請停止並透過 macOS Software Update 或 [Apple 支援](https://support.apple.com/macos)恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。
26
+ 前置需求:Ubuntu 22.04+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 `curl`。Ubuntu 的 direct root 可執行 `apt-get update && apt-get install -y curl`;一般管理員可執行 `sudo apt-get update && sudo apt-get install -y curl`。macOS 正常內建 `/usr/bin/curl`;若缺少,請停止並透過 macOS Software Update 或 [Apple 支援](https://support.apple.com/macos)恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。
27
27
 
28
- installer 會替目標使用者把 Node.js 與 npm 確認或修復至 Oysterun 使用的 Node.js 22 runtime line;macOS 未安裝 Homebrew 時會在修改前停止,並指向官方 Node.js installer。
28
+ installer 會下載並驗證 checksum 的 Oysterun-managed Node.js 22 runtime,不要求 Homebrew,也不會為 Node.js 修改 Ubuntu 套件來源。
29
29
 
30
30
  ### macOS 或 Linux Host
31
31
 
@@ -13,6 +13,23 @@
13
13
  <link rel="alternate" hreflang="zh-Hant" href="https://oysterun.com/privacy/zh/index.html" />
14
14
  <link rel="alternate" type="text/markdown" href="/privacy/en/index.md" />
15
15
  <link rel="describedby" href="/llms.txt" type="text/plain" />
16
+ <meta property="og:title" content="Privacy — Oysterun" />
17
+ <meta property="og:description" content="Learn how Oysterun handles Host, pairing, notification, and public-site data." />
18
+ <meta property="og:type" content="website" />
19
+ <meta property="og:url" content="https://oysterun.com/privacy/en/index.html" />
20
+ <meta property="og:site_name" content="Oysterun" />
21
+ <meta property="og:locale" content="en_US" />
22
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
23
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
24
+ <meta property="og:image:type" content="image/png" />
25
+ <meta property="og:image:width" content="1200" />
26
+ <meta property="og:image:height" content="630" />
27
+ <meta property="og:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta name="twitter:title" content="Privacy — Oysterun" />
30
+ <meta name="twitter:description" content="Learn how Oysterun handles Host, pairing, notification, and public-site data." />
31
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
32
+ <meta name="twitter:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
16
33
 
17
34
  </head>
18
35
  <body>
@@ -4,7 +4,25 @@
4
4
  <meta charset="utf-8" />
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1" />
6
6
  <title>Privacy — Oysterun</title>
7
+ <meta name="description" content="Learn how Oysterun handles Host, pairing, notification, and public-site data." />
7
8
  <meta name="robots" content="index,follow" />
9
+ <meta property="og:title" content="Privacy — Oysterun" />
10
+ <meta property="og:description" content="Learn how Oysterun handles Host, pairing, notification, and public-site data." />
11
+ <meta property="og:type" content="website" />
12
+ <meta property="og:url" content="https://oysterun.com/privacy/" />
13
+ <meta property="og:site_name" content="Oysterun" />
14
+ <meta property="og:locale" content="en_US" />
15
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
16
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
17
+ <meta property="og:image:type" content="image/png" />
18
+ <meta property="og:image:width" content="1200" />
19
+ <meta property="og:image:height" content="630" />
20
+ <meta property="og:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
21
+ <meta name="twitter:card" content="summary_large_image" />
22
+ <meta name="twitter:title" content="Privacy — Oysterun" />
23
+ <meta name="twitter:description" content="Learn how Oysterun handles Host, pairing, notification, and public-site data." />
24
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
25
+ <meta name="twitter:image:alt" content="Oysterun connecting a phone to a computer running AI agents" />
8
26
  </head>
9
27
  <body>
10
28
  <main>
@@ -13,6 +13,23 @@
13
13
  <link rel="alternate" hreflang="zh-Hant" href="https://oysterun.com/privacy/zh/index.html" />
14
14
  <link rel="alternate" type="text/markdown" href="/privacy/zh/index.md" />
15
15
  <link rel="describedby" href="/llms.txt" type="text/plain" />
16
+ <meta property="og:title" content="隱私權 — Oysterun" />
17
+ <meta property="og:description" content="了解 Oysterun 如何處理 Host、配對、通知與公開網站資料。" />
18
+ <meta property="og:type" content="website" />
19
+ <meta property="og:url" content="https://oysterun.com/privacy/zh/index.html" />
20
+ <meta property="og:site_name" content="Oysterun" />
21
+ <meta property="og:locale" content="zh_TW" />
22
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
23
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
24
+ <meta property="og:image:type" content="image/png" />
25
+ <meta property="og:image:width" content="1200" />
26
+ <meta property="og:image:height" content="630" />
27
+ <meta property="og:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta name="twitter:title" content="隱私權 — Oysterun" />
30
+ <meta name="twitter:description" content="了解 Oysterun 如何處理 Host、配對、通知與公開網站資料。" />
31
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
32
+ <meta name="twitter:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
16
33
 
17
34
  </head>
18
35
  <body>
@@ -13,6 +13,23 @@
13
13
  <link rel="alternate" hreflang="zh-Hant" href="https://oysterun.com/zh/index.html" />
14
14
  <link rel="alternate" type="text/markdown" href="/zh/index.md" />
15
15
  <link rel="describedby" href="/llms.txt" type="text/plain" />
16
+ <meta property="og:title" content="Oysterun — 連線至自有 Host 上的 AI Agent Session" />
17
+ <meta property="og:description" content="使用 Oysterun 連線並控制在自有 Host 上執行的支援 AI Agent Session。" />
18
+ <meta property="og:type" content="website" />
19
+ <meta property="og:url" content="https://oysterun.com/zh/index.html" />
20
+ <meta property="og:site_name" content="Oysterun" />
21
+ <meta property="og:locale" content="zh_TW" />
22
+ <meta property="og:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
23
+ <meta property="og:image:secure_url" content="https://oysterun.com/assets/oysterun-social-preview.png" />
24
+ <meta property="og:image:type" content="image/png" />
25
+ <meta property="og:image:width" content="1200" />
26
+ <meta property="og:image:height" content="630" />
27
+ <meta property="og:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
28
+ <meta name="twitter:card" content="summary_large_image" />
29
+ <meta name="twitter:title" content="Oysterun — 連線至自有 Host 上的 AI Agent Session" />
30
+ <meta name="twitter:description" content="使用 Oysterun 連線並控制在自有 Host 上執行的支援 AI Agent Session。" />
31
+ <meta name="twitter:image" content="https://oysterun.com/assets/oysterun-social-preview.png" />
32
+ <meta name="twitter:image:alt" content="Oysterun 連結手機與執行 AI Agent 的電腦" />
16
33
 
17
34
  </head>
18
35
  <body>
@@ -46,7 +63,7 @@
46
63
  <p class="eyebrow">支援 Codex、Claude Code 與 Grok</p>
47
64
  <h1>透過手機或瀏覽器繼續操作 AI Agent Session。</h1>
48
65
  <p class="lead">Oysterun 讓手機或瀏覽器連上自有 Host 的 Session;Host 與支援的 Codex、Claude Code 或 Grok 提供者在同一環境執行。</p>
49
- <p>前置需求:Ubuntu 22.04+/Debian 12+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 <code>curl</code>。Ubuntu/Debian 的 direct root 可執行 <code>apt-get update &amp;&amp; apt-get install -y curl</code>;一般管理員可執行 <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>。macOS 正常內建 <code>/usr/bin/curl</code>;若缺少,請停止並透過 macOS Software Update 或 <a href="https://support.apple.com/macos">Apple 支援</a>恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。</p>
66
+ <p>前置需求:Ubuntu 22.04+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 <code>curl</code>。Ubuntu 的 direct root 可執行 <code>apt-get update &amp;&amp; apt-get install -y curl</code>;一般管理員可執行 <code>sudo apt-get update &amp;&amp; sudo apt-get install -y curl</code>。macOS 正常內建 <code>/usr/bin/curl</code>;若缺少,請停止並透過 macOS Software Update 或 <a href="https://support.apple.com/macos">Apple 支援</a>恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。</p>
50
67
  <div class="actions">
51
68
  <div class="home-linux-installer" data-p230-home-linux-installer><strong>macOS 或 Linux:一行安裝</strong><pre class="install-command"><code>curl -fsSL https://oysterun.com/install.sh | bash</code></pre><a class="button secondary" href="/getting-started/zh/index.html#install-oysterun-host" data-landing-cta="install_host_hero" data-landing-cta-position="hero" data-landing-nav="getting-started" data-landing-install-intent="host_install">完整安裝步驟</a></div>
52
69
  <a class="button secondary" href="/overview/zh/index.html" data-landing-cta="overview_hero" data-landing-cta-position="hero" data-landing-nav="overview">查看產品總覽</a>
@@ -4,7 +4,7 @@
4
4
 
5
5
  Oysterun 讓手機或瀏覽器連上自有 Host 的 Session;Host 與支援的 Codex、Claude Code 或 Grok 提供者在同一環境執行。
6
6
 
7
- 前置需求:Ubuntu 22.04+/Debian 12+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 `curl`。Ubuntu/Debian 的 direct root 可執行 `apt-get update && apt-get install -y curl`;一般管理員可執行 `sudo apt-get update && sudo apt-get install -y curl`。macOS 正常內建 `/usr/bin/curl`;若缺少,請停止並透過 macOS Software Update 或 [Apple 支援](https://support.apple.com/macos)恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。
7
+ 前置需求:Ubuntu 22.04+ 使用 Bash;macOS 使用 Bash 或 zsh。下載需要 `curl`。Ubuntu 的 direct root 可執行 `apt-get update && apt-get install -y curl`;一般管理員可執行 `sudo apt-get update && sudo apt-get install -y curl`。macOS 正常內建 `/usr/bin/curl`;若缺少,請停止並透過 macOS Software Update 或 [Apple 支援](https://support.apple.com/macos)恢復。只有這些有限前置操作或 installer 明確要求時才使用管理員權限。
8
8
 
9
9
  macOS 或 Linux:一行安裝
10
10
 
@@ -67,7 +67,7 @@
67
67
  <li>Confirm that your original message is still visible in the chat.</li>
68
68
  <li>Do not resend it and do not open a second Session for the same request.</li>
69
69
  <li>Wait for one complete answer, explicit error, or stopped result.</li>
70
- <li>If the same request appears to produce two answers, or the visible state keeps returning to responding without a final result, open the original message's <strong>…</strong> menu and choose <strong>Copy Debug Info</strong>.</li>
70
+ <li>If the same request appears to produce two answers, or the visible state keeps returning to responding without a final result, open the original message's <strong>…</strong> menu and choose <strong>Copy Reference</strong>.</li>
71
71
  <li>Send that information privately to the person who manages this Host. Do not post it publicly.</li>
72
72
  </ol>
73
73
  <aside class="tutorial-result"><strong>Checkpoint:</strong> the original message remains the single request being followed. You either receive one terminal result or preserve one private debug record for the Host manager; you do not create another delivery while investigating.</aside>
@@ -95,7 +95,7 @@
95
95
  <li>Use your browser's <strong>Reload</strong> control once.</li>
96
96
  <li>Read the latest message again.</li>
97
97
  <li>If the page still looks incomplete, return to <strong>Sessions</strong> and reopen the same Session once.</li>
98
- <li>If a final result appears, follow it. If the state is still unclear, do not repeat the request. Open the latest committed message's <strong>…</strong> menu, choose <strong>Copy Debug Info</strong>, and send that information privately to the person who manages this Host. If that command is unavailable, preserve what you can see and contact the Host manager without resending.</li>
98
+ <li>If a final result appears, follow it. If the state is still unclear, do not repeat the request. Open the latest committed message's <strong>…</strong> menu, choose <strong>Copy Reference</strong>, and send that information privately to the person who manages this Host. If that command is unavailable, preserve what you can see and contact the Host manager without resending.</li>
99
99
  </ol>
100
100
  <aside class="safety-note"><strong>Safe stop point:</strong> after one reload and one reopen, an unclear state remains unknown. Preserve the request and debug information instead of creating duplicate work.</aside>
101
101
  </section>
@@ -67,7 +67,7 @@
67
67
  <li>確認原本送出的訊息仍留在聊天中。</li>
68
68
  <li>不要重送,也不要為同一個請求另開一個 Session。</li>
69
69
  <li>等待一個完整回答、明確錯誤或停止結果。</li>
70
- <li>如果同一個請求看起來產生了兩份回答,或畫面反覆回到回應中卻沒有最終結果,開啟原始訊息的 <strong>…</strong> 選單並選擇 <strong>Copy Debug Info</strong>。</li>
70
+ <li>如果同一個請求看起來產生了兩份回答,或畫面反覆回到回應中卻沒有最終結果,開啟原始訊息的 <strong>…</strong> 選單並選擇 <strong>Copy Reference</strong>。</li>
71
71
  <li>私下把資訊交給管理該 Host 的人,不要公開張貼。</li>
72
72
  </ol>
73
73
  <aside class="tutorial-result"><strong>檢查點:</strong>你只追蹤原本那一則請求;最後要嘛得到一個終端結果,要嘛保留一份交給 Host 管理者的私密 debug 記錄,調查期間不建立另一個 delivery。</aside>
@@ -95,7 +95,7 @@
95
95
  <li>只使用瀏覽器的 <strong>Reload</strong> 操作一次。</li>
96
96
  <li>再次閱讀最新訊息。</li>
97
97
  <li>如果頁面仍像是少了內容,回到 <strong>Sessions</strong>,再開啟同一個 Session 一次。</li>
98
- <li>如果最終結果出現,就依結果處理。如果狀態仍不清楚,不要重複送出請求;開啟最新已提交訊息的 <strong>…</strong> 選單,選擇 <strong>Copy Debug Info</strong>,再私下把資訊交給管理該 Host 的人。如果沒有這個指令,保留畫面上看得到的資訊並聯絡 Host 管理者,仍然不要重送。</li>
98
+ <li>如果最終結果出現,就依結果處理。如果狀態仍不清楚,不要重複送出請求;開啟最新已提交訊息的 <strong>…</strong> 選單,選擇 <strong>Copy Reference</strong>,再私下把資訊交給管理該 Host 的人。如果沒有這個指令,保留畫面上看得到的資訊並聯絡 Host 管理者,仍然不要重送。</li>
99
99
  </ol>
100
100
  <aside class="safety-note"><strong>安全停止點:</strong>Reload 一次、重新開啟一次後仍無法判讀,就把狀態保留為「未知」。保存原請求與 debug info,不要製造重複工作。</aside>
101
101
  </section>