Cotabby 2: cut the Open Source path to base models#497
Merged
Conversation
Replaces the instruct GGUF catalog with base models (Qwen3.5 0.8B/2B/4B + Gemma E2B/E4B base, mradermacher i1 repos), renames tiers tabby-2-*, points onboarding and preferredModelNames at base (default Qwen3.5-2B-Base), and makes BaseCompletionPromptRenderer the unconditional local prompt. Removes the useBaseCompletionPipeline flag and its plumbing; the Open Source path is base-only. Old instruct GGUFs are no longer listed or supported. Foundation Models (Apple Intelligence) path is unchanged. Updated the two tests that pinned old filenames/display-names.
Deletes the now-unused LlamaPromptRenderer (the OSS path renders via BaseCompletionPromptRenderer after the cut). Moves the still-live LlamaPromptCacheHintTracker tests into their own file and drops the dead instruct-renderer tests from ExtendedContext/CustomRules/LanguageSupport. Also repoints the two prompt-content assertions (clipboard label, reference-notes label) to the base-prompt strings, fixing the two tests that were failing #497's CI, and updates stale comments that referenced the removed renderer.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Cotabby 2: hard cut of the Open Source (llama) path to base-model continuation. The instruct GGUF catalog is replaced with base models (Qwen3.5 0.8B/2B/4B + Gemma E2B/E4B base, from mradermacher's i1 GGUF repos), product tiers are renamed
tabby-2-*, onboarding andpreferredModelNamespoint at base (defaultQwen3.5-2B-Base), andBaseCompletionPromptRendererbecomes the unconditional local prompt. TheuseBaseCompletionPipelineflag is removed. Old instruct GGUFs are no longer listed or supported. The Foundation Models (Apple Intelligence) path is unchanged.Validation
Local app-hosted test execution is blocked by a Team ID / code-signing mismatch loading the xctest bundle into the signed host; CI's
xcodebuild test (macOS)job runs the suite with proper signing. Updated the two tests that pinned the old filenames/display-names (OnboardingTemplateRecommenderTests,ModelAndPresentationValueTests).Linked issues
None.
Risk / rollout notes
preferredModelNameslists base only, so the locator falls back to any other discovered GGUF until the user installs a base model. No forced-migration UX in this PR (a deliberate follow-up).expectedSizeBytes/sha256are nil (matching the reference app); the download manager skips size/hash validation when nil. Backfill from CDN headers later.OnboardingTemplateRecommendermemory thresholds and warning copy are still sized for the old ~5 GB models and are now over-conservative; existing-user base-model provisioning UX.🤖 Generated with Claude Code
Greptile Summary
This PR hard-cuts the Open Source (llama) path from instruction-tuned GGUFs to base-model continuation, replacing the
tabby-1-*instruct GGUF catalog with Qwen3.5 (0.8B/2B/4B) and Gemma E2B/E4B base checkpoints from mradermacher's i1 repos, renaming product tiers totabby-2-*, and makingBaseCompletionPromptRendererthe unconditional local prompt.LlamaPromptRenderer.swiftand its instruct-blob format entirely;BaseCompletionPromptRenderer(no task preamble, prefix-last, base-model conditioning) is now the sole local render path.useBaseCompletionPipelinefeature flag fromSuggestionSettingsSnapshot,SuggestionSettingsModel, and the Combine publisher stack; the flag is no longer read or written.RuntimeModelCatalog.downloadableModels,preferredModelNames,OnboardingTemplate.openSourceModelFilename, and all tests that pinned old filenames or label strings.Confidence Score: 5/5
Safe to merge; this is a focused catalog and prompt-path replacement with no new runtime logic introduced.
The change is a clean hard-cut: one renderer deleted, one promoted to unconditional use, a feature flag removed end-to-end, and the model catalog swapped in lockstep with onboarding templates and tests. The Foundation Models path is structurally unchanged. The only open item — test coverage for three of the five new display names — was flagged in a prior review and is tracked as a follow-up.
CotabbyTests/ModelAndPresentationValueTests.swift — only 2 of 5 new catalog display names are asserted; a future rename in the switch for tabby-2-pro, tabby-2-gemma-mini, or tabby-2-gemma-pro would pass silently.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[SuggestionRequestFactory.buildRequest] --> B{selectedEngine} B -->|llamaOpenSource| C[BaseCompletionPromptRenderer.prompt] B -->|appleIntelligence| C C --> D[SuggestionRequest with prompt field] D --> E{Engine router} E -->|llamaOpenSource| F[llama runtime consumes request.prompt] E -->|appleIntelligence| G[FoundationModelPromptRenderer.promptPreview builds own messages] subgraph Removed X[LlamaPromptRenderer instruct-blob format] Y[useBaseCompletionPipeline flag + UserDefaults key] end subgraph Catalog tabby-2 M1[Qwen3.5-0.8B-Base Q6_K → tabby-2-mini] M2[Qwen3.5-2B-Base Q4_K_M → tabby-2-base] M3[Qwen3.5-4B-Base Q4_K_M → tabby-2-pro] M4[gemma-4-E2B Q6_K → tabby-2-gemma-mini] M5[gemma-4-E4B Q4_K_M → tabby-2-gemma-pro] endComments Outside Diff (1)
CotabbyTests/ModelAndPresentationValueTests.swift, line 148-161 (link)tabby-2-*display names are asserted. A typo intabby-2-pro,tabby-2-gemma-mini, ortabby-2-gemma-proinside thedisplayNameswitch would pass this test undetected.Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
Reviews (2): Last reviewed commit: "Remove dead code from the base-model mig..." | Re-trigger Greptile