Snapcontext

Latest version: v6.34.11

Safety actively analyzes 1006753 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 1 of 15

6.34.7

Fixed
- Añadido `List` a la importación de `typing` en `configuracion.py`.

6.34.6

Fixed
- **ImportError en GitHub Actions (Fase 4)**: el proxy PEP 562 `__getattr__`
en `configuracion.py` causaba un ciclo de importación cuando `snapcontext.py`
ejecutaba `from configuracion import (...)` durante su propia inicialización.
Reemplazado por **imports diferidos explícitos** dentro de cada función
(patrón ya probado en fases anteriores), eliminando el ciclo y restaurando
el build en CI para Python 3.10–3.13.

6.34.4

Fixed
- **OOM killer (exit 137) en GitHub Actions**: la suite completa de tests
(~1.771 tests) carga dependencias pesadas (textual, playwright,
tree-sitter, docker, torch) y supera los ~7 GB de RAM de los runners
gratuitos. El workflow de CI ahora ejecuta únicamente smoke tests
(`tests/test_import.py`) con instalación base (`pip install -e .`,
sin extras).

Added
- **`tests/test_import.py`**: smoke tests mínimos — importa `snapcontext`
(verifica `VERSION`), valida el formato de la versión y comprueba que
`python -m snapcontext --help` responde correctamente.
- La verificación estricta del wheel (módulos críticos) y `twine check`
se mantienen en el workflow, y `publish-pypi` sigue dependiendo de que
los tests pasen.

6.34.3

Fixed
- **`UnicodeDecodeError` al importar `snapcontext` en CI/Linux**: el commit de
bump de versión (d0b2e63) reescribió `snapcontext.py` en Latin-1/Windows-1252,
dejando 2.067 bytes no-UTF-8 (tildes, ñ, emojis) ilegibles para Python en
locales UTF-8. Todos los archivos `.py` del repositorio han sido convertidos
a UTF-8 sin BOM y verificados (`py_compile` + suite de tests).
- **Emojis destruidos**: 68 emojis de la UI (🔒 🧠 🗺 📋 💡 🐳 ✂️ ⚠️ etc.) que
habían sido convertidos a `??` por conversiones ANSI anteriores fueron
restaurados desde el historial de git, y 9 em-dashes (`—`) sueltos en
comentarios/docstrings (bytes 0x97) fueron reparados.

Added
- **`.gitattributes`**: `*.py text eol=lf encoding=utf-8` — Git normaliza y
verifica la codificación de todos los `.py` en futuros commits.
- **`.editorconfig`**: `charset = utf-8`, `end_of_line = lf` para `*.py`,
de forma que todos los editores guarden en UTF-8.

6.34.1

Fixed
- **Bug crítico de empaquetado (C1)** : el wheel publicado en PyPI para la
v6.34.0 no incluía 9 módulos que el código importa en tiempo de ejecución,
lo que provocaba `ModuleNotFoundError` al usar funcionalidades clave:
- `sandbox_session.py` → `--sandbox-session` (persistencia de Docker por sesión).
- `tui_hub.py` / `tui_app.py` → `--tui` (interfaz TUI con Textual).
- `lsp_client.py` → `--lsp` / `--graph-rag-lsp` (Language Server Protocol).
- `qa_tester_logic.py` → sub-agente QA de `--multi-agent`.
- `session_manager.py`, `memory_store.py`, `tui_interactiva.py`,
`autocorrector.py` (código fuente del proyecto).
- **Solución**: añadidos los 9 módulos a `[tool.setuptools] py-modules` en
`pyproject.toml`. Se ha regenerado el wheel y verificado que todos los
módulos viajan dentro del artefacto.

Security
- **Ejecución segura de comandos**: nuevos helpers en `sandbox_utils.py`
(`ejecutar_comando_seguro` y `ejecutar_comando_con_politica`) que eliminan el
uso de `subprocess.run(..., shell=True)` cuando es innecesario:
- Comandos sin sintaxis de shell (pipes/redirecciones/glóbulos) se ejecutan
con `shell=False` y lista de argumentos (`shlex.split`), evitando la
inyección de comandos controlados por el LLM o el usuario.
- Comandos con pipes/redirecciones mantienen `shell=True` (imprescindible)
pero se validan con `es_comando_peligroso` y requieren confirmación.
- `sandbox_session.ejecutar_en_sesion` ya no duplica capa de shell
(`shlex.join` + `shell=True`): pasa la lista `docker exec ... sh -c ...`.
- `autocorrector`, `curador_proactivo` y las herramientas MCP de plugins
usan el helper. `_ejecutar_comando` pide confirmación ante comandos
peligrosos que se ejecutarían en el host (p. ej. `--no-sandbox`).
- **Tests**: nuevo `tests/test_sandbox_utils.py` (y actualizados
`test_sandbox_430.py`, `test_sandbox_session.py`, `test_sandbox_inteligente.py`)

6.33.0

Added
- **Nuevo módulo `graph_lsp_integrator.py`**: Integra Graph RAG y LSP para
obtener contexto preciso por símbolos (v6.33.0):
- `GraphLSPIntegrator(grafo, config, proveedor_lsp)`: clase principal con
caché de llamadas LSP y expansión por dependencias del grafo.
- `obtener_contexto_preciso(archivo, linea, tipo, max_simbolos)`: obtiene
símbolos precisos usando LSP + Graph RAG; prioriza por frecuencia de
llamadas.
- `inyectar_contexto_preciso(contexto_actual, simbolos)`: inyecta símbolos
extraídos en el prompt (reemplaza archivos completos).
- `configuracion_graph_lsp(config)`: fusiona valores por defecto con
``config["graph_lsp"]``.
- **Integración en `snapcontext.py`**:
- `_graph_lsp_activo(args)`: resuelve el estado (flag > entorno
`SNAPCONTEXT_GRAPH_RAG_LSP=1`; requiere `--graph-rag` y `--lsp`).
- `_configurar_graph_lsp(args)`: devuelve configuración efectiva.
- `obtener_simbolos_lsp(archivo, linea, tipo, grafo, config)`: helper
público que delega en `graph_lsp_integrator` (nunca lanza).
- **Integración en `orquestador.py`**: con `--graph-rag-lsp` activo, el
planificador usa `obtener_contexto_preciso` para inyectar símbolos precisos
en el prompt del LLM.
- **Integración en `react_agent.py`**: nueva herramienta `obtener_simbolo`
que devuelve definición y referencias de un símbolo específico vía LSP.
- **Nuevas configuraciones** en `config.json`: sección `graph_lsp` con
`activo`, `profundidad` (2 por defecto) y `simbolos_max` (10 por defecto).
- **Nuevos flags CLI**: `--graph-rag-lsp` (requiere `--graph-rag` y `--lsp`),
`--lsp-profundidad N` y `--lsp-simbolos-max N`.
- **Mensajes de usuario**: `🔗 Usando Graph RAG + LSP para contexto preciso
(profundidad {N}, máx. {M} símbolos).` y `📖 Inyectando símbolo: {nombre}
({archivo}:{linea})` en modo `--depurar`.
- **Tests**: nuevo `tests/test_graph_lsp_integrator.py` (más de 20 casos):
configuración, caché, expansión con grafo, inyección de contexto, flags CLI
e integración con snapcontext.

Changed
- **Compatibilidad**: sin `--graph-rag-lsp` el comportamiento es idéntico al
actual (se usan archivos completos). Las llamadas al LSP son perezosas y con
caché.
- README: nueva sección "🔗 Graph RAG + LSP (v6.33.0)" con configuración, flags
y ejemplos.
- Versión `6.33.0` en `snapcontext.py` y `pyproject.toml`;
`graph_lsp_integrator` añadido a `py-modules`; aserciones de versión de
los tests de coherencia actualizadas a `6.33.0`.

Page 1 of 15

© 2026 Safety CLI Cybersecurity Inc. All Rights Reserved.