neohive 6.0.2 → 6.1.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 CHANGED
@@ -1,8 +1,172 @@
1
1
  # Changelog
2
2
 
3
+ ## [6.1.0] - 2026-04-04
4
+
5
+ ### Added
6
+
7
+ - **Modular tools architecture** — server-side tools split into `agent-bridge/tools/` directory for maintainability; each tool file is independently loaded at startup
8
+ - **Terminal bridge** — `terminal-bridge.js` streams live terminal output to the dashboard with lazy-loaded xterm.js and per-agent isolation; agent status pills show real-time session state
9
+ - **Agent liveness detection v2** — deterministic online/offline/stale/unknown states with heartbeat epoch tracking; dead seats are auto-reclaimed on `register()` and spare seats offered immediately
10
+ - **Listen outcome payload** — `listen()` returns a structured result object with `outcome`, `message`, and `agent` fields for richer branching logic
11
+ - **Liveness sparkline + nudge UI** — dashboard renders a mini activity graph per agent and one-click nudge button for unresponsive agents
12
+ - **Server-side auto-nudge** — coordinator receives an escalation message when a non-compliant agent misses its `listen()` window
13
+ - **Audit log** — every MCP tool call appended to `audit_log.jsonl`; new `log_violation` tool writes policy violations to the same log; dashboard has a dedicated Audit view
14
+ - **Push approval workflow** — `request_push_approval` / `ack_push` tools add a human-in-the-loop gate before git pushes
15
+ - **Review gate on task completion** — `update_task(status="done")` can require `request_review` + `submit_review` before the done event fires; `review_approved` event broadcasts on approval
16
+ - **Scoped rules** — `add_rule` / `list_rules` accept `role`, `provider`, and `agent` filters so rules are applied only to matching agents
17
+ - **Platform-specific default skills** — `register()` auto-populates the agent's skill list based on detected IDE/CLI provider (Claude Code, Cursor, Copilot, Gemini)
18
+ - **Token usage in profile popup** — dashboard resolves the Claude session via ppid walk and displays token usage directly in the agent profile card
19
+ - **VS Code extension: chat participant** — `@neohive` chat participant with slash commands (`/task`, `/broadcast`, `/status`) and a coordinator pipe for inline coordination from Copilot Chat
20
+ - **VS Code extension: Claude Code hooks setup** — extension auto-configures `UserPromptSubmit` and `PostToolUse` hooks on activation; version shown in status bar
21
+ - **Hooks system** — `PostToolUse` hook echoes `send_message` calls to the current chat transcript; `UserPromptSubmit` hook injects context; `enforce-listen.sh` stop hook escalates non-compliant agents
22
+ - **Self-healing watchdog** — stuck tasks are automatically reclaimed after a configurable timeout; escalates to `blocked_permanent` with poison-pill after max retries; `retry_count` badge shown in dashboard
23
+ - **Design system** — `design-system.css` ships design tokens (colors, radii, shadows, glassmorphism variables) consumed by the dashboard; SVG logo and favicon served as dedicated endpoints
24
+ - **Multi-IDE MCP setup** — `neohive init` upserts configs for Claude Code, Cursor, Copilot, Gemini CLI, and Codex TOML in one pass using absolute Node.js paths
25
+ - **Agent name config in VS Code** — extension setting `neohive.agentName` with format validation; used automatically in MCP config generation
26
+
27
+ ### Changed
28
+
29
+ - **Tool consolidation (Phase 1)** — `check_messages` / `consume_messages` merged into the unified `messages` tool with a `mode` param; deprecated aliases removed for a clean API surface
30
+ - **Config centralization** — `SERVER_CONFIG` and `CLI_CONFIG` objects in `server.js` replace all scattered magic numbers (timeouts, limits, intervals)
31
+ - **Dashboard route dispatch** — simple GET routes moved to a dispatch table; reduces deeply nested if-chains in `dashboard.js`
32
+ - **Dashboard agent popup** — redesigned as a 3-tab layout (Stats · Actions · Profile) with inline profile editing, skill tags, and stuck/unresponsive indicators (orange/red dot + badge)
33
+ - **System events** — dashboard renders system events as compact, color-coded icon banners instead of raw log lines
34
+ - **Glassmorphism UI** — header and sidebar use backdrop-filter blur; agent cards gain micro-animations on hover and status-change
35
+ - **Slack-style new-messages banner** — pill appears above the message list when unread messages arrive while scrolled up
36
+
37
+ ### Fixed
38
+
39
+ - **Agent disappearance race condition** — `register()` now uses a file-level write lock to prevent two agents stomping on `agents.json` simultaneously; epoch-0 liveness spam suppressed
40
+ - **Mobile dashboard** — menu toggle restored; textarea stretches full width; inject-target dropdown populates correctly on small screens
41
+ - **Dashboard scroll preservation** — message list no longer jumps to top on full re-render
42
+ - **MCP portability** — VS Code extension uses local `node` + `server.js` paths to avoid published-package port conflicts
43
+ - **Nudge suppression** — auto-nudge only injects a message when the agent has genuinely missed its window; compliant agents are skipped
44
+
45
+ ## [6.0.3] - 2026-04-03
46
+
47
+ ### Fixed
48
+
49
+ - **MCP data directory** — When the MCP process starts with cwd outside the repo (e.g. Cursor home) and no `NEOHIVE_DATA_DIR`, resolve the hive from repo `.cursor/mcp.json` / sibling config (`lib/resolve-server-data-dir.js`); `lib/config.js` uses the same root so agents and dashboard agree.
50
+ - **Dashboard `projects.json`** — Only rewrite the projects file when the canonical list differs from on-disk data (`pack(nonRedundant) !== pack(raw)`), not on every load when duplicates or default-hive rows were only present in the normalized pass-through list.
51
+
52
+ ## [6.0.2] - 2026-04-02
53
+
54
+ ### Added
55
+ - **Human agent mode** — users can join the team as a human agent via the dashboard
56
+ - **Agent card grid** — overview page shows agent cards with status, active tasks, and quick actions
57
+ - **Checkpoint system** — save and restore agent state snapshots for resumable work
58
+ - **Agent approval flow** — tasks can require explicit agent approval before advancing
59
+
60
+ ### Fixed
61
+ - Message loss on SSE reconnect
62
+ - Token hijack race condition in `listen()`
63
+ - Spinlock in file-based task claiming
64
+ - Silent errors in workflow advancement
65
+ - Messages nav item flickering (switchView scope was too broad)
66
+ - Version strings synced to v6.0.0 across all files
67
+
68
+ ### Changed
69
+ - Dashboard full visual rebrand — amber/gold NeoHive identity with icon rail, overview page, agent bar, and toast notifications
70
+ - Full layout redesign: icon rail sidebar, overview landing page, agent status bar
71
+
72
+ ## [6.0.0] - 2026-04-02
73
+
74
+ ### Breaking — Full Rebrand & Modularization
75
+
76
+ - **Renamed** — data directory migrated from `.agent-bridge/` → `.neohive/`; startup auto-migrates legacy directories
77
+ - **Modularization** — core business logic extracted to `lib/` modules (`messaging`, `file-io`, `config`, `hooks`, `resolve-server-data-dir`, etc.)
78
+ - **Security hardening** — comprehensive audit: path traversal, XSS, CSRF, symlink, injection, and DoS fixes across dashboard and MCP server
79
+ - **New README** — professional redesign with badges, feature showcase, architecture diagram, and visual hierarchy
80
+ - **`.agent-bridge/` auto-migration** — startup detects and renames legacy data directory with zero data loss
81
+
82
+ ## [5.3.0] - 2026-03-20
83
+
84
+ ### Listen System Overhaul — Zero Token Waste
85
+
86
+ - **5-minute listen timeout** — `listen()` and `listen_group()` now block for 5 minutes (was 45s), reducing idle token overhead by 7x
87
+ - **fs.watch instant wake** — agents wake immediately when a message arrives, zero CPU/tokens while waiting
88
+ - **Fixed collectBatch bug** — file path was passed as branch name to `sanitizeName()`, breaking `listen_group()` on all platforms
89
+ - **Mode-aware instructions** — managed mode says `listen()`, group mode says `listen_group()`, all modes say "NEVER use sleep()"
90
+ - **Managed mode task tracking** — manager creates tasks/workflows, agents update status as they work (Tasks/Plan tabs stay current)
91
+ - **check_messages warns against loops** — response includes `action_required` telling agents to use `listen()` instead
92
+ - **listen_codex restricted** — description explicitly says "ONLY for Codex CLI, Claude/Gemini must use listen()"
93
+
94
+ ## [5.2.6] - 2026-03-20
95
+
96
+ ### Changed
97
+ - Managed mode guide updated — agents now track active tasks with `update_task` and advance workflows with `advance_workflow` as they work, keeping the Tasks/Plan tabs current in real time
98
+
99
+ ## [5.2.5] - 2026-03-20
100
+
101
+ ### Fixed
102
+ - Token waste — `check_messages` response now includes `action_required` field warning agents to use `listen()` instead of polling loops
103
+ - `listen_codex` description explicitly restricted to Codex CLI only; Claude and Gemini agents must use `listen()`
104
+
105
+ ## [5.2.4] - 2026-03-20
106
+
107
+ ### Fixed
108
+ - All listen instruction strings updated to be mode-aware: managed mode instructs `listen()`, group mode instructs `listen_group()`, all modes say "NEVER use sleep()"
109
+
110
+ ## [5.2.3] - 2026-03-20
111
+
112
+ ### Fixed
113
+ - Mode-aware listen instructions — each conversation mode now returns the correct listen command name in its guide
114
+
115
+ ## [5.2.2] - 2026-03-20
116
+
117
+ ### Fixed
118
+ - Managed mode guide corrected — agents should call `listen()` (not `listen_group()`) between turns in managed mode
119
+
120
+ ## [5.2.1] - 2026-03-20
121
+
122
+ ### Fixed
123
+ - Managed mode guide corrected — agents should use `listen_group()` instead of sleep loops between turns
124
+
125
+ ## [5.2.0] - 2026-03-20
126
+
127
+ ### Security Hardening (50+ fixes across 5 audit rounds)
128
+
129
+ - **Timing-safe** LAN token comparison (`crypto.timingSafeEqual`)
130
+ - **File permissions** — `.neohive/` created with `0o700`, `.lan-token` with `0o600`
131
+ - **XSS prevention** — `escapeHtml` escapes 6 characters, thread panel escaped, replay export `</script>` escaped, null byte placeholder collision fixed
132
+ - **Path traversal** — containment checks on `/lib/`, `/office/`, `/mods/` with `path.resolve`, mods asset write validated, conversation name regex
133
+ - **Rate limiting** — per-IP API rate limit (300/min), per-IP SSE limit (5), duplicate message detection, escalation broadcast rate limited
134
+ - **File locking** — tasks, workflows, channels all use `withFileLock`, PID-checked force-break, task claiming atomic
135
+ - **Input validation** — content type guards, stricter limits on some dashboard API bodies, agent name regex on all endpoints, avatar URL scheme validation
136
+ - **Security headers** — X-Frame-Options DENY, X-Content-Type-Options nosniff, Referrer-Policy no-referrer, CSP frame-ancestors none
137
+ - **Token removed** from all API responses, destructive endpoints require `confirm: true`
138
+ - **KB prompt injection** prevented — content in separate `reference_notes` field
139
+ - **share_file** denylist for .env, .pem, .key, credentials, data directory
140
+ - **Reserved names** — "Dashboard" blocked from agent registration
141
+ - **Manager claim** TOCTOU fixed with config lock
142
+
143
+ ### Cross-Platform Compatibility
144
+
145
+ - **Windows line endings** — all JSONL parsing uses `/\r?\n/` (24 sites fixed)
146
+ - **Portable config paths** — removed hardcoded absolute paths from env vars
147
+ - **Codex config backup** — creates `.backup` before modification
148
+ - Works identically on Windows, macOS, and Linux
149
+
150
+ ### New Features
151
+
152
+ - **Uninstall command** — `npx neohive uninstall` cleanly removes config entries from Claude/Gemini/Codex
153
+ - **Conversation management** — Clear Messages, New Conversation (archive + start fresh), Load saved conversations
154
+ - **Display names** — messages show profile display_name instead of raw registered name
155
+ - **Re-registration prevention** — agents can't change name mid-session
156
+
157
+ ### Fixed
158
+
159
+ - 11 full-file read optimizations (tailReadJsonl)
160
+ - Test script updated (referenced deleted files)
161
+ - Node engine requirement updated to >=18.0.0
162
+ - Tool count console message corrected (66 tools)
163
+ - SSE heartbeat `.unref()` added
164
+ - Monitor workspace log capped with safe fallback
165
+ - Edit history capped at 10 entries per message
166
+
3
167
  ## [5.1.0] - 2026-03-19
4
168
 
5
- ### Major — True Autonomy Engine + Team Intelligence + Scale to 100
169
+ ### Major — True Autonomy Engine + Team Intelligence + Scale to 100 Agents
6
170
 
7
171
  Built by a 4-agent team (Backend, Protocol, Tester, Coordinator) + Advisor agent, working autonomously.
8
172
 
@@ -60,39 +224,16 @@ Built by a 4-agent team (Backend, Protocol, Tester, Coordinator) + Advisor agent
60
224
 
61
225
  ## [4.3.0] - 2026-03-17
62
226
 
63
- ### Major — 3D Hub Game World, World Builder, Jukebox
227
+ ### Major — Agent Respawn, Team Automation
64
228
 
65
229
  Built by a 5-agent team (Architect, Builder, Tester, Optimizer, Protocol) working in parallel.
66
230
 
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
231
  ### 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.
232
+ - **Respawn button** — One-click respawn for dead agents. Generates a resume prompt from the agent's recovery snapshot, profile, active tasks, and recent message history.
233
+ - **Respawn API** — `GET /api/agents/:name/respawn-prompt` endpoint returns full context for agent resurrection.
87
234
 
88
235
  ### 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
236
  - **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
237
 
97
238
  ### Security
98
239
  - npm audit: 0 vulnerabilities
@@ -178,6 +319,11 @@ Massive scaling overhaul designed, implemented, and audited by a 3-agent team (A
178
319
  - **Input type validation** — `reply_to` and `channel` parameters type-checked as strings in `send_message`.
179
320
  - **Channel name validation fix** — error message corrected from "1-30 chars" to "1-20 chars" to match `sanitizeName()`.
180
321
 
322
+ ## [3.10.1] - 2026-03-17
323
+
324
+ ### Added
325
+ - **Stuck detector** — `listen_group()` detects when an agent has sent the same error or message pattern 3 times in a row and injects targeted hints to break the loop
326
+
181
327
  ## [3.10.0] - 2026-03-17
182
328
 
183
329
  ### Added — Dynamic Guide with Progressive Disclosure
@@ -250,11 +396,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
250
396
  - Own messages are auto-consumed on sight
251
397
  - Own messages still visible in `context` array for reference
252
398
 
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
399
  ## [3.7.0] - 2026-03-16
259
400
 
260
401
  ### Added — Agent Ecosystem (20 new tools, 52 total)
@@ -280,8 +421,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
280
421
  - **Auto-reputation tracking** — global hook tracks every action (messages, tasks, reviews, decisions, KB writes) without manual calls
281
422
 
282
423
  ### 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
424
  - **Status color logic** — green = listening, red = active but not listening, yellow = sleeping, dim = dead
286
425
 
287
426
  ## [3.6.2] - 2026-03-16
@@ -293,18 +432,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
293
432
  - **Agent status in batch** — `listen_group` returns `agents_status` map showing who is `listening` vs `working`
294
433
  - **listen_group retry** — timeout now returns `retry: true` with explicit instruction to call again immediately
295
434
  - **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
435
 
309
436
  ## [3.6.0] - 2026-03-16
310
437
 
@@ -324,31 +451,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
324
451
  - **Dashboard Docs tab** — in-dashboard documentation with full tool reference, managed mode guide, architecture, version history
325
452
  - **Dashboard managed mode badge** — header shows current phase and floor status when managed mode is active
326
453
 
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
454
  ### Security
353
455
  - **Config file lock** — `config.json` read-modify-write operations now use file-based locking (same pattern as `agents.json`)
354
456
  - **Reserved name blocklist** — `__system__`, `__all__`, `__open__`, `__close__`, `system` cannot be registered as agent names
@@ -356,12 +458,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
356
458
  - **Floor enforcement on all message paths** — `handoff` and `share_file` now enforce managed mode floor control
357
459
  - **Branch-aware system messages** — floor/phase notifications sent to recipient's branch, not sender's
358
460
  - **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
461
 
366
462
  ## [3.5.0] - 2026-03-15
367
463
 
@@ -509,6 +605,14 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
509
605
  - Copy-to-clipboard double-escaped HTML entities in template prompts
510
606
  - Duplicate deleteMessage function shadowing
511
607
 
608
+ ## [3.3.3] - 2026-03-15
609
+
610
+ ### Fixed
611
+ - iOS dashboard crash — `Notification` API unavailable on iOS Safari; wrapped in availability check
612
+ - Mobile UI overhaul — layout, font sizes, and button targets reworked for phone-sized screens
613
+ - Phone sync — wait for `loadProjects()` to complete before first poll; auto-select project when only one is registered
614
+ - LAN mode now persists across dashboard restarts (stored in `.lan-token` file)
615
+
512
616
  ## [3.3.2] - 2026-03-14
513
617
 
514
618
  ### Changed
@@ -518,6 +622,71 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
518
622
  - Added .npmignore for cleaner package distribution
519
623
  - Version synced across all files (server, CLI, dashboard)
520
624
 
625
+ ## [3.3.1] - 2026-03-14
626
+
627
+ ### Added
628
+ - SECURITY.md with vulnerability disclosure policy
629
+ - CHANGELOG.md added to published npm package
630
+ - Version strings synced across server, CLI, dashboard, and package.json
631
+
632
+ ## [3.3.0] - 2026-03-14
633
+
634
+ ### Security — Deep Hardening
635
+ - **Sandbox hardening** — eval and Function constructor blocked in message rendering context
636
+ - **Anti-impersonation** — agents cannot register names that shadow existing live agents
637
+ - **Rate limiting** — per-agent send rate limiting (10 messages/10s) to prevent broadcast storms
638
+ - **Input sanitization** — agent name, message content, and task fields validated and length-capped on all endpoints
639
+ - Discord invite link added to README and docs
640
+
641
+ ## [3.2.3] - 2026-03-14
642
+
643
+ ### Fixed
644
+ - README added to npm package (`files` array in package.json)
645
+
646
+ ## [3.2.2] - 2026-03-14
647
+
648
+ ### Security
649
+ - CSRF protection added to all mutating dashboard endpoints
650
+ - XSS fixes in message rendering and export
651
+ - Symlink traversal prevention in file-serving routes
652
+ - Command injection guards on reset and init paths
653
+ - DoS mitigation: request body size limits, JSON parse error handling
654
+
655
+ ## [3.2.1] - 2026-03-14
656
+
657
+ ### Changed
658
+ - MCP SDK updated to 1.27.1
659
+ - Removed unused `exec` import from server.js
660
+
661
+ ## [3.2.0] - 2026-03-14
662
+
663
+ ### Added
664
+ - Documentation site scaffolding
665
+ - LICENSE file (MIT)
666
+ - MCP SDK version pinned to prevent breaking changes on install
667
+
668
+ ### Fixed
669
+ - Reset crash when `.neohive/` directory contained unexpected files
670
+ - Version strings updated across all files
671
+
672
+ ## [3.1.1] - 2026-03-14
673
+
674
+ ### Added
675
+ - **Phone access modal** — dashboard shows QR code and LAN URL for mobile access
676
+ - **LAN toggle** — enable/disable LAN mode without restarting the server
677
+ - **Project auto-init** — adding a folder via the dashboard now initializes it if no `.neohive/` exists
678
+
679
+ ### Fixed
680
+ - Avatar undefined in messages — `getMsgAvatar()` moved before conditional rendering
681
+ - Phone URL now includes the active project for automatic sync on mobile open
682
+ - Auto-switch to newly added project after adding via dashboard
683
+
684
+ ## [3.1.0] - 2026-03-14
685
+
686
+ ### Fixed
687
+ - LAN IP detection now prefers real interface addresses over link-local (`169.254.x.x`) and loopback addresses
688
+ - LAN toggle no longer kills the dashboard process (use `handle.close()` not `server.close()`)
689
+
521
690
  ## [3.0.0] - 2026-03-14
522
691
 
523
692
  ### Added — Agent Profiles
@@ -586,6 +755,21 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
586
755
  - Registration guard on `reset` tool
587
756
  - Removed absolute file paths from share_file responses
588
757
 
758
+ ## [2.4.0] - 2026-03-14
759
+
760
+ ### Added
761
+ - Agent metrics panel — per-agent message counts, average response time, and activity sparklines
762
+ - Shareable HTML export — `/api/export` endpoint generates a self-contained replay file
763
+ - Export dropdown (HTML + Markdown formats)
764
+ - Stats panel in dashboard sidebar
765
+
766
+ ## [2.3.1] - 2026-03-14
767
+
768
+ ### Added
769
+ - Context hints — agents warned when conversation exceeds 50 messages
770
+ - Auto-compact — `messages.jsonl` automatically compacted when exceeding 500 lines
771
+ - Project auto-discover — dashboard scans sibling directories and suggests projects to add
772
+
589
773
  ## [2.3.0] - 2026-03-14
590
774
 
591
775
  ### Added
@@ -599,6 +783,14 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
599
783
  - Handoff message rendering (purple banner)
600
784
  - File share message rendering (file icon + size)
601
785
 
786
+ ## [2.2.0] - 2026-03-14
787
+
788
+ ### Added
789
+ - Agent templates — 4 built-in conversation starters (pair, team, review, debate)
790
+ - Conversation summary tool (`get_summary`) for generating recaps
791
+ - Auto-archive — conversations archived automatically before reset
792
+ - Dashboard: "New Conversation" flow
793
+
602
794
  ## [2.1.0] - 2026-03-14
603
795
 
604
796
  ### Added