-
Notifications
You must be signed in to change notification settings - Fork 0
Changelog
nick3 edited this page May 28, 2026
·
1 revision
Major milestones in the ClusterSpace codebase. For the full git history: git log in the main repo.
Completed in series after the initial AI subsystem landed. Each phase shipped as a single commit; the autonomous goal runner is the headline outcome.
- Extracted the giant ~3000-line
executeToolswitch into category files undersrc/main/ai-tools/ - Self-describing
ToolDef<TArgs, TResult>shape with auto-listing for the LLM -
toolRegistrysingleton with hot-reload of user plugin tools from<userData>/.../config/tools/*.js - Reduces
ai-manager.tsto ~750 lines - See Tool-Registry · Plugin-Authoring
-
PagedTextResultenvelope for large text outputs:{content, hasMore, nextCursor?, totalBytes} - Applied to
read_terminal_output,browser_get_content,browser_get_axtree - Model taught about pagination in the default system prompt
-
AIMemoryStore.getOrCreateConversation(providerId, workspaceId?, paneId?)— paneId added to match key - Builder agent in pane A no longer pollutes Tester agent in pane B
- New
goal-policy.ts: risk ladder (read_only → write_local → network_get → network_write → spends_money) - Per-tool permissions table for all 50+ tools
-
evaluate()returns allow/deny/needsApproval verdicts - Sandbox-dir support for file-touching tools
- See Goal-Policy-and-Risk-Levels
- New
goal-store.ts:GoalCheckpoint,GoalStep,GoalStatus - electron-store backed, 50-goal cap (in-flight always kept), 500-step cap per goal (head+tail preservation)
- IPC handlers:
goal:list / get / list-resumable / delete / prune
- New
goal-runner.ts: the headline autonomous loop - Wall-clock cap → external abort → pause → streamMessage → for each tool_call: dispatch + log step → pendingClaim/pendingAbort handling
- Two transient tools:
claim_complete,abort_with_report - Shell + manual success criterion verifiers (model_question + json_predicate marked TODO)
- See Goal-Runner-Overview
- Sibling model call every N non-transient steps
- Verdicts: PROGRESSING / STUCK / ACHIEVED / MISLED
- STUCK injects "try a different angle" system message
- ACHIEVED short-circuits to verification
- MISLED re-anchors on original goal
- model_question verifier implemented (strict YES/NO judge call)
- Critic can use a separate cheaper provider (
criticProviderId) - See Critic-and-Replan
-
GoalDashboard.tsx: three-column live UI with goal list, step log, critic+verification rail -
GoalCreateDialog.tsx: form for new goals (all 4 criterion types, 5 risk levels, sandbox, wall clock, critic interval) - Live event streaming via
goal:eventIPC channel - Status bar Goals pill with running-count pulse
-
Ctrl+Shift+Gkeyboard shortcut - See Goal-Dashboard
- New
browser_verify_visual_statetool: strict YES/NO vision judge for "did the expected thing happen?" - New
browser_describe_screentool: free-form vision description for "where am I?" -
AIManager.buildVisionHelpers()exposed viaToolContext.vision - Falls back to main model for dual-purpose providers (Claude, GPT-4o)
- See Vision-Verification
- trim-regression: long conversations were stripping the original user message, causing strict OpenAI-compat endpoints to reject with "No user query found in messages." Fix: re-anchor first user message after trimming.
-
AIChatPanel.tsxwith three states (closed / minimized / full) - Streaming SSE parsing with tool-call accumulation
- Per-provider
AISettingsDialog.tsxwith Discover for local providers - Provider-agnostic OpenAI-compat protocol — works with Claude, OpenAI, Ollama, LM Studio
- AI memory store with conversation history (50 × 100 msgs)
- Per-pane
PaneAgentState+ multi-paneOrchestrationGoal+ event log -
FleetDashboard.tsxfor multi-pane visibility - 6 default personas, 2 skills, 2 task templates loaded from
resources/defaults/
- Full Chromium webview with chrome controls (back/forward/reload/address bar)
- Multi-tab with persisted state (title, favicon, URL)
- Bookmarks, history, downloads, find-in-page
- Saved logins per-origin via Electron
safeStorage - Custom user agent presets to dodge bot detection
- Drag-to-move via title bar
- Right-click context menu for convert pane / open DevTools / etc.
- Each tab in a terminal pane = its own SSH+tmux session
- Pure-CSS tab switching (no
tmux switch-clientshell command leakage) - Tmux session picker with auto-list (key auth) + manual entry + legacy-name suggestion
- Close-pane confirm dialog with "keep session" / "destroy session" options
-
Ctrl+Calways SIGINT (never copies) -
Ctrl+Shift+Cfor copy -
Ctrl+Vbracketed-paste-aware - Per-pane "Disable App Mouse" toggle for native selection over tmux mouse mode
- Removed auto-copy on mouseup (broke too often with mouse-mode apps)
- PTYs are backgrounded, not killed, on workspace switch
- Switch back and your htop/build/stream is still running
- One-time migration in
legacy-rename.ts: copiesfleet-term-data/toclusterspace-data/, renames files in place - Legacy tmux session names suggested in the picker
- Window state persistence (position + size + maximized)
- Drag-and-drop pane swap (Carolina-blue highlight)
- Real-time drag-resize via gutter handles
- Multi-workspace tab bar with persistent layouts
- Broadcast mode (
Ctrl+B) - Command palette (
Ctrl+P) - SSH server manager with key + password auth
- Workspace export/import as portable JSON
ClusterSpace doesn't follow strict semver yet — v1.0.x is the post-rename release line and most commits land as patches. Major UX-breaking changes will bump the minor when they happen.
- Roadmap — what's next
- Contributing — how to add changelog entries
-
Main repo
git log— full history
ClusterSpace · Issues · Releases · MIT License · Edit any page via the Edit button (top right of the wiki).
- Workspaces-and-Layout
- Terminal-Panes
- Per-Pane-Tabs
- SSH-and-tmux
- Browser-Panes
- Saved-Logins
- Command-Palette
- Broadcast-Mode
- Settings-and-Configuration
- AI-Overview
- AI-Providers
- AI-Chat-Panel
- AI-Tools-Reference
- Personas
- Skills
- Task-Templates
- Agent-Orchestration
- Fleet-Dashboard
- Goal-Runner-Overview
- Starting-a-Goal
- Success-Criteria
- Goal-Policy-and-Risk-Levels
- Critic-and-Replan
- Vision-Verification
- Goal-Dashboard