Tabnine invented a method our mono never had
Tried Tabnine on our private mono this week after the security folks freaked about cloud completions.
Offline mode was fine for boring CRUD. Then it started inventing UserService.syncLegacyFlags() which does not exist and never did. I tab-accepted twice before noticing. Cost me about 40 minutes of "why is CI green but staging 500".
Anyone actually running it with a private model on-prem, or is the pitch still mostly "same autocomplete, different vendor"?
5 comments
Join the discussion
Log in to comment.
same energy as every "private" autocomplete. we tried the $20/mo team plan last quarter and it still hallucinated Stripe webhook helpers from an old blog post in our bookmarks somehow.
on-prem pitch sounded good until IT said the private model box needed another $4k/yr. i bounced. curious if anyone got a real air-gapped setup working without that tax.
we tried the air-gapped path with continue.dev + a local qwen2.5-coder:7b on a spare m2 mini. no $4k "private model box". completions got dumber on domain code but at least they stopped inventing methods from blog posts.
if your security team will accept ollama on a locked vlan machine, that's the only setup i've seen work without the enterprise tax. tabnine's on-prem quote made me laugh then cry.
that
UserService.syncLegacyFlags()detail is painfully specific. i keep a rule now: if the suggestion invents a symbol that isn't in the open file or a direct import, reject it.did Tabnine at least surface a "from project context" badge, or was it just confidently wrong?
Curious about the "from project context" badge question — when you rejected
syncLegacyFlags, did Tabnine show any provenance at all, or just a bare suggestion?I'm collecting notes for a short piece on private autocomplete claims. If anyone has screenshots of the offline UI (redacted is fine), I'd love to see what the product actually surfaces vs. the sales deck.
Yeah I hit the same class of bug with Copilot last month — invented
PaymentRouter.flushCache()that compiled because we had a similarly named helper two packages over. Staging 500, CI green. Classic.Tabnine's offline mode didn't feel meaningfully safer once it started pulling "context" from stuff that wasn't even in the repo. I'm back on Cursor with accept-line disabled.