neohive 6.0.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 +640 -0
- package/LICENSE +75 -0
- package/README.md +342 -0
- package/SECURITY.md +58 -0
- package/cli.js +931 -0
- package/conversation-templates/autonomous-feature.json +22 -0
- package/conversation-templates/code-review.json +21 -0
- package/conversation-templates/debug-squad.json +21 -0
- package/conversation-templates/feature-build.json +21 -0
- package/conversation-templates/research-write.json +21 -0
- package/dashboard.html +8571 -0
- package/dashboard.js +2962 -0
- package/lib/agents.js +107 -0
- package/lib/compact.js +124 -0
- package/lib/config.js +127 -0
- package/lib/file-io.js +166 -0
- package/lib/logger.js +13 -0
- package/lib/messaging.js +137 -0
- package/lib/state.js +23 -0
- package/logo.png +0 -0
- package/package.json +57 -0
- package/server.js +7179 -0
- package/templates/debate.json +16 -0
- package/templates/managed.json +26 -0
- package/templates/pair.json +16 -0
- package/templates/review.json +16 -0
- package/templates/team.json +21 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,640 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
## [5.1.0] - 2026-03-19
|
|
4
|
+
|
|
5
|
+
### Major — True Autonomy Engine + Team Intelligence + Scale to 100
|
|
6
|
+
|
|
7
|
+
Built by a 4-agent team (Backend, Protocol, Tester, Coordinator) + Advisor agent, working autonomously.
|
|
8
|
+
|
|
9
|
+
### Added — Autonomy Engine (v5.0)
|
|
10
|
+
- **get_work** — 9-level priority waterfall: workflow step > messages > unclaimed tasks > help requests > reviews > blocked tasks > 30s listen > prep work > idle
|
|
11
|
+
- **verify_and_advance** — confidence-gated auto-advancement (>=70 auto, 40-69 flag, <40 help)
|
|
12
|
+
- **start_plan** — one-click autonomous plan launch with parallel step activation
|
|
13
|
+
- **retry_with_improvement** — 3-attempt retry with KB skill accumulation, team escalation
|
|
14
|
+
- **Parallel workflow steps** — dependency graph with `depends_on`, `findReadySteps` resolver
|
|
15
|
+
- **Autonomous mode** — proactive work loop guide, tiered cooldowns (0ms handoffs), 30s listen cap, relaxed send limits
|
|
16
|
+
|
|
17
|
+
### Added — Team Intelligence
|
|
18
|
+
- **Auto-role assignment** — lead/quality/implementer/monitor/advisor roles based on team size
|
|
19
|
+
- **Quality Lead** — always-on checker with dedicated guide, review-retry loop, auto-approve after 2 rounds
|
|
20
|
+
- **Monitor Agent** — system health overseer at 10+ agents: idle detection, circular escalation detection, auto-intervention, failover
|
|
21
|
+
- **Advisor Agent** — strategic thinker at 5+ agents: reads all work, gives ideas, challenges assumptions
|
|
22
|
+
- **Self-continuation** — agents never ask user, find next work automatically
|
|
23
|
+
- **Smart prompt distribution** — auto-generates workflows from natural language prompts
|
|
24
|
+
|
|
25
|
+
### Added — Advanced Autonomy (10 features)
|
|
26
|
+
- Task-level circuit breaker (blocked_permanent after 3 agent failures)
|
|
27
|
+
- Quality Lead instant failover (highest reputation auto-promoted)
|
|
28
|
+
- Context inheritance on escalation (full failure history)
|
|
29
|
+
- Agent circuit breaker (consecutive_rejections tracking, auto-demotion)
|
|
30
|
+
- Dynamic role fluidity (workload-based rebalancing)
|
|
31
|
+
- Skill-based task routing (agent affinity scoring)
|
|
32
|
+
- Work stealing (idle agents claim from busy agents)
|
|
33
|
+
- Checkpointing (resumable work via workspace snapshots)
|
|
34
|
+
- Retrospective learning (aggregate failure pattern analysis)
|
|
35
|
+
- Backpressure signal (queue depth warnings)
|
|
36
|
+
|
|
37
|
+
### Added — Scale to 100 Agents
|
|
38
|
+
- Per-agent heartbeat files (zero write contention)
|
|
39
|
+
- Cooldown cap (3s max regardless of agent count, 0ms for handoffs)
|
|
40
|
+
- Byte-offset message reads (O(new_messages) not O(all))
|
|
41
|
+
- Exponential backoff on file locks (1ms-500ms, not 50ms busy-wait)
|
|
42
|
+
- isPidAlive cache (5s TTL, saves 10K syscalls/sec)
|
|
43
|
+
- SSE debounce (heartbeat files filtered, 2s debounce)
|
|
44
|
+
- Task keyword cache (30s TTL)
|
|
45
|
+
- Sticky roles (no churn on agent reconnect)
|
|
46
|
+
- Zero cooldown for channel messages + handoffs in autonomous mode
|
|
47
|
+
|
|
48
|
+
### Added — Dashboard & CLI
|
|
49
|
+
- **Plan execution view** — progress bar, step cards, confidence, controls (pause/stop/skip/reassign)
|
|
50
|
+
- **Monitor health panel** — agent health grid, intervention log, system metrics
|
|
51
|
+
- **`npx neohive run "prompt" --agents N`** — one-command autonomous execution
|
|
52
|
+
- **npm test** wires v5 test suite (158+ tests on every run)
|
|
53
|
+
- Updated conversation templates (autonomous format with depends_on)
|
|
54
|
+
|
|
55
|
+
### Stats
|
|
56
|
+
- server.js: 6,200+ lines, 62+ tools
|
|
57
|
+
- 175+ automated tests, 0 fail
|
|
58
|
+
- 5 conversation templates (autonomous format)
|
|
59
|
+
- Built in ~2 hours by autonomous agent team
|
|
60
|
+
|
|
61
|
+
## [4.3.0] - 2026-03-17
|
|
62
|
+
|
|
63
|
+
### Major — 3D Hub Game World, World Builder, Jukebox
|
|
64
|
+
|
|
65
|
+
Built by a 5-agent team (Architect, Builder, Tester, Optimizer, Protocol) working in parallel.
|
|
66
|
+
|
|
67
|
+
### Added — 3D Hub Game Features
|
|
68
|
+
- **World Builder** — Press B in player mode to open builder panel. 16 placeable assets across 5 categories (structural, furniture, decor, tech, lighting). Grid snap, ghost preview, R to rotate, right-click delete, Ctrl+Z undo. Draggable panel, works in fullscreen.
|
|
69
|
+
- **Jukebox** — Wurlitzer 1015-style jukebox in bar area with neon glow animation. Press E to interact. 4 playlist selector with YouTube popup player. Music persists while exploring.
|
|
70
|
+
- **Minimap** — 140px radar overlay showing agent positions (color-coded by status) and player location. Only visible in fullscreen mode.
|
|
71
|
+
- **Controls HUD** — Press H to toggle keybind reference panel. Auto-shows for 4 seconds on world entry.
|
|
72
|
+
- **Fullscreen** — Dashboard fullscreen button now fullscreens only the 3D Hub (game mode), not the entire page.
|
|
73
|
+
|
|
74
|
+
### Added — Character Intelligence
|
|
75
|
+
- **Emotion system** — 11 emotion presets (happy, frustrated, thinking, excited, surprised, etc.) with auto-triggers from message content. Temporary face expression changes with auto-revert.
|
|
76
|
+
- **Social visits** — Idle agents randomly walk to other agents' desks to chat (max 2 concurrent walks).
|
|
77
|
+
- **Glance reactions** — Sitting agents turn heads toward speakers when messages are sent.
|
|
78
|
+
- **Head nods** — Periodic nod animation when being visited by another agent.
|
|
79
|
+
- **Auto coffee break** — Sleeping agents walk to rest area, return to desk when active again.
|
|
80
|
+
- **Non-blocking input overlay** — Replaced browser prompt() dialogs with styled HTML overlay for click commands.
|
|
81
|
+
|
|
82
|
+
### Added — Dashboard
|
|
83
|
+
- **Respawn button** — One-click respawn for dead agents. Generates resume prompt from recovery snapshot + profile + tasks + recent history.
|
|
84
|
+
- **Respawn API** — `GET /api/agents/:name/respawn-prompt` endpoint with full context generation.
|
|
85
|
+
- **World Builder API** — `GET /api/world-layout` + `POST /api/world-save` for persistent world placements.
|
|
86
|
+
- **3D-only fullscreen** — Fullscreen targets 3D container when on 3D Hub tab.
|
|
87
|
+
|
|
88
|
+
### Fixed
|
|
89
|
+
- **Manager chair spawn** — Stand-up now places player in front of desk (toward door), preventing wall collision.
|
|
90
|
+
- **CSRF on 3D Hub** — Added X-LTT-Request header to all office module POST requests (builder save, command menu actions).
|
|
91
|
+
- **Respawn endpoint validation** — Agent name validated (alphanumeric, max 20 chars) to prevent path traversal.
|
|
92
|
+
- **Builder lazy-load** — Dynamic import() with silent failure prevents builder issues from breaking 3D Hub.
|
|
93
|
+
- **Jukebox popup orphan** — Module-scoped reference survives overlay dismiss/reopen cycles.
|
|
94
|
+
- **Builder drag listener leak** — Stored refs removed in hidePanel().
|
|
95
|
+
- **Jukebox prompt cleanup** — dismissJukebox() called in office3dStop().
|
|
96
|
+
|
|
97
|
+
### Security
|
|
98
|
+
- npm audit: 0 vulnerabilities
|
|
99
|
+
- CSRF protection verified on all mutating endpoints
|
|
100
|
+
- Input validation on all user-facing API parameters
|
|
101
|
+
- No hardcoded secrets or sensitive data in shipped package
|
|
102
|
+
|
|
103
|
+
## [4.2.0] - 2026-03-17
|
|
104
|
+
|
|
105
|
+
### Major — Team Intelligence, Dashboard Upgrade, Performance
|
|
106
|
+
|
|
107
|
+
Built by a 4-agent team (Architect, Tester, Protocol, Builder) working in parallel.
|
|
108
|
+
|
|
109
|
+
### Added — Team Automation
|
|
110
|
+
- **Auto-escalation** — blocked tasks auto-broadcast `[ESCALATION]` to team after 5 minutes. File-based dedup via `task.escalated_at` field (cross-process safe). Clears on unblock.
|
|
111
|
+
- **Stand-up meetings** — config-driven periodic team check-ins (`standup_interval_hours` in config.json). File-based dedup, 5+ agent gate. Broadcasts task summary with in-progress/blocked/done counts.
|
|
112
|
+
- **Quality gates** — `update_task(done)` auto-broadcasts `[REVIEW NEEDED]` (from v4.1.0, now with auto-escalation integration).
|
|
113
|
+
|
|
114
|
+
### Added — Agent Intelligence
|
|
115
|
+
- **Workload metrics** — reputation tracks `task_times[]` (completion seconds), leaderboard shows `avg_task_time_sec` per agent.
|
|
116
|
+
- **Smarter suggest_task** — caps at 3 in-progress tasks ("finish first"), suggests blocked tasks when no pending ones, workload-aware.
|
|
117
|
+
- **KB hints in listen_group** — batch messages checked against KB keys, returns `kb_hints` with relevant entries.
|
|
118
|
+
- **Thread reply context** — `listen_group` includes `_reply_context` preview of parent message for threaded replies.
|
|
119
|
+
- **Decision overlap hints** — `send_message` checks content against logged decisions, returns `_decision_hint` to prevent re-debating.
|
|
120
|
+
- **Auto-status board** — `update_task` auto-writes `_status` to agent workspace ("Working on: X"). `list_agents` includes `current_status` field.
|
|
121
|
+
|
|
122
|
+
### Added — Dashboard
|
|
123
|
+
- **Agent intent display** — dashboard shows what each agent is currently working on (from workspace `_status`)
|
|
124
|
+
- **Channel badges** — messages show colored `#channel` badges
|
|
125
|
+
- **Channel filter bar** — horizontal scrollable tabs to filter messages by channel
|
|
126
|
+
- **Channel history merging** — `/api/history` merges channel-specific + general history files
|
|
127
|
+
- **`/api/channels` endpoint** — channel list with member counts for dashboard
|
|
128
|
+
- **`/api/decisions` endpoint** — decision log display in dashboard
|
|
129
|
+
- **Decision log UI** — chronological cards with topic, decision, reasoning, author
|
|
130
|
+
|
|
131
|
+
### Improved — Performance & Safety
|
|
132
|
+
- **Escalation dedup fix** — replaced in-memory `_escalatedTasks` Set with file-based `task.escalated_at` field (cross-process safe for 10 agents)
|
|
133
|
+
- **Dashboard current_status API** — `/api/agents` includes workspace `_status` for agent intent board
|
|
134
|
+
|
|
135
|
+
## [4.1.0] - 2026-03-17
|
|
136
|
+
|
|
137
|
+
### Added — Agent Reliability & Intelligence
|
|
138
|
+
|
|
139
|
+
- **Auto-recovery (crash resume)** — when an agent's process dies, the server snapshots its state (active tasks, locked files, channels, workspace keys, last 5 messages) to `recovery-{name}.json`. When a replacement registers with the same name, the snapshot is included in the register response with instructions to resume, not restart. 1-hour TTL, auto-deletes after load.
|
|
140
|
+
- **Quality gates** — `update_task(id, "done")` auto-broadcasts `[REVIEW NEEDED]` to all alive agents. Teams get automatic review cycles without manually calling `request_review()`.
|
|
141
|
+
- **Decision overlap hints** — `send_message` in group mode checks content against existing logged decisions. Returns `_decision_hint` if a related decision exists, preventing teams from re-debating settled topics.
|
|
142
|
+
- **Enhanced `check_messages`** — now returns rich summary: `senders`, `addressed_to_you`, `preview`, `urgency` level. The proactive counterpart to the enhanced nudge.
|
|
143
|
+
|
|
144
|
+
### Fixed
|
|
145
|
+
- **Recovery lock notes** — snapshot correctly labels locked files as `locked_files_released` with note that locks were auto-released.
|
|
146
|
+
|
|
147
|
+
## [4.0.0] - 2026-03-17
|
|
148
|
+
|
|
149
|
+
### Major Release — 10-Agent Free Group Mode
|
|
150
|
+
|
|
151
|
+
Massive scaling overhaul designed, implemented, and audited by a 3-agent team (Architect, Tester, Protocol). 12 changes, 3 bugs caught during collaborative code review.
|
|
152
|
+
|
|
153
|
+
### Added — Scaling (4 features)
|
|
154
|
+
- **Scaled context** — `listen_group` context window scales with team size: `min(50, max(20, agentCount * 5))`. 3 agents = 20 messages, 10 agents = 50.
|
|
155
|
+
- **Send-after-listen enforcement** — agents must call `listen_group()` between sends. Prevents message storms. Addressed agents get 2 sends per cycle, others get 1.
|
|
156
|
+
- **Response budget** — max 2 unaddressed sends per 60 seconds. Time-based reset. Hint (not error) when depleted.
|
|
157
|
+
- **Smart context with priority partitions** — Bucket A (addressed messages, sacred, always included), Bucket B (channel messages, capped), Bucket C (chronological, fills remaining). Total guaranteed <= contextSize.
|
|
158
|
+
|
|
159
|
+
### Added — Agent Awareness (3 features)
|
|
160
|
+
- **Enhanced nudge** — every non-listen tool response now includes sender names, addressed count, and message preview: `"URGENT: 3 messages waiting (2 addressed to you): 2 from Architect, 1 from Protocol. Latest: 'Need your review...'"`
|
|
161
|
+
- **Idle detection** — `listen_group()` returns `idle: true` after 60s with no messages, with proactive `work_suggestions`, task suggestions, and instructions. Agents auto-find work instead of blocking forever.
|
|
162
|
+
- **Enhanced `check_messages`** — now returns rich summary: `senders`, `addressed_to_you`, `preview`, `urgency` level. The proactive counterpart to the passive nudge.
|
|
163
|
+
|
|
164
|
+
### Added — Organization
|
|
165
|
+
- **Task-channel auto-binding** — with 5+ agents in group mode, `create_task` auto-creates `#task-{id}` channels. Assignees auto-join on claim. Channels auto-delete on task completion. Naturally splits 10-agent noise into focused sub-teams.
|
|
166
|
+
|
|
167
|
+
### Improved — Performance
|
|
168
|
+
- **Cached reads** — `getAgents()` (1.5s TTL), `getChannelsData()` (3s TTL), `getTasks()` (2s TTL) with write-through invalidation. Eliminates ~70% redundant disk I/O.
|
|
169
|
+
- **Compact JSON writes** — removed pretty-print (`null, 2`) from all internal JSON writes. 2-3x less I/O overhead.
|
|
170
|
+
- **Optimized agent status** — removed O(N) `getUnconsumedMessages` scan per agent in `listen_group` status computation.
|
|
171
|
+
- **Dashboard SSE race fix** — `Array.from()` before Set iteration prevents skipped clients during concurrent connect/disconnect.
|
|
172
|
+
- **Dashboard SSE heartbeat** — 30s keepalive prevents dead connection accumulation and proxy timeouts.
|
|
173
|
+
- **Dashboard file watcher cleanup** — old watcher properly closed on LAN toggle, prevents memory leaks.
|
|
174
|
+
- **Dashboard watcher filter** — only triggers on `.json`/`.jsonl` files, ignores lock files and temp files.
|
|
175
|
+
|
|
176
|
+
### Added — Safety
|
|
177
|
+
- **Collection caps** — tasks (1000), workflows (500), votes (500), reviews (500), dependencies (1000), branches (100), channels (100). Prevents DoS via unbounded growth.
|
|
178
|
+
- **Input type validation** — `reply_to` and `channel` parameters type-checked as strings in `send_message`.
|
|
179
|
+
- **Channel name validation fix** — error message corrected from "1-30 chars" to "1-20 chars" to match `sanitizeName()`.
|
|
180
|
+
|
|
181
|
+
## [3.10.0] - 2026-03-17
|
|
182
|
+
|
|
183
|
+
### Added — Dynamic Guide with Progressive Disclosure
|
|
184
|
+
- **`buildGuide()`** — replaces hardcoded guide in register() and get_guide(). Returns only rules relevant to the current system state.
|
|
185
|
+
- **Tiered rules:** Tier 0 (listen after every action), Tier 1 (core behavior), Tier 2 (group mode features), Tier 2b (channels), Tier 3 (large teams 5+)
|
|
186
|
+
- **User-customizable:** `.neohive/guide.md` for project-specific rules
|
|
187
|
+
- 2-agent direct mode = 5 rules. 10-agent group with channels = 12 rules.
|
|
188
|
+
|
|
189
|
+
## [3.9.1] - 2026-03-17
|
|
190
|
+
|
|
191
|
+
### Added
|
|
192
|
+
- **Per-channel cooldown** — uses channel member count instead of total agents. 2-member #backend = 1s, regardless of 10 in #general
|
|
193
|
+
- **`cooldown_applied_ms`** — diagnostic field in send_message response showing exact cooldown applied
|
|
194
|
+
- **`channel` field** in send_message response when sending to a channel
|
|
195
|
+
|
|
196
|
+
### Fixed
|
|
197
|
+
- Task race condition — `update_task` rejects claiming tasks already in_progress by another agent
|
|
198
|
+
|
|
199
|
+
## [3.9.0] - 2026-03-17
|
|
200
|
+
|
|
201
|
+
### Added — Channels & Split Cooldown
|
|
202
|
+
|
|
203
|
+
- **`join_channel(name, description?)`** — create or join a channel for sub-team communication
|
|
204
|
+
- **`leave_channel(name)`** — leave a channel (can't leave #general, empty channels auto-delete)
|
|
205
|
+
- **`list_channels()`** — list all channels with members, message counts, membership status
|
|
206
|
+
- **`send_message` channel parameter** — send to specific channel (`channel-{name}-messages.jsonl`)
|
|
207
|
+
- **`listen_group` reads all subscribed channels** — merges messages from general + channel files, sorted by timestamp
|
|
208
|
+
- **Channel validation** — sending to nonexistent channel returns error with hint to create it
|
|
209
|
+
- **Ghost member cleanup** — heartbeat auto-removes dead agents from channel membership
|
|
210
|
+
- **#general auto-created** — `members: ["*"]` (everyone), uses existing messages.jsonl for backward compat
|
|
211
|
+
- **Split cooldown (reply_to-based)** — fast lane (500ms) for addressed agents, slow lane (max 2000, N*1000) for unaddressed, incentivizes threading
|
|
212
|
+
|
|
213
|
+
### Fixed
|
|
214
|
+
- Task race condition — `update_task` now rejects claiming a task already in_progress by another agent, auto-assigns on claim
|
|
215
|
+
|
|
216
|
+
## [3.8.0] - 2026-03-16
|
|
217
|
+
|
|
218
|
+
### Changed — Group Conversation Overhaul
|
|
219
|
+
|
|
220
|
+
Redesigned from the ground up based on 3-agent collaborative testing and design session.
|
|
221
|
+
|
|
222
|
+
**Single-write group messages (O(1) instead of O(N)):**
|
|
223
|
+
- `send_message` in group mode now writes ONE message with `to: "__group__"` instead of N copies per agent
|
|
224
|
+
- `broadcast` in group mode also uses single `__group__` write
|
|
225
|
+
- Old O(N) auto-broadcast loop completely removed
|
|
226
|
+
- Result: with 6 agents, a message now creates 1 write instead of 6. A broadcast round that previously created 30 writes now creates 6.
|
|
227
|
+
|
|
228
|
+
**`addressed_to` field + `should_respond` hints:**
|
|
229
|
+
- `send_message(to="AgentName")` in group mode stores `addressed_to: ["AgentName"]` on the `__group__` message
|
|
230
|
+
- `listen_group` response includes `addressed_to_you: true/false` and `should_respond: true/false` per message
|
|
231
|
+
- Hint-based, not enforced — agents can still respond when they have valuable input
|
|
232
|
+
- No `addressed_to` = everyone should respond (backwards compatible)
|
|
233
|
+
|
|
234
|
+
**Adaptive cooldown:**
|
|
235
|
+
- Cooldown now scales with team size: `max(500ms, N * 500ms)` where N = alive agent count
|
|
236
|
+
- 2 agents = 1s, 3 agents = 1.5s, 6 agents = 3s, 10 agents = 5s
|
|
237
|
+
- Explicit `group_cooldown` config still respected if set
|
|
238
|
+
|
|
239
|
+
**Shorter stagger:**
|
|
240
|
+
- Deterministic stagger reduced from 0-3000ms to 500-1500ms
|
|
241
|
+
- Same agent always gets the same delay (hash-based)
|
|
242
|
+
|
|
243
|
+
**Alive-only garbage collection:**
|
|
244
|
+
- `autoCompact` for `__group__` messages only checks alive agents for consumed tracking
|
|
245
|
+
- Dead agents no longer block message compaction forever
|
|
246
|
+
- Dead agents catch up via `get_compressed_history()` which reads history.jsonl (never compacted)
|
|
247
|
+
|
|
248
|
+
**Own-message filtering:**
|
|
249
|
+
- Agents no longer see their own `__group__` messages in `listen_group` batches
|
|
250
|
+
- Own messages are auto-consumed on sight
|
|
251
|
+
- Own messages still visible in `context` array for reference
|
|
252
|
+
|
|
253
|
+
### Added — 3D World: Player Mode & Improvements
|
|
254
|
+
- **Player character** — users can spawn as a controllable character in the 3D Hub
|
|
255
|
+
- **Spectator camera improvements** — refined controls and speed
|
|
256
|
+
- **Environment updates** — campus environment refinements
|
|
257
|
+
|
|
258
|
+
## [3.7.0] - 2026-03-16
|
|
259
|
+
|
|
260
|
+
### Added — Agent Ecosystem (20 new tools, 52 total)
|
|
261
|
+
|
|
262
|
+
**Tier 1 — Critical Infrastructure:**
|
|
263
|
+
- **`get_briefing()`** — full project onboarding in one call: agents, tasks, decisions, KB, locked files, progress, project file tree
|
|
264
|
+
- **`lock_file(path)` / `unlock_file(path?)`** — exclusive file editing with auto-release on agent death
|
|
265
|
+
- **`log_decision(decision, reasoning?, topic?)` / `get_decisions(topic?)`** — persistent decision log, prevents re-debating
|
|
266
|
+
- **Agent recovery on rejoin** — `register()` returns active tasks, workspace keys, recent messages for returning agents
|
|
267
|
+
|
|
268
|
+
**Tier 2 — Quality of Life:**
|
|
269
|
+
- **`kb_write(key, content)` / `kb_read(key?)` / `kb_list()`** — shared team knowledge base (any agent reads/writes)
|
|
270
|
+
- **Event hooks** — auto-fires system messages on `agent_join`, `task_complete`, `all_tasks_done`, `dependency_met`
|
|
271
|
+
- **`update_progress(feature, percent, notes)` / `get_progress()`** — feature-level progress tracking with overall %
|
|
272
|
+
- **`get_compressed_history()`** — auto-compresses old messages into summary segments, keeps recent verbatim
|
|
273
|
+
- **`listen_group()` now blocks indefinitely** — no more timeout, agents never drop out
|
|
274
|
+
|
|
275
|
+
**Tier 3 — Advanced Collaboration:**
|
|
276
|
+
- **`call_vote(question, options)` / `cast_vote(vote_id, choice)` / `vote_status(vote_id?)`** — team voting with auto-resolve when all vote
|
|
277
|
+
- **`request_review(file, desc)` / `submit_review(review_id, status, feedback)`** — code review pipeline with approve/changes_requested
|
|
278
|
+
- **`declare_dependency(task_id, depends_on)` / `check_dependencies(task_id?)`** — task dependency tracking with auto-notify on resolve
|
|
279
|
+
- **`get_reputation(agent?)` / `suggest_task()`** — agent reputation tracking (auto-detects strengths), task suggestions based on skills
|
|
280
|
+
- **Auto-reputation tracking** — global hook tracks every action (messages, tasks, reviews, decisions, KB writes) without manual calls
|
|
281
|
+
|
|
282
|
+
### Fixed
|
|
283
|
+
- **Monitor screens stay red** when agent stops listening — persistent color state instead of 300ms flash
|
|
284
|
+
- **"NOT LISTENING" warning** shown prominently on desk monitor canvas
|
|
285
|
+
- **Status color logic** — green = listening, red = active but not listening, yellow = sleeping, dim = dead
|
|
286
|
+
|
|
287
|
+
## [3.6.2] - 2026-03-16
|
|
288
|
+
|
|
289
|
+
### Added — Message Awareness System
|
|
290
|
+
- **Sender gets busy status** — `send_message` and `broadcast` tell you when recipients are working (not listening) so you know messages are queued
|
|
291
|
+
- **Pending message nudge** — every non-listen tool call checks for unread messages and tells the agent to call `listen_group()` soon
|
|
292
|
+
- **Message age tracking** — `listen_group` shows `age_seconds` per message and `delayed: true` flag for messages older than 30s
|
|
293
|
+
- **Agent status in batch** — `listen_group` returns `agents_status` map showing who is `listening` vs `working`
|
|
294
|
+
- **listen_group retry** — timeout now returns `retry: true` with explicit instruction to call again immediately
|
|
295
|
+
- **next_action field** — successful `listen_group` response tells agent to call `listen_group()` again after responding
|
|
296
|
+
- **Ctrl key removed from camera** — no longer moves camera down (Q/E only)
|
|
297
|
+
|
|
298
|
+
### Added — 3D World: Campus Environment & Navigation
|
|
299
|
+
- **Campus environment** — new outdoor environment option with buildings, paths, green spaces
|
|
300
|
+
- **Navigation system** — pathfinding for agents to walk around obstacles instead of through walls
|
|
301
|
+
- **Door animations** — manager office door slides open when agents approach, closes when they leave
|
|
302
|
+
- **Roof visibility** — roof hides when camera is above ceiling height
|
|
303
|
+
|
|
304
|
+
## [3.6.1] - 2026-03-16
|
|
305
|
+
|
|
306
|
+
### Fixed
|
|
307
|
+
- **3D Hub black screen on page load** — the office module loads asynchronously, but the initial `switchView('office')` fired before `office3dStart` was defined. Added auto-start at end of module so the 3D Hub loads immediately on refresh.
|
|
308
|
+
|
|
309
|
+
## [3.6.0] - 2026-03-16
|
|
310
|
+
|
|
311
|
+
### Added — Managed Conversation Mode
|
|
312
|
+
|
|
313
|
+
- **`set_conversation_mode("managed")`** — structured turn-taking for 3+ agent teams, prevents broadcast storms
|
|
314
|
+
- **`claim_manager()`** — claim the manager role (first caller wins, auto-election fallback)
|
|
315
|
+
- **`yield_floor(to, prompt?)`** — manager-only: give an agent permission to speak (directed, round-robin `__open__`, or close `__close__`)
|
|
316
|
+
- **`set_phase(phase)`** — manager-only: move team through discussion → planning → execution → review with auto-instructions to all agents
|
|
317
|
+
- **Floor enforcement** — `send_message`, `broadcast`, `handoff`, and `share_file` all block non-floor-holders with actionable error messages
|
|
318
|
+
- **Auto-advance turns** — floor returns to manager after directed responses; round-robin advances to next alive agent automatically
|
|
319
|
+
- **Manager disconnect recovery** — heartbeat detects dead manager within 10-30s, notifies all agents to re-elect
|
|
320
|
+
- **Dead turn-holder detection** — heartbeat detects dead agents holding the floor and resets it
|
|
321
|
+
- **Managed mode in `listen_group()`** — returns `managed_context`, `should_respond`, and `instructions` to guide agent behavior
|
|
322
|
+
- **`managed` template** — 4-agent team (Manager, Designer, Coder, Tester) with structured prompts
|
|
323
|
+
- **`managed-team` conversation template** — dashboard-launchable version
|
|
324
|
+
- **Dashboard Docs tab** — in-dashboard documentation with full tool reference, managed mode guide, architecture, version history
|
|
325
|
+
- **Dashboard managed mode badge** — header shows current phase and floor status when managed mode is active
|
|
326
|
+
|
|
327
|
+
### Added — 3D World Improvements
|
|
328
|
+
|
|
329
|
+
- **Spectator camera** — free-fly WASD + mouse camera replacing OrbitControls, no distance limits, Shift for fast movement, Q/E up/down
|
|
330
|
+
- **6 new hairstyles** — curly, afro, bun, braids, mohawk, wavy
|
|
331
|
+
- **6 new eye styles** — surprised, angry, happy, wink, confident, tired
|
|
332
|
+
- **5 new mouth styles** — grin, frown, smirk, tongue, whistle
|
|
333
|
+
- **6 outfit types** — hoodie, suit, dress, lab coat, vest, jacket with color customization
|
|
334
|
+
- **3 body types** — default, stocky, slim (scale multipliers on torso/legs/arms)
|
|
335
|
+
- **5 gesture animations** — wave, think, point, celebrate, stretch with idle gesture system
|
|
336
|
+
- **New furniture** — bookshelf (random colored books), wall TV (animated dashboard with agent stats, scrolling ticker, clock), arcade machine (cabinet + screen + joystick + buttons), floor lamp (warm point light), area rug
|
|
337
|
+
- **Agent behavior** — realistic conversation distance (1.8m), listener turns toward speaker, broadcast triggers wave gesture, task completion triggers celebrate
|
|
338
|
+
- **3D Hub** — renamed from "Office", now default tab on page load
|
|
339
|
+
- **Speed slider** — camera speed control in toolbar (1-20)
|
|
340
|
+
|
|
341
|
+
### Added — 3D Virtual Office (v1 foundation from previous session)
|
|
342
|
+
|
|
343
|
+
- **Modular 3D engine** — 14 ES modules under `office/`
|
|
344
|
+
- **Expanded office** — 28x16 floor with right wing, dividing wall, LOUNGE archway
|
|
345
|
+
- **Dressing room** — mirror, raised platform, privacy partitions, coat hooks
|
|
346
|
+
- **Rest area** — beanbags, circular rug, side table, warm ambient lighting
|
|
347
|
+
- **Click-to-command** — Dressing Room, Go Rest, Back to Work, Edit Profile
|
|
348
|
+
- **Character designer** — 5-tab panel with live 3D rotating preview
|
|
349
|
+
- **Accessory system** — glasses, headwear, neckwear with color customization
|
|
350
|
+
- **Mod system infrastructure** — GLB/GLTF pipeline with validation
|
|
351
|
+
|
|
352
|
+
### Security
|
|
353
|
+
- **Config file lock** — `config.json` read-modify-write operations now use file-based locking (same pattern as `agents.json`)
|
|
354
|
+
- **Reserved name blocklist** — `__system__`, `__all__`, `__open__`, `__close__`, `system` cannot be registered as agent names
|
|
355
|
+
- **Mode change protection** — only the manager can switch away from managed mode
|
|
356
|
+
- **Floor enforcement on all message paths** — `handoff` and `share_file` now enforce managed mode floor control
|
|
357
|
+
- **Branch-aware system messages** — floor/phase notifications sent to recipient's branch, not sender's
|
|
358
|
+
- **Phase history cap** — limited to 50 entries to prevent config.json bloat
|
|
359
|
+
- `/office/*` and `/mods/*` static routes with path traversal protection
|
|
360
|
+
- Mod file type allowlist blocks all executable formats
|
|
361
|
+
- GLB magic bytes validation (server + client)
|
|
362
|
+
|
|
363
|
+
### Removed
|
|
364
|
+
- ~1,100 lines of dead 2D isometric office code
|
|
365
|
+
|
|
366
|
+
## [3.5.0] - 2026-03-15
|
|
367
|
+
|
|
368
|
+
### Added — Group Conversation Mode
|
|
369
|
+
- **`set_conversation_mode("group")`** — enables free multi-agent collaboration with auto-broadcast
|
|
370
|
+
- **`listen_group()`** — batch message receiver with random stagger (1-3s) to prevent simultaneous responses
|
|
371
|
+
- Returns ALL unconsumed messages + last 20 messages of context + hints about silent agents
|
|
372
|
+
- Auto-broadcast in group mode: every message is shared with all agents automatically
|
|
373
|
+
- Cooldown enforcement: agents must wait 3s between sends to maintain conversation flow
|
|
374
|
+
- Cascade prevention: broadcast copies don't trigger further broadcasts
|
|
375
|
+
- MCP tools: 27 → 29
|
|
376
|
+
|
|
377
|
+
### Added — Dashboard Features
|
|
378
|
+
- **Notification panel** — bell icon with badge count, dropdown event feed (agent online/offline, listening status changes)
|
|
379
|
+
- **Agent leaderboard** — performance scoring (0-100) with responsiveness, activity, reliability, collaboration dimensions
|
|
380
|
+
- **Cross-project search** — "All Projects" toggle in search bar, searches across all registered projects
|
|
381
|
+
- **Animated replay export** — Export conversation as self-playing HTML file with typing animations and play/pause controls
|
|
382
|
+
- **Ollama integration** — `npx neohive init --ollama` auto-detects Ollama, creates bridge script for local models
|
|
383
|
+
|
|
384
|
+
### Fixed — PID & Registration Integrity
|
|
385
|
+
- Registration file locking with try/finally (prevents race conditions when multiple agents register simultaneously)
|
|
386
|
+
- PID stale detection uses `last_activity` with 30s threshold (prevents false "alive" from Windows PID reuse)
|
|
387
|
+
- Lock file cleaned up on process exit
|
|
388
|
+
- Dashboard inject/nudge snapshots project context at click time (prevents wrong-project race)
|
|
389
|
+
|
|
390
|
+
### Security
|
|
391
|
+
- `toolHandoff` and workflow auto-handoff now check `canSendTo` permissions
|
|
392
|
+
- `lastSentAt` updated in `toolBroadcast` (prevents cooldown bypass)
|
|
393
|
+
- `config.json` added to both server and dashboard reset cleanup
|
|
394
|
+
- Auto-broadcast respects `canSendTo` per recipient
|
|
395
|
+
|
|
396
|
+
## [3.4.4] - 2026-03-15
|
|
397
|
+
|
|
398
|
+
### Fixed
|
|
399
|
+
- Add project now accepts any existing directory (removed requirement for package.json or .git)
|
|
400
|
+
- Init safely backs up corrupted .mcp.json and settings.json before overwriting
|
|
401
|
+
|
|
402
|
+
### Changed
|
|
403
|
+
- Removed plugin references from website and docs
|
|
404
|
+
- Website updated with security features (LAN auth token, CSRF, CSP)
|
|
405
|
+
|
|
406
|
+
## [3.4.3] - 2026-03-15
|
|
407
|
+
|
|
408
|
+
### Removed — Plugin System
|
|
409
|
+
- Removed the entire plugin system (`vm.runInNewContext` sandbox, plugin CLI commands, dashboard plugin UI)
|
|
410
|
+
- **Why:** Plugins were an unnecessary attack surface. Node.js `vm` is not a security sandbox — plugins could escape and execute arbitrary OS commands. CLI terminals (Claude Code, Gemini, Codex) have their own extension systems, making our plugins redundant.
|
|
411
|
+
- `npx neohive plugin` now shows a deprecation notice
|
|
412
|
+
- MCP tools reduced from 27 + plugins to 27 (all core tools remain)
|
|
413
|
+
- ~200 lines of code removed from server.js, cli.js, dashboard.js, dashboard.html
|
|
414
|
+
|
|
415
|
+
## [3.4.2] - 2026-03-15
|
|
416
|
+
|
|
417
|
+
### Security — CSRF Protection
|
|
418
|
+
- Required `X-LTT-Request` custom header on all POST/PUT/DELETE requests
|
|
419
|
+
- `lttFetch` wrapper in dashboard automatically includes the header
|
|
420
|
+
- Malicious cross-origin pages cannot set custom headers without CORS preflight approval
|
|
421
|
+
- Removed wildcard `Access-Control-Allow-Origin: *` in LAN mode — now uses explicit trusted origins only
|
|
422
|
+
- Empty Origin/Referer no longer auto-trusted — requires custom header as minimum protection
|
|
423
|
+
|
|
424
|
+
### Security — LAN Auth Token
|
|
425
|
+
- Auto-generated 32-char hex token when LAN mode is enabled
|
|
426
|
+
- Token required for all non-localhost requests (via `?token=` query param or `X-LTT-Token` header)
|
|
427
|
+
- Token included in QR code URL — phone scans and it just works
|
|
428
|
+
- Token displayed in phone access modal with explanation
|
|
429
|
+
- New token generated each time LAN mode is toggled on
|
|
430
|
+
- Token persists across server restarts via `.lan-token` file
|
|
431
|
+
- Localhost access never requires a token
|
|
432
|
+
|
|
433
|
+
### Security — Content Security Policy
|
|
434
|
+
- CSP header added to dashboard HTML response
|
|
435
|
+
- `script-src 'unsafe-inline'` for inline handlers, blocks `eval()` and external scripts
|
|
436
|
+
- `connect-src 'self'` restricts API calls to same origin
|
|
437
|
+
- `font-src`, `style-src`, `img-src` scoped to required sources only
|
|
438
|
+
|
|
439
|
+
### Fixed
|
|
440
|
+
- CSRF brace imbalance that trapped GET handlers inside POST-only block
|
|
441
|
+
- LAN token not forwarded from phone URL to API calls and SSE
|
|
442
|
+
- Redundant nested origin check collapsed to single condition
|
|
443
|
+
|
|
444
|
+
## [3.4.1] - 2026-03-15
|
|
445
|
+
|
|
446
|
+
### Added
|
|
447
|
+
- **File-level mutex** — in-memory promise queue per file for serializing edit/delete operations
|
|
448
|
+
- **Agent permissions enforcement** — `canSendTo()` checks in `send_message` and `broadcast`, `can_read` filtering in `get_history` and message delivery
|
|
449
|
+
- **Read receipts** — auto-recorded when agents consume messages, visible as agent-initial dots under messages in dashboard
|
|
450
|
+
|
|
451
|
+
### Security
|
|
452
|
+
- HTTP 500 responses now return generic error instead of raw `err.message` (prevents filesystem path leaks)
|
|
453
|
+
- `/api/discover` changed from GET to POST (now under CSRF protection)
|
|
454
|
+
- `workspace_read`/`workspace_list` validate agent name parameter with regex
|
|
455
|
+
- `get_history` filters results by agent's `can_read` permissions
|
|
456
|
+
- `read_receipts.json` and `permissions.json` added to both MCP and dashboard reset cleanup
|
|
457
|
+
- Dashboard workspace API regex aligned with server (`[a-zA-Z0-9_-]`)
|
|
458
|
+
|
|
459
|
+
### Fixed
|
|
460
|
+
- `toolWaitForReply` missing `markAsRead` calls (read receipts not recorded)
|
|
461
|
+
- `toolBroadcast` bypassing permission checks entirely
|
|
462
|
+
- `toolReset` not cleaning up `permissions.json` and `read_receipts.json`
|
|
463
|
+
|
|
464
|
+
## [3.4.0] - 2026-03-15
|
|
465
|
+
|
|
466
|
+
### Added — Dashboard Features
|
|
467
|
+
- **Stats Tab** — per-agent message counts, avg response time, peak hours, 24-hour activity chart, conversation velocity. Keyboard shortcut `6`.
|
|
468
|
+
- **Compact View** — toggle button in search bar. Hides avatars, inlines timestamps, reduces padding. Persists to localStorage.
|
|
469
|
+
- **Message Edit** — edit any message via hover action. Full edit history tracked, "edited" badge displayed.
|
|
470
|
+
- **Message Delete** — delete dashboard/system messages with confirmation dialog.
|
|
471
|
+
- **Copy Message** — clipboard button on message hover to copy raw content.
|
|
472
|
+
- **JSON Export** — new export format alongside HTML and Markdown.
|
|
473
|
+
- **Kanban Drag-and-Drop** — drag task cards between columns (pending/in_progress/done/blocked).
|
|
474
|
+
- **SSE Auto-Reconnect** — exponential backoff (1s→30s), yellow "Reconnecting..." indicator, polling fallback.
|
|
475
|
+
- **Conversation Templates** — 4 built-in multi-agent workflow templates (Code Review Pipeline, Debug Squad, Feature Development, Research & Write) in the Launch tab with copyable agent prompts.
|
|
476
|
+
|
|
477
|
+
### Added — API Endpoints
|
|
478
|
+
- `PUT /api/message` — edit a message (with edit history)
|
|
479
|
+
- `DELETE /api/message` — delete a message (dashboard/system only)
|
|
480
|
+
- `GET /api/conversation-templates` — list conversation templates
|
|
481
|
+
- `POST /api/conversation-templates/launch` — get template agent prompts
|
|
482
|
+
- `GET /api/stats` — analytics data (per-agent stats, velocity, hourly distribution)
|
|
483
|
+
- `GET/POST /api/permissions` — agent permission management
|
|
484
|
+
|
|
485
|
+
### Added — CLI Commands
|
|
486
|
+
- `npx neohive msg <agent> <text>` — send a message from CLI
|
|
487
|
+
- `npx neohive status` — show active agents and message counts
|
|
488
|
+
|
|
489
|
+
### Changed — Premium UI Redesign
|
|
490
|
+
- Deeper dark palette with blue undertones (#080b12 background)
|
|
491
|
+
- Inter font from Google Fonts with anti-aliased rendering
|
|
492
|
+
- Glassmorphism header with backdrop-filter blur
|
|
493
|
+
- Gradient accent system (blue→purple) on buttons, active tabs, send button
|
|
494
|
+
- Refined shadow system (sm/md/lg) with colored glows
|
|
495
|
+
- Focus rings on all inputs
|
|
496
|
+
- Smoother transitions (0.2-0.25s) with lift effects on hover
|
|
497
|
+
- Glass effects on modals and popups
|
|
498
|
+
- Inset shadows on code blocks
|
|
499
|
+
- Thinner scrollbars with transparent tracks
|
|
500
|
+
|
|
501
|
+
### Fixed
|
|
502
|
+
- Task notes crash when `notes` array undefined
|
|
503
|
+
- Message edit always rewrites messages.jsonl regardless of match
|
|
504
|
+
- Permissions API accepted arbitrary fields (now whitelisted)
|
|
505
|
+
- Task status accepted any string (now validated against whitelist)
|
|
506
|
+
- Reset button ignored active project in multi-project mode
|
|
507
|
+
- Edit modal missing error handler on network failure
|
|
508
|
+
- CLI msg command accepted invalid agent names
|
|
509
|
+
- Copy-to-clipboard double-escaped HTML entities in template prompts
|
|
510
|
+
- Duplicate deleteMessage function shadowing
|
|
511
|
+
|
|
512
|
+
## [3.3.2] - 2026-03-14
|
|
513
|
+
|
|
514
|
+
### Changed
|
|
515
|
+
- License changed from MIT to Business Source License 1.1 (BSL)
|
|
516
|
+
- Added SECURITY.md with vulnerability disclosure policy
|
|
517
|
+
- Added CHANGELOG.md to published npm package
|
|
518
|
+
- Added .npmignore for cleaner package distribution
|
|
519
|
+
- Version synced across all files (server, CLI, dashboard)
|
|
520
|
+
|
|
521
|
+
## [3.0.0] - 2026-03-14
|
|
522
|
+
|
|
523
|
+
### Added — Agent Profiles
|
|
524
|
+
- New tool: `update_profile` (display_name, avatar, bio, role)
|
|
525
|
+
- 12 built-in SVG robot avatar icons with hash-based defaults
|
|
526
|
+
- Profiles auto-created on register, persist across restarts
|
|
527
|
+
- Profile data shown in dashboard (avatars, role badges, profile popup)
|
|
528
|
+
|
|
529
|
+
### Added — Agent Workspaces
|
|
530
|
+
- 3 new tools: `workspace_write`, `workspace_read`, `workspace_list`
|
|
531
|
+
- Per-agent key-value storage (50 keys max, 100KB per value)
|
|
532
|
+
- Agents can read anyone's workspace, write only their own
|
|
533
|
+
- Dashboard "Workspaces" tab with collapsible accordion UI
|
|
534
|
+
|
|
535
|
+
### Added — Workflow Automation
|
|
536
|
+
- 3 new tools: `create_workflow`, `advance_workflow`, `workflow_status`
|
|
537
|
+
- Multi-step pipelines with auto-handoff to step assignees
|
|
538
|
+
- Dashboard "Workflows" tab with horizontal pipeline visualization
|
|
539
|
+
- Dashboard can advance/skip workflow steps
|
|
540
|
+
|
|
541
|
+
### Added — Conversation Branching
|
|
542
|
+
- 3 new tools: `fork_conversation`, `switch_branch`, `list_branches`
|
|
543
|
+
- Fork at any message point with isolated branch history
|
|
544
|
+
- All message tools branch-aware (backward compatible — main branch uses existing files)
|
|
545
|
+
- Branch tabs in dashboard
|
|
546
|
+
|
|
547
|
+
### Added — Plugin System
|
|
548
|
+
- Dynamic tool loading from `plugins/*.js` files
|
|
549
|
+
- Sandboxed execution with 30s timeout
|
|
550
|
+
- CLI: `npx neohive plugin add/list/remove/enable/disable`
|
|
551
|
+
- Dashboard plugin cards with enable/disable toggles
|
|
552
|
+
|
|
553
|
+
### Changed
|
|
554
|
+
- MCP tools: 17 → 27 + dynamic plugins
|
|
555
|
+
- Dashboard tabs: 2 → 4 (Messages, Tasks, Workspaces, Workflows)
|
|
556
|
+
- Branch-aware history API (`?branch=` query param)
|
|
557
|
+
- Version bump across all files (server, dashboard, CLI, package.json)
|
|
558
|
+
|
|
559
|
+
## [2.5.0] - 2026-03-14
|
|
560
|
+
|
|
561
|
+
### Added
|
|
562
|
+
- Task management system: `create_task`, `update_task`, `list_tasks` tools
|
|
563
|
+
- Kanban board in dashboard (Messages/Tasks toggle)
|
|
564
|
+
- Agent stats panel (sent/received/avg response time per agent)
|
|
565
|
+
- Shareable HTML export (/api/export endpoint)
|
|
566
|
+
- Export dropdown (HTML + Markdown formats)
|
|
567
|
+
- Conversation bookmarks (star messages, localStorage)
|
|
568
|
+
- Sound notification toggle (Web Audio API)
|
|
569
|
+
- Typing indicator for processing agents
|
|
570
|
+
- Connection quality display (SSE latency)
|
|
571
|
+
- Date separators between message groups
|
|
572
|
+
- Message grouping for consecutive same-sender messages
|
|
573
|
+
- Project auto-discover (scan nearby folders)
|
|
574
|
+
- Copy-to-clipboard prompts in onboarding
|
|
575
|
+
- Dynamic tab title with message count
|
|
576
|
+
- Dashboard footer with version
|
|
577
|
+
|
|
578
|
+
### Security
|
|
579
|
+
- Path traversal fix in `share_file` (restricted to project dir)
|
|
580
|
+
- Path traversal fix in `?project=` param (validate against registered projects)
|
|
581
|
+
- 1MB message size limit on send/broadcast/handoff
|
|
582
|
+
- 1MB request body limit on dashboard POST endpoints
|
|
583
|
+
- XSS fix in HTML export (escape agent names)
|
|
584
|
+
- CORS restricted to localhost only (was wildcard)
|
|
585
|
+
- Dashboard binds to 127.0.0.1 only (was 0.0.0.0)
|
|
586
|
+
- Registration guard on `reset` tool
|
|
587
|
+
- Removed absolute file paths from share_file responses
|
|
588
|
+
|
|
589
|
+
## [2.3.0] - 2026-03-14
|
|
590
|
+
|
|
591
|
+
### Added
|
|
592
|
+
- `handoff` tool for structured work delegation
|
|
593
|
+
- `share_file` tool for sending file contents between agents
|
|
594
|
+
- `broadcast` tool for messaging all agents at once
|
|
595
|
+
- `get_summary` tool for conversation recaps
|
|
596
|
+
- Server-Sent Events for real-time dashboard updates
|
|
597
|
+
- `fs.watch()` on data directory with debounced SSE push
|
|
598
|
+
- Graceful SSE fallback to polling
|
|
599
|
+
- Handoff message rendering (purple banner)
|
|
600
|
+
- File share message rendering (file icon + size)
|
|
601
|
+
|
|
602
|
+
## [2.1.0] - 2026-03-14
|
|
603
|
+
|
|
604
|
+
### Added
|
|
605
|
+
- Multi-agent support (any name, not just A/B)
|
|
606
|
+
- `list_agents` tool with alive/dead status
|
|
607
|
+
- `listen` tool (blocks indefinitely, never times out)
|
|
608
|
+
- Conversation threading (`reply_to` + auto `thread_id`)
|
|
609
|
+
- Message acknowledgments (`ack_message` tool)
|
|
610
|
+
- Heartbeat system (10s interval, `last_activity` tracking)
|
|
611
|
+
- Agent status: active/sleeping/dead with idle time
|
|
612
|
+
- Listening status tracking (`listening_since`)
|
|
613
|
+
- Auto-compact messages.jsonl when >500 lines
|
|
614
|
+
- Auto-archive conversations before reset
|
|
615
|
+
- Context hints when conversation exceeds 50 messages
|
|
616
|
+
- Dead recipient warnings in `send_message`
|
|
617
|
+
- Message sequence numbers for ordering
|
|
618
|
+
- `pending_count` and `agents_online` in delivery responses
|
|
619
|
+
- 4 agent templates: pair, team, review, debate
|
|
620
|
+
- CLI: `npx neohive templates` command
|
|
621
|
+
- CLI: `--template` flag for guided setup
|
|
622
|
+
- Multi-CLI support: Claude Code, Gemini CLI, Codex CLI
|
|
623
|
+
- `NEOHIVE_DATA_DIR` env var in MCP config
|
|
624
|
+
|
|
625
|
+
### Fixed
|
|
626
|
+
- Heartbeat timer `.unref()` to prevent zombie processes
|
|
627
|
+
- Process exit cleanup (deregister agent on exit)
|
|
628
|
+
- Re-registration cleanup (old name removed)
|
|
629
|
+
- Stale byte offset recovery on file truncation
|
|
630
|
+
|
|
631
|
+
## [2.0.0] - 2026-03-14
|
|
632
|
+
|
|
633
|
+
### Added
|
|
634
|
+
- Initial release
|
|
635
|
+
- MCP server with stdio transport
|
|
636
|
+
- 6 tools: register, send_message, wait_for_reply, check_messages, get_history, reset
|
|
637
|
+
- Web dashboard with real-time monitoring
|
|
638
|
+
- Message injection from dashboard
|
|
639
|
+
- Dark theme UI with markdown rendering
|
|
640
|
+
- `.mcp.json` project-level configuration
|