Skip to content

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

Merged
DK09876 merged 4 commits into
mainfrom
feat/windsurf-integration
Jun 24, 2026
Merged

feat(windsurf): add Windsurf (Codeium) integration via MCP#2358
DK09876 merged 4 commits 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

DK09876 and others added 4 commits June 22, 2026 10:32
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>
lint.sh runs 'ruff format'; collapse the --rules-path add_argument to one
line so verify-generated-files passes.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Replace the placeholder abstract mark with the official Windsurf logo
(simple-icons, CC0), matching the real-brand-logo convention used by the
other integration icons.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…tion

# Conflicts:
#	hindsight-integrations/README.md
#	scripts/release-integration.sh
@DK09876
DK09876 merged commit 7194f98 into main Jun 24, 2026
496 of 500 checks passed
@DK09876
DK09876 deleted the feat/windsurf-integration branch June 24, 2026 16:58
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