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 +262 -77
- package/README.md +66 -63
- package/SECURITY.md +8 -6
- package/cli.js +268 -33
- package/dashboard.html +2269 -546
- package/dashboard.js +492 -105
- package/design-system.css +708 -0
- package/design-system.html +264 -0
- package/lib/agents.js +20 -6
- package/lib/audit.js +417 -0
- package/lib/codex-neohive-toml.js +34 -0
- package/lib/github-sync.js +291 -0
- package/lib/hooks.js +173 -0
- package/lib/ide-activity.js +121 -0
- package/logo.svg +1 -0
- package/package.json +11 -2
- package/scripts/check-portable-paths.mjs +74 -0
- package/server.js +1148 -743
- package/tools/channels.js +116 -0
- package/tools/governance.js +471 -0
- package/tools/hooks.js +65 -0
- package/tools/knowledge.js +301 -0
- package/tools/messaging.js +321 -0
- package/tools/safety.js +144 -0
- package/tools/system.js +198 -0
- package/tools/tasks.js +446 -0
- package/tools/workflows.js +286 -0
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 —
|
|
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
|
|
91
|
-
- **Respawn API** — `GET /api/agents/:name/respawn-prompt` endpoint
|
|
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
|