get-claudia 1.51.7 → 1.51.9

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.
package/bin/index.js CHANGED
@@ -469,8 +469,10 @@ async function main() {
469
469
  console.log(` ${colors.green}✓${colors.reset} Framework updated (data preserved)`);
470
470
  }
471
471
 
472
- // Disable Gmail/Calendar MCP servers (Claudia has native CLI commands now)
473
- disableGoogleMcpServers(targetPath);
472
+ // Move legacy MCP servers (memory, Gmail, Calendar) to _disabled_mcpServers.
473
+ // Claude Code's native disable format: servers in _disabled_mcpServers are
474
+ // preserved but not launched. User can move them back to re-enable if needed.
475
+ disableLegacyMcpServers(targetPath);
474
476
 
475
477
  // Write context/whats-new.md for Claudia's self-awareness (silent)
476
478
  writeWhatsNewFile(targetPath, version);
@@ -876,11 +878,15 @@ async function main() {
876
878
  }
877
879
 
878
880
  /**
879
- * Disable Gmail and Google Calendar MCP servers in .mcp.json if present.
880
- * Claudia now has native CLI commands for both services, so external MCP
881
- * servers are no longer needed. This runs on both fresh installs and upgrades.
881
+ * Disable legacy MCP servers in .mcp.json that have been replaced by native CLI commands.
882
+ * This runs on both fresh installs and upgrades.
883
+ *
884
+ * Replaced servers:
885
+ * - claudia-memory → `claudia memory` CLI (Node.js, direct SQLite)
886
+ * - gmail → `claudia gmail` CLI
887
+ * - google-calendar → `claudia calendar` CLI
882
888
  */
883
- function disableGoogleMcpServers(targetPath) {
889
+ function disableLegacyMcpServers(targetPath) {
884
890
  const mcpPath = join(targetPath, '.mcp.json');
885
891
  if (!existsSync(mcpPath)) return;
886
892
 
@@ -889,20 +895,46 @@ function disableGoogleMcpServers(targetPath) {
889
895
  const config = JSON.parse(raw);
890
896
  if (!config.mcpServers) return;
891
897
 
892
- const googleKeys = ['gmail', 'google-calendar', 'google_calendar', 'googleCalendar'];
893
- let changed = false;
898
+ // Map of MCP server keys to their CLI replacement description.
899
+ // These servers are superseded by native CLI commands and should not
900
+ // be launched by Claude Code. We MOVE them from mcpServers into the
901
+ // _disabled_mcpServers top-level key, which is Claude Code's native
902
+ // disable format (used by the /mcp toggle UI). This preserves the
903
+ // full config so the user can move it back to re-enable if needed.
904
+ const legacyServers = {
905
+ 'claudia-memory': 'claudia memory CLI',
906
+ 'claudia_memory': 'claudia memory CLI',
907
+ 'gmail': 'claudia google login',
908
+ 'google-calendar': 'claudia google login',
909
+ 'google_calendar': 'claudia google login',
910
+ 'googleCalendar': 'claudia google login',
911
+ };
894
912
 
895
- for (const key of googleKeys) {
896
- if (config.mcpServers[key] && !config.mcpServers[key]._disabled) {
897
- config.mcpServers[key]._disabled = true;
898
- config.mcpServers[key]._replaced_by = 'claudia google login';
913
+ let changed = false;
914
+ const disabled = [];
915
+
916
+ for (const [key, replacement] of Object.entries(legacyServers)) {
917
+ if (config.mcpServers[key]) {
918
+ // Ensure _disabled_mcpServers exists as a top-level sibling
919
+ if (!config._disabled_mcpServers) config._disabled_mcpServers = {};
920
+
921
+ // Preserve full server config, strip our old _disabled flag if present
922
+ const serverConfig = { ...config.mcpServers[key] };
923
+ delete serverConfig._disabled;
924
+ delete serverConfig._replaced_by;
925
+ serverConfig._replaced_by = replacement;
926
+ config._disabled_mcpServers[key] = serverConfig;
927
+
928
+ // Remove from active servers so Claude Code won't launch it
929
+ delete config.mcpServers[key];
899
930
  changed = true;
931
+ disabled.push(key);
900
932
  }
901
933
  }
902
934
 
903
935
  if (changed) {
904
936
  writeFileSync(mcpPath, JSON.stringify(config, null, 2) + '\n');
905
- console.log(` ${colors.yellow}→${colors.reset} Disabled Gmail/Calendar MCP servers (replaced by ${colors.cyan}claudia google login${colors.reset})`);
937
+ console.log(` ${colors.yellow}→${colors.reset} Disabled legacy MCP: ${disabled.join(', ')} (moved to _disabled_mcpServers)`);
906
938
  }
907
939
  } catch {
908
940
  // Not valid JSON or can't read -- skip silently
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-claudia",
3
- "version": "1.51.7",
3
+ "version": "1.51.9",
4
4
  "description": "An AI assistant who learns how you work.",
5
5
  "keywords": [
6
6
  "claudia",
@@ -214,17 +214,22 @@ What would you like to start with?
214
214
 
215
215
  ### 2. Relationships as Context
216
216
 
217
- People are my primary organizing unit. When someone is mentioned:
217
+ People are my primary organizing unit. **When someone is mentioned, by name OR by relationship ("my wife", "my boss", "my client Sarah", "the investor"), I ALWAYS query memory first before asking the user.** I never ask for information I might already know.
218
218
 
219
- 1. Check if I have context in `people/[name].md`
220
- 2. Surface relevant history if it helps
221
- 3. Offer to create a file if this person seems important
219
+ Lookup order:
220
+ 1. `claudia memory recall "<name or relationship>" --project-dir "$PWD"` to resolve who they mean
221
+ 2. `claudia memory about "<entity name>" --project-dir "$PWD"` for full context (email, role, history)
222
+ 3. Check `people/[name].md` for additional context
223
+ 4. Only ask the user if memory returns nothing
224
+
225
+ **The rule: search before asking.** If someone says "email my wife," I look up who their wife is and her email address. I don't ask "What's your wife's email?" when I might already have it.
222
226
 
223
227
  What I track about people:
224
228
  - Communication preferences and style
225
229
  - What matters to them
226
230
  - Your history with them
227
231
  - Current context (projects, concerns, opportunities)
232
+ - Contact details (email, phone, handles)
228
233
  - Notes from past interactions
229
234
 
230
235
  ### 3. Commitment Tracking