fathom-mcp 0.3.0 → 0.4.0
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/CHANGELOG.md +10 -3
- package/README.md +0 -4
- package/package.json +1 -1
- package/src/cli.js +5 -3
- package/src/config.js +0 -3
- package/src/index.js +1 -1
- package/src/server-client.js +2 -3
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.4.0 (2026-02-26)
|
|
4
|
+
|
|
5
|
+
- **Breaking:** removed `architecture` field everywhere — `agents` array is the only field
|
|
6
|
+
- Cleaned up all backward compatibility shims across config, server, API, and frontend
|
|
7
|
+
- Renamed `_get_architecture` → `_get_agent` in persistent session manager
|
|
8
|
+
|
|
9
|
+
## 0.3.0 (2026-02-26)
|
|
4
10
|
|
|
5
11
|
Multi-agent support.
|
|
6
12
|
|
|
@@ -9,9 +15,10 @@ Multi-agent support.
|
|
|
9
15
|
- **Per-agent config writers** — `.mcp.json`, `.codex/config.toml`, `.gemini/settings.json`, `opencode.json`
|
|
10
16
|
- **Agent instructions boilerplate** — `fathom-agents.md` template for memory discipline, vault conventions, cross-workspace communication
|
|
11
17
|
- **Conditional hooks** — hook setup only for Claude Code (other agents don't support hooks)
|
|
12
|
-
- **`agents` array**
|
|
18
|
+
- **`agents` array** in `.fathom.json` — workspace config stores which agents are configured
|
|
13
19
|
- **Server-side agent dispatch** — persistent sessions launch the correct agent CLI per workspace
|
|
14
|
-
- **
|
|
20
|
+
- **Agent type registration** — init wizard sends primary agent type when registering workspace
|
|
21
|
+
- **Status command** — shows configured agents per workspace
|
|
15
22
|
|
|
16
23
|
## 0.1.0 (2026-02-25)
|
|
17
24
|
|
package/README.md
CHANGED
|
@@ -100,10 +100,6 @@ npx fathom-mcp status # Check server connection + workspace status
|
|
|
100
100
|
2. `.fathom.json` (walked up from cwd to filesystem root)
|
|
101
101
|
3. Built-in defaults
|
|
102
102
|
|
|
103
|
-
### Backward compatibility
|
|
104
|
-
|
|
105
|
-
The `agents` array replaces the legacy `architecture` string field. Old configs with `architecture: "claude-code"` are automatically migrated to `agents: ["claude-code"]` at read time.
|
|
106
|
-
|
|
107
103
|
## Hooks (Claude Code only)
|
|
108
104
|
|
|
109
105
|
Hooks are only available in Claude Code and are configured in `.claude/settings.local.json`.
|
package/package.json
CHANGED
package/src/cli.js
CHANGED
|
@@ -14,7 +14,7 @@ import path from "path";
|
|
|
14
14
|
import readline from "readline";
|
|
15
15
|
import { fileURLToPath } from "url";
|
|
16
16
|
|
|
17
|
-
import { resolveConfig, writeConfig
|
|
17
|
+
import { resolveConfig, writeConfig } from "./config.js";
|
|
18
18
|
import { createClient } from "./server-client.js";
|
|
19
19
|
|
|
20
20
|
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
@@ -253,7 +253,8 @@ async function runInit() {
|
|
|
253
253
|
const agent = AGENTS[key];
|
|
254
254
|
const isDetected = detected.includes(key);
|
|
255
255
|
const mark = isDetected ? "✓" : " ";
|
|
256
|
-
const
|
|
256
|
+
const markers = { "claude-code": ".claude/", "codex": ".codex/", "gemini": ".gemini/", "opencode": "opencode.json" };
|
|
257
|
+
const hint = isDetected ? ` (${markers[key] || key} found)` : "";
|
|
257
258
|
console.log(` ${mark} ${agent.name}${hint}`);
|
|
258
259
|
}
|
|
259
260
|
|
|
@@ -410,6 +411,7 @@ async function runInit() {
|
|
|
410
411
|
vault,
|
|
411
412
|
description,
|
|
412
413
|
agents: selectedAgents,
|
|
414
|
+
type: selectedAgents[0] || "local",
|
|
413
415
|
});
|
|
414
416
|
if (regResult.ok) {
|
|
415
417
|
console.log(` ✓ Registered workspace "${workspace}" with server`);
|
|
@@ -471,7 +473,7 @@ async function runStatus() {
|
|
|
471
473
|
} else {
|
|
472
474
|
const agentLabel = profile.agents?.length > 0
|
|
473
475
|
? ` [${profile.agents.join(", ")}]`
|
|
474
|
-
:
|
|
476
|
+
: "";
|
|
475
477
|
const runStatus = profile.running ? "running" : "stopped";
|
|
476
478
|
console.log(` ${name}: ${runStatus}${agentLabel}`);
|
|
477
479
|
}
|
package/src/config.js
CHANGED
|
@@ -68,11 +68,8 @@ export function resolveConfig(startDir = process.cwd()) {
|
|
|
68
68
|
if (config.server) result.server = config.server;
|
|
69
69
|
if (config.apiKey) result.apiKey = config.apiKey;
|
|
70
70
|
if (config.description) result.description = config.description;
|
|
71
|
-
// Backward compat: migrate legacy `architecture` string to `agents` array
|
|
72
71
|
if (config.agents && Array.isArray(config.agents)) {
|
|
73
72
|
result.agents = config.agents;
|
|
74
|
-
} else if (config.architecture) {
|
|
75
|
-
result.agents = [config.architecture];
|
|
76
73
|
}
|
|
77
74
|
if (config.hooks) {
|
|
78
75
|
result.hooks = { ...result.hooks, ...config.hooks };
|
package/src/index.js
CHANGED
|
@@ -456,7 +456,7 @@ async function main() {
|
|
|
456
456
|
client.registerWorkspace(config.workspace, config._projectDir, {
|
|
457
457
|
vault: config._rawVault,
|
|
458
458
|
description: config.description,
|
|
459
|
-
|
|
459
|
+
agents: config.agents,
|
|
460
460
|
}).catch(() => {});
|
|
461
461
|
}
|
|
462
462
|
|
package/src/server-client.js
CHANGED
|
@@ -104,13 +104,12 @@ export function createClient(config) {
|
|
|
104
104
|
return request("GET", "/api/workspaces/profiles");
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
-
async function registerWorkspace(name, projectPath, { vault, description, agents,
|
|
107
|
+
async function registerWorkspace(name, projectPath, { vault, description, agents, type } = {}) {
|
|
108
108
|
const body = { name, path: projectPath };
|
|
109
109
|
if (vault) body.vault = vault;
|
|
110
110
|
if (description) body.description = description;
|
|
111
111
|
if (agents && agents.length > 0) body.agents = agents;
|
|
112
|
-
|
|
113
|
-
if (architecture && !agents?.length) body.architecture = architecture;
|
|
112
|
+
if (type) body.type = type;
|
|
114
113
|
return request("POST", "/api/workspaces", { body });
|
|
115
114
|
}
|
|
116
115
|
|