vibe64 0.1.39 → 0.1.41

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 (262) hide show
  1. package/bin/run.js +1955 -1855
  2. package/bin/server.js +136 -112
  3. package/bin/upgrade-state.js +5514 -5343
  4. package/dist/assets/GithubBrowserTabs-YvIe2BdE.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-M44SSmZ9.css → Vibe64AuthSettingsButton-D2lltUhi.css} +1 -1
  34. package/dist/assets/Vibe64AuthSettingsButton-DLdfT68V.js +5 -0
  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-DMPz6fIx.js +1 -0
  41. package/dist/assets/{Vibe64DatabaseWorkspace-CEml9BWn.js → Vibe64DatabaseWorkspace-BCEIOlSg.js} +3 -3
  42. package/dist/assets/{Vibe64DatabaseWorkspace-DPDMxhAW.css → Vibe64DatabaseWorkspace-DePBDUMy.css} +1 -1
  43. package/dist/assets/{Vibe64OutputControls-Co5YzwcK.css → Vibe64OutputControls-CeBzZPUT.css} +1 -1
  44. package/dist/assets/Vibe64OutputControls-DMoqL0VD.js +8 -0
  45. package/dist/assets/{Vibe64RepositoryWorkspace-obZFXkoG.js → Vibe64RepositoryWorkspace-BdwRwbxp.js} +2 -2
  46. package/dist/assets/{Vibe64RepositoryWorkspace-Agyt4O-V.css → Vibe64RepositoryWorkspace-Bw9W691N.css} +1 -1
  47. package/dist/assets/{Vibe64SessionFiles-CQzs6fee.js → Vibe64SessionFiles-ChJWUOqm.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_-Bw0KfJeR.js} +1 -1
  53. package/dist/assets/{_sessionTool_-1V-z6Pbp.js → _sessionTool_-BV1AwpUx.js} +1 -1
  54. package/dist/assets/_slug_-CAmuBm-M.css +1 -0
  55. package/dist/assets/_slug_-q9prK_gX.js +25 -0
  56. package/dist/assets/{access-WlhPvPgy.js → access-C05Nkq6r.js} +1 -1
  57. package/dist/assets/app-D1CGY9Xm.js +1 -0
  58. package/dist/assets/assistantRouting-DeE8jvtE.js +3 -0
  59. package/dist/assets/{changes-CHJjrZAc.js → changes-D17XpgGz.js} +1 -1
  60. package/dist/assets/client-BxGiylrJ.js +2 -0
  61. package/dist/assets/client-C8jwAMY9.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-BXXgeQ0Q.js} +1 -1
  66. package/dist/assets/definitions-SNvFDEFS.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-sXAQqKWk.js +1 -0
  70. package/dist/assets/health-92hh8xXh.css +1 -0
  71. package/dist/assets/health-Cr34pf2p.js +1 -0
  72. package/dist/assets/{history-1_NU8azF.js → history-N1iRZaab.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-irlMYzLh.css → index-B17d4wpZ.css} +1 -1
  76. package/dist/assets/index-Mxalhei8.js +138 -0
  77. package/dist/assets/{integrations-BMzWQQpa.js → integrations-BmwFvHgZ.js} +10 -10
  78. package/dist/assets/integrations-Co8WvCiD.css +1 -0
  79. package/dist/assets/issues-BbiG7dCV.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-CUCuuoHM.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-4r_4K5IY.js +3 -0
  86. package/dist/assets/publish-BFTsAMCF.css +1 -0
  87. package/dist/assets/pull-requests-BjwokcU0.css +1 -0
  88. package/dist/assets/pull-requests-DY9jg3cE.js +1 -0
  89. package/dist/assets/{repository-BL_2bgzC.js → repository-DhXdoMP6.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-Cj4u-76p.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-BXNg8oES.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-C1xjhFtS.js +1 -0
  104. package/dist/assets/{useVibe64DatabaseTools-4o6S8eXq.js → useVibe64DatabaseTools-H6H-YJQX.js} +1 -1
  105. package/dist/assets/useVibe64ProjectScope-B5ogg6jd.js +1 -0
  106. package/dist/assets/useVibe64SessionData-CnDOFFHb.js +1 -0
  107. package/dist/assets/{useVibe64SessionSelection-BzL1y_Vq.js → useVibe64SessionSelection-J87nJ9p5.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-DlN8NwcE.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 +97 -22
  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 +78 -56
  140. package/docs/colleague-usage/learning-mode-ui.md +31 -19
  141. package/docs/colleague-usage/learning-practice-projects.md +15 -4
  142. package/docs/colleague-usage/learning-teacher-guide.md +10 -4
  143. package/docs/colleague-usage/learning-with-colleague.md +12 -8
  144. package/docs/colleague-usage/lesson-authoring.md +13 -13
  145. package/docs/colleague-usage/lesson-step-bar.md +47 -33
  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/preview-starting-application.md +10 -1
  149. package/docs/colleague-usage/project-language-tools.md +16 -2
  150. package/docs/colleague-usage/project-settings.md +1 -1
  151. package/docs/colleague-usage/project-setup.md +17 -7
  152. package/docs/colleague-usage/publishing.md +187 -0
  153. package/docs/colleague-usage/running-vibe64-on-your-computer.md +54 -6
  154. package/docs/colleague-usage/sessions.md +18 -10
  155. package/docs/colleague-usage/set-up-linux.md +254 -0
  156. package/docs/colleague-usage/set-up-macos.md +199 -0
  157. package/docs/colleague-usage/set-up-windows.md +76 -0
  158. package/docs/colleague-usage/starter-apps.md +23 -6
  159. package/docs/colleague-usage/teaching-content.md +2 -2
  160. package/docs/colleague-usage/team-ai-access.md +108 -0
  161. package/docs/colleague-usage/temporary-chats.md +9 -7
  162. package/docs/colleague-usage/workspace-preparation.md +50 -1
  163. package/docs/templates/learn-topic/README.md +3 -3
  164. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +2 -1
  165. package/docs/training-content.md +37 -15
  166. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  167. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  168. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  169. package/node_modules/@jskit-ai/connector-google-calendar/package.json +1 -1
  170. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  171. package/node_modules/@jskit-ai/connectors-catalog/patterns/oauth-connection/PATTERN.md +25 -0
  172. package/node_modules/@jskit-ai/connectors-core/package.json +1 -1
  173. package/node_modules/@jskit-ai/http-runtime/package.json +1 -1
  174. package/node_modules/@jskit-ai/kernel/package.json +1 -1
  175. package/node_modules/@jskit-ai/realtime/package.json +1 -1
  176. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  177. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  178. package/node_modules/@jskit-ai/uploads-runtime/package.json +1 -1
  179. package/node_modules/@local/vibe64-accounts/package.json +2 -1
  180. package/node_modules/@local/vibe64-core/package.json +4 -1
  181. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +82 -81
  182. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +83 -82
  183. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  184. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +118 -68
  185. package/node_modules/@local/vibe64-genesis/src/server/index.js +536 -449
  186. package/node_modules/@local/vibe64-genesis/src/server/packaging.js +105 -0
  187. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +144 -145
  188. package/node_modules/@local/vibe64-packaging/package.json +26 -0
  189. package/node_modules/@local/vibe64-packaging/src/server/packers/capacitor/ShellIcons.java +112 -0
  190. package/node_modules/@local/vibe64-project/package.json +3 -1
  191. package/node_modules/@local/vibe64-publishing/package.json +12 -0
  192. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +7 -7
  193. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +25 -22
  194. package/node_modules/@local/vibe64-terminals/package.json +2 -1
  195. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1341 -1300
  196. package/node_modules/@local/vibe64-training/package.json +2 -1
  197. package/package.json +19 -15
  198. package/server.bundle.mjs +43109 -41089
  199. package/dist/assets/GithubBrowserTabs-C2NO5l8g.js +0 -1
  200. package/dist/assets/StudioErrorNotice-CSrUw1QV.js +0 -1
  201. package/dist/assets/VAlert-P256xaE0.js +0 -1
  202. package/dist/assets/VAutocomplete-BDb95qJX.js +0 -1
  203. package/dist/assets/VAvatar-DPzqDH4r.js +0 -1
  204. package/dist/assets/VBtn-B2MBK2DL.js +0 -1
  205. package/dist/assets/VCard-mXy0k4aS.js +0 -1
  206. package/dist/assets/VCheckbox-C7A1ZW4D.js +0 -1
  207. package/dist/assets/VChip-CcI-Oo2J.js +0 -1
  208. package/dist/assets/VDialog-Bu3EfKb1.js +0 -1
  209. package/dist/assets/VDivider-BMEqUoAB.js +0 -1
  210. package/dist/assets/VExpansionPanels-Dgjrop0V.js +0 -1
  211. package/dist/assets/VMenu-C_x18lwb.js +0 -1
  212. package/dist/assets/VOverlay-CeMZurIN.js +0 -1
  213. package/dist/assets/VRadioGroup-CUu2-KIP.js +0 -1
  214. package/dist/assets/VRow-Cpw7OHQV.js +0 -1
  215. package/dist/assets/VSelect-DL3HaA5m.js +0 -2
  216. package/dist/assets/VSheet-DZWsu0kL.js +0 -1
  217. package/dist/assets/VSkeletonLoader-CttxM1tw.js +0 -1
  218. package/dist/assets/VSpacer-Dhmsvk4t.js +0 -1
  219. package/dist/assets/VSwitch-BRHeDJkH.js +0 -1
  220. package/dist/assets/VTextField-BR2eZeFT.js +0 -1
  221. package/dist/assets/VTextField-BiatYyd3.css +0 -1
  222. package/dist/assets/VTextarea-DbqamXJd.js +0 -1
  223. package/dist/assets/Vibe64AuthSettingsButton-fY4ZiIFF.js +0 -5
  224. package/dist/assets/Vibe64DashboardPageHeader-Gm1IvlHx.css +0 -1
  225. package/dist/assets/Vibe64DashboardShell-BSq7uXEW.js +0 -1
  226. package/dist/assets/Vibe64OutputControls-_zhGX9ne.js +0 -8
  227. package/dist/assets/Vibe64SessionFiles-Bl8wJ5Sk.css +0 -1
  228. package/dist/assets/_slug_-BclonbST.js +0 -24
  229. package/dist/assets/_slug_-CZ1bxO9C.css +0 -1
  230. package/dist/assets/app-BNP_n_Tt.js +0 -1
  231. package/dist/assets/assistantRouting-D4XpXcEf.js +0 -3
  232. package/dist/assets/client-BWV84wi2.js +0 -2
  233. package/dist/assets/client-DGrP-2AJ.css +0 -1
  234. package/dist/assets/definitions-BrMvu6yV.js +0 -1
  235. package/dist/assets/env-BzRtyO0w.css +0 -1
  236. package/dist/assets/env-D3KQGvRe.js +0 -1
  237. package/dist/assets/health-BJvooRnJ.css +0 -1
  238. package/dist/assets/health-BhoO1d4h.js +0 -1
  239. package/dist/assets/incoming-DWDrmxyH.css +0 -1
  240. package/dist/assets/incoming-DzADFGqp.js +0 -2
  241. package/dist/assets/index-dNxr4Lg9.js +0 -138
  242. package/dist/assets/integrations-Cq1x-Di9.css +0 -1
  243. package/dist/assets/issues-Bywux4s7.js +0 -1
  244. package/dist/assets/mdi-CG9pWOSj.js +0 -1
  245. package/dist/assets/placement-BF-zIEhA.js +0 -1
  246. package/dist/assets/pull-requests-CdbhyFOv.css +0 -1
  247. package/dist/assets/pull-requests-ncmKT3sS.js +0 -1
  248. package/dist/assets/ripple-BVltMmyV.js +0 -11
  249. package/dist/assets/settings-BopLnpB0.css +0 -1
  250. package/dist/assets/shared-DpMvYJO3.js +0 -2
  251. package/dist/assets/studioGateApi-DcCqiD9V.js +0 -1
  252. package/dist/assets/studioUrls-DmMMIScP.js +0 -1
  253. package/dist/assets/useArchivedVibe64Sessions-_LB2XxEa.js +0 -1
  254. package/dist/assets/useCommand-Bqxb-naz.js +0 -1
  255. package/dist/assets/useEndpointResource-DWoQ2keu.js +0 -1
  256. package/dist/assets/useRealtimeEvent-Bwapstla.js +0 -1
  257. package/dist/assets/useVibe64ConversationLog-BqUI0S5n.js +0 -1
  258. package/dist/assets/useVibe64Learning-DyqXkpLw.js +0 -1
  259. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +0 -1
  260. package/dist/assets/useVibe64SessionData-B686lToN.js +0 -1
  261. package/dist/assets/vibe64SessionFocus-CqZNTvYF.js +0 -1
  262. 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,43 +57,59 @@ 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
- In Learn mode the current lesson is read on the project page itself, beside
62
+ In Learn mode the current lesson is read on the page itself, beside
67
63
  Colleague, your teacher. The **Lesson** pane is the one place a lesson is read:
68
64
  the step list, the current step with its text, diagram, question or check,
69
65
  **Show me** and **Teach me** (see [Reading a lesson](#reading-a-lesson)), and
70
66
  the lesson's **Lesson finished** screen. Starting, continuing or resuming a
71
- lesson from Courses and Colleague's **Step N/M** button both open it here, at the step you were reading.
72
-
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.
67
+ lesson from Courses and Colleague's **Step N/M** button both open it, at the step you were reading.
68
+
69
+ The lesson is an on/off toggle of its own, separate from **Preview** and
70
+ **Dash**:
71
+
72
+ - **On the lesson's practice project** the header shows the **Preview** |
73
+ **Dash** switch and, after a thin divider, the **Lesson** toggle: a pill with
74
+ a school icon and a small switch. Off, it is outlined and its switch is to
75
+ the left (tooltip **Show lesson**). Press it and it turns solid Learning
76
+ yellow with its switch to the right and a check (tooltip **Hide lesson**):
77
+ the lesson now covers whichever of **Preview** or **Dash** was selected, as
78
+ a yellow sheet with **Lesson** and a **Hide lesson** button at its top.
79
+ - **Pressing Lesson again hides the lesson.** So does **Hide lesson** on the
80
+ sheet, or choosing **Preview** or **Dash** (that one then shows). What it
81
+ covered is exactly as you left it: Preview is not reloaded and keeps its
82
+ App's page, and Dash keeps its section. **Preview** or **Dash** stays
83
+ selected in the switch while the lesson covers it.
84
+ - The address carries the toggle as `?lesson=1`, apart from the pane, so a
85
+ reload, or **L** back to Learn, shows the lesson again over the same pane.
86
+ - **On Management and other screens outside any project** (a studio lesson)
87
+ the toggle is on the lesson step bar. The lesson then lies over the right
88
+ side of the page (all of it on a phone) without moving or narrowing the
89
+ page underneath; it stays shown as you move between that page's tabs until
90
+ you hide it.
78
91
  - **On a lesson without a practice project** there is no
79
- coding session, so there is no chat column and no pane switches: the Lesson
92
+ coding session, so there is no chat column and no toggle: the Lesson
80
93
  pane fills the page.
81
94
  - The reader lays itself out by the width it has: in a narrow pane (on a
82
95
  phone, or beside the chat column and an open Colleague) the step list becomes
83
96
  a row of numbered circles at the top (a tick for a passed step); the step
84
97
  text scrolls below them. When there are more circles than fit, the row
85
- scrolls sideways and follows the current step as you press **Next step** or
86
- **Previous step**, or reopen the lesson, so the step you are reading always
87
- stays in view.
98
+ scrolls sideways and follows the current step as you move through the
99
+ lesson, so the step you are reading always stays in view.
88
100
  - Your reading place (step and scroll position) is saved for your account. A
89
101
  reload in the same tab returns to it; in another browser the lesson opens at
90
102
  the step you last read.
91
103
  - On a phone (and other narrow screens up to 980px wide) the page shows one
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.
104
+ side at a time: the chat or the project. The next-pane button at the top
105
+ goes from **Preview** to **Dash** and back, showing the next pane's name
106
+ (from under the lesson it hides the lesson too). The **Lesson** toggle is
107
+ beside it; turning it on shows the project side with the lesson over it.
96
108
 
97
109
  ## No project selected and `/app`
98
110
 
99
111
  `/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
112
+ project page with the chat column, the **Preview** and **Dash** switches
101
113
  (on a phone, the single switch button) and **Account settings**. The Dashboard
102
114
  still lists its sections, without opening them, and there is no **+** for
103
115
  sessions. It is used in two cases:
@@ -109,16 +121,22 @@ sessions. It is used in two cases:
109
121
  is in the chat column, which a phone shows first; on a desktop the chat
110
122
  column says your teacher will chat there once a lesson starts. The
111
123
  Dashboard says **No lesson in progress** with the same button.
112
- - **A lesson without a practice project**. The page shows
124
+ - **A studio lesson**, taught outside any project. The page shows
113
125
  the lesson in its Lesson pane, with no chat column, and a **Dashboard**
114
126
  switch whose page says **No project selected** (see
115
- [The Lesson tab](#the-lesson-tab)). **L** only switches mode.
127
+ [The Lesson pane](#the-lesson-pane)). **L** only switches mode.
128
+
129
+ **Take the tour**, in the account menu, starts the course's orientation lesson,
130
+ **Welcome to Vibe64**: a short studio lesson on the screens around you (your
131
+ AI, Colleague, **L**). It starts like any other lesson: it switches you to
132
+ Learn, the lesson already in progress just opens, and another lesson in
133
+ progress asks **Archive your lesson in progress?** first. With no installed
134
+ course naming one that you may start, Courses opens instead. The end of first-time AI setup offers the same tour once.
116
135
 
117
136
  A local Vibe64 has no Projects page. Its `/` and `/app` addresses open Develop's
118
137
  place, the project Vibe64 was started in, or in Learn mode Learn's place (the
119
138
  lesson's practice project, or no project selected). `/app` does this without
120
139
  reloading the page. If no project was started, it says so with **Try again**.
121
- On hosted Vibe64 `/app` is the Projects page.
122
140
 
123
141
  An old `?mode=learning` address from the retired Learning mode opens the ordinary
124
142
  project page.
@@ -128,13 +146,17 @@ project page.
128
146
  **Courses** on the lesson step bar, or in the project menu beside **L**, opens
129
147
  the Courses overlay above the page: the
130
148
  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
149
+ a **Courses** tab, an **In progress** tab and an **Archived** tab, and at the
150
+ right a blue **Continue lesson** button (while a lesson is in progress) and
151
+ a **Back** button. A lesson is not read here: opening
133
152
  one closes Courses and shows it in the page's
134
- [Lesson tab](#the-lesson-tab).
153
+ [Lesson pane](#the-lesson-pane).
135
154
 
136
- - Press × or Escape to close it. The page you were on, and Colleague, are
137
- visible again.
155
+ - Press **Back** or Escape to close Courses. The page you were on (the
156
+ editor, Management or any other page), and Colleague, are visible again,
157
+ exactly as you left them.
158
+ - Press **Continue lesson** to go on with your lesson where it runs: for a
159
+ project lesson its practice project, with the lesson shown.
138
160
  - Press **Courses** again to come back to the same tab.
139
161
  - A reload of the page leaves Courses closed; this tab remembers which Courses
140
162
  tab you were on for the next time you press **Courses**. In another browser it
@@ -147,23 +169,22 @@ and the tab row scrolls sideways when it does not fit.
147
169
 
148
170
  **Courses** shows course cards with progress, course pages, the **Course
149
171
  catalogue** and, for the workspace owner, **New course**; see
150
- [Choosing lessons and courses](learning-mode-ui.md).
172
+ [Choosing lessons and courses](learning-mode-ui.md). A course lists only the
173
+ lessons you can take on this Vibe64: a lesson about screens this installation
174
+ doesn't have is simply not there.
151
175
 
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
176
+ - **Start lesson** or **Start next lesson** start
177
+ the lesson, close Courses and open it in the Lesson pane of its practice
154
178
  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
179
  **Archive your lesson in progress?**: **Archive and start** or **Keep it**.
156
- - **Continue lesson** opens your lesson in progress in the Lesson tab.
180
+ - **Continue lesson** opens your lesson in progress in the Lesson pane.
157
181
  - If a start was not confirmed, **Retry lesson start** repeats the same request.
158
182
  - 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
183
 
163
184
  ## In progress and Archived
164
185
 
165
186
  **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
187
+ **Open** (which opens it in the Lesson pane), **Restart** and **Delete**. **Archived** lists the lessons you
167
188
  finished or archived, each with **Delete**. Deleting asks once more (**Delete
168
189
  for good**); see [Practice projects](learning-practice-projects.md).
169
190
 
@@ -219,7 +240,7 @@ also has:
219
240
  - **Automatic check**: a step about an App interaction says "This step is
220
241
  checked automatically when you do it in your practice project", for example
221
242
  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
243
+ the Lesson pane, then select **Preview** (**Show me** does this) and press the
223
244
  App's button yourself in the practice project's visible Preview. Your press
224
245
  counts only for the lesson step Learning currently shows, in that lesson's
225
246
  own practice session, while Courses is not covering the app; the
@@ -254,17 +275,17 @@ also has:
254
275
  The ring stays for a few seconds, also on a phone while the practice
255
276
  project's page is still loading, and clears when you tap or click anywhere.
256
277
  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
278
+ available on the current page, the step comes back in the Lesson pane with the
258
279
  reason; open your practice project and try again.
259
280
  - **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;
281
+ "Teach me this step." for you. The step stays on screen in the Lesson pane;
261
282
  Colleague answers in its conversation. On a phone Colleague's full-screen chat opens over the step.
262
283
  If Colleague is not connected yet, an error says so; press **Teach me** again.
263
284
  If no AI is connected yet, nothing is sent:
264
285
  Colleague opens and says **Colleague cannot teach this step yet: it has no
265
286
  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.
287
+ AI there, then press **Teach me** again; no Models step is needed,
288
+ because Colleague saves the recommended models for a connected AI itself.
268
289
  The message disappears as soon as an AI is usable.
269
290
  - **Lesson notes** (when the lesson has them) and **Previous step** /
270
291
  **Next step**.
@@ -277,8 +298,8 @@ correct answers of a question.
277
298
 
278
299
  ## Lesson finished
279
300
 
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
301
+ When your own step result (in the Lesson pane, or an automatic check from your
302
+ Preview press) completes the last required step, the Lesson pane opens on the
282
303
  **Lesson finished** screen: a check mark,
283
304
  **LESSON FINISHED**, the lesson title and "You completed every required step: X
284
305
  of Y steps passed." It finishes the lesson for you ("Finishing the lesson…"):
@@ -289,7 +310,7 @@ to try again. You don't need an AI for this. Then choose:
289
310
 
290
311
  - **Next lesson: <title>** starts the next unfinished lesson of the same course
291
312
  (when there is one).
292
- - **Back to courses** opens the Courses overlay; the Lesson tab goes away, since
313
+ - **Back to courses** opens the Courses overlay; the Lesson pane goes away, since
293
314
  no lesson is in progress.
294
315
 
295
316
  ## The current step in Colleague
@@ -300,14 +321,14 @@ during voice chat) shows a small yellow **Step N/M** button with a school icon,
300
321
  or a check once that step has passed. Its tooltip is **Current lesson step:
301
322
  <step title>**. It is hidden while Colleague is minimised.
302
323
 
303
- Press it to see the current step in the page's **Lesson** tab (above), at that
324
+ Press it to see the current step in the page's **Lesson** pane (above), at that
304
325
  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
326
+ full-screen chat minimises so the Lesson pane is visible; its avatar button
327
+ brings Colleague back. The step bar, the Lesson pane, Courses and Colleague share
307
328
  one lesson state, so they and other tabs stay in step.
308
329
 
309
330
  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
331
+ minimises and the Lesson pane shows that step. When Colleague opens Courses for
311
332
  you, closing Courses (× or Escape) returns you to Colleague's chat, not the page
312
333
  behind it. **Show me** still shows the app.
313
334
 
@@ -325,8 +346,9 @@ attempt.
325
346
 
326
347
  ## What Colleague can do
327
348
 
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
349
+ Colleague can explain these controls, show your current step in the Lesson pane,
350
+ open or close the Courses overlay, point at or open a real place (the L button,
351
+ a Dashboard section, your account menu and more), and teach a step when you press **Teach me** or
330
352
  ask. In Learn mode it opens and works only in the lesson's practice project;
331
353
  when you ask for another project it says you're in Learn mode and that **L**
332
354
  goes back to your projects. It switches mode, restarts or archives a lesson
@@ -4,7 +4,7 @@ The **L** button switches between **Develop** (your own projects) and
4
4
  **Learn** (lessons); see [The Learning environment (L)](learning-environment.md).
5
5
  In Learn mode the app bar turns yellow, and **Courses** (at the right of the
6
6
  lesson step bar, or in the project menu beside **L**) opens the Courses overlay, the catalogue where
7
- lessons are chosen; a lesson itself is read in the page's **Lesson** tab. This
7
+ lessons are chosen; a lesson itself is read in the page's **Lesson** sheet (the **Lesson** toggle). This
8
8
  guide describes the overlay's **Courses** tab. Its **In progress** and
9
9
  **Archived** tabs are described in
10
10
  [Practice projects](learning-practice-projects.md).
@@ -17,7 +17,15 @@ its dots mirror the course's lessons, ticked when complete), a chip saying
17
17
  whether it is **Enabled**, a **Preview course** or **Disabled for new lessons**
18
18
  (plus **Lesson in progress** or **Course complete** when true), the title, its ID and
19
19
  release, topic and lesson counts, "N of M lessons complete" with a progress ring,
20
- and the next lesson.
20
+ and the next lesson. The banner counts the courses and lessons on the cards
21
+ shown (an older release an update replaced is not counted).
22
+
23
+ An installed lesson this version of Vibe64 cannot teach (for example it names a
24
+ screen this Vibe64 no longer has) is left out of its course, and the card and
25
+ course page say "One lesson is not shown because this version of Vibe64 can't
26
+ teach it: <title>". The rest of the course works as usual. **Update** the
27
+ course when Courses offers an update; starting that lesson is refused with the
28
+ same reason.
21
29
 
22
30
  A lesson is complete when every required step has passed in your saved progress
23
31
  (required assessments, for a lesson in the earlier format). Only required
@@ -26,7 +34,7 @@ already saved; opening a course grades nothing. A lesson passed in one course
26
34
  counts in every course that contains the same lesson.
27
35
 
28
36
  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
37
+ to that course. Otherwise **Start lesson** starts the course's first published lesson
30
38
  that is not yet complete. **View course** opens the course page: a header with
31
39
  the cover and a ring of lessons complete, an **Up next** card, then its topics
32
40
  in order, each with its lessons, their title and code and a status of
@@ -39,9 +47,10 @@ project. **Back to courses** returns to the list. On a phone the cards stack in
39
47
  one column and the course page scrolls in the same pane.
40
48
 
41
49
  The lesson card above the course cards is headed "Lesson in progress · code"
42
- with the lesson title and, once reported, a ring of required steps passed with
43
- "N of M required steps passed. This lesson is complete." or "Continue the
44
- remaining steps." **Continue lesson** opens that exact attempt. Disabled,
50
+ with the lesson title and, once reported, a ring reading **N of M required done**, and
51
+ "N of M required steps done. This lesson is complete." or "Continue the
52
+ remaining steps." It counts only the required steps, so it can differ from
53
+ the step bar's **Step N of M**, which counts every step. **Continue lesson** opens that exact attempt. Disabled,
45
54
  unavailable, loading and error states are shown on the same page. **Refresh
46
55
  courses** rereads installed courses, progress and the course catalogue; after a
47
56
  step result is saved, Courses refreshes that lesson's progress by itself. If
@@ -53,19 +62,22 @@ official catalogue's topics and courses with **Install**; an installed course
53
62
  with a newer release shows **Update available** and **Update** (see
54
63
  [Installing and updating Learning courses](learning-course-catalogue.md)).
55
64
 
56
- A lesson without a practice project opens on the Learn page (at `/app/learning`) with no project
65
+ A studio lesson (taught outside any project) opens on the Learn page (at `/app/learning`) with no project
57
66
  selected: the lesson's own **Lesson** pane fills the page beside Colleague,
58
67
  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
68
+ *The Lesson pane*). Your own projects stay hidden until you
60
69
  press **L** to go back to Develop. Its steps say which real screens it uses.
61
70
 
62
71
  ## Starting, continuing, archiving and finishing
63
72
 
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
67
- confirmed, Courses closes by itself and the lesson opens in the **Lesson** tab
68
- of its practice project; you do not need **Continue lesson**. A practice project's Workspace setup can
73
+ While a start is in progress, the button you pressed reads **Starting lesson…**
74
+ with a spinner, and the same course card (or course page) says **Starting your
75
+ lesson: Creating your practice project. This can take a while; the lesson opens
76
+ by itself when it is ready.** Other start buttons stay disabled until the
77
+ request settles. If the start fails, the card says **The lesson did not start**
78
+ with the reason. As soon as the start is
79
+ confirmed, Courses closes by itself and the lesson opens (its **Lesson** toggle on)
80
+ over its practice project; you do not need **Continue lesson**. A practice project's Workspace setup can
69
81
  continue afterwards and the lesson becomes ready when setup succeeds (see
70
82
  [Practice projects](learning-practice-projects.md)). **Starting lessons is
71
83
  unavailable in this installation** appears only when the installation cannot
@@ -93,8 +105,8 @@ in progress, and **L** returns to it. When every required step has passed, the
93
105
  (see [The Learning environment (L)](learning-environment.md)).
94
106
 
95
107
  Starting or continuing a lesson, or **Open** under **In progress**, closes
96
- Courses and opens the lesson in the **Lesson** tab of its practice project; its
97
- **Preview** and **Dashboard** tabs are beside it. Setup repair there is ordinary project work
108
+ Courses and opens the lesson over its practice project, with the **Lesson**
109
+ toggle on beside the **Preview** | **Dash** switch; press it again to hide the lesson. Setup repair there is ordinary project work
98
110
  (ask that session's agent or use Workspace setup recovery); it is not a learner
99
111
  answer or a passed step.
100
112
 
@@ -125,12 +137,12 @@ disable-course` (see `docs/training-content.md`) and create another one.
125
137
  ## Preview courses
126
138
 
127
139
  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
140
+ owner (on local Vibe64, you) sees the ordinary **Start lesson** and **Start next
141
+ lesson** buttons beside the **Preview course** chip, on desktop and phone; they
142
+ start an ordinary saved lesson. Others see **Preview — the workspace owner can
131
143
  try it; it becomes startable when released** and no start button, and the server
132
144
  refuses their start. Drafts and disabled courses stay unavailable to everyone.
133
- Once released, everyone gets **Start**.
145
+ Once released, everyone gets **Start lesson**.
134
146
 
135
147
  ## What Colleague can do
136
148