vibe64 0.1.34 → 0.1.36

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 (207) hide show
  1. package/bin/run.js +1919 -1660
  2. package/bin/server.js +158 -111
  3. package/bin/upgrade-state.js +5783 -5605
  4. package/dist/assets/GithubBrowserTabs-BzJF4k9Y.js +1 -0
  5. package/dist/assets/{StudioErrorNotice-sQfmeR-z.js → StudioErrorNotice-BdllGqRy.js} +1 -1
  6. package/dist/assets/{Vibe64AsyncModuleState-Dx7YKRPp.js → Vibe64AsyncModuleState-Bi0TqlIu.js} +1 -1
  7. package/dist/assets/Vibe64AuthSettingsButton-BuvmwGiT.js +5 -0
  8. package/dist/assets/Vibe64AuthSettingsButton-M44SSmZ9.css +1 -0
  9. package/dist/assets/{Vibe64DashboardBackButton-yE6cyYg2.js → Vibe64DashboardBackButton-Ccd4hpD6.js} +1 -1
  10. package/dist/assets/Vibe64DashboardShell-D67m4aWz.js +1 -0
  11. package/dist/assets/{Vibe64DashboardShell-MBkUHjs-.css → Vibe64DashboardShell-De2mbdpI.css} +1 -1
  12. package/dist/assets/{Vibe64DatabaseWorkspace-BONJdxBS.js → Vibe64DatabaseWorkspace-D3uK1gDm.js} +3 -3
  13. package/dist/assets/{Vibe64DatabaseWorkspace-CR4pzzcf.css → Vibe64DatabaseWorkspace-DPDMxhAW.css} +1 -1
  14. package/dist/assets/Vibe64OutputControls-BfESn5kJ.js +8 -0
  15. package/dist/assets/Vibe64OutputControls-D2CCECo5.css +1 -0
  16. package/dist/assets/{Vibe64RepositoryWorkspace-ByQlZbyO.js → Vibe64RepositoryWorkspace-0jAxvdA8.js} +2 -2
  17. package/dist/assets/{Vibe64RepositoryWorkspace-CVHcT93M.css → Vibe64RepositoryWorkspace-Agyt4O-V.css} +1 -1
  18. package/dist/assets/Vibe64SessionFiles-B3ONZrBL.css +1 -0
  19. package/dist/assets/Vibe64SessionFiles-BCOJ4QmR.js +41 -0
  20. package/dist/assets/{Vibe64TemporaryAiFixAction-BGlcrq4d.js → Vibe64TemporaryAiFixAction-DM2jpPbQ.js} +1 -1
  21. package/dist/assets/{Vibe64UiStoryboardView-Brlwdvqi.js → Vibe64UiStoryboardView-DP5af46a.js} +1 -1
  22. package/dist/assets/{Vibe64UnavailableSessions-zwlWlcZD.js → Vibe64UnavailableSessions-C7XwH1SS.js} +1 -1
  23. package/dist/assets/{_sessionId_-CvOkQbVy.js → _sessionId_-B1Ymr7c_.js} +1 -1
  24. package/dist/assets/{_sessionTool_-Dwod5ns9.js → _sessionTool_-DVYdREoI.js} +1 -1
  25. package/dist/assets/_slug_-CQseA9pt.css +1 -0
  26. package/dist/assets/_slug_-CYO2vjCd.js +24 -0
  27. package/dist/assets/{access-BVu5XYm2.js → access-Cb7dkN53.js} +1 -1
  28. package/dist/assets/app-BvgY7oVf.js +1 -0
  29. package/dist/assets/app-CZu7oxUO.css +1 -0
  30. package/dist/assets/{assistantRouting-CwbwfkwB.js → assistantRouting-B38ujQ7x.js} +1 -1
  31. package/dist/assets/{changes-olY8cnFK.js → changes-lsBcuikn.js} +1 -1
  32. package/dist/assets/client-CRI5CNKl.js +2 -0
  33. package/dist/assets/client-TGaWwOhc.css +1 -0
  34. package/dist/assets/conversation-CDEt9jBx.js +17 -0
  35. package/dist/assets/conversation-vxJGwmtW.css +1 -0
  36. package/dist/assets/{dashboard-BnXD-H4R.js → dashboard-D8HOAw46.js} +1 -1
  37. package/dist/assets/definitions-DLTX17nI.js +1 -0
  38. package/dist/assets/{env-DJhnLOH7.css → env-BzRtyO0w.css} +1 -1
  39. package/dist/assets/env-DJezQixO.js +1 -0
  40. package/dist/assets/health-BJvooRnJ.css +1 -0
  41. package/dist/assets/health-CtKdN_Nf.js +1 -0
  42. package/dist/assets/{history-BxlpB-YH.js → history-BdZFOtz4.js} +1 -1
  43. package/dist/assets/{incoming-BOxRVlOM.js → incoming-VsQNnL9m.js} +1 -1
  44. package/dist/assets/index-C-osVUKw.css +1 -0
  45. package/dist/assets/index-C4K3ntms.js +138 -0
  46. package/dist/assets/{integrations-BFltGDVI.js → integrations-CMQ9EDmt.js} +2 -2
  47. package/dist/assets/issues-DHpY5hSr.js +1 -0
  48. package/dist/assets/learning-DXlMuwzh.js +1 -0
  49. package/dist/assets/mdi-yXT-CQ6u.js +1 -0
  50. package/dist/assets/placement-NpX2s7u8.js +1 -0
  51. package/dist/assets/pull-requests-BcKNEUYH.js +1 -0
  52. package/dist/assets/{repository-JWLVST3D.js → repository-ClEgntHW.js} +1 -1
  53. package/dist/assets/roboto-latin-wght-normal-ccAYIvAh.woff2 +0 -0
  54. package/dist/assets/{session-C5Nj8Dlq.js → session-BlD46q-d.js} +1 -1
  55. package/dist/assets/settings-BwukeIKe.js +1 -0
  56. package/dist/assets/shared-BM2SV6fi.js +2 -0
  57. package/dist/assets/studioGateApi-DcCqiD9V.js +1 -0
  58. package/dist/assets/studioUrls-DmMMIScP.js +1 -0
  59. package/dist/assets/useArchivedVibe64Sessions-D5zUA-BC.js +1 -0
  60. package/dist/assets/useCommand-Bqxb-naz.js +1 -0
  61. package/dist/assets/useEndpointResource-DWoQ2keu.js +1 -0
  62. package/dist/assets/useRealtimeEvent-Bwapstla.js +1 -0
  63. package/dist/assets/{useUiFeedback-0FqKuZRP.js → useUiFeedback-BPBF_0bp.js} +1 -1
  64. package/dist/assets/useVibe64ConversationLog-Dy6YTPQn.js +1 -0
  65. package/dist/assets/useVibe64DatabaseTools-d6L09ugW.js +1 -0
  66. package/dist/assets/useVibe64Learning-cNKTv64W.js +1 -0
  67. package/dist/assets/useVibe64ProjectScope-Bp1ImZlz.js +1 -0
  68. package/dist/assets/useVibe64SessionData-C_jqncih.js +1 -0
  69. package/dist/assets/useVibe64SessionSelection-uCEIWd3b.js +1 -0
  70. package/dist/assets/useVibe64SystemGraph-B4RmsC9Y.js +1 -0
  71. package/dist/assets/{useVibe64Terminal-BPnN25WH.js → useVibe64Terminal-BbghGR4x.js} +1 -1
  72. package/dist/assets/vibe64AssistantHost-BL1bnKm8.js +1 -0
  73. package/dist/assets/{vibe64SessionFocus-kqPOPaOH.js → vibe64SessionFocus-DSJKVuRN.js} +1 -1
  74. package/dist/assets/{vibe64SessionInfo-BHxtTrLX.js → vibe64SessionInfo-B_r1OMN0.js} +1 -1
  75. package/dist/assets/{vibe64SessionPanelModel-BMf64fv7.js → vibe64SessionPanelModel-DDorOuiL.js} +1 -1
  76. package/dist/assets/{vibe64SessionToolDefinitions-NfLd1HZI.js → vibe64SessionToolDefinitions-BualCK_5.js} +1 -1
  77. package/dist/index.html +21 -20
  78. package/docs/colleague-usage/account-profile-and-appearance.md +8 -2
  79. package/docs/colleague-usage/ai-accounts-and-routing.md +123 -15
  80. package/docs/colleague-usage/ai-onboarding.md +230 -0
  81. package/docs/colleague-usage/coding-agent-goal-pause.md +5 -5
  82. package/docs/colleague-usage/coding-agents.md +17 -0
  83. package/docs/colleague-usage/colleague-watches.md +4 -23
  84. package/docs/colleague-usage/colleague.md +10 -2
  85. package/docs/colleague-usage/connected-projects.md +2 -2
  86. package/docs/colleague-usage/conversation-context.md +2 -0
  87. package/docs/colleague-usage/dashboard-navigation.md +19 -27
  88. package/docs/colleague-usage/database.md +6 -11
  89. package/docs/colleague-usage/development-copies.md +2 -1
  90. package/docs/colleague-usage/development-env.md +6 -0
  91. package/docs/colleague-usage/github-work.md +9 -0
  92. package/docs/colleague-usage/health-checks.md +11 -5
  93. package/docs/colleague-usage/integrations.md +3 -1
  94. package/docs/colleague-usage/learning-code-questions.md +23 -51
  95. package/docs/colleague-usage/learning-course-catalogue.md +8 -6
  96. package/docs/colleague-usage/learning-environment.md +345 -0
  97. package/docs/colleague-usage/learning-history.md +70 -101
  98. package/docs/colleague-usage/learning-mode-ui.md +122 -214
  99. package/docs/colleague-usage/learning-practice-projects.md +168 -78
  100. package/docs/colleague-usage/learning-teacher-guide.md +48 -26
  101. package/docs/colleague-usage/learning-with-colleague.md +171 -216
  102. package/docs/colleague-usage/lesson-authoring.md +32 -24
  103. package/docs/colleague-usage/managed-app-access.md +7 -0
  104. package/docs/colleague-usage/message-delivery-recovery.md +7 -6
  105. package/docs/colleague-usage/preview-browser-checks.md +9 -1
  106. package/docs/colleague-usage/preview-starting-application.md +0 -1
  107. package/docs/colleague-usage/preview.md +9 -1
  108. package/docs/colleague-usage/project-messages.md +2 -2
  109. package/docs/colleague-usage/project-setup.md +9 -2
  110. package/docs/colleague-usage/running-vibe64-on-your-computer.md +61 -0
  111. package/docs/colleague-usage/sessions.md +25 -33
  112. package/docs/colleague-usage/teaching-content.md +11 -40
  113. package/docs/colleague-usage/temporary-chats.md +23 -2
  114. package/docs/colleague-usage/voice-chat.md +5 -10
  115. package/docs/colleague-usage/voice-face-and-speaking-voice.md +6 -8
  116. package/docs/colleague-usage/voice-recovery.md +3 -2
  117. package/docs/templates/learn-topic/README.md +6 -6
  118. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.json +28 -7
  119. package/docs/templates/learn-topic/training/lessons/TOPIC-01/notes.md +19 -0
  120. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/check-understanding.md +3 -0
  121. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/explain-idea.md +3 -0
  122. package/docs/templates/learn-topic/training/lessons/TOPIC-01/steps/try-it.md +3 -0
  123. package/docs/templates/learn-topic/training/outline.md +1 -1
  124. package/docs/training-content.md +179 -65
  125. package/node_modules/@jskit-ai/assistant-core/package.json +1 -1
  126. package/node_modules/@jskit-ai/assistant-runtime/package.json +1 -1
  127. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/PATTERN.md +3 -2
  128. package/node_modules/@jskit-ai/assistant-runtime/patterns/assistant-surface/example/integrations.json +3 -2
  129. package/node_modules/@jskit-ai/assistant-voice/package.json +1 -1
  130. package/node_modules/@jskit-ai/connectors-catalog/package.json +1 -1
  131. package/node_modules/@jskit-ai/connectors-catalog/patterns/ai-connections/PATTERN.md +4 -3
  132. package/node_modules/@jskit-ai/connectors-catalog/src/shared/ai-models.json +0 -1
  133. package/node_modules/@local/vibe64-accounts/package.json +1 -0
  134. package/node_modules/@local/vibe64-colleague/package.json +2 -1
  135. package/node_modules/@local/vibe64-core/package.json +3 -0
  136. package/node_modules/@local/vibe64-execution/package.json +1 -0
  137. package/node_modules/@local/vibe64-execution/src/server/engines/stdioBridge.js +9 -9
  138. package/node_modules/@local/vibe64-genesis/README.md +10 -37
  139. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +790 -779
  140. package/node_modules/@local/vibe64-genesis/package.json +1 -0
  141. package/node_modules/@local/vibe64-genesis/src/server/agentSpecs.js +255 -0
  142. package/node_modules/@local/vibe64-genesis/src/server/index.js +473 -450
  143. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +148 -148
  144. package/node_modules/@local/vibe64-project/package.json +2 -1
  145. package/node_modules/@local/vibe64-runtime/package.json +1 -2
  146. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +526 -512
  147. package/node_modules/@local/vibe64-runtime/src/shared/assistantRoutingScores.json +0 -1
  148. package/node_modules/@local/vibe64-source-editor/package.json +1 -0
  149. package/node_modules/@local/vibe64-terminals/package.json +1 -0
  150. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +129 -131
  151. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1508 -1456
  152. package/node_modules/@local/vibe64-training/package.json +13 -27
  153. package/package.json +7 -7
  154. package/server.bundle.mjs +40946 -41456
  155. package/dist/assets/GithubBrowserTabs-DO5PHon-.js +0 -1
  156. package/dist/assets/GithubMarkdown-BQ6MfCDJ.js +0 -3
  157. package/dist/assets/GithubMarkdown-U7-j-qNI.css +0 -1
  158. package/dist/assets/Vibe64DashboardShell-CuCVMhOc.js +0 -1
  159. package/dist/assets/Vibe64OutputControls-DAAmA09l.js +0 -8
  160. package/dist/assets/Vibe64OutputControls-DPBsyDZM.css +0 -1
  161. package/dist/assets/Vibe64SessionFiles-B0u9HKdF.js +0 -107
  162. package/dist/assets/Vibe64SessionFiles-NjOMVwPR.css +0 -1
  163. package/dist/assets/_slug_-B31c15cc.css +0 -1
  164. package/dist/assets/_slug_-Dy35qLo1.js +0 -1
  165. package/dist/assets/app-DRXCcv05.css +0 -1
  166. package/dist/assets/app-zt7HwQKT.js +0 -1
  167. package/dist/assets/client-BrV4QPwG.js +0 -2
  168. package/dist/assets/client-C1bwIlu6.css +0 -1
  169. package/dist/assets/definitions-DaOPIkyB.js +0 -1
  170. package/dist/assets/env-DN0vW4EI.js +0 -1
  171. package/dist/assets/health-7oIQODer.css +0 -1
  172. package/dist/assets/health-Z6m96GDr.js +0 -1
  173. package/dist/assets/index-BUq-MczL.js +0 -86
  174. package/dist/assets/index-DtmBqE3h.css +0 -1
  175. package/dist/assets/issues-1iS5zoed.js +0 -1
  176. package/dist/assets/layout-BkWVNT37.js +0 -1
  177. package/dist/assets/mdi-C54lQ0i_.js +0 -1
  178. package/dist/assets/placement-DLsU3pCW.js +0 -1
  179. package/dist/assets/pull-requests-BJOwNL4k.js +0 -1
  180. package/dist/assets/settings-c273Ikrm.js +0 -1
  181. package/dist/assets/shared-YZb7ocaK.js +0 -2
  182. package/dist/assets/studioGateApi-DhA9IJGZ.js +0 -1
  183. package/dist/assets/studioUrls-Dj8rXeXO.js +0 -1
  184. package/dist/assets/useArchivedVibe64Sessions-CVZx2Rtm.js +0 -1
  185. package/dist/assets/useCommand-DWuxfAV0.js +0 -1
  186. package/dist/assets/useEndpointResource-MWVNfmMa.js +0 -1
  187. package/dist/assets/useVibe64ConversationLog-8cKh1eDm.js +0 -1
  188. package/dist/assets/useVibe64DatabaseTools-BcRG1s3i.js +0 -1
  189. package/dist/assets/useVibe64LearningMode-Bl0dGdCh.js +0 -28
  190. package/dist/assets/useVibe64LearningMode-C3PcXdVg.css +0 -1
  191. package/dist/assets/useVibe64ProjectScope-DOEVkBqX.js +0 -1
  192. package/dist/assets/useVibe64SessionData-DFTyLzci.js +0 -1
  193. package/dist/assets/useVibe64SessionSelection-j9lsllx4.js +0 -1
  194. package/dist/assets/useVibe64SystemGraph-tNkIwSBQ.js +0 -1
  195. package/dist/assets/vibe64AssistantHost-DdE_-lZF.js +0 -1
  196. package/dist/assets/vibe64LessonDashboard-DlKYjisq.js +0 -1
  197. package/dist/assets/vibe64ProjectScope.local-DqT6e5un.js +0 -1
  198. package/docs/colleague-usage/learning-chat-retention.md +0 -74
  199. package/docs/colleague-usage/learning-diagrams-and-voice.md +0 -97
  200. package/docs/colleague-usage/learning-lesson-watch.md +0 -95
  201. package/docs/colleague-usage/learning-native-session.md +0 -206
  202. package/docs/colleague-usage/learning-practical-exercises.md +0 -71
  203. package/docs/colleague-usage/learning-practical-gestures.md +0 -48
  204. package/docs/colleague-usage/learning-session-creation.md +0 -95
  205. package/docs/colleague-usage/lesson-practical-assessment.md +0 -54
  206. package/docs/colleague-usage/preview-lesson-presentation.md +0 -56
  207. package/docs/templates/learn-topic/training/lessons/TOPIC-01/lesson.md +0 -44
@@ -1,52 +1,74 @@
1
1
  # Learning teacher guide
2
2
 
3
- During a practice lesson, the lesson teacher (Main) shows you where things are in
4
- the real Vibe64 workspace. By default it *points*: it rings the real control you
5
- should click next, with a short caption such as **Dashboard → Database → ERD**.
6
- You then click it yourself.
3
+ Colleague teaches your lessons and shows you where things are in the real
4
+ Vibe64 app. By default it *points*: it rings the real control you should click
5
+ next, with a short caption such as **Dashboard → Database → ERD** or the
6
+ lesson's own caption. You then click it yourself.
7
7
 
8
8
  ## What you see
9
9
 
10
10
  - The rest of the screen dims slightly, and a ring with a gentle ripple sits on
11
- one real tab, Dashboard section or button. A caption with the whole path points
12
- at it; a thin bar on the caption shows the time left.
11
+ one real tab, Dashboard section or button. A caption points at it; a thin bar
12
+ on the caption shows the time left.
13
13
  - The ring is on the next step from where you are. On **Preview**, a path to the
14
14
  ERD rings the **Dashboard** tab; once you are in **Dashboard → Database**, it
15
- rings the **ERD** button.
15
+ rings the **ERD** button. When you are already at the place (for example
16
+ Preview or **Dashboard → Files** is open), the ring goes around that open
17
+ pane, with the caption inside its top edge when the pane fills the screen.
16
18
  - The ring lasts about 8 seconds, or until you click or press a key. It never
17
19
  blocks your click, and it holds still when your device asks for reduced motion.
20
+ - If Learning is open above the app when Colleague points at an app place,
21
+ Learning is minimised first (your lesson and step are kept) so you can see it.
18
22
 
19
- ## Places the teacher can point at
23
+ ## Places Colleague can point at
20
24
 
21
25
  **Preview**, **Dashboard**, **Dashboard → Database → ERD** or **Data**,
22
26
  **Dashboard → Files** (and one file in it), **Current changes**, **Git log**,
23
- **Session info**, **Architecture**, and the graduation-cap (Learning) option beside Preview and Dashboard. A Dashboard section
24
- the lesson does not show cannot be ringed.
27
+ **Session info**, **Architecture**, and the **L** (Learning) button. A Dashboard
28
+ section the project does not show cannot be ringed.
25
29
 
26
30
  ## On a phone
27
31
 
28
- A phone shows the chat or one pane at a time, so the next tab is often hidden.
29
- The ring then sits on the header's pane switch: the arrow button that shows the
30
- project panes from the chat, or the next-pane button (for example **Dashboard ›**)
31
- that steps **Preview → Dashboard → Learning**. The caption still shows the whole
32
- path. Tap the switch; when the next step becomes visible, the teacher can ring it
33
- directly.
32
+ A phone shows the chat or one pane at a time, so the Preview/Dashboard tabs and
33
+ the Dashboard menu are hidden. Colleague's full-screen chat minimises itself
34
+ first so the ring is visible. Then:
35
+
36
+ - If the place's pane is already showing (for example Preview, or Files in the
37
+ Dashboard), the ring goes around that pane.
38
+ - In the Dashboard, a Dashboard section that is not open rings the
39
+ **Dashboard section** select at the top; choose the section there.
40
+ - When Files, Database, Architecture or Current changes fills the Dashboard
41
+ and the place is another Dashboard section, the ring goes around that pane's
42
+ **Back to dashboard** button (in Files or Database it may read **Back to
43
+ Architecture**). Tap it, then follow the next ring.
44
+ - Only when the place is in the other pane (Preview instead of Dashboard, or
45
+ the reverse), or the chat is showing, does the ring sit on the header's pane
46
+ switch: the arrow button that shows the project
47
+ panes from the chat, or the next-pane button (for example **Dashboard ›**;
48
+ on phones narrower than about 480px it shows only the Dashboard or Preview
49
+ icon).
50
+ Tap it; when the next step becomes visible, Colleague can ring it directly.
51
+
52
+ The caption always shows the whole path. Reopen Colleague with its avatar
53
+ button.
34
54
 
35
55
  ## When nothing is ringed
36
56
 
37
57
  If neither a step on the path nor the pane switch is visible, nothing is drawn.
38
- The teacher is told so and gives you the path in words instead; follow it with the
39
- visible controls.
58
+ Colleague is told so, never claims a highlight, and gives you the path in words
59
+ instead; follow it with the visible controls.
40
60
 
41
61
  ## "Show me"
42
62
 
43
- Ask the teacher to "show me" and it opens the place itself (for a file, in the
44
- lesson's **Dashboard → Files** editor) and rings it there. A view the teacher opens is
45
- a demonstration, not your step; when a lesson asks you to find a place, click it
46
- yourself so **Watch me** observes your own navigation.
63
+ Ask Colleague to "show me" and it opens the place itself in your project (for a
64
+ file, in **Dashboard → Files**) and rings it there. For the Learning place it
65
+ opens Learning. A view Colleague opens is a demonstration, not your step: it never
66
+ passes a lesson step. When a lesson asks you to find a place, click it yourself.
47
67
 
48
- ## What Colleague can do
68
+ ## Opening your lesson
49
69
 
50
- Colleague can explain these steps. It cannot draw the teacher's ring; it can open
51
- the lesson project's **Preview** or **Dashboard → Database → ERD** for you when you
52
- ask, which is also a demonstration.
70
+ Colleague can show your current lesson step in the Learn page's **Lesson** tab,
71
+ and open the **Courses** catalogue or close it so you can see the app, without
72
+ 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,
74
+ Colleague's chat minimises so the step is visible).
@@ -1,218 +1,173 @@
1
- # Lessons: Main teaches, Colleague supervises
1
+ # Lessons: Colleague teaches
2
2
 
3
3
  For authoring and Git publication, read `lesson-authoring`. For pinned content
4
- and owner recovery, read `teaching-content`.
5
-
6
- ## Asking Colleague about lessons
7
-
8
- Ask Colleague to list available courses or read your saved lesson; these reads
9
- change no project or progress. A direct start request or accepted offer authorizes
10
- reservation of that exact lesson and preparation of its declared exercise.
11
- Resume after interruption to retain the saved attempt. If preparation is
12
- unsupported, ask the owner to configure it, then retry that attempt.
13
- The yellow **L** and session panel attach Learning mode; read `learning-mode-ui`
14
- for controls and retained Working selection. Main teaches the saved lesson.
15
- Colleague supervises selection, progress and authoring; its catalogue and execution
16
- refuse question preparation, quiz/practical grading and all five lesson visual
17
- operations, including old contracts. Missing Main support leaves teaching pending;
18
- start/resume does not prove its chat opened. An empty catalogue requires owner
19
- installation/enablement, never substitute content.
20
-
21
- Questions and diagrams continue in saved Main with Colleague's drawer closed.
22
- Opening Colleague grants no missing teacher/grading support. The return practical
23
- requires its actual drawer controls and your explanation to Main. Colleague can
24
- explain native observation facts/accepted steps from its context query; those facts
25
- are not a pass. Missing facts do not prove lost steps: ask Main to check the current
26
- question before repeating the practical.
27
-
28
- Colleague can start and control a watcher for the current learner task through its
29
- eye-button dialog while you continue using Main. Starting from a delivered question
30
- captures that exact question, attempt, content pin, project/session and initiating
31
- browser. For a task without a delivered question, name one bounded criterion. The
32
- separate Learning watcher is event-first and performs bounded code-only
33
- reconciliation; Colleague and Main do not check your activity, keep an AI turn
34
- open or repeatedly call a model. **Pause**, **Resume** and **Stop** remain explicit.
35
- Leaving the target or losing current authority pauses it, and Resume performs a
36
- fresh access check. Its allowlisted control/view/progress facts are status context
37
- only and cannot pass an assessment.
38
-
39
- A direct “Watch me while I do this” request lets Colleague start that same watch
40
- from the currently connected Learning task. A how-to question only explains the
41
- controls. Ask Colleague to read, pause, resume or stop it, or use the eye dialog;
42
- both paths update the same watch ID. Status includes the exact goal and target,
43
- latest observation time, last delivered-help receipt and any saved assessment
44
- outcome. Stop ends observation only, not Main, the lesson or the application.
45
- Polling grants no source, Git, publication, provider, account or other mutation
46
- permission. Unsupported in-app behavior must be reported as unobservable.
47
-
48
- After a confirmed relevant step or an explicit observed failure, polling can give
49
- the same saved Main teacher one bounded application update. Main waits if your
50
- current turn is still running, then may connect confirmed progress to the current
51
- criterion or offer one useful hint for the reported failure. The update is not
52
- shown as words authored by you, cannot answer a pending question, and cannot award
53
- a pass. Repeated identical evidence is coalesced, and merely being quiet or away
54
- does not trigger another teacher turn. Pause or Stop discards undelivered help.
55
-
56
- A no-exercise lesson stays reserved without a practice project or Workspace setup.
57
- Its Learning Main is a private teacher conversation; the fresh brief reports
58
- `lesson.exerciseRequired: false`. Supported Main quizzes assess accepted answers
59
- against the pinned rubric and save progress. Practicals require native observations;
60
- missing support leaves them incomplete. Keep practical/diagram readiness guards,
61
- and do not inspect/resume a nonexistent practice session. An unexpected exercise
62
- checkpoint requires explicit end/restart with progress retained, never silent repair.
63
-
64
- Saved `preparation.phase` is a checkpoint, not live setup status. If it remains
65
- `preparing`, finish the already-requested lesson with `lesson.resume` on that same
66
- attempt; rereading `learning.read` cannot advance it. `sessions.inspect` reports
67
- the reserved session's actual `workspaceSetupStatus`. Resume rechecks that setup
68
- and saves proven readiness before `question.prepare`. Do not claim still running
69
- or nothing broken from the checkpoint. Ready is not running App Preview.
70
-
71
- Before each start, read `vibe64.training.courses.list` in that supervisor turn
72
- and `vibe64.training.learning.read` for the current revision/attempt. Choose an
73
- enabled listed release/lesson; historical catalogue results may be obsolete.
74
- After refusal, reread both before explaining it. A disabled old release does not
75
- prove the current course unavailable. Never call rejection successful or reuse
76
- its request identity for another release.
77
-
78
- The catalogue's topic IDs identify pinned lesson content, not ordinary help
79
- topics. Do not pass them to `usage.guide.read`. After a successful start, read the
80
- exact returned attempt through `vibe64.training.teaching-brief.read`; that owner
81
- provides the teaching text, rubrics and diagrams. A missing help topic is not
82
- evidence that an installed course's content is missing. If the native brief or
83
- preparation actually fails, report that result and retain its exact saved target.
84
- Main receives the complete bounded teaching brief, including its rubric and saved
85
- results. It does not shorten a valid lesson to fit a smaller tool response. A brief
86
- that exceeds the teaching owner's 128 KiB bound is refused; retain the saved attempt
87
- and ask the content author to shorten the lesson rather than retrying an unchanged read.
88
-
89
- A host-enabled Main lesson diagram uses the existing Preview area's lesson
90
- **Presentation**. Read `learning-mode-ui` for its actual view choices; **App**
91
- requires a real prepared exercise. The application and diagram remain mounted
92
- while switching supported views.
93
- Hidden supported motion pauses; restoring a diagram does not automatically replay
94
- it. Diagram state and completion are display facts, not learner assessment evidence.
95
- A diagram component alone does not establish active teaching or completed
96
- narration. Require its actual Main/native and player receipts.
97
-
98
-
99
- For explicitly ending a lesson and continuing its retained pin in a fresh exercise, read
100
- [Lesson history and resume](learning-history.md).
101
- An explicitly started newer topic can retain passes for a lesson whose code and
102
- content hash are unchanged. Colleague reads the fresh brief's retained results and
103
- continues the remaining assessments; changed lesson content requires its own
104
- assessment. This never transfers another person's results or proves that a new
105
- practice project is running.
106
-
107
- Only the host-registered native assessment operation can save a pass, using the
108
- pinned rubric, admitted learner message and required observation. Colleague's
109
- agreement, diagram motion, opened views, provisional words and demonstrations
110
- are insufficient. Unavailable evaluation/cleanup leaves results unsaved for retry.
111
- After substantial help or demonstration, require an independent follow-up;
112
- there is no raw pass-writing control.
113
-
114
- Use host-registered **question.prepare** in the current interactive teaching
115
- turn after reading the exact brief/revision and finishing any diagram/audio cue.
116
- Record actual help; retries retain the same request ID. After success, the whole
117
- final reply must equal the returned question text without additions. **Prepared**
118
- is not delivered or passed: only that exact completed final reply in this chat
119
- establishes delivery, never progress text. No learner button is added.
120
-
121
- Failed preparation/staging retains the attempt and request for read/retry; never
122
- invent an ID to hide uncertainty. Historical questions without help/issued-revision
123
- provenance require explicit fresh preparation, not an assumption of no help.
124
- Later cue/pause checkpoints retain the question; replacement makes queued old
125
- answers stale. Saving/displaying a question neither accepts an answer nor grants
126
- evaluation/pass authority.
127
-
128
- A teaching cue binds one declared diagram transition to the actual final
129
- Main explanation, never a tool-progress sentence. Motion follows audible
130
- speech start; with sound off, **Continue** follows the finished transcript
131
- explanation. **Play diagram without sound** is an explicit recovery while sound
132
- has not started. The next cue/question waits for actual display and required audio
133
- completion. Hiding, stopping or reloading retires the cue; ask for an explicit
134
- repeat. These facts grant no assessment pass and do not start another assistant
135
- turn automatically. On phones the presentation opens in Preview with Colleague
136
- minimised, preserving its voice session and separate typed draft.
137
-
138
-
139
- When the host supplies the question owner, a typed Send captures the question
140
- actually delivered by the completed Main reply in that lesson chat. A saved lesson
141
- checkpoint or tool-progress sentence alone does not make a question available.
142
- Speech keeps the question captured when that utterance began, including while it waits behind a working reply or remains in review.
143
- Showing a newer question does not move those earlier words to it. A valid native
144
- admission retains the issued question and its recorded assistance with your
145
- actual message identity and the native question reply/output identity; this
146
- alone does not evaluate or pass the answer. A fresh chat does not reattach words
147
- to a question delivered in its archived history.
148
-
149
- You can keep talking or typing if that question was replaced or its pinned
150
- content is unavailable. The message remains an ordinary, ungraded conversation
151
- message; it is never assigned to the newer question automatically. An accepted
152
- message retry keeps its original receipt. Old questions without recorded issuance
153
- remain ungradable until the Main teacher explicitly prepares a new question.
154
- Operators apply required state upgrades with writers stopped before activation.
155
- Upgrades do not invent old question provenance or grade historical words.
156
-
157
- Native quiz evaluation uses only the accepted learner message in the current
158
- interactive Main teaching turn and its actually delivered question. Caller text,
159
- paraphrases, provisional words and unrelated history cannot substitute. The
160
- original restricted Helper evaluates the pinned rubric; the progress owner saves
161
- its feedback. Retrying the same submission reads its result before another
162
- inference; a new identity cannot bypass a consumed answer.
163
-
164
- Stopping the Main teacher or retiring its admitted turn cancels evaluation without a pass.
165
- Missing support, interruption, stale questions or failed saves remain unsaved
166
- and recoverable. Keep the attempt/question; practicals require observed evidence.
167
- A confirmed Helper setup failure needs its existing AI Accounts model routing
168
- configured before retrying. Unrelated history cannot be assessed; host support is required.
169
-
170
-
171
- ### Practising the native workspace controls
172
-
173
- For workspace observations, application checks and practical assessment, read
174
- [Practical Learning exercises](learning-practical-exercises.md).
175
-
176
- ## Course and lesson choices
177
-
178
- The prepared **Courses** pane displays the host's installed courses in their
179
- original order as cards with "N of M lessons complete" and a progress ring.
180
- **View course** shows each topic and its lessons in order, with readable lesson
181
- titles beside the exact lesson codes, course/topic releases and lesson hashes,
182
- and a **Completed**, **In progress** or **Not started** status read from saved
183
- progress. Opening a course does not install or enable content; the separate
184
- **Install a course** catalogue below the cards does, and Colleague may install or
185
- update an official catalogue course only on the person's direct request or
186
- accepted offer (see [Installing and updating Learning courses](learning-course-catalogue.md)).
187
- Disabled courses and draft lessons stay labelled and unavailable for a new start.
188
- A preview course can be started only by the workspace owner: `courses.list`
189
- reports `canTryPreviews`, the owner sees **Try preview**, and the server refuses
190
- anyone else's start (Colleague included, acting for that person) with **This
191
- preview course can be tried only by the workspace owner until it is released.**
192
- **Start** or **Try preview** on a card, **Start next lesson** or **Start lesson**
193
- on the course page requests that exact published lesson from an enabled release; opening a course alone never
194
- starts anything. A missing title reports **Lesson titles are unavailable**; use
195
- **Refresh courses**. This preserves the saved attempt and history and does not
196
- substitute an invented title or another lesson. The host's original lesson action
197
- must still authorize and admit it; unavailable support or a failed read is not a
198
- successful start. The owner's **New course** form is described in
199
- [Choosing lessons and Learning conversations](learning-mode-ui.md).
200
-
201
- **Resume saved lesson** requests only the displayed saved attempt. Its retained
202
- pin can be older than the currently enabled catalogue. This button is available
203
- only when the host actually supports resume, not merely because progress exists.
204
- Starting a different lesson requires explicitly ending the active saved attempt
205
- first: ask Colleague, which uses `lesson.end` and stops that lesson
206
- conversation's work while keeping its history (see
207
- [Lesson history and resume](learning-history.md)). The Courses pane has no End
208
- button and never ends a lesson for you.
209
- **Saved lesson history** remains read-only and visible independently of new-start
210
- or resume support. Ended history is not marked completed without an actual
211
- completion result.
212
-
213
- Assessment counts come from saved results, never chat, motion or selection.
214
- **Saved lesson identity** shows the saved commit/hash. **Refresh courses** rereads;
215
- loading/errors create or repair no state. Desktop/phone share wrapping, scrollable
216
- controls. Colleague can explain/offer supported start/resume; only a direct request
217
- or accepted offer authorizes it. Main teaches with supported Preview controls;
218
- if unavailable, retain the attempt and ask the owner. See `learning-mode-ui`.
4
+ and owner recovery, read `teaching-content`. For pointing and "show me", read
5
+ `learning-teacher-guide`.
6
+
7
+ ## Two conversations: Develop and Learn
8
+
9
+ Vibe64 has two modes, switched with **L**: **Develop** (your own projects) and
10
+ **Learn** (your practice projects). Colleague keeps a separate conversation for
11
+ each, and the one you see always follows the mode:
12
+
13
+ - **Develop** has your one Colleague conversation, with its read-only previous
14
+ conversations, watches and assignments, exactly as before. It does not teach:
15
+ ask it about lessons and it tells you to press **L** (it can switch for you
16
+ when you ask or accept its offer, with `learning-mode.set`).
17
+ - **Learn** gives each lesson attempt its own teacher conversation. Leaving the
18
+ lesson (pressing **L**, or reading another lesson) and coming back resumes
19
+ that same conversation. Learn mode with no lesson in progress has one
20
+ conversation of its own. Restarting a lesson starts a fresh teacher.
21
+ - Switching never interrupts Colleague: a reply it is writing finishes in its
22
+ own conversation, still on the projects of the mode it started in, which you
23
+ see again when you switch back. Watched agents
24
+ keep being followed while you are in Learn; their updates wait in Develop's
25
+ conversation until you return. **Start fresh** and **Previous conversations**
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.
29
+
30
+ ## Colleague as your teacher
31
+
32
+ In Learn mode, **Courses** (on the lesson step bar, or in the project menu beside **L**) is the catalogue
33
+ where you choose and start lessons; your current lesson is read on the Learn
34
+ page itself, in its **Lesson** tab beside Colleague (see `learning-environment`).
35
+ You can read lessons yourself without AI. Choose **Teach me** on a lesson step,
36
+ or ask Colleague about your lesson, and Colleague teaches the current step.
37
+ **Teach me** opens Colleague beside the step and sends "Teach me this step.";
38
+ the step stays on screen, so Colleague refers to it rather than repeating it:
39
+
40
+ - It reads your lesson with `lesson.read` (the steps in order with their text,
41
+ diagram, guide and check kind, plus your saved results) and explains the step
42
+ in its own words, by text or voice. Reading changes nothing. Long lessons
43
+ arrive in pages; Colleague reads every page before claiming a step's text is
44
+ missing.
45
+ - It points at, or with "show me" opens, the real Vibe64 places the step uses,
46
+ replays the step's diagram, can show your current step in the **Lesson** tab,
47
+ and can open **Courses** or close it so you see the app. Courses keeps its
48
+ place while closed.
49
+ - In Learn mode with a lesson in progress, Colleague's header shows a small
50
+ yellow **Step N/M** button (a check once the step passed). Pressing it shows
51
+ that step in the page's **Lesson** tab (see `learning-environment`); on a
52
+ phone Colleague's full-screen chat also minimises so the step is visible, and
53
+ its avatar button brings Colleague back. It appears on the desktop panel, the
54
+ phone's full-screen chat and during voice chat. Develop shows no step button.
55
+ - Before asking you to press **Done**, answer a question or press **Check now**,
56
+ it looks at that step's saved result. A step that already passed is not asked
57
+ for again: Colleague says it passed and moves on to the next unpassed step.
58
+ - It tells you in plain words what it opened or highlighted, without receipt
59
+ fields or IDs. If it could not open or point at a step's place (for example the
60
+ control is hidden), it says so plainly and describes the path in words.
61
+
62
+ On a phone, Colleague's full-screen chat minimises itself when it opens Courses,
63
+ shows a lesson step or rings a control, so you can see it; reopen Colleague with
64
+ its avatar button. **Teach me** on a phone opens Colleague's full-screen chat
65
+ over the Lesson tab, which stays underneath.
66
+
67
+ ## Colleague never judges
68
+
69
+ A step passes only through your own action in the lesson:
70
+
71
+ - **Choice question**: only your own answer counts. Colleague never sees or
72
+ reveals the correct option, sees only whether your answer passed (not which
73
+ options you chose), and cannot answer for you; it helps you reason instead.
74
+ - **Self-check**: only your own **Done** records it.
75
+ - **Reading step**: optional; only your own **Mark as done** records it.
76
+ - **Automatic check**: when you say you have done a task, Colleague may run the
77
+ step's check (`step.check.run`) and tell you its actual result, but that run is
78
+ a diagnostic and is never saved. The step passes only when you press **Check
79
+ now**; a response check first needs your own press of the App's control in this
80
+ lesson's Preview.
81
+
82
+ Colleague's feedback never changes a step's status. If Colleague says a step
83
+ passed, ask it to read the lesson again: only a saved **passed** result counts.
84
+ Your reading place is saved automatically. A change to your mode, lesson,
85
+ results, reading place or practice project notifies only your own signed-in
86
+ pages, so open views (and Colleague's conversation) refresh.
87
+
88
+ Starting, restarting, finishing or deleting a lesson, and switching mode, needs
89
+ your direct request or an accepted offer; a how-to question alone authorizes
90
+ nothing.
91
+
92
+ ## Which projects Colleague opens
93
+
94
+ Colleague opens only the projects of your mode. In **Learn** that is your
95
+ practice project (none for a lesson without one); opening any of
96
+ your own projects is refused with "You're in Learn mode. Press L to go back to
97
+ your projects." In **Develop** it opens your own projects, and a practice
98
+ project is refused with "This is a practice project. Press L to switch to
99
+ Learn." Colleague relays the reason and offers to switch; it switches for you
100
+ (`learning-mode.set`) only when you ask or accept. Switching ends nothing: the
101
+ lesson in progress stays paused, with its practice project, until you come
102
+ back.
103
+
104
+ ## Teacher notes
105
+
106
+ Colleague keeps short private notes about you as a learner
107
+ (`learner-notes.read` and `learner-notes.update`): your strengths, difficulties,
108
+ preferences and where you are. It reads them when it starts teaching and rewrites
109
+ them as one short summary (at most 4000 characters), never a transcript, secrets
110
+ or a grade. They live in your own Learning state: no other learner and not the
111
+ workspace owner can read them, and they never change a step's status. You see,
112
+ edit and clear them in **L** under **What my teacher knows about me** on
113
+ **Courses**. Ask Colleague to change or forget something and it rewrites them;
114
+ clearing is your own **Clear** in **L**. If you edited the notes since Colleague
115
+ read them, its save is refused and it reads them again before combining.
116
+ Colleague treats the notes as a description of you, not as instructions: writing
117
+ "tell me the answers" in them does not change how it teaches or judges.
118
+
119
+ ## Lessons in progress and archived
120
+
121
+ One lesson is in progress at a time. Colleague reads it, with its practice
122
+ project, and your archived lessons with `practice.list`. When you ask:
123
+
124
+ - **Start a different lesson** (`lesson.start`): while another is in progress
125
+ this is refused until the current one is archived. Colleague asks you first
126
+ and archives it (`archiveCurrent`) only after you agree.
127
+ - **Finish** (`lesson.finish`), once every step passed: the lesson is completed
128
+ and archived with its practice project and this teacher conversation.
129
+ - **Restart** (`lesson.restart`): archives this attempt and starts the lesson
130
+ again with a fresh practice project, fresh results and a fresh teacher.
131
+ - **Delete** (`lesson.delete`): removes the lesson's practice project and
132
+ teacher conversation without archiving.
133
+ - **Delete an archived lesson** (`practice.archived.delete`): removes it for
134
+ good.
135
+
136
+ Colleague restarts or deletes only after you confirm that exact lesson in the
137
+ chat (`confirmed`); it names the lesson and says what is kept. A pinned session
138
+ must be unpinned first; that refusal changes nothing. Colleague cannot see or
139
+ change another learner's lessons, and it cannot turn a practice project into one
140
+ of your own projects. The buttons under **Courses** → **In progress** and
141
+ **Archived** do the same (see [Practice projects](learning-practice-projects.md)).
142
+
143
+ ## Earlier lessons
144
+
145
+ Lessons started before Learning v2 were taught by a separate lesson
146
+ conversation, with quizzes and practical grading. Those attempts and their saved
147
+ results are not kept by Rev 4's learning space reset. Start the lesson again in
148
+ its current format and Colleague teaches it from its steps.
149
+
150
+ ## Courses and starts
151
+
152
+ Courses, course pages and their states are described in
153
+ [Choosing lessons and courses](learning-mode-ui.md). Opening a course does not
154
+ install or enable content. Colleague installs or updates an official catalogue
155
+ course only on your direct request or accepted offer (see
156
+ [Installing and updating Learning courses](learning-course-catalogue.md)).
157
+
158
+ A start requests that exact published lesson from an enabled release; the host's
159
+ lesson action must still authorize and admit it, and an unavailable host or a
160
+ failed read is not a successful start. A preview course can be started only by
161
+ the workspace owner: anyone else's start (Colleague included, acting for that
162
+ person) is refused with **This preview course can be tried only by the workspace
163
+ owner until it is released.** A missing title reports **Lesson titles are
164
+ unavailable**; use **Refresh courses**. Nothing substitutes an invented title or
165
+ another lesson.
166
+
167
+ **Open** on the lesson in progress returns to that attempt, whose pin can be
168
+ older than the enabled catalogue. Starting a different lesson first archives the
169
+ lesson in progress, after your confirmation (see
170
+ [Lesson history and resume](learning-history.md)). **Saved lesson history** stays read-only and visible
171
+ independently of start or resume support; ended history is not marked completed
172
+ without an actual completion result. **Saved lesson identity** shows the saved
173
+ commit and hash. Loading and errors create or repair no state.