Skip to content

Rename built-in models to the tabby-1-* family#372

Merged
FuJacob merged 1 commit into
mainfrom
rename/model-tabby-1-family
May 28, 2026
Merged

Rename built-in models to the tabby-1-* family#372
FuJacob merged 1 commit into
mainfrom
rename/model-tabby-1-family

Conversation

@FuJacob
Copy link
Copy Markdown
Owner

@FuJacob FuJacob commented May 28, 2026

Summary

Aligns the four built-in downloadable model presets under a single, version-prefixed naming scheme so future iterations land as a family rather than a one-off rename. Display labels only; the underlying GGUF filenames are untouched.

Before After
tabby-nano-2 tabby-1-nano
tabby-fast-1 tabby-1-mini
tabby-balanced-1 tabby-1-base
tabby-max-1 tabby-1-pro

Validation

swiftlint lint --quiet                                # exit 0
xcodebuild -project Cotabby.xcodeproj -scheme Cotabby \
  -destination 'platform=macOS' build                 # ** BUILD SUCCEEDED **
xcodebuild test -project Cotabby.xcodeproj -scheme Cotabby \
  -destination 'platform=macOS' CODE_SIGNING_ALLOWED=NO
# Test Suite 'All tests' passed (full suite, 0 failures)

Verified grep -rn for both old and new names: no stale references remain.

Risk / rollout notes

  • Pure rename of presentation strings. The RuntimeModelCatalog.displayName(for:) switch is keyed on the GGUF filename, which is unchanged, so already-downloaded models keep working and per-model settings keyed off filename keep resolving correctly.
  • Existing users who already have a model installed will see the new label show up immediately on next launch.
  • Three files touched: Cotabby/Models/LlamaRuntimeModels.swift (the catalog), CotabbyTests/ModelAndPresentationValueTests.swift (test expectations), and README.md (the user-facing table).

Greptile Summary

This PR renames the four built-in downloadable model presets from ad-hoc names (tabby-nano-2, tabby-fast-1, tabby-balanced-1, tabby-max-1) to a unified tabby-1-* family (tabby-1-nano, tabby-1-mini, tabby-1-base, tabby-1-pro). The change is purely presentational — GGUF filenames used as switch keys and settings identifiers are untouched.

  • LlamaRuntimeModels.swift: All four return strings in RuntimeModelCatalog.displayName(for:) updated to the new naming scheme.
  • ModelAndPresentationValueTests.swift: Test expectations refreshed for two of the four models; tabby-1-pro and tabby-1-nano assertions are absent.
  • README.md: User-facing model table updated to show all four new names alongside their unchanged GGUF filenames and download sources.

Confidence Score: 4/5

Safe to merge — the rename is purely presentational and the underlying GGUF filenames used as persistent identifiers are unchanged.

The catalog logic and README are correct and complete. The test suite only exercises two of the four renamed branches, so a future typo in the tabby-1-pro or tabby-1-nano return strings would go undetected until runtime.

CotabbyTests/ModelAndPresentationValueTests.swift — missing assertions for tabby-1-pro and tabby-1-nano.

Important Files Changed

Filename Overview
Cotabby/Models/LlamaRuntimeModels.swift All four display name strings in RuntimeModelCatalog.displayName(for:) correctly renamed to the tabby-1-* family; GGUF filenames (the switch keys) are untouched.
CotabbyTests/ModelAndPresentationValueTests.swift Test expectations updated for two of the four renamed models; tabby-1-pro and tabby-1-nano assertions are missing, leaving those branches untested.
README.md Model table updated cleanly to reflect all four new tabby-1-* names; GGUF filenames, sizes, and HuggingFace source links are unchanged.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[GGUF filename\nswitch key] --> B{RuntimeModelCatalog\n.displayName}
    B -->|Qwen3-0.6B-Q4_K_M.gguf| C["tabby-1-mini ✓"]
    B -->|gemma-4-E2B-it-Q4_K_M.gguf| D["tabby-1-base ✓"]
    B -->|gemma-4-E4B-it-Q4_K_M.gguf| E["tabby-1-pro ✓"]
    B -->|SmolLM2-135M-Instruct-q8_0.gguf| F["tabby-1-nano ✓"]
    B -->|anything else| G[raw filename]

    C -->|tested| H([✅ test coverage])
    D -->|tested| H
    E -->|not tested| I([⚠️ no assertion])
    F -->|not tested| I
Loading

Fix All in Codex Fix All in Claude Code

Reviews (1): Last reviewed commit: "Rename built-in models to the tabby-1-* ..." | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

Aligns the four downloadable presets under a single, version-prefixed
naming scheme so we can iterate on them as a family:

  tabby-nano-2     → tabby-1-nano
  tabby-fast-1     → tabby-1-mini
  tabby-balanced-1 → tabby-1-base
  tabby-max-1      → tabby-1-pro

Only the display labels change; the underlying GGUF filenames and
download URLs are untouched, so installs and per-model settings keyed
off filenames continue to resolve correctly.
@FuJacob FuJacob merged commit 20f591b into main May 28, 2026
4 checks passed
Comment on lines 146 to 154
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "Qwen3-0.6B-Q4_K_M.gguf"),
"tabby-fast-1"
"tabby-1-mini"
)
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "gemma-4-E2B-it-Q4_K_M.gguf"),
"tabby-balanced-1"
"tabby-1-base"
)
// Retired models fall back to their raw filename like any unknown local GGUF.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 The test function only asserts the new display names for tabby-1-mini and tabby-1-base, leaving tabby-1-pro (gemma-4-E4B-it-Q4_K_M.gguf) and tabby-1-nano (SmolLM2-135M-Instruct-q8_0.gguf) uncovered. A typo in either of those two return strings would not be caught by this suite.

Suggested change
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "Qwen3-0.6B-Q4_K_M.gguf"),
"tabby-fast-1"
"tabby-1-mini"
)
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "gemma-4-E2B-it-Q4_K_M.gguf"),
"tabby-balanced-1"
"tabby-1-base"
)
// Retired models fall back to their raw filename like any unknown local GGUF.
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "Qwen3-0.6B-Q4_K_M.gguf"),
"tabby-1-mini"
)
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "gemma-4-E2B-it-Q4_K_M.gguf"),
"tabby-1-base"
)
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "gemma-4-E4B-it-Q4_K_M.gguf"),
"tabby-1-pro"
)
XCTAssertEqual(
RuntimeModelCatalog.displayName(for: "SmolLM2-135M-Instruct-q8_0.gguf"),
"tabby-1-nano"
)
// Retired models fall back to their raw filename like any unknown local GGUF.

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!

Fix in Codex Fix in Claude Code

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