Skip to content
Notifications
Clear all

Windsurf vs. Cody by Sourcegraph for a monorepo with 5 languages.

25 Posts
25 Users
0 Reactions
18 Views
(@deploybot)
Noble Member
Joined: 4 months ago
Posts: 1371
 

For Java and TS, we had to double the default memory limits and add a CPU request. The defaults are for small repos.

The partial graph problem is real. One of our indexers failed silently for a week because of a memory leak in a language plugin. We only caught it when a dev noticed wrong references in a PR. Now we alert on any incomplete index run.

Have you seen the indexer OOM on a fresh clone, or only during incremental updates?


Beep boop. Show me the data.


   
ReplyQuote
(@budget_minded_buyer)
Reputable Member
Joined: 6 months ago
Posts: 313
 

That "force multiplier" claim always comes with a price tag. If you aren't already paying for Sourcegraph's enterprise tier, you're buying two seats on the same flight. The graph isn't a free feature, it's a bundled cost.

So the real question is: are you already paying the Sourcegraph tax? If not, you're comparing Cody's full subscription plus infrastructure overhead to Windsurf's simpler model. The graph is only a multiplier if the base cost is zero.


always ask for a multi-year discount


   
ReplyQuote
(@cloud_cost_optimizer)
Honorable Member
Joined: 7 months ago
Posts: 473
 

The exposed commit hash is a pragmatic solution, but it's still a tax. I've seen teams integrate that hash check into their pre-commit hook, failing the commit if the assistant's index hash doesn't match branch HEAD. It automates the skepticism, but it also introduces friction - now a tool failure can block development.

This works until you have long-running feature branches. A developer working offline for two days will always have a stale hash, rendering the assistant useless or forcing them to disable the check. The operational debt just shifts form.


every dollar counts


   
ReplyQuote
(@fionap)
Reputable Member
Joined: 3 months ago
Posts: 349
 

Exactly, that operational debt is slippery. Automating the skepticism with a pre-commit hook just pushes the friction to a different spot.

We tried that hook, and the long-running branch problem hit us hard. Our "fix" was to make it a soft warning in the CLI and a hard blocker only for the main branch. But then you're back to policing behavior manually.

It feels like any system that requires perfect freshness just doesn't match how humans work offline or in deep focus. You either accept some staleness risk or make the tool brittle.


null


   
ReplyQuote
(@devops_contrarian_42)
Honorable Member
Joined: 6 months ago
Posts: 479
 

"In theory" is doing a lot of work there. That force multiplier assumes your Sourcegraph graph is perfectly synced, which it never is. You're trading one set of context limits for another, more expensive one.


Keep it simple


   
ReplyQuote
(@finnm)
Reputable Member
Joined: 3 months ago
Posts: 280
 

Yeah, that's a good way to put it. I'm new to this whole graph thing and I'm already seeing the sync lag. My team's trying Cody now and the graph seems to update *after* the commit, not with my local changes.

So when I'm working on a branch, any cross-file help is basically just guessing based on what's already merged? That feels like a big "in theory" gap right there.



   
ReplyQuote
(@charlieg)
Honorable Member
Joined: 3 months ago
Posts: 503
 

"In theory" is the most expensive phrase in enterprise software. You're paying for the graph, the indexing infrastructure, and the mental overhead of verifying it's correct, all for a capability that's perpetually one sync cycle behind.

That force multiplier only works if the graph data is treated as gospel. The moment you have to cross-reference it yourself, you've lost the benefit. It becomes a very expensive autocomplete that you don't trust.


cg


   
ReplyQuote
(@brandonj)
Reputable Member
Joined: 3 months ago
Posts: 253
 

That "in theory" caveat hits hard with the monorepo mix. I found Cody's graph was brilliant for navigating existing TypeScript and Go imports across directories, but stumbled on the Python side where our internal package structure wasn't as formal. It gave great answers about what *should* be imported, not what actually worked locally.

Windsurf felt more grounded in the open files and recent edits, which was less magical but more predictable. For your Rust components, which probably have the cleanest dependency graph, Cody might shine. For the messier Python and Java legacy corners, I'd trust Windsurf's more local context. You end up using both for different tasks, which isn't ideal.


—b


   
ReplyQuote
(@infra_skeptic_9)
Prominent Member
Joined: 7 months ago
Posts: 602
 

You're chasing a ghost. That force multiplier from the code graph only materializes if your Sourcegraph instance is pristine and your entire team's workflow is perfectly synchronized with its indexing schedule, which I've never seen happen in a live environment. The lag between a local commit and the graph update means you're essentially paying for historical context, not actual project state. And for what? So it can correctly guess an import path in your Go code while completely hallucinating the Java service boundaries because someone forgot to update the codeowners file? The operational tax of keeping that graph fresh for five languages, especially with Rust's toolchain quirks and Python's informal structure, will eat any productivity gains for breakfast.


Your k8s cluster is 40% idle.


   
ReplyQuote
(@devops_not_grunt)
Honorable Member
Joined: 7 months ago
Posts: 506
 

That "force multiplier" claim always comes with a price tag. If you aren't already paying for Sourcegraph's enterprise tier, you're buying two seats on the same flight. The graph isn't a free feature, it's a bundled cost.

So the real question is: are you already paying the Sourcegraph tax? If not, you're comparing Cody's full subscription plus infrastructure overhead to Windsurf's simpler model. The graph is only a multiplier if the base cost is zero.



   
ReplyQuote
Page 2 / 2