Skip to content

feat: filter old, date-snapshot, and non-text models from model selectors#4039

Merged
ComputelessComputer merged 4 commits intomainfrom
devin/1771349568-filter-old-models
Feb 18, 2026
Merged

feat: filter old, date-snapshot, and non-text models from model selectors#4039
ComputelessComputer merged 4 commits intomainfrom
devin/1771349568-filter-old-models

Conversation

@devin-ai-integration
Copy link
Contributor

Summary

Cleans up the model selector dropdowns by filtering out old/deprecated models, date-specific snapshots, and non-text models (realtime, moderation, codex) across all cloud providers. Filtered models are still accessible via the "show ignored" toggle in the combobox.

Changes:

  • list-common.ts: Added "realtime", "moderation", "codex" to common ignore keywords. Added isDateSnapshot() (matches -YYYY-MM-DD and -MMDD suffixes) and isOldModel() (matches gpt-3.5-*, gpt-4 (not gpt-4o/gpt-4.5), davinci/babbage/curie/ada, claude-2/claude-instant). Added "old_model" and "date_snapshot" ignore reasons.
  • Applied isOldModel + isDateSnapshot to: OpenAI, Anthropic, OpenRouter
  • Applied isDateSnapshot only to: Google, Mistral
  • Ollama and LMStudio left untouched (local models, user-controlled)
  • model-combobox.tsx: Added display labels for the two new ignore reasons

Review & Testing Checklist for Human

  • Verify isOldModel regex correctness: The pattern /^gpt-4(?!o|\.)/ is intended to catch gpt-4, gpt-4-turbo, gpt-4-0613 but NOT gpt-4o or gpt-4.5. Confirm no false positives/negatives with real OpenAI model list.
  • Verify isDateSnapshot regex correctness: The patterns /-\d{4}-\d{2}-\d{2}/ and /-\d{4}$/ are intended to catch date-versioned models. The 4-digit suffix pattern could theoretically match non-date version numbers (e.g., -v1234), but in practice model naming conventions use MMDD format. Confirm with real API responses.
  • Test end-to-end: Open model selector for OpenAI, Anthropic, Google, Mistral, and OpenRouter. Verify that old models (e.g., gpt-3.5-turbo, gpt-4-0613, claude-2, davinci-002) and realtime models are hidden by default but visible when clicking the eye icon to show ignored models.
  • Check for unintended filtering: The isOldModel function includes patterns for both OpenAI (ada, davinci) and Anthropic (claude-2). Verify these don't cause false positives for other providers (e.g., if OpenRouter has a model with "ada" in the name).

Notes

  • No unit tests added for the new regex patterns. Consider adding tests if this logic becomes more complex.
  • Google and Mistral only got isDateSnapshot filtering, not isOldModel, since they don't have the same legacy model naming patterns.

Link to Devin run: https://app.devin.ai/sessions/3b7f94d8bce64892b8e106ea90892c77
Requested by: @ComputelessComputer

@netlify
Copy link

netlify bot commented Feb 17, 2026

Deploy Preview for hyprnote ready!

Name Link
🔨 Latest commit 6d6b40a
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote/deploys/6994b7514f815b0008d79078
😎 Deploy Preview https://deploy-preview-4039--hyprnote.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@netlify
Copy link

netlify bot commented Feb 17, 2026

Deploy Preview for hyprnote-storybook ready!

Name Link
🔨 Latest commit 6d6b40a
🔍 Latest deploy log https://app.netlify.com/projects/hyprnote-storybook/deploys/6994b7512ec5de0008044419
😎 Deploy Preview https://deploy-preview-4039--hyprnote-storybook.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@devin-ai-integration
Copy link
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR that start with 'DevinAI' or '@devin'.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment and CI monitoring

@ComputelessComputer ComputelessComputer force-pushed the devin/1771349568-filter-old-models branch from 15b0f27 to 7e5ab99 Compare February 17, 2026 18:27
devin-ai-integration bot and others added 4 commits February 18, 2026 03:45
…tors

- Add 'realtime', 'moderation', 'codex' to common ignore keywords
- Add isDateSnapshot helper to detect date-versioned models (YYYY-MM-DD, MMDD)
- Add isOldModel helper to detect deprecated models (gpt-3.5, gpt-4, davinci, babbage, claude-2, claude-instant)
- Add 'old_model' and 'date_snapshot' ignore reasons
- Apply filters to OpenAI, Anthropic, Google, Mistral, and OpenRouter providers

Co-Authored-By: john@hyprnote.com <john@hyprnote.com>
Add detection and filtering of models that are not suitable for
chat interactions. Implement isNonChatModel function to identify
transcription, fine-tuned, and other specialized models based on
naming patterns. Apply filtering across OpenAI, Google, and
OpenRouter providers to improve model selection accuracy by
excluding models like o1, gpt-4o variants, Gemini 2.0/2.5,
Gemma, and fine-tuned models from chat model lists.
Add support for 8-digit date format in snapshot ID detection and
remove trailing commas from generic type parameters in partition
and extractMetadataMap functions for cleaner TypeScript syntax.
Adds trailing commas to generic type parameters in partition and
extractMetadataMap functions to improve consistency with TypeScript
style guidelines and prevent potential parsing issues.
@ComputelessComputer ComputelessComputer force-pushed the devin/1771349568-filter-old-models branch from 428e06e to 6d6b40a Compare February 17, 2026 18:45
@ComputelessComputer ComputelessComputer merged commit a1e74a5 into main Feb 18, 2026
14 checks passed
@ComputelessComputer ComputelessComputer deleted the devin/1771349568-filter-old-models branch February 18, 2026 02:30
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

Comments