Claude Code v2.1.223: comodines para los marketplace y alertas sobre modelos restringidos
Claude Code v2.1.223 añade dos controles de gobernanza que los equipos que llevan agentes a producción esperaban: los comodines de organización para gestionar los marketplace de skills y las alertas cuando un subagent solicita un modelo restringido y recibe en su lugar el modelo padre.
Como contábamos ayer con la v2.1.222, Claude Code está cerrando en rápida secuencia los problemas operativos que lo separaban del uso en equipo. Los comodines de propietario ("owner/*") en los managed settings strictKnownMarketplaces y blockedMarketplaces permiten aprobar o bloquear todos los repositorios marketplace de una organización GitHub con una sola regla. Hasta ahora tenías que enumerar los repos uno por uno, o abrir todo.
El segundo cambio afecta la transparencia en los flujos reanudados. Cuando un workflow agent, una skill forked, un slash command o un background agent reanudado solicita un subagent model que tu organización ha restringido, el sistema ejecutaba el modelo padre sin notificarte. Ahora aparece una alerta. Parece un detalle, pero en un equipo que gestiona costos y permisos por modelo, no saber qué modelo ejecutó una tarea es un problema de auditoría.
La release también cierra seis bugs de seguridad, entre ellos un bypass de permisos Bash donde un comando construido artificialmente podía ocultarse parcialmente de los controles, y un bug que permitía a los scripts de workflow usar dynamic import() para ejecutar código fuera del sandbox.
En detalle
El marketplace de skills es el mecanismo mediante el cual Claude Code distribuye paquetes de capacidades: una skill puede añadir un comando, un procedimiento, un flujo de trabajo completo. Para un equipo que usa Claude Code en producción, decidir qué skills están permitidas es una cuestión de seguridad y coherencia. Una skill maliciosa o defectuosa puede exponer datos, ejecutar comandos arbitrarios o romper un flujo consolidado.
Hasta la v2.1.223, los managed settings strictKnownMarketplaces y blockedMarketplaces requerían la enumeración explícita de repositorios. Si tu organización publica diez repos de skills en el marketplace de GitHub, el administrador tenía que escribir diez entradas. El comodín "owner/*" lo condensa todo en una línea: apruebas o bloqueas toda la organización, y los nuevos repos que esa organización publica posteriormente siguen automáticamente la misma regla.
Es un trade-off entre granularidad y mantenibilidad. Si confías en una organización interna, el comodín resuelve el problema de tener que actualizar la configuración cada vez que aparece un nuevo repo. Si en cambio necesitas bloquear un repo específico manteniendo los otros, la regla granular por repo individual sigue disponible.
La alerta sobre el subagent model aborda un problema diferente pero igual de concreto. Claude Code puede delegar partes de una tarea a un subagent que se ejecuta en un modelo distinto al principal. Si tu organización ha restringido el uso de un modelo por costo o cumplimiento, y un flujo reanudado o una skill forked lo solicita, el sistema hacía fallback al modelo padre sin indicarlo. En producción, un informe de auditoría que dice “ejecutado en Opus 5” podría ser falso: el subagent se ejecutó en el modelo que el parent estaba usando.
La alerta no bloquea la ejecución, la hace visible. Para quien gestiona agentes en equipo, la diferencia entre “silencioso” y “reportado” es la diferencia entre una auditoría posible y una imposible.
Los parches de seguridad merecen atención. El bypass de permisos Bash permitía a un comando construido con caracteres específicos ocultarse parcialmente de los controles de aprobación. El parche sobre tabulaciones y caracteres Unicode invisibles cierra el mismo vector: un comando con relleno invisible podía engañar al diálogo de aprobación mostrando solo una parte de la instrucción real. El dynamic import() en scripts de workflow eludía el sandbox permitiendo al código cargar módulos arbitrarios. Son tres vectores que los especialistas en seguridad reconocen: ofuscación del payload, caracteres invisibles, escape del sandbox. Todos cerrados en una release.
El comando /teleport muestra en sesión cloud cómo continuar localmente con claude --teleport <session id>. Es una feature de continuidad: quien trabaja en sesión cloud puede llevar el trabajo a su entorno sin empezar de nuevo. El cambio en /review, ahora alias de /code-review, simplifica la revisión de código en el terminal. El parche sobre la ventana de contexto con CLAUDE_CODE_DISABLE_1M_CONTEXT mantiene ahora cada modelo Claude con ventana nativa de 1M tokens dentro de 200K vía auto-compactación, con una alerta cuando la compactación no logra contener la sesión.