neohive 6.0.3 → 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,5 +1,47 @@
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
+
3
45
  ## [6.0.3] - 2026-04-03
4
46
 
5
47
  ### Fixed
@@ -7,9 +49,124 @@
7
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.
8
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.
9
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
+
10
167
  ## [5.1.0] - 2026-03-19
11
168
 
12
- ### Major — True Autonomy Engine + Team Intelligence + Scale to 100
169
+ ### Major — True Autonomy Engine + Team Intelligence + Scale to 100 Agents
13
170
 
14
171
  Built by a 4-agent team (Backend, Protocol, Tester, Coordinator) + Advisor agent, working autonomously.
15
172
 
@@ -67,39 +224,16 @@ Built by a 4-agent team (Backend, Protocol, Tester, Coordinator) + Advisor agent
67
224
 
68
225
  ## [4.3.0] - 2026-03-17
69
226
 
70
- ### Major — 3D Hub Game World, World Builder, Jukebox
227
+ ### Major — Agent Respawn, Team Automation
71
228
 
72
229
  Built by a 5-agent team (Architect, Builder, Tester, Optimizer, Protocol) working in parallel.
73
230
 
74
- ### Added — 3D Hub Game Features
75
- - **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.
76
- - **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.
77
- - **Minimap** — 140px radar overlay showing agent positions (color-coded by status) and player location. Only visible in fullscreen mode.
78
- - **Controls HUD** — Press H to toggle keybind reference panel. Auto-shows for 4 seconds on world entry.
79
- - **Fullscreen** — Dashboard fullscreen button now fullscreens only the 3D Hub (game mode), not the entire page.
80
-
81
- ### Added — Character Intelligence
82
- - **Emotion system** — 11 emotion presets (happy, frustrated, thinking, excited, surprised, etc.) with auto-triggers from message content. Temporary face expression changes with auto-revert.
83
- - **Social visits** — Idle agents randomly walk to other agents' desks to chat (max 2 concurrent walks).
84
- - **Glance reactions** — Sitting agents turn heads toward speakers when messages are sent.
85
- - **Head nods** — Periodic nod animation when being visited by another agent.
86
- - **Auto coffee break** — Sleeping agents walk to rest area, return to desk when active again.
87
- - **Non-blocking input overlay** — Replaced browser prompt() dialogs with styled HTML overlay for click commands.
88
-
89
231
  ### Added — Dashboard
90
- - **Respawn button** — One-click respawn for dead agents. Generates resume prompt from recovery snapshot + profile + tasks + recent history.
91
- - **Respawn API** — `GET /api/agents/:name/respawn-prompt` endpoint with full context generation.
92
- - **World Builder API** — `GET /api/world-layout` + `POST /api/world-save` for persistent world placements.
93
- - **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.
94
234
 
95
235
  ### Fixed
96
- - **Manager chair spawn** — Stand-up now places player in front of desk (toward door), preventing wall collision.
97
- - **CSRF on 3D Hub** — Added X-LTT-Request header to all office module POST requests (builder save, command menu actions).
98
236
  - **Respawn endpoint validation** — Agent name validated (alphanumeric, max 20 chars) to prevent path traversal.
99
- - **Builder lazy-load** — Dynamic import() with silent failure prevents builder issues from breaking 3D Hub.
100
- - **Jukebox popup orphan** — Module-scoped reference survives overlay dismiss/reopen cycles.
101
- - **Builder drag listener leak** — Stored refs removed in hidePanel().
102
- - **Jukebox prompt cleanup** — dismissJukebox() called in office3dStop().
103
237
 
104
238
  ### Security
105
239
  - npm audit: 0 vulnerabilities
@@ -185,6 +319,11 @@ Massive scaling overhaul designed, implemented, and audited by a 3-agent team (A
185
319
  - **Input type validation** — `reply_to` and `channel` parameters type-checked as strings in `send_message`.
186
320
  - **Channel name validation fix** — error message corrected from "1-30 chars" to "1-20 chars" to match `sanitizeName()`.
187
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
+
188
327
  ## [3.10.0] - 2026-03-17
189
328
 
190
329
  ### Added — Dynamic Guide with Progressive Disclosure
@@ -257,11 +396,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
257
396
  - Own messages are auto-consumed on sight
258
397
  - Own messages still visible in `context` array for reference
259
398
 
260
- ### Added — 3D World: Player Mode & Improvements
261
- - **Player character** — users can spawn as a controllable character in the 3D Hub
262
- - **Spectator camera improvements** — refined controls and speed
263
- - **Environment updates** — campus environment refinements
264
-
265
399
  ## [3.7.0] - 2026-03-16
266
400
 
267
401
  ### Added — Agent Ecosystem (20 new tools, 52 total)
@@ -287,8 +421,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
287
421
  - **Auto-reputation tracking** — global hook tracks every action (messages, tasks, reviews, decisions, KB writes) without manual calls
288
422
 
289
423
  ### Fixed
290
- - **Monitor screens stay red** when agent stops listening — persistent color state instead of 300ms flash
291
- - **"NOT LISTENING" warning** shown prominently on desk monitor canvas
292
424
  - **Status color logic** — green = listening, red = active but not listening, yellow = sleeping, dim = dead
293
425
 
294
426
  ## [3.6.2] - 2026-03-16
@@ -300,18 +432,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
300
432
  - **Agent status in batch** — `listen_group` returns `agents_status` map showing who is `listening` vs `working`
301
433
  - **listen_group retry** — timeout now returns `retry: true` with explicit instruction to call again immediately
302
434
  - **next_action field** — successful `listen_group` response tells agent to call `listen_group()` again after responding
303
- - **Ctrl key removed from camera** — no longer moves camera down (Q/E only)
304
-
305
- ### Added — 3D World: Campus Environment & Navigation
306
- - **Campus environment** — new outdoor environment option with buildings, paths, green spaces
307
- - **Navigation system** — pathfinding for agents to walk around obstacles instead of through walls
308
- - **Door animations** — manager office door slides open when agents approach, closes when they leave
309
- - **Roof visibility** — roof hides when camera is above ceiling height
310
-
311
- ## [3.6.1] - 2026-03-16
312
-
313
- ### Fixed
314
- - **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.
315
435
 
316
436
  ## [3.6.0] - 2026-03-16
317
437
 
@@ -331,31 +451,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
331
451
  - **Dashboard Docs tab** — in-dashboard documentation with full tool reference, managed mode guide, architecture, version history
332
452
  - **Dashboard managed mode badge** — header shows current phase and floor status when managed mode is active
333
453
 
334
- ### Added — 3D World Improvements
335
-
336
- - **Spectator camera** — free-fly WASD + mouse camera replacing OrbitControls, no distance limits, Shift for fast movement, Q/E up/down
337
- - **6 new hairstyles** — curly, afro, bun, braids, mohawk, wavy
338
- - **6 new eye styles** — surprised, angry, happy, wink, confident, tired
339
- - **5 new mouth styles** — grin, frown, smirk, tongue, whistle
340
- - **6 outfit types** — hoodie, suit, dress, lab coat, vest, jacket with color customization
341
- - **3 body types** — default, stocky, slim (scale multipliers on torso/legs/arms)
342
- - **5 gesture animations** — wave, think, point, celebrate, stretch with idle gesture system
343
- - **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
344
- - **Agent behavior** — realistic conversation distance (1.8m), listener turns toward speaker, broadcast triggers wave gesture, task completion triggers celebrate
345
- - **3D Hub** — renamed from "Office", now default tab on page load
346
- - **Speed slider** — camera speed control in toolbar (1-20)
347
-
348
- ### Added — 3D Virtual Office (v1 foundation from previous session)
349
-
350
- - **Modular 3D engine** — 14 ES modules under `office/`
351
- - **Expanded office** — 28x16 floor with right wing, dividing wall, LOUNGE archway
352
- - **Dressing room** — mirror, raised platform, privacy partitions, coat hooks
353
- - **Rest area** — beanbags, circular rug, side table, warm ambient lighting
354
- - **Click-to-command** — Dressing Room, Go Rest, Back to Work, Edit Profile
355
- - **Character designer** — 5-tab panel with live 3D rotating preview
356
- - **Accessory system** — glasses, headwear, neckwear with color customization
357
- - **Mod system infrastructure** — GLB/GLTF pipeline with validation
358
-
359
454
  ### Security
360
455
  - **Config file lock** — `config.json` read-modify-write operations now use file-based locking (same pattern as `agents.json`)
361
456
  - **Reserved name blocklist** — `__system__`, `__all__`, `__open__`, `__close__`, `system` cannot be registered as agent names
@@ -363,12 +458,6 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
363
458
  - **Floor enforcement on all message paths** — `handoff` and `share_file` now enforce managed mode floor control
364
459
  - **Branch-aware system messages** — floor/phase notifications sent to recipient's branch, not sender's
365
460
  - **Phase history cap** — limited to 50 entries to prevent config.json bloat
366
- - `/office/*` and `/mods/*` static routes with path traversal protection
367
- - Mod file type allowlist blocks all executable formats
368
- - GLB magic bytes validation (server + client)
369
-
370
- ### Removed
371
- - ~1,100 lines of dead 2D isometric office code
372
461
 
373
462
  ## [3.5.0] - 2026-03-15
374
463
 
@@ -516,6 +605,14 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
516
605
  - Copy-to-clipboard double-escaped HTML entities in template prompts
517
606
  - Duplicate deleteMessage function shadowing
518
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
+
519
616
  ## [3.3.2] - 2026-03-14
520
617
 
521
618
  ### Changed
@@ -525,6 +622,71 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
525
622
  - Added .npmignore for cleaner package distribution
526
623
  - Version synced across all files (server, CLI, dashboard)
527
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
+
528
690
  ## [3.0.0] - 2026-03-14
529
691
 
530
692
  ### Added — Agent Profiles
@@ -593,6 +755,21 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
593
755
  - Registration guard on `reset` tool
594
756
  - Removed absolute file paths from share_file responses
595
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
+
596
773
  ## [2.3.0] - 2026-03-14
597
774
 
598
775
  ### Added
@@ -606,6 +783,14 @@ Redesigned from the ground up based on 3-agent collaborative testing and design
606
783
  - Handoff message rendering (purple banner)
607
784
  - File share message rendering (file icon + size)
608
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
+
609
794
  ## [2.1.0] - 2026-03-14
610
795
 
611
796
  ### Added