¿Qué hace ce-pickup?
Extrae documentos ce-handoff/v1 de sesiones pasadas de Hermes usando un modelo local. Costo cero en tokens de frontier. La salida es Markdown estándar de ce-handoff/v1, por lo que /ce-handoff resume <ruta> funciona de inmediato.
Úsalo en lugar de ejecutar /ce-handoff en una sesión fría que consumiría cuota de suscripción solo para ponerse al día.
Cuándo usarlo
- El usuario quiere retomar una sesión que dejó inconclusa sin gastar tokens de frontier releyéndola.
- Necesitas una transferencia desde una o más sesiones pasadas, pero la ventana de contexto ya está cargada.
- El usuario pide un "pickup" o "catch-up" de una sesión antigua.
- Ejecutar
/ce-handoffen una sesión fría grande resultaría costoso.
Inicio rápido
bash ~/.hermes/scripts/ce-pickup.sh ID_SESION[,ID_SESION,...]
Por defecto, la salida se escribe en /tmp/compound-engineering-$(id -u)/ce-pickup/.
Luego reanuda desde cualquier archivo de salida:
/ce-handoff resume /tmp/compound-engineering-<uid>/ce-pickup/<slug>.md
Argumentos
- Arg 1 (obligatorio): IDs de sesión separados por comas (de
session_searcho navegación de Hermes). - Arg 2 (opcional): nombre del modelo Ollama — por defecto
hf.co/ornith-ai/Ornith-1.5-35B-A3B-GGUF:Q5_K_M. - Arg 3 (opcional): directorio de salida alternativo.
Variables de entorno (para pruebas y hosts alternativos): CE_PICKUP_DB (por defecto ~/.hermes/state.db), CE_PICKUP_OLLAMA_URL (por defecto http://localhost:11434/api/chat), CE_PICKUP_MAX_CHARS (por defecto 24000).
Enrutamiento del modelo
Por defecto: Ornith-1.5-35B-A3B-GGUF:Q5_K_M — calidad de extracción verificada, se ejecuta localmente.
Si Ornith no está cargado, cualquier modelo local capaz de Ollama funciona. NO uses un modelo frontier (eso anula el propósito).
Verifica lo disponible: ollama list
Cómo funciona
- Lee
~/.hermes/state.dbmediantesqlite3— sin Python, sin solicitudes TCC. - Extrae los mensajes
user+assistantordenados por marca de tiempo. - Trunca la transcripción a 24,000 caracteres (~6k tokens) — suficiente para una extracción significativa.
- Llama a Ollama
/api/chatvíacurlcon un prompt de extracción estructurado. - Escribe la portada
ce-handoff/v1+ el cuerpo del modelo en el directorio de salida. - El nombre del archivo es un slug del título de la sesión; sufijo numérico en caso de colisión.
Formato de salida
Cada archivo de salida es válido como ce-handoff/v1 con:
- Portada
artifact_contract: "ce-handoff/v1". session_id,cwd,branch,repositorycuando estén disponibles.- Extracción que cubre: objetivo, trabajo completado, estado actual, decisiones/restricciones, bloqueadores, enfoques fallidos, referencias, próximos pasos.
Watchdog de techo de contexto (compañero)
scripts/context-ceiling-watchdog.sh es un monitor determinista, sin agente, para el contexto de sesiones en vivo. Estima el contexto actual de cada sesión activa (contenido de mensajes con active=1 ÷ 4 chars/token — nunca uses sessions.input_tokens, que es el volumen de facturación acumulada incluyendo re-lecturas de contexto) y aplica:
>= 50kRECORDAR — aviso de una línea, se repite cada hora.>= 70kALERTA — advertencia de punto de control, se repite cada 30m.>= 80kEXTRAER — ejecuta ce-pickup localmente e informa la ruta del archivo ce-handoff/v1; después de la extracción, solo vuelve a alertar si la sesión sube ~10k más (CRÍTICO).
Es silencioso (stdout vacío) a menos que se active un umbral, por lo que encaja directamente en un trabajo cron sin agente con detección de cambios. El estado reside en ~/.cache/context-ceiling-watchdog/ (TSV plano, sin memoria LLM ni continuidad recursiva). Nunca escribe en la configuración o estado en ejecución de Hermes; state.db se abre con sqlite3 en modo -readonly.
Pruébalo sin un modelo real: bash scripts/mock-ollama.sh 21143 & luego bash scripts/test-watchdog.sh (base de datos de prueba + umbrales escalados, 20 comprobaciones).
Problemas conocidos
Diálogos TCC desde Python (macOS Sequoia+): Ejecutar Python como subproceso de una aplicación con permisos amplios puede activar solicitudes TCC para iCloud Drive o Documentos, incluso cuando solo se lee ~/.hermes/state.db. El script de shell usa solo sqlite3 + curl + jq + awk y NO activa TCC. Nunca uses una implementación en Python de este flujo a menos que el usuario acepte explícitamente las solicitudes TCC.
Truncamiento de transcripción: 24k caracteres cubre la mayoría de las sesiones. Sesiones muy largas (200+ mensajes con salidas de herramientas grandes) se truncan por el final. Si la transferencia se siente superficial, divide en consultas más específicas.
Modelos pensantes + num_predict: El num_predict de Ollama limita los tokens generados totales INCLUYENDO message.thinking. Un modelo pensante (Ornith lo es) puede gastar todo el presupuesto en el canal de pensamiento y devolver message.content vacío o truncado al final — que el script lee exclusivamente. Síntoma: "respuesta vacía de Ollama" o una transferencia que se detiene a media frase, pareciendo un problema de calidad del modelo cuando es un error de configuración. El script envía think:false (con un reintento sin la bandera para modelos que la rechazan). Nota de contexto de Wesley: esa bandera es correcta SOLO para este trabajo de extracción mecánica — el pensamiento de Ornith es un activo en ingeniería agéntica, y una ejecución de extracción no dice nada sobre la capacidad agéntica. No generalices una extracción deficiente como un veredicto sobre el modelo.
Ollama debe estar funcionando: Verifica con ollama list antes de invocar.
La salida está en /tmp: El sistema operativo puede recuperar el espacio al reiniciar. Copia a una ruta estable si se reanuda entre reinicios.
Script
La implementación canónica es scripts/ce-pickup.sh en esta habilidad — llámala por su ruta de habilidad. Históricamente existía una copia en el host en ~/.hermes/scripts/ce-pickup.sh (documentada como un enlace simbólico); en máquinas donde esa copia existe pero NO es un enlace simbólico, está desactualizada — confía en el directorio de la habilidad.
Ver también: habilidad ce-handoff para el flujo de reanudación una vez que existe el documento de transferencia.