Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

refactor: unify the two Anthropic-likeness classifiers (hoist vs cache-control)

Abierto
#891 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
42/100
Tipo de issue
Refactorización
Claridad
Bastante claro
Estado de actividad
Tranquilo
Stack tecnológico
typescript
Área
backend

Línea de trabajo

Comienza leyendo familyVendor en packages/opencode/src/provider/family.ts y, a continuación, compara su uso en packages/opencode/src/session/prompt.ts con la comprobación inline de cache-control en packages/opencode/src/provider/transform.ts:284-295. Define el tratamiento explícito de gateway del predicado compartido, verifica de forma independiente los comportamientos de hoist y cache-control, y confirma que las tasas de cache-hit de gateway no empeoran.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Found during v0.8.3 release review (CTO persona). Deferred because it touches a hot path and changes cache-control behavior for gateway traffic — needs design + careful testing (>30 min), not for a patch release.

Context

There are now two independent predicates deciding whether a model is "Anthropic-like":

  1. isAnthropicLikeModel in packages/opencode/src/session/prompt.ts — gates the <system-reminder> system-role hoist (added in #888). Built on familyVendor + providerID + api.id/npm heuristics.
  2. The inline cache-control check in packages/opencode/src/provider/transform.ts:284-295 — gates Anthropic cache_control injection. Hard-codes model.providerID === "altimate-backend" as Anthropic-for-caching.

These deliberately diverge today: transform.ts treats the altimate-backend gateway as Anthropic-for-caching, while isAnthropicLikeModel classifies the same gateway (family: openai) as non-Anthropic. The divergence is correct for the #888 fix, but the two classifiers will drift further apart as gateway models expand, and a future maintainer could unify them wrongly.

Suggested fix

Extract a single shared predicate (built on familyVendor) used by both the hoist decision and the cache-control decision, with explicit handling of the gateway case so the two behaviors can't silently drift. Verify cache-hit rates on gateway traffic don't regress.

Scope

packages/opencode/src/session/prompt.ts, packages/opencode/src/provider/transform.ts, packages/opencode/src/provider/family.ts.

Lenguaje dominante
TypeScript
Estrellas
813
Forks
134
Merge medio
2 d 3 h
PR fusionados (30 d)
65

Guía de contribución

Abrir la guía de contribución

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de AltimateAI/altimate-code

Todos los issues de AltimateAI/altimate-code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.