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 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