vibe64 0.1.47 → 0.1.49

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 (150) hide show
  1. package/bin/run.js +1734 -1687
  2. package/bin/server.js +75 -75
  3. package/bin/upgrade-state.js +4539 -4471
  4. package/dist/assets/GithubBrowserTabs-BwpiRS2u.js +1 -0
  5. package/dist/assets/{LocalDatabaseServer-6VzPWZxG.js → LocalDatabaseServer-u_Ky7bNS.js} +1 -1
  6. package/dist/assets/{Vibe64AuthSettingsButton-TLwqAxDo.js → Vibe64AuthSettingsButton-BCwswT1G.js} +1 -1
  7. package/dist/assets/{Vibe64DashboardShell-B4dQ-oHD.js → Vibe64DashboardShell-CWlgrR2B.js} +1 -1
  8. package/dist/assets/{Vibe64DatabaseWorkspace-Bh5WIPOj.js → Vibe64DatabaseWorkspace-Dhs8_H0P.js} +1 -1
  9. package/dist/assets/Vibe64OutputControls-Dn548CZa.js +8 -0
  10. package/dist/assets/{Vibe64RepositoryWorkspace-idDg94lc.js → Vibe64RepositoryWorkspace-C-8S4JUF.js} +1 -1
  11. package/dist/assets/{Vibe64SessionFiles-Z9zxosyl.js → Vibe64SessionFiles-Cx6J7DDN.js} +2 -3
  12. package/dist/assets/{Vibe64UiStoryboardView-CrCDWMdR.js → Vibe64UiStoryboardView-DHyhJiWS.js} +1 -1
  13. package/dist/assets/{Vibe64UnavailableSessions-TqsxvGSf.js → Vibe64UnavailableSessions-Da4RxIhA.js} +1 -1
  14. package/dist/assets/{_sessionId_-7F1VGOou.js → _sessionId_-DCpgDPSI.js} +1 -1
  15. package/dist/assets/_slug_-BbEWp01a.js +25 -0
  16. package/dist/assets/{_slug_-B16mTWjj.css → _slug_-DerKOisL.css} +1 -1
  17. package/dist/assets/{access-Cx9RH95J.js → access-D4di2sCr.js} +1 -1
  18. package/dist/assets/{app-DPx4KKOa.js → app-Adr9Iz8p.js} +1 -1
  19. package/dist/assets/asyncModuleRecovery-DJsn5NrL.js +1 -0
  20. package/dist/assets/{changes-DYsuQLFW.js → changes-3Dd1O8Lu.js} +1 -1
  21. package/dist/assets/client-BAXHGUOC.js +1 -0
  22. package/dist/assets/{client-BYsDPxR3.js → client-CCZIu6yc.js} +1 -1
  23. package/dist/assets/{conversation-3ln-WnbL.css → conversation-CSDHdGDb.css} +1 -1
  24. package/dist/assets/conversation-DG9lp25w.js +8 -0
  25. package/dist/assets/conversation-ErAO1CmH.js +13 -0
  26. package/dist/assets/{dashboard-CWswAbYP.js → dashboard-0tCzDYCX.js} +1 -1
  27. package/dist/assets/english-definitions-DeiQ-jTT.js +1 -0
  28. package/dist/assets/env-DsyQ2MFX.js +1 -0
  29. package/dist/assets/{health-C0f6s-G1.js → health-DyTXU-nb.js} +1 -1
  30. package/dist/assets/{history-BQjETNB9.js → history-BXGAdPMI.js} +1 -1
  31. package/dist/assets/{incoming-COpY201m.js → incoming-yajkdGBY.js} +1 -1
  32. package/dist/assets/{index-MWACm8Pp.css → index-B-dukXUB.css} +1 -1
  33. package/dist/assets/index-CGz4Yow6.js +136 -0
  34. package/dist/assets/{integrations-BBkvNRHu.js → integrations-BMrXET36.js} +10 -2
  35. package/dist/assets/issues-kc1XBZCK.js +1 -0
  36. package/dist/assets/{learning-B8_wHoe1.js → learning-CIE5ghYv.js} +1 -1
  37. package/dist/assets/linkPath-Ch9eft18.js +1 -0
  38. package/dist/assets/{placement-DXvgK433.js → placement-BNmlke_j.js} +1 -1
  39. package/dist/assets/placement-DYM3JJ-F.js +1 -0
  40. package/dist/assets/publish-DTh6amqi.js +3 -0
  41. package/dist/assets/pull-requests-CbfGSSIh.js +1 -0
  42. package/dist/assets/{repository-BNPt7UWc.js → repository-BstMh-bG.js} +1 -1
  43. package/dist/assets/settings-Bf8C6dls.js +1 -0
  44. package/dist/assets/{studioGateApi-BVdclhPL.js → studioGateApi-mkX1eOTX.js} +1 -1
  45. package/dist/assets/{studioUrls-CGKCbM_d.js → studioUrls-B0-GdWh8.js} +1 -1
  46. package/dist/assets/useArchivedVibe64Sessions-DIOpfUxD.js +1 -0
  47. package/dist/assets/useCommand-CVuya6vG.js +1 -0
  48. package/dist/assets/useEndpointResource-7-YDfAxX.js +1 -0
  49. package/dist/assets/usePaths-Y6UuQxmI.js +1 -0
  50. package/dist/assets/{useUiFeedback-B51xtCAK.js → useUiFeedback-Bd3rao6E.js} +1 -1
  51. package/dist/assets/useVibe64ConversationLog-ChJOU2SD.js +1 -0
  52. package/dist/assets/{useVibe64DatabaseTools-BE_yXZFn.js → useVibe64DatabaseTools-DKV-TeNJ.js} +1 -1
  53. package/dist/assets/{useVibe64ProjectScope-D7b8n1gx.js → useVibe64ProjectScope-DXjsKKhl.js} +1 -1
  54. package/dist/assets/useVibe64SessionData-BkIHUrP5.js +1 -0
  55. package/dist/assets/useVibe64SessionSelection-N8wX5oqo.js +1 -0
  56. package/dist/assets/{useVibe64SystemGraph-CDDcsye4.js → useVibe64SystemGraph-Db_eD-X8.js} +1 -1
  57. package/dist/assets/{useVibe64Terminal-Zr3Mig2L.js → useVibe64Terminal-B9EWJ9Ba.js} +2 -2
  58. package/dist/assets/vibe64ProjectScope.local-l5_-E6pq.js +1 -0
  59. package/dist/assets/vibe64RepositoryRealtime-CHT4-6VN.js +1 -0
  60. package/dist/assets/vibe64SessionFocus-CS6Ex53G.js +1 -0
  61. package/dist/assets/vibe64SessionFocus-CSm4YJQD.css +1 -0
  62. package/dist/assets/vibe64SessionRequestConfig-xIx-5jxQ.js +1 -0
  63. package/dist/index.html +26 -22
  64. package/docs/colleague-usage/ai-accounts.md +6 -2
  65. package/docs/colleague-usage/ai-balance-and-allowance.md +15 -2
  66. package/docs/colleague-usage/coding-agent-failures.md +2 -1
  67. package/docs/colleague-usage/coding-agent-goals.md +8 -3
  68. package/docs/colleague-usage/coding-agents.md +16 -0
  69. package/docs/colleague-usage/github-work.md +14 -0
  70. package/docs/colleague-usage/preview-browser-checks.md +5 -3
  71. package/docs/colleague-usage/project-setup.md +6 -3
  72. package/docs/colleague-usage/running-vibe64-on-your-computer.md +3 -1
  73. package/docs/colleague-usage/sessions.md +35 -7
  74. package/docs/colleague-usage/starter-apps.md +3 -0
  75. package/docs/colleague-usage/temporary-chat-context.md +2 -1
  76. package/docs/colleague-usage/temporary-chats.md +17 -5
  77. package/node_modules/@jskit-ai/assistant-core/CHANGELOG.md +539 -0
  78. package/node_modules/@jskit-ai/assistant-core/locales/en.json +383 -0
  79. package/node_modules/@jskit-ai/assistant-core/package.json +3 -2
  80. package/node_modules/@jskit-ai/assistant-runtime/CHANGELOG.md +138 -0
  81. package/node_modules/@jskit-ai/assistant-runtime/README.md +2 -1
  82. package/node_modules/@jskit-ai/assistant-runtime/locales/en.json +137 -0
  83. package/node_modules/@jskit-ai/assistant-runtime/package.json +3 -2
  84. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/assistantConfigRepository.js +223 -203
  85. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/conversationsRepository.js +286 -266
  86. package/node_modules/@jskit-ai/assistant-runtime/src/server/repositories/messagesRepository.js +270 -250
  87. package/node_modules/@jskit-ai/assistant-voice/locales/en.json +182 -0
  88. package/node_modules/@jskit-ai/assistant-voice/package.json +3 -2
  89. package/node_modules/@jskit-ai/connector-google-calendar/CHANGELOG.md +83 -0
  90. package/node_modules/@jskit-ai/connector-google-calendar/locales/en.json +91 -0
  91. package/node_modules/@jskit-ai/connector-google-calendar/package.json +4 -3
  92. package/node_modules/@jskit-ai/connectors-catalog/CHANGELOG.md +1722 -0
  93. package/node_modules/@jskit-ai/connectors-catalog/README.md +11 -0
  94. package/node_modules/@jskit-ai/connectors-catalog/locales/en.json +3139 -0
  95. package/node_modules/@jskit-ai/connectors-catalog/package.json +5 -4
  96. package/node_modules/@jskit-ai/connectors-core/CHANGELOG.md +183 -0
  97. package/node_modules/@jskit-ai/connectors-core/locales/en.json +92 -0
  98. package/node_modules/@jskit-ai/connectors-core/package.json +3 -2
  99. package/node_modules/@jskit-ai/http-runtime/CHANGELOG.md +31 -0
  100. package/node_modules/@jskit-ai/http-runtime/locales/en.json +14 -0
  101. package/node_modules/@jskit-ai/http-runtime/package.json +3 -2
  102. package/node_modules/@jskit-ai/kernel/CHANGELOG.md +182 -0
  103. package/node_modules/@jskit-ai/kernel/locales/en.json +94 -0
  104. package/node_modules/@jskit-ai/kernel/package.json +6 -2
  105. package/node_modules/@jskit-ai/payments-core/CHANGELOG.md +128 -0
  106. package/node_modules/@jskit-ai/payments-core/locales/en.json +77 -0
  107. package/node_modules/@jskit-ai/payments-core/package.json +3 -2
  108. package/node_modules/@jskit-ai/realtime/CHANGELOG.md +20 -0
  109. package/node_modules/@jskit-ai/realtime/locales/en.json +14 -0
  110. package/node_modules/@jskit-ai/realtime/package.json +3 -2
  111. package/node_modules/@jskit-ai/resource-core/package.json +1 -1
  112. package/node_modules/@jskit-ai/resource-crud-core/package.json +1 -1
  113. package/node_modules/@jskit-ai/uploads-runtime/CHANGELOG.md +35 -0
  114. package/node_modules/@jskit-ai/uploads-runtime/locales/en.json +15 -0
  115. package/node_modules/@jskit-ai/uploads-runtime/package.json +3 -2
  116. package/node_modules/@local/vibe64-execution/src/host/execHelper.js +49 -48
  117. package/node_modules/@local/vibe64-execution/src/server/gitTurnCheckpointCommand.js +1327 -0
  118. package/node_modules/@local/vibe64-genesis/bin/vibe64-genesis-host-context +430 -390
  119. package/node_modules/@local/vibe64-genesis/src/server/index.js +45 -45
  120. package/node_modules/@local/vibe64-genesis/src/server/promptContext.js +119 -119
  121. package/node_modules/@local/vibe64-runtime/src/server/codexAppServerProcess.js +57 -57
  122. package/node_modules/@local/vibe64-sessions/package.json +2 -1
  123. package/node_modules/@local/vibe64-terminals/src/server/opencodeSessionEnvironmentPlugin.js +195 -175
  124. package/node_modules/@local/vibe64-terminals/src/server/sessionWorkOperationCommand.js +1385 -1362
  125. package/package.json +15 -15
  126. package/server.bundle.mjs +44206 -42825
  127. package/dist/assets/GithubBrowserTabs-D-Z3TlA8.js +0 -1
  128. package/dist/assets/Vibe64OutputControls-DtybwgL3.js +0 -8
  129. package/dist/assets/_slug_-Bq84T_Iv.js +0 -24
  130. package/dist/assets/conversation-Bn7wpATa.js +0 -2
  131. package/dist/assets/conversation-CNcCrV-R.js +0 -16
  132. package/dist/assets/definitions-CEbi4qae.js +0 -1
  133. package/dist/assets/env-X7EOFLtl.js +0 -1
  134. package/dist/assets/index-CBo1BEk6.js +0 -138
  135. package/dist/assets/issues-BiSiUd5o.js +0 -1
  136. package/dist/assets/placement-B5T1LR7m.js +0 -1
  137. package/dist/assets/publish-CeLZE2AG.js +0 -3
  138. package/dist/assets/pull-requests-pTdQOT7i.js +0 -1
  139. package/dist/assets/settings-lecRzZ-r.js +0 -1
  140. package/dist/assets/useArchivedVibe64Sessions-DHYRnyJD.js +0 -1
  141. package/dist/assets/useCommand-Epd2yHhQ.js +0 -1
  142. package/dist/assets/useEndpointResource-DBRQISI_.js +0 -1
  143. package/dist/assets/usePaths-DdAnjVDj.js +0 -1
  144. package/dist/assets/useVibe64ConversationLog-DboM3tYN.js +0 -1
  145. package/dist/assets/useVibe64SessionData-CreWtQAO.js +0 -1
  146. package/dist/assets/useVibe64SessionSelection-CDaX4uwY.js +0 -1
  147. package/dist/assets/vibe64ProjectScope.local-BxTBYuRg.js +0 -1
  148. package/dist/assets/vibe64RepositoryRealtime-C-J0I5jY.js +0 -1
  149. package/dist/assets/vibe64SessionFocus-DSW5Irm6.css +0 -1
  150. package/dist/assets/vibe64SessionFocus-DzqbVq60.js +0 -1
@@ -108,6 +108,22 @@ When an assistant cannot start, stops by itself or reports a failure, see [When
108
108
  4. Wait for the actual answer and inspect its reported checks. Delivery or a
109
109
  working status is not a completed implementation.
110
110
 
111
+ A steered message joins the running turn on that turn's own AI connection, so
112
+ the composer can refuse it while the turn runs:
113
+
114
+ - **Only the owner can steer this turn. You can send a message when it
115
+ finishes.** The turn runs on the workspace owner's personal plan and you are
116
+ not the owner (see [Personal-use AI subscriptions](ai-personal-use.md)).
117
+ - **This turn's AI connection is unavailable right now, so you can't steer it.
118
+ Check AI Accounts, or send your message when the turn finishes.** Vibe64 could
119
+ not confirm that connection: it may be signed out, or its check failed. This
120
+ applies to the owner too, and the turn keeps running. When the turn ends,
121
+ Vibe64 checks the connection again; returning to the browser window also
122
+ rechecks it. If the hint stays, open AI Accounts and reconnect the account.
123
+
124
+ Both hints keep your draft and are the same on desktop and phone. Colleague can
125
+ explain them; reconnecting an account remains your step.
126
+
111
127
  On compact screens, reveal chat before using its composer. Failed submissions
112
128
  remain visibly failed or pending; inspect the target before retrying an uncertain
113
129
  write. Retry reuses the original request identity rather than starting duplicate work.
@@ -13,6 +13,20 @@ pull-request policy. **Update this session (rebase)** reconciles newer saved pro
13
13
  work when offered; Save does not silently perform that update for you. A failed or
14
14
  uncertain push needs a state check before another request.
15
15
 
16
+ While a browser tab shows the project, or an AI turn runs in one of its sessions,
17
+ Vibe64 checks the project's repository every 30 seconds. Newer saved work pushed
18
+ from elsewhere, or committed in a local project folder, turns each affected
19
+ session's tab and header action to **Update this session (rebase)** within about
20
+ half a minute; a Save from another Vibe64 session shows it at once. Nothing is
21
+ checked while no tab shows the project and no AI works in it; it checks again as
22
+ soon as you return. If a check fails, the session's repository status shows the
23
+ error and Vibe64 retries every minute. **Check for updates** in Repository checks
24
+ immediately. These steps apply on desktop and mobile.
25
+
26
+ Vibe64 reuses your GitHub login for a few minutes across repository operations.
27
+ If you reconnect GitHub and the previous login was revoked, the next operation can
28
+ fail once with a GitHub authentication error; retry it and it uses the new login.
29
+
16
30
  In Auto, **Automatic save after completing a plan** (on by default in the chat
17
31
  mode menu) runs this same Save once a plan is completed and its review turn ends.
18
32
  Its progress, result and recovery are the ordinary Save's; when it cannot save,
@@ -45,9 +45,11 @@ disconnected; it lists every browser command, including `browser storage-state`,
45
45
  and the fields of the status, screenshot and eval JSON. Help starts neither
46
46
  Preview nor a browser.
47
47
  An actual suite still requires the project's installed Playwright version and a
48
- matching managed runtime. A version error is a test-runtime blocker; interactive
49
- checks can use the existing managed Preview browser. Report the exact required
50
- version to the platform operator instead of installing a separate browser.
48
+ matching managed runtime. Every session shares one browser runtime, so a project
49
+ pins `@playwright/test` to exactly that version. On a version error, the coding
50
+ agent pins the project to the version `vibe64-helper playwright readiness`
51
+ reports, runs Workspace setup and checks again; it never installs a separate
52
+ browser. Interactive checks can still use the existing managed Preview browser.
51
53
  On a computer without managed browser runtimes, the agent runs the project's own
52
54
  Playwright (`npx playwright test`). Interactive Preview checks (screenshot, eval)
53
55
  use the project's own Playwright, or else the `playwright` command installed on
@@ -67,9 +67,12 @@ work. Public applications and non-web projects do not need preview accounts.
67
67
  accounts. Available starters depend on the installation; do not assume an
68
68
  absent card exists.
69
69
  2. Choose **Use this starter →** on the intended card only when it matches the
70
- product you want. Preparation adds it to this session; use the session's
71
- **Save** control to keep the work in the project. A failed application reports
72
- its error and preserves existing work.
70
+ product you want. Preparation adds it to this session, whose tab then counts
71
+ the starter's files as unsaved changes and whose **Save** button turns red;
72
+ use **Save** to keep the work in the project. Until then, other and new
73
+ sessions do not have the starter, and archiving this session leaves it out of
74
+ the project; the **Archive session** dialog warns about this unsaved work. A
75
+ failed application reports its error and preserves existing work.
73
76
  3. You can also describe the app directly in the session's main chat. In an
74
77
  empty folder that was never set up, the coding agent first initializes Genesis,
75
78
  then proposes a Blueprint and the matching Stack components for your answer.
@@ -69,7 +69,9 @@ Vibe64 keeps each project's history with Git (2.28 or newer).
69
69
  - **Your name on commits.** Commits use the name and email from your own Git
70
70
  settings. If Git has none, they are saved with a stand-in name ending in
71
71
  “via Vibe64”, and **Health** and the Save result show the two
72
- `git config --global` lines to set yours.
72
+ `git config --global` lines to set yours. Those lines take effect on the
73
+ next command; a name set some other way (an included file, or one
74
+ repository's own settings) can take up to 30 seconds to be used.
73
75
  - **Signed commits.** If your Git signs every commit (`commit.gpgsign`) and the
74
76
  key needs a passphrase, Vibe64 can't type it. Make one signed commit in a
75
77
  terminal to unlock the key, then try again. Vibe64 doesn't change the setting.
@@ -2,8 +2,25 @@
2
2
 
3
3
  Use **New session** (+), or **Create session** when there are no open sessions,
4
4
  to open **Start an AI session**. It shows **Runs on your main AI:** and the main
5
- AI's model; every session runs on that AI setup, with no per-session tool
6
- choice. Select **Change** to open AI setup instead. Review any branch choice,
5
+ AI's model. A saved setup appears straight away: the dialog does not wait for
6
+ each AI tool's model list or start any AI tool. Without a change the new session
7
+ runs on the main AI and starts with Senior.
8
+
9
+ To run only this new session on another AI, for example DeepSeek, select
10
+ **Change** beside the main AI. It opens **Custom AI**, the same choice as a
11
+ chat's **Custom** mode, and only then loads the model choices. Choose
12
+ **Orchestrator**, **Model** and **Thinking** and press **Apply**; a loading
13
+ error offers **Retry**, and **Configure more AIs** opens account setup when the
14
+ provider you want is not connected. **Cancel** there keeps the current choice. The
15
+ dialog then shows **This session runs on:** with your choice and says the
16
+ session **Starts in Custom**; the new chat runs on that AI in **Custom** mode,
17
+ and your main AI and other sessions are unchanged. **Use main AI** discards the
18
+ choice, as does closing the dialog. Choosing the main AI's own model keeps the
19
+ main AI. **Change** is offered only to the person who manages the workspace's
20
+ AI; a team member's sessions always start on the owner's main AI.
21
+
22
+ To change the main AI for every session instead, select **Change main AI for
23
+ all sessions**, which opens AI setup. Review any branch choice,
7
24
  then select **Create session** (or
8
25
  **Create branch & session**). While **Creating session…** is shown, the dialog
9
26
  shows a progress bar and explains that it is copying the project source. It stays open: clicking outside,
@@ -27,8 +44,9 @@ finishes; see [Prepare a session after updating its source](workspace-preparatio
27
44
  for failures and retry.
28
45
 
29
46
  Creation through an action without an explicit AI choice uses the main AI. An
30
- explicit model choice makes the new chat Custom and is preserved even when it is
31
- unavailable: fix its account or AI setup before retrying. A team member's new
47
+ explicit model choice, like **Change** in the dialog, makes the new chat Custom
48
+ and is preserved even when it is unavailable: fix its account or AI setup, or
49
+ choose another AI, before retrying. A team member's new
32
50
  session still records the owner's main AI; main chat runs on the owner's AI. Colleague
33
51
  can read the available choices and explain recovery; it must not claim a failed
34
52
  request left no saved lesson without checking that lesson's current state.
@@ -140,6 +158,13 @@ fresh session does not authorize further coding work.
140
158
  Select the session, choose **Archive session**, and confirm **Archive session**
141
159
  in the dialog. This stops its assistant and terminals, preserves the session and
142
160
  removes its active workspace. Desktop and mobile use the same confirmation.
161
+ Archiving does not Save. Work the project does not have yet, such as an added
162
+ starter, stays only in the session archive, and archived sessions cannot restore
163
+ source to the project. When the session has unsaved changes, the dialog says how
164
+ many and its button reads **Archive without saving**; choose **Cancel**, then
165
+ **Save**, to keep them. When Vibe64 has not yet confirmed whether the work is
166
+ saved, the dialog says so. A new session starts from the project's saved source,
167
+ so it does not contain an archived session's unsaved work.
143
168
  An OpenCode session can be archived before its main chat has started; an idle
144
169
  assistant with no native conversation does not need a main-turn Stop request.
145
170
  Its helper conversations and terminals still go through normal cleanup.
@@ -158,9 +183,12 @@ If the last open session cannot be archived, its chat is selected again so you
158
183
  can inspect the failure and retry. If another session is already selected, that
159
184
  selection stays in place and the failed session becomes available in its tab.
160
185
  Colleague can explain these steps and the reported error. When you explicitly
161
- ask it to archive a named session, it archives it through the same action; the
162
- same pin, renewal and preparation guards apply, and it reports a failed cleanup
163
- for retry. Stopping an agent or ending Colleague is never an archive request.
186
+ ask it to archive a named session, it first checks that session's saved-work
187
+ status. If the session has unsaved changes, or their status is unconfirmed, it
188
+ tells you how many, offers **Save**, and archives only after you confirm
189
+ archiving without saving. It archives through the same action; the same pin,
190
+ renewal and preparation guards apply, and it reports a failed cleanup for retry.
191
+ Stopping an agent or ending Colleague is never an archive request.
164
192
 
165
193
  ## Chat availability
166
194
 
@@ -28,6 +28,9 @@ The same choices appear on desktop and mobile. Applying a starter imports its
28
28
  source and starts **Prepare workspace** at once: it installs dependencies,
29
29
  provisions the declared resources (an installation that supplies the database
30
30
  does so here) and runs migrations; a failed preparation offers **Retry**.
31
+ The imported files are unsaved session work: the session's tab counts them and
32
+ its **Save** button turns red. Save them to keep the starter in the project;
33
+ archiving the session first leaves it out.
31
34
  The coding agent can then follow the first feature request using the existing
32
35
  test commands documented in the starter's `docs/colleague-usage/testing.md`.
33
36
 
@@ -1,7 +1,8 @@
1
1
  # Start a temporary chat with recent context
2
2
 
3
3
  Open **Temporary AI** to create the first chat, or select **New temporary AI task**
4
- (the plus beside existing temporary chat tabs). Leave
4
+ (the plus beside existing temporary chat tabs). When the session already has
5
+ temporary chats, **Temporary AI** opens them instead and offers no new chat. Leave
5
6
  **Include recent chat context** unchecked for an empty conversation, or check it
6
7
  and select **Create chat** to copy recent context from Main in this session.
7
8
  When Main has no messages yet there is nothing to copy, so the chat opens
@@ -1,8 +1,13 @@
1
1
  # Choose the AI for a temporary chat
2
2
 
3
3
  Open **Temporary AI** from the session toolbar, or from **Session actions** in
4
- a chat too narrow for it. Select the temporary chat you want to change. Its **Chat mode**
5
- icon is inside the message box.
4
+ a chat too narrow for it. If the session already has temporary chats, it shows
5
+ them and creates nothing; it starts a new chat only when there are none. Just
6
+ after a session opens, it waits for the saved chats to load before deciding. If
7
+ they cannot be loaded, it shows the error and **Try again** instead of starting
8
+ one. To add another chat, select **New temporary AI task** (the plus beside the
9
+ tabs). Select the temporary chat you want to change. Its **Chat mode** icon is
10
+ inside the message box.
6
11
 
7
12
  In **New temporary chat**, **Cancel** returns directly to Main when starting the
8
13
  first chat. If another temporary or host conversation was selected, it stays
@@ -159,10 +164,17 @@ original settings and files. Anything you typed or attached afterward stays in
159
164
  the composer. Accepted files leave the composer; later attachments remain.
160
165
 
161
166
  If a message shows **Retry**, use that control with the original message.
162
- It checks whether that exact message reached the selected chat; it does not send
163
- the work again. A visible message can still be awaiting confirmation. If the
167
+ It checks whether that exact message reached the selected chat. If it did,
168
+ nothing is sent again. If the AI proves it never received the message, Retry
169
+ sends it once with its original settings; while delivery is still unknown,
170
+ nothing is sent. A visible message can still be awaiting confirmation. If the
164
171
  connection cannot read the native receipt, keep the chat and retry the check
165
- after reconnecting. **Stop** remains available for ongoing work. **Close** removes
172
+ after reconnecting. **Cancel** on an unconfirmed message stops ongoing work and
173
+ then checks it: the message is removed, and stays removed after a reload, once
174
+ the AI proves it never received it; a message that did arrive stays in the
175
+ conversation. While delivery remains unknown, Cancel keeps the message and says
176
+ so; try again in a moment. Only Claude can currently prove that a message never
177
+ arrived; with other AIs an unknown delivery stays until it is confirmed. **Stop** remains available for ongoing work. **Close** removes
166
178
  the temporary chat only after its native work and attachments are safely cleaned
167
179
  up; a failed Close can be retried. If you used more than one AI in this chat,
168
180
  Close cleans up each retained native conversation. A retry continues the unfinished