claude-nexus 0.26.1 → 0.26.3
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/.claude-plugin/marketplace.json +1 -1
- package/.claude-plugin/plugin.json +1 -1
- package/README.en.md +5 -5
- package/README.md +5 -5
- package/VERSION +1 -1
- package/bridge/mcp-server.cjs +1 -12
- package/bridge/mcp-server.cjs.map +2 -2
- package/package.json +2 -2
- package/scripts/gate.cjs +59 -84
- package/scripts/gate.cjs.map +4 -4
- package/skills/nx-init/SKILL.md +20 -16
- package/skills/nx-plan/SKILL.md +3 -3
- package/skills/nx-run/SKILL.md +3 -3
- package/skills/nx-sync/SKILL.md +1 -2
package/README.en.md
CHANGED
|
@@ -128,7 +128,7 @@ Nexus registers a single Gate module as a Claude Code hook.
|
|
|
128
128
|
|
|
129
129
|
| Event | Role |
|
|
130
130
|
|-------|------|
|
|
131
|
-
| `SessionStart` | Initialize `.nexus/` structure, reset agent-tracker,
|
|
131
|
+
| `SessionStart` | Initialize `.nexus/` structure, reset agent-tracker, init `tool-log.jsonl` |
|
|
132
132
|
| `UserPromptSubmit` | Tag detection → mode activation + TASK_PIPELINE injection + additionalContext guidance |
|
|
133
133
|
| `PreToolUse` | Edit/Write: blocks when incomplete tasks exist |
|
|
134
134
|
| `PostToolUse` | On Edit/Write/NotebookEdit, append subagent file edits to `tool-log.jsonl` (only when agent_id present) |
|
|
@@ -168,10 +168,10 @@ Runtime state is stored under `.nexus/state/` and is excluded from git.
|
|
|
168
168
|
.nexus/state/
|
|
169
169
|
├── tasks.json ← Task list ([run] cycle)
|
|
170
170
|
├── plan.json ← Planning session ([plan] cycle)
|
|
171
|
-
|
|
172
|
-
├──
|
|
173
|
-
├── tool-log.jsonl ← Subagent Edit/Write/NotebookEdit call log (append-only)
|
|
174
|
-
└── artifacts/ ← Artifacts
|
|
171
|
+
└── claude-nexus/ ← harness-local namespace
|
|
172
|
+
├── agent-tracker.json ← Subagent lifecycle tracking (resume_count, files_touched)
|
|
173
|
+
├── tool-log.jsonl ← Subagent Edit/Write/NotebookEdit call log (append-only)
|
|
174
|
+
└── artifacts/ ← Artifacts
|
|
175
175
|
```
|
|
176
176
|
|
|
177
177
|
</details>
|
package/README.md
CHANGED
|
@@ -115,7 +115,7 @@ Gate 단일 모듈로 동작합니다.
|
|
|
115
115
|
|
|
116
116
|
| 이벤트 | 역할 |
|
|
117
117
|
|--------|------|
|
|
118
|
-
| `SessionStart` | `.nexus/` 구조 초기화, agent-tracker 리셋, `
|
|
118
|
+
| `SessionStart` | `.nexus/` 구조 초기화, agent-tracker 리셋, `tool-log.jsonl` 초기화 |
|
|
119
119
|
| `UserPromptSubmit` | 태그 감지 → 모드 활성화 + TASK_PIPELINE 주입 + additionalContext 안내 |
|
|
120
120
|
| `PreToolUse` | Edit/Write: tasks.json 미완료 시 차단 |
|
|
121
121
|
| `PostToolUse` | Edit/Write/NotebookEdit 호출 시 서브에이전트의 파일 수정을 `tool-log.jsonl`에 append (agent_id 있을 때만) |
|
|
@@ -155,10 +155,10 @@ Gate 단일 모듈로 동작합니다.
|
|
|
155
155
|
.nexus/state/
|
|
156
156
|
├── tasks.json ← 태스크 목록 ([run] 사이클)
|
|
157
157
|
├── plan.json ← 플랜 세션 ([plan] 사이클)
|
|
158
|
-
|
|
159
|
-
├──
|
|
160
|
-
├── tool-log.jsonl ← 서브에이전트 Edit/Write/NotebookEdit 호출 로그 (append-only)
|
|
161
|
-
└── artifacts/ ← 산출물
|
|
158
|
+
└── claude-nexus/ ← harness-local 네임스페이스
|
|
159
|
+
├── agent-tracker.json ← 서브에이전트 라이프사이클 (resume_count, files_touched 포함)
|
|
160
|
+
├── tool-log.jsonl ← 서브에이전트 Edit/Write/NotebookEdit 호출 로그 (append-only)
|
|
161
|
+
└── artifacts/ ← 산출물
|
|
162
162
|
```
|
|
163
163
|
|
|
164
164
|
</details>
|
package/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.26.
|
|
1
|
+
0.26.3
|
package/bridge/mcp-server.cjs
CHANGED
|
@@ -22191,7 +22191,6 @@ function registerTaskTools(server2) {
|
|
|
22191
22191
|
const root = STATE_ROOT;
|
|
22192
22192
|
const projectHistoryPath = (0, import_path8.join)(NEXUS_ROOT, "history.json");
|
|
22193
22193
|
const planJsonPath = (0, import_path8.join)(root, "plan.json");
|
|
22194
|
-
const reopenTrackerPath = (0, import_path8.join)(root, "reopen-tracker.json");
|
|
22195
22194
|
const plan = await readPlan();
|
|
22196
22195
|
const tasksData = await readTasks();
|
|
22197
22196
|
const tasks = tasksData?.tasks ?? [];
|
|
@@ -22211,24 +22210,14 @@ function registerTaskTools(server2) {
|
|
|
22211
22210
|
history.cycles.push(cycle);
|
|
22212
22211
|
ensureDir(NEXUS_ROOT);
|
|
22213
22212
|
await (0, import_promises3.writeFile)(projectHistoryPath, JSON.stringify(history, null, 2));
|
|
22214
|
-
const editTrackerPath = (0, import_path8.join)(root, "edit-tracker.json");
|
|
22215
|
-
let hadLoopDetection = false;
|
|
22216
|
-
if ((0, import_fs8.existsSync)(editTrackerPath)) {
|
|
22217
|
-
try {
|
|
22218
|
-
const trackerData = JSON.parse(await (0, import_promises3.readFile)(editTrackerPath, "utf-8"));
|
|
22219
|
-
hadLoopDetection = Object.values(trackerData).some((count) => count >= 3);
|
|
22220
|
-
} catch {
|
|
22221
|
-
}
|
|
22222
|
-
}
|
|
22223
22213
|
const decisionCount = plan?.issues.filter((i) => i.status === "decided").length ?? 0;
|
|
22224
22214
|
const memoryHint = {
|
|
22225
22215
|
taskCount: tasks.length,
|
|
22226
22216
|
decisionCount,
|
|
22227
|
-
hadLoopDetection,
|
|
22228
22217
|
cycleTopics: [plan?.topic, tasksData?.goal].filter(Boolean)
|
|
22229
22218
|
};
|
|
22230
22219
|
const deleted = [];
|
|
22231
|
-
for (const p of [planJsonPath, tasksPath()
|
|
22220
|
+
for (const p of [planJsonPath, tasksPath()]) {
|
|
22232
22221
|
if ((0, import_fs8.existsSync)(p)) {
|
|
22233
22222
|
(0, import_fs8.unlinkSync)(p);
|
|
22234
22223
|
deleted.push(p.split("/").pop());
|