You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(zsh): la función cortex() shadowea el binario del CLI de cortex #35
En zsh una función gana sobre un binario del PATH, así que esto hace inalcanzable al CLI: en cualquier shell interactiva, cortex admin delete-branch ... no invoca ~/.local/bin/cortex, hace un cd al repo y listo.
Cómo se manifiesta
Desde una terminal con los dotfiles cargados:
$ cortex admin delete-branch feat/mi-branch
zsh: command not found: _go_dev_dir
El error es engañoso: parece un problema de _go_dev_dir, pero la causa es que cortex nunca fue el CLI. Con la ruta absoluta funciona perfecto:
$ ~/.local/bin/cortex admin delete-branch feat/mi-branch --dry-run # anda
Fix
Renombrar la función. Ya existe cortex-repo() en el mismo archivo, que hace exactamente lo mismo, así que lo más limpio es eliminar cortex() y quedarse con cortex-repo().
Ojo, hay un fix WIP sin commitear
En la copia instalada (~/.cortex/cortex-dotfiles, branch fix/herdr-starship-hotfixes) ya está hecho el rename, sin commitear ni pushear. Rescatarlo antes de que se pierda, en vez de rehacerlo.
El mismo bug está en cortex-dots
cortex-dots define la misma función (zsh/zshrc:119). Se abre issue espejo allá. Los tres repos no pueden pisarse entre sí: el nombre cortex pertenece al CLI.
Como seguimiento de este bug, el contrato entre ambos proyectos se está definiendo en cortex#1259.
Criterio acordado para la integración:
Cortex es dueño de ~/.cortex/shell/cortex.zsh, del comando cortex y de las variables core CORTEX_*.
cortex-dotfiles debería tener su propio entrypoint estable, por ejemplo ~/.config/cortex-dotfiles/shell/cortex-dotfiles.zsh.
Las variables públicas propias de dotfiles deben vivir bajo CORTEX_DOTFILES_*, sin reutilizar CORTEX_HOME, CORTEX_ROOT u otras variables core.
.zshrc solamente compone ambos fragments: dotfiles primero y Cortex al final, para que Cortex pueda observar la resolución definitiva del shell.
Ninguno de los proyectos modifica archivos gestionados por el otro, y no se vuelve a definir un alias o función llamados cortex.
Ambos source deben ser opcionales y tolerantes a ausencia o error para no romper el inicio de Zsh.
PR #37 ya avanzó con la carga del fragmento de Cortex. Cuando alineemos el entrypoint propio de dotfiles, conviene aplicar este namespace y mantener la implementación interna separada del contrato core.
Dejo el issue cerrado; esto es referencia para la evolución posterior.
Activity
fix(zsh): evitar shadowing del CLI cortex (#35) (#36)
barbatdev commentedon Jul 15, 2026
Como seguimiento de este bug, el contrato entre ambos proyectos se está definiendo en cortex#1259.
Criterio acordado para la integración:
~/.cortex/shell/cortex.zsh, del comandocortexy de las variables coreCORTEX_*.cortex-dotfilesdebería tener su propio entrypoint estable, por ejemplo~/.config/cortex-dotfiles/shell/cortex-dotfiles.zsh.CORTEX_DOTFILES_*, sin reutilizarCORTEX_HOME,CORTEX_ROOTu otras variables core..zshrcsolamente compone ambos fragments: dotfiles primero y Cortex al final, para que Cortex pueda observar la resolución definitiva del shell.cortex.sourcedeben ser opcionales y tolerantes a ausencia o error para no romper el inicio de Zsh.PR #37 ya avanzó con la carga del fragmento de Cortex. Cuando alineemos el entrypoint propio de dotfiles, conviene aplicar este namespace y mantener la implementación interna separada del contrato core.
Dejo el issue cerrado; esto es referencia para la evolución posterior.