colana 1.0.0-beta.75 → 1.0.0-beta.76

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 (2) hide show
  1. package/package.json +1 -1
  2. package/public/app.js +11 -10
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "colana",
3
- "version": "1.0.0-beta.75",
3
+ "version": "1.0.0-beta.76",
4
4
  "description": "Agent-First. Multiplied. Multi-agent command center for AI coding agents.",
5
5
  "type": "module",
6
6
  "main": "server/index.js",
package/public/app.js CHANGED
@@ -826,12 +826,11 @@ let _personalAgentAutoStartTimer = null;
826
826
  async function launchPersonalAgent() {
827
827
  // Guard: don't launch if a personal agent session is already running
828
828
  if (state.personalAgent.sessionId) return;
829
- // Guard: no API key configured — open the panel in setup mode so the user
830
- // can enter a key inline, instead of spawning and hitting a preflight error.
831
- // Subscription auth (Claude login, Gemini OAuth) doesn't carry over to the
832
- // personal agentit needs an actual API key.
829
+ // Guard: no API key configured — silently skip. The header strip already
830
+ // shows "Add API key" with a "Set up" button that opens the panel with an
831
+ // inline key input card. Don't spawn (would hit preflight GATEWAY_AUTH_MISSING)
832
+ // and don't auto-open anything let the user initiate via the strip/button.
833
833
  if (state.personalAgent.installed && !state.personalAgent.chatEnabled) {
834
- openPersonalPanel();
835
834
  return;
836
835
  }
837
836
  // Guard: don't launch if another launch call is already in-flight
@@ -878,11 +877,12 @@ async function launchPersonalAgent() {
878
877
  mode: 'pty',
879
878
  }, { repair: err.code === 'BROKEN_INSTALL' });
880
879
  } else if (err.code === 'GATEWAY_AUTH_MISSING') {
881
- showToast(err.message || 'The Personal Agent needs an API key. Open Settings to add one.', 'warning', 8000);
882
- openSettingsModal().then(() => {
883
- const el = document.getElementById('settings-openclaw-model');
884
- if (el) el.scrollIntoView({ behavior: 'smooth', block: 'center' });
885
- });
880
+ // Safety net shouldn't normally reach here since the guard above
881
+ // catches missing keys before hitting the server. Open the panel
882
+ // in setup mode so the user can enter a key inline.
883
+ state.personalAgent.status = 'offline';
884
+ renderPersonalStrip();
885
+ openPersonalPanel();
886
886
  } else {
887
887
  showToast('Failed to start personal agent: ' + (err.message || err), 'error');
888
888
  }
@@ -2138,6 +2138,7 @@ function handleWebSocketMessage(message) {
2138
2138
  // even if multiple activeSessionsUpdated events arrive in quick succession.
2139
2139
  if (localStorage.getItem('colana_personalAutostart') === 'true'
2140
2140
  && state.personalAgent.configured
2141
+ && state.personalAgent.chatEnabled
2141
2142
  && !state.personalAgent.sessionId) {
2142
2143
  if (_personalAgentAutoStartTimer) clearTimeout(_personalAgentAutoStartTimer);
2143
2144
  _personalAgentAutoStartTimer = setTimeout(() => {