vibe64 0.1.39 → 0.1.40

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 (261) hide show
  1. package/bin/run.js +1942 -1846
  2. package/bin/server.js +136 -112
  3. package/bin/upgrade-state.js +5023 -4860
  4. package/dist/assets/GithubBrowserTabs-BoDkGFtY.js +1 -0
  5. package/dist/assets/LocalDatabaseServer-BWAvRlUl.css +1 -0
  6. package/dist/assets/LocalDatabaseServer-CVsGChHh.js +2 -0
  7. package/dist/assets/StudioErrorNotice-C_jbvp9V.js +1 -0
  8. package/dist/assets/VAlert-gwuhYlYb.js +1 -0
  9. package/dist/assets/VAutocomplete-D7Vk5wq_.js +1 -0
  10. package/dist/assets/VAvatar-DvRBcmqv.js +1 -0
  11. package/dist/assets/VBtn-BhVEwXLX.js +1 -0
  12. package/dist/assets/VCard-C3Hx769y.js +1 -0
  13. package/dist/assets/VCheckbox-DyCGSN0H.js +1 -0
  14. package/dist/assets/VCheckboxBtn-DCyuVH7W.css +1 -0
  15. package/dist/assets/VCheckboxBtn-DYcQU2Pn.js +1 -0
  16. package/dist/assets/VChip-VVdtjfq-.js +1 -0
  17. package/dist/assets/VDialog-CQDhjRiV.js +1 -0
  18. package/dist/assets/VDivider-Dq25WsKu.js +1 -0
  19. package/dist/assets/VExpansionPanels-C1y-myl5.js +1 -0
  20. package/dist/assets/VMenu-CDcBLYWR.js +1 -0
  21. package/dist/assets/VOverlay-Cp4rFk6g.js +1 -0
  22. package/dist/assets/VRadioGroup-CAjNZwF7.js +1 -0
  23. package/dist/assets/VRow-BskP28jR.js +1 -0
  24. package/dist/assets/VSelect-D3oLvCcB.js +2 -0
  25. package/dist/assets/VSheet-DxYEFfnM.js +1 -0
  26. package/dist/assets/VSkeletonLoader-Cync3lZZ.js +1 -0
  27. package/dist/assets/VSpacer-CgWOWvBh.js +1 -0
  28. package/dist/assets/VSwitch-BxGuGypi.js +1 -0
  29. package/dist/assets/VTextField-C0b_0cSa.js +1 -0
  30. package/dist/assets/VTextField-F6unyhrS.css +1 -0
  31. package/dist/assets/VTextarea-B7sZd1JY.js +1 -0
  32. package/dist/assets/{Vibe64AsyncModuleState-Do9EqX3S.js → Vibe64AsyncModuleState-syuPcpGx.js} +1 -1
  33. package/dist/assets/Vibe64AuthSettingsButton-CmiidAs5.js +5 -0
  34. package/dist/assets/{Vibe64AuthSettingsButton-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
  35. package/dist/assets/Vibe64CopyCommand-CYiZcy0d.js +1 -0
  36. package/dist/assets/Vibe64CopyCommand-ClbQLYZi.css +1 -0
  37. package/dist/assets/{Vibe64DashboardBackButton-BH_8j_VR.js → Vibe64DashboardBackButton-Go_MJuIK.js} +1 -1
  38. package/dist/assets/{Vibe64DashboardPageHeader-BXQR00HK.js → Vibe64DashboardPageHeader-BMrdRph6.js} +1 -1
  39. package/dist/assets/Vibe64DashboardPageHeader-CdlzsyKQ.css +1 -0
  40. package/dist/assets/Vibe64DashboardShell-MCzEQCWu.js +1 -0
  41. package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-DM9V017v.js} +3 -3
  42. package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
  43. package/dist/assets/Vibe64OutputControls-CU9H0Dur.js +8 -0
  44. package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
  45. package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
  46. package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-DaAChLA8.js} +2 -2
  47. package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-CM2EzXBf.js} +4 -4
  48. package/dist/assets/Vibe64SessionFiles-DsPb8hOe.css +1 -0
  49. package/dist/assets/{Vibe64TemporaryAiFixAction-BiuIE9mC.js → Vibe64TemporaryAiFixAction-CIePbdW8.js} +1 -1
  50. package/dist/assets/{Vibe64UiStoryboardView-BhKRpL0N.js → Vibe64UiStoryboardView-Bp9STItF.js} +1 -1
  51. package/dist/assets/{Vibe64UnavailableSessions-Ca5nC7KH.js → Vibe64UnavailableSessions-JBgHzM-j.js} +1 -1
  52. package/dist/assets/{_sessionId_-CKkGH3Rx.js → _sessionId_-DVHd6D5V.js} +1 -1
  53. package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
  54. package/dist/assets/_slug_-DsfaE8Vh.js +25 -0
  55. package/dist/assets/_slug_-_qfQqdHb.css +1 -0
  56. package/dist/assets/{access-WlhPvPgy.js → access-BbzSuMt5.js} +1 -1
  57. package/dist/assets/app-BNh2oZg-.js +1 -0
  58. package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
  59. package/dist/assets/{changes-CHJjrZAc.js → changes-D8Koqrqg.js} +1 -1
  60. package/dist/assets/client-CybfBKCn.js +2 -0
  61. package/dist/assets/client-D6UGamrv.css +1 -0
  62. package/dist/assets/{conversation-B90ERX9h.js → conversation-DZW4-Wck.js} +2 -2
  63. package/dist/assets/{conversation-vxJGwmtW.css → conversation-TK6EmDk4.css} +1 -1
  64. package/dist/assets/{createSimpleFunctional-CZTGuNuR.js → createSimpleFunctional-zlXZooQW.js} +1 -1
  65. package/dist/assets/{dashboard-CuutW8iv.js → dashboard-DLrmf5ed.js} +1 -1
  66. package/dist/assets/definitions-DgyQJgn-.js +1 -0
  67. package/dist/assets/dialog-transition-D2vqGksQ.js +1 -0
  68. package/dist/assets/env-B5V1EC4M.css +1 -0
  69. package/dist/assets/env-rVQwLtYr.js +1 -0
  70. package/dist/assets/health-92hh8xXh.css +1 -0
  71. package/dist/assets/health-B6r9LLrd.js +1 -0
  72. package/dist/assets/{history-1_NU8azF.js → history-C6xLWUxL.js} +1 -1
  73. package/dist/assets/incoming-Bdqo8z25.css +1 -0
  74. package/dist/assets/incoming-CNwZa_yD.js +2 -0
  75. package/dist/assets/index-B9P6KjvH.js +138 -0
  76. package/dist/assets/{index-irlMYzLh.css → index-BC29JK2e.css} +1 -1
  77. package/dist/assets/{integrations-BMzWQQpa.js → integrations-CcrqPXxj.js} +10 -10
  78. package/dist/assets/integrations-Co8WvCiD.css +1 -0
  79. package/dist/assets/issues-DEjIlMdl.js +1 -0
  80. package/dist/assets/layout-B2Ap07aa.js +1 -0
  81. package/dist/assets/{lazy-NHSwD9FS.js → lazy-BjyT2XvW.js} +1 -1
  82. package/dist/assets/{learning-Bdi3XRS7.js → learning-BP1xvd8w.js} +1 -1
  83. package/dist/assets/mdi-Bt90Ns76.js +1 -0
  84. package/dist/assets/placement-CQy46H3H.js +1 -0
  85. package/dist/assets/publish-CPWnztCc.css +1 -0
  86. package/dist/assets/publish-CVXolnAG.js +3 -0
  87. package/dist/assets/pull-requests-BjwokcU0.css +1 -0
  88. package/dist/assets/pull-requests-DdgzLzY_.js +1 -0
  89. package/dist/assets/{repository-BL_2bgzC.js → repository-5S0LzRq3.js} +1 -1
  90. package/dist/assets/ripple-EFNA8EBu.js +11 -0
  91. package/dist/assets/rolldown-runtime-DBalRfVu.js +1 -0
  92. package/dist/assets/{session-BdhKrcX4.js → session-BGpiZThC.js} +1 -1
  93. package/dist/assets/{settings-1rpuL7eR.js → settings-BKP_eQ3F.js} +1 -1
  94. package/dist/assets/settings-D8x4KUqV.css +1 -0
  95. package/dist/assets/shared-DZETtWRH.js +2 -0
  96. package/dist/assets/studioGateApi-BXHVBVEc.js +1 -0
  97. package/dist/assets/studioUrls-DpSS-0z1.js +1 -0
  98. package/dist/assets/useArchivedVibe64Sessions-D8DWpcSy.js +1 -0
  99. package/dist/assets/useCommand-nWFczmJy.js +1 -0
  100. package/dist/assets/useEndpointResource-Ds8EDBZ2.js +1 -0
  101. package/dist/assets/useRealtimeEvent-DrOiU8lJ.js +1 -0
  102. package/dist/assets/{useUiFeedback-BPBF_0bp.js → useUiFeedback-CMwE4MLs.js} +1 -1
  103. package/dist/assets/useVibe64ConversationLog-D-Vkq0sK.js +1 -0
  104. package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-Dpm53ruL.js} +1 -1
  105. package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
  106. package/dist/assets/useVibe64SessionData-CGJXj3r7.js +1 -0
  107. package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-BEqKR412.js} +1 -1
  108. package/dist/assets/{useVibe64SystemGraph-B4RmsC9Y.js → useVibe64SystemGraph-DbSfrYF8.js} +1 -1
  109. package/dist/assets/{useVibe64Terminal-Cg3idMcy.js → useVibe64Terminal-I7Sf6xMW.js} +1 -1
  110. package/dist/assets/vibe64ProjectScope.local-B06ABkhI.js +1 -0
  111. package/dist/assets/vibe64SavedEnvValues-B_QE9aAj.js +1 -0
  112. package/dist/assets/vibe64SessionFocus-CA-sk8Ri.css +1 -0
  113. package/dist/assets/vibe64SessionFocus-tv2wz7_H.js +1 -0
  114. package/dist/assets/{vibe64SessionInfo-BuBUdL-e.js → vibe64SessionInfo-B0uItVOK.js} +1 -1
  115. package/dist/assets/{vibe64SessionToolDefinitions-BJaJH5LR.js → vibe64SessionToolDefinitions-Dsn8WYmO.js} +1 -1
  116. package/dist/index.html +56 -46
  117. package/docs/colleague-usage/account-profile-and-appearance.md +1 -1
  118. package/docs/colleague-usage/{ai-accounts-and-routing.md → ai-accounts.md} +41 -114
  119. package/docs/colleague-usage/ai-model-setups.md +159 -0
  120. package/docs/colleague-usage/ai-onboarding.md +94 -21
  121. package/docs/colleague-usage/ai-personal-use.md +41 -0
  122. package/docs/colleague-usage/auto-workflow.md +8 -3
  123. package/docs/colleague-usage/codex-context-recovery.md +2 -1
  124. package/docs/colleague-usage/coding-agent-goals.md +7 -4
  125. package/docs/colleague-usage/coding-agents.md +8 -5
  126. package/docs/colleague-usage/colleague-watches.md +15 -4
  127. package/docs/colleague-usage/colleague.md +21 -5
  128. package/docs/colleague-usage/connected-contributions.md +13 -13
  129. package/docs/colleague-usage/connected-projects.md +2 -2
  130. package/docs/colleague-usage/conversation-context.md +1 -1
  131. package/docs/colleague-usage/dashboard-navigation.md +5 -3
  132. package/docs/colleague-usage/development-env.md +21 -4
  133. package/docs/colleague-usage/file-interfaces.md +1 -1
  134. package/docs/colleague-usage/github-work.md +8 -8
  135. package/docs/colleague-usage/health-checks.md +52 -18
  136. package/docs/colleague-usage/incoming-changes.md +3 -3
  137. package/docs/colleague-usage/integrations.md +5 -3
  138. package/docs/colleague-usage/learning-course-catalogue.md +3 -3
  139. package/docs/colleague-usage/learning-environment.md +55 -47
  140. package/docs/colleague-usage/learning-mode-ui.md +13 -10
  141. package/docs/colleague-usage/learning-practice-projects.md +13 -2
  142. package/docs/colleague-usage/learning-teacher-guide.md +9 -4
  143. package/docs/colleague-usage/learning-with-colleague.md +9 -5
  144. package/docs/colleague-usage/lesson-authoring.md +12 -12
  145. package/docs/colleague-usage/lesson-step-bar.md +22 -22
  146. package/docs/colleague-usage/main-chat-approvals.md +150 -0
  147. package/docs/colleague-usage/preview-browser-checks.md +5 -1
  148. package/docs/colleague-usage/project-language-tools.md +16 -2
  149. package/docs/colleague-usage/project-settings.md +1 -1
  150. package/docs/colleague-usage/project-setup.md +17 -7
  151. package/docs/colleague-usage/publishing.md +185 -0
  152. package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
  153. package/docs/colleague-usage/sessions.md +18 -10
  154. package/docs/colleague-usage/set-up-linux.md +254 -0
  155. package/docs/colleague-usage/set-up-macos.md +199 -0
  156. package/docs/colleague-usage/set-up-windows.md +76 -0
  157. package/docs/colleague-usage/starter-apps.md +21 -4
  158. package/docs/colleague-usage/teaching-content.md +2 -2
  159. package/docs/colleague-usage/team-ai-access.md +108 -0
  160. package/docs/colleague-usage/temporary-chats.md +9 -7
  161. package/docs/colleague-usage/workspace-preparation.md +50 -1
  162. package/docs/templates/learn-topic/README.md +3 -3
  163. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
  164. package/docs/training-content.md +37 -15
  165. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  166. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  167. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  168. package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
  169. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  170. package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
  171. package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
  172. package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
  173. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  174. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  175. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  176. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  177. package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
  178. package/node_modules/@local/vibe64-accounts/package.json +2 -1
  179. package/node_modules/@local/vibe64-core/package.json +4 -1
  180. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
  181. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +73 -69
  182. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  183. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
  184. package/node_modules/@local/vibe64-genesis/src/server/index.js +501 -415
  185. package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
  186. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +143 -139
  187. package/node_modules/@local/vibe64-packaging/package.json +26 -0
  188. package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
  189. package/node_modules/@local/vibe64-project/package.json +3 -1
  190. package/node_modules/@local/vibe64-publishing/package.json +12 -0
  191. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
  192. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
  193. package/node_modules/@local/vibe64-terminals/package.json +2 -1
  194. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1340 -1300
  195. package/node_modules/@local/vibe64-training/package.json +2 -1
  196. package/package.json +19 -15
  197. package/server.bundle.mjs +42890 -40887
  198. package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
  199. package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
  200. package/dist/assets/VAlert-P256xaE0.js +0 -1
  201. package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
  202. package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
  203. package/dist/assets/VBtn-B2MBK2DL.js +0 -1
  204. package/dist/assets/VCard-mXy0k4aS.js +0 -1
  205. package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
  206. package/dist/assets/VChip-CcI-Oo2J.js +0 -1
  207. package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
  208. package/dist/assets/VDivider-BMEqUoAB.js +0 -1
  209. package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
  210. package/dist/assets/VMenu-C_x18lwb.js +0 -1
  211. package/dist/assets/VOverlay-CeMZurIN.js +0 -1
  212. package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
  213. package/dist/assets/VRow-Cpw7OHQV.js +0 -1
  214. package/dist/assets/VSelect-DL3HaA5m.js +0 -2
  215. package/dist/assets/VSheet-DZWsu0kL.js +0 -1
  216. package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
  217. package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
  218. package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
  219. package/dist/assets/VTextField-BR2eZeFT.js +0 -1
  220. package/dist/assets/VTextField-BiatYyd3.css +0 -1
  221. package/dist/assets/VTextarea-DbqamXJd.js +0 -1
  222. package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
  223. package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
  224. package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
  225. package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
  226. package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
  227. package/dist/assets/_slug_-BclonbST.js +0 -24
  228. package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
  229. package/dist/assets/app-BNP_n_Tt.js +0 -1
  230. package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
  231. package/dist/assets/client-BWV84wi2.js +0 -2
  232. package/dist/assets/client-DGrP-2AJ.css +0 -1
  233. package/dist/assets/definitions-BrMvu6yV.js +0 -1
  234. package/dist/assets/env-BzRtyO0w.css +0 -1
  235. package/dist/assets/env-D3KQGvRe.js +0 -1
  236. package/dist/assets/health-BJvooRnJ.css +0 -1
  237. package/dist/assets/health-BhoO1d4h.js +0 -1
  238. package/dist/assets/incoming-DWDrmxyH.css +0 -1
  239. package/dist/assets/incoming-DzADFGqp.js +0 -2
  240. package/dist/assets/index-dNxr4Lg9.js +0 -138
  241. package/dist/assets/integrations-Cq1x-Di9.css +0 -1
  242. package/dist/assets/issues-Bywux4s7.js +0 -1
  243. package/dist/assets/mdi-CG9pWOSj.js +0 -1
  244. package/dist/assets/placement-BF-zIEhA.js +0 -1
  245. package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
  246. package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
  247. package/dist/assets/ripple-BVltMmyV.js +0 -11
  248. package/dist/assets/settings-BopLnpB0.css +0 -1
  249. package/dist/assets/shared-DpMvYJO3.js +0 -2
  250. package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
  251. package/dist/assets/studioUrls-DmMMIScP.js +0 -1
  252. package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
  253. package/dist/assets/useCommand-Bqxb-naz.js +0 -1
  254. package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
  255. package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
  256. package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
  257. package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
  258. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
  259. package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
  260. package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
  261. package/dist/assets/vibe64SessionFocus-OJ2toBd9.css +0 -1
@@ -1,6 +1,6 @@
1
1
  # Review, Save and work with GitHub
2
2
 
3
- Source edits in a session, saving a project version and publishing an application
3
+ Source edits in a session, saving a project version and deploying an application
4
4
  are separate operations. A different session has its own worktree. Check which
5
5
  project, session and branch you are using before saving or creating a pull request.
6
6
 
@@ -11,7 +11,7 @@ session's tab. Managed Vibe64 Git saves a version;
11
11
  GitHub workflows use your repository permissions and the project's direct-push or
12
12
  pull-request policy. **Update this session (rebase)** reconciles newer saved project
13
13
  work when offered; Save does not silently perform that update for you. A failed or
14
- uncertain publication needs a state check before another request.
14
+ uncertain push needs a state check before another request.
15
15
 
16
16
  Whenever Save or Update reports a problem, its activity panel offers **Fix it with
17
17
  AI**, which opens a temporary repair chat with the exact error and asks it to
@@ -36,7 +36,7 @@ repair it. Ask the coding agent to reconcile the existing selected component as
36
36
  the error directs, preserving the project's authored setup and output sections.
37
37
  This does not require installing dependencies or preparing the database. Review
38
38
  the repair, then use **Save** again. The failed preflight leaves your source and
39
- published version unchanged. Colleague can explain this recovery; the coding
39
+ saved version unchanged. Colleague can explain this recovery; the coding
40
40
  agent performs the source repair. These steps apply on desktop and mobile.
41
41
 
42
42
  If assistant naming is unavailable, Save uses a checkpoint-based version name
@@ -49,8 +49,8 @@ If a push loses its response, Vibe64 checks the exact prepared commit on the
49
49
  remote before treating it as failed. If the remote cannot be read, restore access
50
50
  and inspect the session's work again. Recovery uses the original Save operation
51
51
  and Git evidence, including after an editor restart, without another push. A
52
- failed local update after publication uses the same recovery. If Git confirms
53
- that nothing was published, the original rejection remains visible or an
52
+ failed local update after a push uses the same recovery. If Git confirms
53
+ that nothing was pushed, the original rejection remains visible or an
54
54
  uncertain attempt becomes explicitly retryable. Colleague can inspect work and
55
55
  explain that result; a new Save still requires your instruction.
56
56
 
@@ -80,7 +80,7 @@ coding work to finish, then:
80
80
  further repair is needed; cancelling leaves the files unchanged.
81
81
  3. Select **I've resolved these conflicts — apply Update** to acknowledge the
82
82
  repair and run Update. This works even when no repair chat exists or its AI
83
- was stopped or failed. It does not Save, push or publish the work.
83
+ was stopped or failed. It does not Save or push the work.
84
84
 
85
85
  On phones, reveal chat to reach the Update error or repair tab; the file review
86
86
  and confirmation are the same as on desktop. The controls wait while an assistant
@@ -110,7 +110,7 @@ On mobile, reveal the project and choose the corresponding **Dashboard section**
110
110
  Creating a pull request uses the same connected-work checks as Main Save. Save
111
111
  connected work first, merge its submitted revisions in the receiving projects,
112
112
  and Update those connected sessions to the accepted source before creating the
113
- pull request. Changed source or revoked receiving access stops publication;
113
+ pull request. Changed source or revoked receiving access stops the push;
114
114
  creating a pull request does not bypass those checks.
115
115
 
116
116
  Colleague can explain these workflows, open their views, inspect bounded saved-work
@@ -120,4 +120,4 @@ repository itself. Tell it the intended branch, issue or PR when ambiguous. A
120
120
  question such as “How do I create a PR?” makes no commit, push or external write.
121
121
  An accepted offer or direct request still needs any unresolved inputs and the
122
122
  native review/permission rules. Its report must distinguish requested, saved,
123
- published and unknown outcomes, and disclose unverified external results.
123
+ pushed and unknown outcomes, and disclose unverified external results.
@@ -1,26 +1,59 @@
1
1
  # Check that this installation is ready (Health)
2
2
 
3
- **Dashboard → Health** (the **Studio Health** page) runs this installation's readiness checks and shows each
4
- one as passing or needing attention, with what was expected and what was observed. Use **Refresh**
5
- to run them again after fixing something. On a phone, open Dashboard, then choose
6
- **Health** from the section menu.
7
-
8
- | Check | Group | What a failure means |
9
- | --- | --- | --- |
10
- | Workspace services | Studio | The Vibe64 installation or its project list cannot be read. |
11
- | Tools | Runtime | Shown only when Vibe64 uses the programs installed on this computer (**Using your installed tools**). Always passes; it reminds you to install and update them yourself. |
12
- | AI connection | Credentials | No AI provider is connected; open **Account settings → AI Accounts**. |
13
- | Node.js, Git, GitHub CLI, ripgrep, Genesis | Runtime | That program is missing or the wrong version on this machine; install it with the system's normal installer. With your installed tools, Node.js must match the major version Vibe64 declares (shown in the check). |
14
- | Claude Code, Codex, opencode | AI tools | With your installed tools: that AI tool isn't installed on this computer, or it didn't start. A missing tool shows its official install command; each is needed only for the AI that uses it. Where the host provides pinned versions, a single **Codex CLI** check (Runtime) replaces these. |
15
- | Playwright runtime, Playwright browser (Pinned browser where the host provides pinned versions) | Browser | Only automated browser tests need these; other work is unaffected. With your installed tools, the check shows Playwright's own message, for example **Playwright is not installed on this computer**; install Playwright, then run `playwright install chromium`. |
3
+ **Dashboard → Health** (the **Studio Health** page) shows what this computer has
4
+ and what Vibe64 needs from it. Use **Refresh** to run the checks again after fixing
5
+ something. On a phone, open Dashboard, then choose **Health** from the section menu.
6
+
7
+ The top line says **Vibe64 has what it needs.** or how many needed things are
8
+ missing, and how many optional extras aren't set up. Only **Needed** checks count.
9
+
10
+ **Needed** (Vibe64 can't work without these):
11
+
12
+ | Check | What a failure means |
13
+ | --- | --- |
14
+ | Node.js | Node.js is missing or not the major version Vibe64 needs (shown in the row). The row shows the install command. |
15
+ | Git | Git is missing or didn't start. |
16
+ | An AI tool | None of Claude Code, Codex or opencode runs on this computer. One is enough. **Set up your AI** opens AI setup. |
17
+ | AI connection | No AI is connected yet. **Set up your AI** opens AI setup (shown on the first AI row that needs it). |
18
+ | Vibe64, Genesis | Vibe64's own parts can't be read. This is not something a project setting fixes. |
19
+
20
+ **Optional** (nice to have; nothing depends on them): GitHub CLI, ripgrep, the AI
21
+ tools you don't use, **Your name in Git** and the Playwright browser for automated
22
+ browser checks. **Your name in Git** comes first when it needs you; an extra that
23
+ simply isn't installed folds to one line, "Not installed", with **How to install**
24
+ to open its install command.
25
+
26
+ A tool counts as there only when it actually runs: Vibe64 starts it and asks for
27
+ its version (a few seconds at most), using the same `PATH` your projects use. A file
28
+ that exists but doesn't start shows as **didn't start**. A ready tool shows its
29
+ version and where it was found, so a wrong pick is easy to spot.
30
+
31
+ A missing tool shows one sentence, the install command for this computer (Debian,
32
+ Ubuntu or WSL; macOS with Homebrew; otherwise mise) with a copy button, **Check
33
+ again** and **Other ways**. For Node.js, Git, GitHub CLI, ripgrep, languages and
34
+ build tools, **Other ways** opens this computer's setup guide
35
+ ([Linux](set-up-linux.md), with Fedora and Arch lines, or [macOS](set-up-macos.md));
36
+ for AI tools and the Playwright browser it opens the tool's own page. Commands that need `sudo` say: "You'll be asked for
37
+ your computer password. Nothing shows while you type." **Check again** spins, then
38
+ either turns the row green or says "Still not found. Did the command finish
39
+ without errors?" No restart is needed.
40
+
41
+ **Your name in Git** is a warning, never a failure: Git has no name and email for
42
+ you yet, so commits are saved with a stand-in name ending in “via Vibe64”. The row
43
+ shows the two `git config --global` lines, with a copy button.
44
+
45
+ Where the host provides pinned versions, every check is needed and the rows keep
46
+ the host's own wording; no install commands appear.
16
47
 
17
48
  GitHub sign-in is not a Health check. **Account settings → GitHub** shows the
18
49
  **GitHub Connection** card: **Connection ready** means Vibe64 can use GitHub.
19
50
  That card also holds **Git user.name**, **Git user.email** and **Save Git identity**.
51
+ Connecting GitHub fills in your Git name and email only when Git has none; it
52
+ never replaces ones you already set.
20
53
 
21
- A missing AI tool also appears in **Account settings → AI Accounts** and in AI onboarding,
22
- with a **Copy** button for the install command and **Check again**. When Vibe64 starts, it
23
- also prints one line for each AI tool it can't find.
54
+ When Vibe64 starts in a terminal with no AI tool at all, it prints one plain
55
+ message there with the Claude Code install command. It says nothing when one AI
56
+ tool is installed.
24
57
 
25
58
  Health only reads. It never installs software, signs in or repairs anything, and
26
59
  a pass is not proof that a particular project builds.
@@ -28,8 +61,9 @@ a pass is not proof that a particular project builds.
28
61
  ## Ask Colleague
29
62
 
30
63
  Ask Colleague "check my setup" (or similar). Colleague runs the same Health checks
31
- and tells you which ones fail and what to do next for your system. It can open
32
- **Account settings** for you. Installing programs, signing in to GitHub or an AI
64
+ and tells you which ones fail and what to do next for your system. It can also
65
+ check single tools on request (“is Ruby installed?”), explain each step of the
66
+ setup guides, and open **Account settings** for you. Installing programs, signing in to GitHub or an AI
33
67
  provider, and entering keys are things you do yourself; never paste a key or
34
68
  password into chat. Long command output stays on the Health page; Colleague sees a
35
69
  short summary of each check.
@@ -45,18 +45,18 @@ AI**. The existing Temporary AI chat starts with Senior in this receiving sessio
45
45
  its Senior model and account must be available. It uses the working session
46
46
  currently selected in the receiving project and receives the exact reviewed
47
47
  commits and conflicting paths. It repairs those
48
- working files without committing, rebasing or publishing. You can also repair
48
+ working files without committing, rebasing or pushing. You can also repair
49
49
  them manually. Preserve unrelated work and inspect both sides' intended behavior.
50
50
 
51
51
  When repair finishes, return to **Incoming changes → Review resolved conflicts**.
52
52
  This displays the proposed merge using the repaired conflicting files and the
53
53
  ordinary merge result for every other authored file, with regenerated Genesis
54
54
  maps included in the diff. Do not hand-edit generated maps. If regeneration
55
- fails, the merge stops without publishing or changing your session files.
55
+ fails, the merge stops without pushing or changing your session files.
56
56
  Unrelated local changes are excluded.
57
57
  Review that diff, then explicitly choose **Merge into <target> → Merge contribution**.
58
58
  Vibe64 rechecks the candidate, receiving worktree/index/HEAD and both remote heads.
59
- Changed inputs require another review. AI completion alone never publishes or
59
+ Changed inputs require another review. AI completion alone never pushes or
60
60
  proves a merge. The merge preserves both parents; local files, staged changes and
61
61
  the contribution branch remain available. Use ordinary Update to reconcile the
62
62
  receiving session afterwards.
@@ -5,7 +5,7 @@ application, separate from the AI accounts used to write its code. On mobile,
5
5
  reveal the project and use **Dashboard section**; scroll the selected integration's
6
6
  detail to its configuration and **Application connection** controls.
7
7
 
8
- 1. Select **Development**, or **Production** when the host provides a published
8
+ 1. Select **Development**, or **Production** when the host provides a deployed
9
9
  application. Production uses its reviewed release and does not require a
10
10
  development session; its configuration is read-only.
11
11
  2. Select a configured integration, or use **Search integrations** and **Add**
@@ -14,7 +14,9 @@ detail to its configuration and **Application connection** controls.
14
14
  integration preselects no model: choose one in **AI model**, then enter its
15
15
  key reference (for example `env:APP_AI_API_KEY`) before **Save configuration**.
16
16
  3. Enter credentials through the indicated Env flow. Use the exact variable names
17
- shown by that provider; do not put secrets into a conversation.
17
+ shown by that provider; do not put secrets into a conversation. When the host
18
+ offers saved values, the credential step can link one instead of entering a
19
+ value.
18
20
  4. Use **Check connection** or the displayed connect action. If consent is pending,
19
21
  select **Continue with provider** and finish the provider's own browser flow.
20
22
  5. Return and check connection status. A callback or successful transport alone
@@ -59,4 +61,4 @@ or credentials. If you have an unsaved Integrations draft, an outside change mar
59
61
  the form as changed elsewhere and preserves your draft; deliberately discard and
60
62
  reload or reconcile it before saving. A source operation can temporarily block
61
63
  saving; retry explicitly once it finishes. Saving configuration alone does not
62
- connect a provider, run the app, perform a session Save or publish the project.
64
+ connect a provider, run the app, perform a session Save or deploy the project.
@@ -47,7 +47,7 @@ installs nothing new for that topic and enables nothing.
47
47
  Any signed-in person can install official catalogue courses. The catalogue
48
48
  location is fixed by the server, so the page can only install the courses it
49
49
  lists. Courses from other sources remain an owner/operator task (see
50
- [Author a lesson and publish its source](lesson-authoring.md)).
50
+ [Author a lesson and save its source](lesson-authoring.md)).
51
51
 
52
52
  ### Preview courses
53
53
 
@@ -55,10 +55,10 @@ A **Preview** course can be installed so that it is ready, and the row says
55
55
  **Preview course: it can be installed; until it is released, only the workspace
56
56
  owner can try its lessons from Courses.** Its installed card keeps the
57
57
  **Preview course** chip. The workspace owner (on local Vibe64, you) sees
58
- **Try preview**, which starts the lesson exactly like **Start**; everyone else
58
+ the ordinary **Start lesson** button, which starts the lesson as usual; everyone else
59
59
  sees the course with the note **Preview — the workspace owner can try it; it
60
60
  becomes startable when released** and no start button. Installing does not change
61
- this; once the course is released, everyone gets **Start**.
61
+ this; once the course is released, everyone gets **Start lesson**.
62
62
 
63
63
  ## Updating a course
64
64
 
@@ -8,14 +8,11 @@ exactly the page you last had open in the other mode, also after a reload.
8
8
  ## Where the L button is
9
9
 
10
10
  - Home and project pages: the first button at the left of the header.
11
- - Hosted management pages (Projects, Users, AI Accounts and the other
12
- management screens): the first control in the header, after the menu button.
13
11
  - It is the same size as the other header icon buttons (40px on a phone) and
14
12
  the first keyboard stop in the header; Enter or Space presses it.
15
13
  - Tooltips: **Switch to Learn** in Develop, **Back to Develop (your projects)**
16
14
  in Learn, where the L is solid yellow.
17
- - It appears only for a signed-in person. Hosted Vibe64 shows it after the
18
- account prerequisites are complete.
15
+ - It appears only for a signed-in person.
19
16
 
20
17
  ## Learn mode
21
18
 
@@ -29,13 +26,12 @@ which opens the Courses overlay, and your lesson's practice project.
29
26
  You have at most one lesson in progress. In Learn mode you are in your learning
30
27
  space only (see [Practice projects](learning-practice-projects.md)):
31
28
 
32
- - The lesson's practice project is the one project you can open. Hosted
33
- project lists are empty. Opening any other project (for example from a saved
29
+ - The lesson's practice project is the one project you can open. Opening any other project (for example from a saved
34
30
  address) takes you to the practice project with the note "You're in Learn
35
31
  mode. Press L to go back to your projects."
36
32
  - With no lesson in progress the page shows **No project selected** (below).
37
- A lesson without a practice project shows the lesson
38
- itself on that page (see [The Lesson tab](#the-lesson-tab)).
33
+ A studio lesson (one taught outside any project, with no practice project)
34
+ shows the lesson itself on that page (see [The Lesson pane](#the-lesson-pane)).
39
35
  - Nothing inside the lesson's practice project is limited: Preview, Files,
40
36
  Database, coding chats and Colleague all work. Account settings and AI
41
37
  Accounts stay available, so you can connect an AI during a lesson.
@@ -61,7 +57,7 @@ In Learn mode, while your lesson is loaded, a yellow bar above the project page
61
57
  names the lesson and plays its current step, beat by beat. How it works is in
62
58
  [The lesson step bar](lesson-step-bar.md).
63
59
 
64
- ## The Lesson tab
60
+ ## The Lesson pane
65
61
 
66
62
  In Learn mode the current lesson is read on the project page itself, beside
67
63
  Colleague, your teacher. The **Lesson** pane is the one place a lesson is read:
@@ -70,11 +66,15 @@ the step list, the current step with its text, diagram, question or check,
70
66
  the lesson's **Lesson finished** screen. Starting, continuing or resuming a
71
67
  lesson from Courses and Colleague's **Step N/M** button both open it here, at the step you were reading.
72
68
 
73
- - **On the lesson's practice project** the project switches read **Preview**,
74
- **Dashboard** and **Lesson**. Select **Lesson** to read the lesson; Preview
75
- keeps running behind it, so its App is still there when you select
76
- **Preview** again. The address ends in `?pane=lesson`, so a reload, or
77
- **L** back to Learn, returns to the Lesson tab.
69
+ - **On the lesson's practice project** the header switch reads **Preview** and
70
+ **Dash** (Dashboard), and the lesson step bar has a **Lesson** button. Press
71
+ **Lesson** to read the lesson: the button stays pressed and neither
72
+ **Preview** nor **Dash** is selected while it shows. Select **Preview** or
73
+ **Dash** to leave it; Preview keeps running behind the lesson, so its App is
74
+ still there. The address ends in `?pane=lesson`, so a reload, or **L** back
75
+ to Learn, returns to the Lesson pane.
76
+ - The Lesson pane has a soft yellow background, the colour of the step bar and
77
+ the **L** button, so it is clearly the learning part of the page.
78
78
  - **On a lesson without a practice project** there is no
79
79
  coding session, so there is no chat column and no pane switches: the Lesson
80
80
  pane fills the page.
@@ -90,14 +90,15 @@ lesson from Courses and Colleague's **Step N/M** button both open it here, at th
90
90
  the step you last read.
91
91
  - On a phone (and other narrow screens up to 980px wide) the page shows one
92
92
  side at a time: the chat or the project pane. The next-pane button at the top
93
- goes from **Lesson** to **Preview** to **Dashboard** and back to **Lesson**,
94
- showing the next pane's name; without a practice project there is only the
95
- Lesson pane, so the button is not shown.
93
+ goes from **Preview** to **Dash** and back, showing the next pane's name; from
94
+ the Lesson pane it goes to **Preview**, and **Lesson** on the yellow step bar
95
+ brings the lesson back. Without a practice project there is only the Lesson
96
+ pane, so the button is not shown.
96
97
 
97
98
  ## No project selected and `/app`
98
99
 
99
100
  `/app/learning` is Learn mode's page with no project selected: the usual
100
- project page with the chat column, the **Preview** and **Dashboard** switches
101
+ project page with the chat column, the **Preview** and **Dash** switches
101
102
  (on a phone, the single switch button) and **Account settings**. The Dashboard
102
103
  still lists its sections, without opening them, and there is no **+** for
103
104
  sessions. It is used in two cases:
@@ -109,16 +110,22 @@ sessions. It is used in two cases:
109
110
  is in the chat column, which a phone shows first; on a desktop the chat
110
111
  column says your teacher will chat there once a lesson starts. The
111
112
  Dashboard says **No lesson in progress** with the same button.
112
- - **A lesson without a practice project**. The page shows
113
+ - **A studio lesson**, taught outside any project. The page shows
113
114
  the lesson in its Lesson pane, with no chat column, and a **Dashboard**
114
115
  switch whose page says **No project selected** (see
115
- [The Lesson tab](#the-lesson-tab)). **L** only switches mode.
116
+ [The Lesson pane](#the-lesson-pane)). **L** only switches mode.
117
+
118
+ **Take the tour**, in the account menu, starts the course's orientation lesson,
119
+ **Welcome to Vibe64**: a short studio lesson on the screens around you (your
120
+ AI, Colleague, **L**). It starts like any other lesson: it switches you to
121
+ Learn, the lesson already in progress just opens, and another lesson in
122
+ progress asks **Archive your lesson in progress?** first. With no installed
123
+ course naming one that you may start, Courses opens instead. The end of first-time AI setup offers the same tour once.
116
124
 
117
125
  A local Vibe64 has no Projects page. Its `/` and `/app` addresses open Develop's
118
126
  place, the project Vibe64 was started in, or in Learn mode Learn's place (the
119
127
  lesson's practice project, or no project selected). `/app` does this without
120
128
  reloading the page. If no project was started, it says so with **Try again**.
121
- On hosted Vibe64 `/app` is the Projects page.
122
129
 
123
130
  An old `?mode=learning` address from the retired Learning mode opens the ordinary
124
131
  project page.
@@ -128,12 +135,13 @@ project page.
128
135
  **Courses** on the lesson step bar, or in the project menu beside **L**, opens
129
136
  the Courses overlay above the page: the
130
137
  catalogue where you choose, start and manage lessons. It fills the screen, with
131
- a **Courses** tab, an **In progress** tab and an **Archived** tab, and a close
132
- button (×, **Close Courses**) at the right. A lesson is not read here: opening
138
+ a **Courses** tab, an **In progress** tab and an **Archived** tab, and at the
139
+ right a blue **Back to editor** button and a close button (×, **Close
140
+ Courses**). A lesson is not read here: opening
133
141
  one closes Courses and shows it in the page's
134
- [Lesson tab](#the-lesson-tab).
142
+ [Lesson pane](#the-lesson-pane).
135
143
 
136
- - Press × or Escape to close it. The page you were on, and Colleague, are
144
+ - Press **Back to editor**, × or Escape to close it. The page you were on, and Colleague, are
137
145
  visible again.
138
146
  - Press **Courses** again to come back to the same tab.
139
147
  - A reload of the page leaves Courses closed; this tab remembers which Courses
@@ -147,23 +155,22 @@ and the tab row scrolls sideways when it does not fit.
147
155
 
148
156
  **Courses** shows course cards with progress, course pages, the **Course
149
157
  catalogue** and, for the workspace owner, **New course**; see
150
- [Choosing lessons and courses](learning-mode-ui.md).
158
+ [Choosing lessons and courses](learning-mode-ui.md). A course lists only the
159
+ lessons you can take on this Vibe64: a lesson about screens this installation
160
+ doesn't have is simply not there.
151
161
 
152
- - **Start**, **Start next lesson**, **Start lesson** or **Try preview** start
153
- the lesson, close Courses and open it in the Lesson tab of its practice
162
+ - **Start lesson** or **Start next lesson** start
163
+ the lesson, close Courses and open it in the Lesson pane of its practice
154
164
  project (or, without one, of the no-project page). No chat is created. Starting a lesson while a different one is in progress first asks
155
165
  **Archive your lesson in progress?**: **Archive and start** or **Keep it**.
156
- - **Continue lesson** opens your lesson in progress in the Lesson tab.
166
+ - **Continue lesson** opens your lesson in progress in the Lesson pane.
157
167
  - If a start was not confirmed, **Retry lesson start** repeats the same request.
158
168
  - Without AI set up, a lesson waits for it: see `learning-mode-ui`.
159
- - On hosted Vibe64 the workspace owner also sees **Author trial** with
160
- **Resume author trial**, which opens the admitted draft snapshot in the
161
- Lesson tab (see the hosted author-trial guide).
162
169
 
163
170
  ## In progress and Archived
164
171
 
165
172
  **In progress** shows your one lesson in progress with its practice project and
166
- **Open** (which opens it in the Lesson tab), **Restart** and **Delete**. **Archived** lists the lessons you
173
+ **Open** (which opens it in the Lesson pane), **Restart** and **Delete**. **Archived** lists the lessons you
167
174
  finished or archived, each with **Delete**. Deleting asks once more (**Delete
168
175
  for good**); see [Practice projects](learning-practice-projects.md).
169
176
 
@@ -219,7 +226,7 @@ also has:
219
226
  - **Automatic check**: a step about an App interaction says "This step is
220
227
  checked automatically when you do it in your practice project", for example
221
228
  by pressing a button in its Preview. For a button step, read the step in
222
- the Lesson tab, then select **Preview** (**Show me** does this) and press the
229
+ the Lesson pane, then select **Preview** (**Show me** does this) and press the
223
230
  App's button yourself in the practice project's visible Preview. Your press
224
231
  counts only for the lesson step Learning currently shows, in that lesson's
225
232
  own practice session, while Courses is not covering the app; the
@@ -254,17 +261,17 @@ also has:
254
261
  The ring stays for a few seconds, also on a phone while the practice
255
262
  project's page is still loading, and clears when you tap or click anywhere.
256
263
  Click the control yourself. If the place is not
257
- available on the current page, the step comes back in the Lesson tab with the
264
+ available on the current page, the step comes back in the Lesson pane with the
258
265
  reason; open your practice project and try again.
259
266
  - **Teach me**: opens Colleague beside the step and sends it the message
260
- "Teach me this step." for you. The step stays on screen in the Lesson tab;
267
+ "Teach me this step." for you. The step stays on screen in the Lesson pane;
261
268
  Colleague answers in its conversation. On a phone Colleague's full-screen chat opens over the step.
262
269
  If Colleague is not connected yet, an error says so; press **Teach me** again.
263
270
  If no AI is connected yet, nothing is sent:
264
271
  Colleague opens and says **Colleague cannot teach this step yet: it has no
265
272
  usable AI model, so nothing was sent.** with **Open AI Accounts**. Connect an
266
- AI there, then press **Teach me** again; no Model routing step is needed,
267
- because Colleague saves the recommended routing for a connected AI itself.
273
+ AI there, then press **Teach me** again; no Models step is needed,
274
+ because Colleague saves the recommended models for a connected AI itself.
268
275
  The message disappears as soon as an AI is usable.
269
276
  - **Lesson notes** (when the lesson has them) and **Previous step** /
270
277
  **Next step**.
@@ -277,8 +284,8 @@ correct answers of a question.
277
284
 
278
285
  ## Lesson finished
279
286
 
280
- When your own step result (in the Lesson tab, or an automatic check from your
281
- Preview press) completes the last required step, the Lesson tab opens on the
287
+ When your own step result (in the Lesson pane, or an automatic check from your
288
+ Preview press) completes the last required step, the Lesson pane opens on the
282
289
  **Lesson finished** screen: a check mark,
283
290
  **LESSON FINISHED**, the lesson title and "You completed every required step: X
284
291
  of Y steps passed." It finishes the lesson for you ("Finishing the lesson…"):
@@ -289,7 +296,7 @@ to try again. You don't need an AI for this. Then choose:
289
296
 
290
297
  - **Next lesson: <title>** starts the next unfinished lesson of the same course
291
298
  (when there is one).
292
- - **Back to courses** opens the Courses overlay; the Lesson tab goes away, since
299
+ - **Back to courses** opens the Courses overlay; the Lesson pane goes away, since
293
300
  no lesson is in progress.
294
301
 
295
302
  ## The current step in Colleague
@@ -300,14 +307,14 @@ during voice chat) shows a small yellow **Step N/M** button with a school icon,
300
307
  or a check once that step has passed. Its tooltip is **Current lesson step:
301
308
  <step title>**. It is hidden while Colleague is minimised.
302
309
 
303
- Press it to see the current step in the page's **Lesson** tab (above), at that
310
+ Press it to see the current step in the page's **Lesson** pane (above), at that
304
311
  step, with Colleague still open beside it on a desktop. On a phone Colleague's
305
- full-screen chat minimises so the Lesson tab is visible; its avatar button
306
- brings Colleague back. The step bar, the Lesson tab, Courses and Colleague share
312
+ full-screen chat minimises so the Lesson pane is visible; its avatar button
313
+ brings Colleague back. The step bar, the Lesson pane, Courses and Colleague share
307
314
  one lesson state, so they and other tabs stay in step.
308
315
 
309
316
  On a phone, when Colleague shows a lesson step for you its full-screen chat
310
- minimises and the Lesson tab shows that step. When Colleague opens Courses for
317
+ minimises and the Lesson pane shows that step. When Colleague opens Courses for
311
318
  you, closing Courses (× or Escape) returns you to Colleague's chat, not the page
312
319
  behind it. **Show me** still shows the app.
313
320
 
@@ -325,8 +332,9 @@ attempt.
325
332
 
326
333
  ## What Colleague can do
327
334
 
328
- Colleague can explain these controls, show your current step in the Lesson tab,
329
- open or close the Courses overlay, point at the L button, and teach a step when you press **Teach me** or
335
+ Colleague can explain these controls, show your current step in the Lesson pane,
336
+ open or close the Courses overlay, point at or open a real place (the L button,
337
+ a Dashboard section, your account menu and more), and teach a step when you press **Teach me** or
330
338
  ask. In Learn mode it opens and works only in the lesson's practice project;
331
339
  when you ask for another project it says you're in Learn mode and that **L**
332
340
  goes back to your projects. It switches mode, restarts or archives a lesson
@@ -26,7 +26,7 @@ already saved; opening a course grades nothing. A lesson passed in one course
26
26
  counts in every course that contains the same lesson.
27
27
 
28
28
  On a card, **Continue lesson** reopens your lesson in progress when it belongs
29
- to that course. Otherwise **Start** starts the course's first published lesson
29
+ to that course. Otherwise **Start lesson** starts the course's first published lesson
30
30
  that is not yet complete. **View course** opens the course page: a header with
31
31
  the cover and a ring of lessons complete, an **Up next** card, then its topics
32
32
  in order, each with its lessons, their title and code and a status of
@@ -53,17 +53,20 @@ official catalogue's topics and courses with **Install**; an installed course
53
53
  with a newer release shows **Update available** and **Update** (see
54
54
  [Installing and updating Learning courses](learning-course-catalogue.md)).
55
55
 
56
- A lesson without a practice project opens on the Learn page (at `/app/learning`) with no project
56
+ A studio lesson (taught outside any project) opens on the Learn page (at `/app/learning`) with no project
57
57
  selected: the lesson's own **Lesson** pane fills the page beside Colleague,
58
58
  with no pane switches, no chat column and no sessions (see the shared guide's
59
- *The Lesson tab*). Your own projects stay hidden until you
59
+ *The Lesson pane*). Your own projects stay hidden until you
60
60
  press **L** to go back to Develop. Its steps say which real screens it uses.
61
61
 
62
62
  ## Starting, continuing, archiving and finishing
63
63
 
64
- While a start is in progress, Courses says **Starting the selected lesson and
65
- preparing its practice project. The lesson opens when this finishes.** Every
66
- start button stays disabled until the request settles. As soon as the start is
64
+ While a start is in progress, the button you pressed reads **Starting lesson…**
65
+ with a spinner, and the same course card (or course page) says **Starting your
66
+ lesson: Creating your practice project. This can take a while; the lesson opens
67
+ by itself when it is ready.** Other start buttons stay disabled until the
68
+ request settles. If the start fails, the card says **The lesson did not start**
69
+ with the reason. As soon as the start is
67
70
  confirmed, Courses closes by itself and the lesson opens in the **Lesson** tab
68
71
  of its practice project; you do not need **Continue lesson**. A practice project's Workspace setup can
69
72
  continue afterwards and the lesson becomes ready when setup succeeds (see
@@ -125,12 +128,12 @@ disable-course` (see `docs/training-content.md`) and create another one.
125
128
  ## Preview courses
126
129
 
127
130
  A **Preview course** is for the workspace owner to review before release. The
128
- owner (on local Vibe64, you) sees **Try preview** instead of **Start**, **Start
129
- next lesson** and **Start lesson**, on desktop and phone; it starts an ordinary
130
- saved lesson exactly like Start. Others see **Preview — the workspace owner can
131
+ owner (on local Vibe64, you) sees the ordinary **Start lesson** and **Start next
132
+ lesson** buttons beside the **Preview course** chip, on desktop and phone; they
133
+ start an ordinary saved lesson. Others see **Preview — the workspace owner can
131
134
  try it; it becomes startable when released** and no start button, and the server
132
135
  refuses their start. Drafts and disabled courses stay unavailable to everyone.
133
- Once released, everyone gets **Start**.
136
+ Once released, everyone gets **Start lesson**.
134
137
 
135
138
  ## What Colleague can do
136
139
 
@@ -8,7 +8,7 @@ restart or delete it.
8
8
 
9
9
  ## One lesson in progress
10
10
 
11
- Starting a lesson (**Courses**, then **Start**) begins one run of it, called an
11
+ Starting a lesson (**Courses**, then **Start lesson**) begins one run of it, called an
12
12
  attempt. The attempt owns:
13
13
 
14
14
  - its step results,
@@ -19,7 +19,10 @@ attempt. The attempt owns:
19
19
  You have at most one lesson in progress. It stays in progress until you finish,
20
20
  restart or delete it. Switching to Develop, or opening another page, only
21
21
  pauses it: its project, results and conversation are all kept, for as long as
22
- you like. Press **L** to come back to it.
22
+ you like. Press **L** to come back to it. Like any project, a practice project
23
+ left without activity for about 30 minutes is closed by idle cleanup: its
24
+ Preview and assistant stop, while its files, results and conversation stay.
25
+ Coming back to the lesson opens it again; start Preview again if you need it.
23
26
 
24
27
  If you start a different lesson while one is in progress, Vibe64 asks once
25
28
  whether to archive the current lesson first. Confirming archives it (see
@@ -66,6 +69,14 @@ A practice project is a complete project. Its chat, **Preview**, **Dashboard**
66
69
  and sessions work as in any project. The session that lesson preparation
67
70
  creates in it is an ordinary session.
68
71
 
72
+ Which AI the practice project's chat uses depends on who you are. The workspace
73
+ owner's lessons (and yours on Vibe64 on your own computer) run on the owner's
74
+ main AI, as in any project. A team member's lesson runs on the team setup's
75
+ Workspace-use models and their messages are sent straight away, without the
76
+ owner's approval: the composer reads "Message your lesson's AI — *model* (team
77
+ AI)". A personal plan is never used for a team member's lesson; see
78
+ **Lessons** in [Team AI access](team-ai-access.md).
79
+
69
80
  ## In progress and Archived
70
81
 
71
82
  In Learn mode, **Courses** (on the lesson step bar, or in the project menu beside **L**) has an **In progress** list and an
@@ -10,8 +10,13 @@ lesson's own caption. You then click it yourself.
10
10
  - The rest of the screen dims slightly, and a ring with a gentle ripple sits on
11
11
  one real tab, Dashboard section or button. A caption points at it; a thin bar
12
12
  on the caption shows the time left.
13
+ - The caption sits beside the control when there is room (right, else left),
14
+ otherwise below or above it. It stays off the yellow lesson step bar whenever
15
+ another place fits, so the step text stays readable; on a narrow phone screen
16
+ it may have to cover part of the bar. The caption is slightly see-through and
17
+ clicks pass through it to whatever is underneath.
13
18
  - The ring is on the next step from where you are. On **Preview**, a path to the
14
- ERD rings the **Dashboard** tab; once you are in **Dashboard → Database**, it
19
+ ERD rings the **Dash** (Dashboard) tab; once you are in **Dashboard → Database**, it
15
20
  rings the **ERD** button. When you are already at the place (for example
16
21
  Preview or **Dashboard → Files** is open), the ring goes around that open
17
22
  pane, with the caption inside its top edge when the pane fills the screen.
@@ -29,7 +34,7 @@ section the project does not show cannot be ringed.
29
34
 
30
35
  ## On a phone
31
36
 
32
- A phone shows the chat or one pane at a time, so the Preview/Dashboard tabs and
37
+ A phone shows the chat or one pane at a time, so the Preview/Dash tabs and
33
38
  the Dashboard menu are hidden. Colleague's full-screen chat minimises itself
34
39
  first so the ring is visible. Then:
35
40
 
@@ -67,8 +72,8 @@ passes a lesson step. When a lesson asks you to find a place, click it yourself.
67
72
 
68
73
  ## Opening your lesson
69
74
 
70
- Colleague can show your current lesson step in the Learn page's **Lesson** tab,
75
+ Colleague can show your current lesson step in the Learn page's **Lesson** pane,
71
76
  and open the **Courses** catalogue or close it so you can see the app, without
72
77
  ending the lesson. While the lesson is going, the **Step N/M** button in
73
- Colleague's header shows the current step in the Lesson tab (on a phone,
78
+ Colleague's header shows the current step in the Lesson pane (on a phone,
74
79
  Colleague's chat minimises so the step is visible).
@@ -24,8 +24,12 @@ each, and the one you see always follows the mode:
24
24
  keep being followed while you are in Learn; their updates wait in Develop's
25
25
  conversation until you return. **Start fresh** and **Previous conversations**
26
26
  work within the conversation you are in.
27
- - In Learn, Colleague does not create assignments or watches; in Develop it does
28
- not teach, read lessons or your teacher notes.
27
+ - In Learn, Colleague does not create assignments, and it watches only your
28
+ lesson's practice project: ask "tell me when the agent answers" or, where
29
+ your Vibe64 can watch it, "tell me when my app is live". The watch only
30
+ reports; the step's own check still decides the step, and the watch ends with
31
+ the lesson attempt (finish, restart or delete). In Develop it does not teach,
32
+ read lessons or your teacher notes.
29
33
 
30
34
  ## Colleague as your teacher
31
35
 
@@ -66,7 +70,7 @@ passes the step for you:
66
70
  On a phone, Colleague's full-screen chat minimises itself when it opens Courses,
67
71
  shows a lesson step or rings a control, so you can see it; reopen Colleague with
68
72
  its avatar button. **Teach me** on a phone opens Colleague's full-screen chat
69
- over the Lesson tab, which stays underneath.
73
+ over the Lesson pane, which stays underneath.
70
74
 
71
75
  ## Colleague never judges
72
76
 
@@ -83,8 +87,8 @@ A step passes only through your own action in the lesson:
83
87
  now**; a response check first needs your own press of the App's control in this
84
88
  lesson's Preview.
85
89
  - **Review check**: the step shows its rubric, what your finished work must
86
- show. Only your own **Check my work** asks your own AI (your Helper route in
87
- **AI Accounts → Model routing**) to review your practice work against it;
90
+ show. Only your own **Check my work** asks your own AI (your **Explain &
91
+ check** model in **AI Accounts → Models**) to review your practice work against it;
88
92
  Colleague never runs a review for you. A review answers **Passed** (final) or
89
93
  **Not yet** with a comment and a hint. While the coding agent is still
90
94
  working it says "Wait until the agent finishes"; with nothing changed yet it