Skip to content

v1.7.6

Choose a tag to compare

@github-actions github-actions released this 01 Jul 17:29

What's Changed

Security

  • Project directory sandboxing: The project and cwd MCP inputs are now validated against an allowlist before any filesystem operations or spawns occur. This prevents callers from writing session files or spawning sidecars in arbitrary system directories (e.g., /etc, C:/Windows), while still allowing legitimate use cases like --cwd under your home directory or the MCP client's advertised root.
  • Folded-back sidecar output is fenced as untrusted: Summaries returned by amicus_read (produced by arbitrary models) are now wrapped in a read-only fence, ensuring model prose entering the orchestrator's context is marked as data rather than instructions.
  • Content view no longer shares the privileged bridge: The embedded OpenCode web view now uses a minimal preload with no access to privileged IPC handlers. The toolbar keeps the full bridge, and IPC handlers validate the sender to ensure only the toolbar can trigger updates, settings, or fold actions.

Fixed

  • Server crashes are now detected and restart the OpenCode server: The crash/restart machinery was previously unreachable because no exit listener was ever attached. A server exit is now properly wired to trigger a restart.
  • Session metadata writes are atomic: Metadata files now use atomic write-then-rename to prevent corruption if a crash occurs mid-write, eliminating the risk of silently masked abort markers.
  • Port lookup works on Windows: Stale-process cleanup now uses cross-platform netstat-based lookup instead of the hardcoded lsof (which was a no-op on Windows).
  • Fan-out leg failures no longer sink the entire wave: When a leg's setup throws an error, it is now converted to an error result and wave.json is still written instead of abandoning the whole run.
  • Setup window can't hang on spawn failures: Spawn errors now cleanly resolve instead of leaving the launch promise pending, and the Electron child is killed on parent exit.
  • Project-scoped opencode.json resolves correctly: Configuration files are now resolved relative to the target project directory, not the launcher's working directory.
  • Council verdicts and tooling improvements: Single-peer-agreed findings now count as corroborated, unknown verdicts are guarded against NaN values, tool-call turns render a summary instead of blank, and session routes use canonical path separators to avoid mismatch issues on Windows.

Infrastructure

  • New helper modules: Added project-root-allowlist.js for project validation, atomic-write.js for safe metadata writes, format-duration.js for consistent duration formatting, ipc-guard.js for sender validation, and preload-content.js for the content view isolation.
  • Improved command parsing: MCP command specifications are now parsed with quote awareness, and model object shapes are validated before use.

Full Changelog: v1.7.5...v1.7.6