Skip to content

feat(windsurf): add Windsurf (Codeium) integration via MCP#2358

Open
DK09876 wants to merge 1 commit into
mainfrom
feat/windsurf-integration
Open

feat(windsurf): add Windsurf (Codeium) integration via MCP#2358
DK09876 wants to merge 1 commit into
mainfrom
feat/windsurf-integration

Conversation

@DK09876

@DK09876 DK09876 commented Jun 22, 2026

Copy link
Copy Markdown
Contributor

Summary

Adds a first-party Windsurf (Codeium) integration: a config-only CLI (hindsight-windsurf) that gives Cascade persistent long-term memory through the Hindsight MCP server — mirroring the MCP-convergence pattern of the Zed / Continue / OpenHands / GitHub Copilot integrations.

hindsight-windsurf init:

  • Wires the Hindsight MCP server into Windsurf's global ~/.codeium/windsurf/mcp_config.json under mcpServers as a remote server (serverUrl + optional Authorization: Bearer header — Windsurf connects to the HTTP endpoint directly, no bridge).
  • Writes an always-on recall/retain rule to .windsurf/rules/hindsight.md (trigger: always_on frontmatter), a dedicated sentinel-marked file so update/uninstall never touch the user's other rules.

Both config formats were verified against Windsurf's current live docs.

Package (hindsight_windsurf)

  • config.py — layered defaults → ~/.hindsight/windsurf.json → env (HINDSIGHT_WINDSURF_BANK_ID), bank defaults to windsurf
  • mcp_config.pymcpServers.hindsight writer; strict-JSON parse-or-print fallback (never rewrites a file it can't round-trip)
  • rules.py — dedicated .windsurf/rules/hindsight.md with always_on frontmatter
  • cli.pyinit / status / uninstall (+ --print-only)

Meets the merge checklist

  • Tests exercise the framework — 25 unit tests (config / mcp_config / rules / cli) + a gated live-MCP-endpoint E2E (requires_real_llm)
  • CI jobtest-windsurf-integration added to test.yml (detect-changes filter, output decl, aggregation list)
  • Release registration — added to release-integration.sh VALID_INTEGRATIONS and generate_changelog.py INTEGRATIONS
  • Docs / registryintegrations.json entry (strict JSON; check-integrations.mjs passes), docs-integrations/windsurf.md, icon, README row

Validation

  • pytest -m 'not requires_real_llm' → 25 passed; ruff (repo-root config) clean; uv build + uv.lock committed
  • Real-app smoke against a local Hindsight: init wrote the correct mcp_config.json + always_on rule file, and a live MCP handshake (initialize → tools/list → recall) against that exact endpoint returned all seeded facts — same validation depth as Zed/OpenCode.

🤖 Generated with Claude Code

Config-only CLI that wires the Hindsight MCP server into Windsurf's
~/.codeium/windsurf/mcp_config.json (mcpServers, remote serverUrl + auth
header) and writes an always-on recall/retain rule to
.windsurf/rules/hindsight.md (trigger: always_on). Cascade then has
recall/retain/reflect and uses them automatically.

- hindsight_windsurf: config, mcp_config (strict-JSON parse-or-print),
  rules (dedicated sentinel-marked file), cli (init/status/uninstall)
- 25 unit tests + gated live-MCP-endpoint E2E
- CI job, release + changelog registries, docs page, icon, README row

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant