@zhivex-ai/harness 1.0.0-rc.7 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +190 -0
- package/README.md +47 -62
- package/ROADMAP.md +15 -6
- package/SECURITY.md +1 -1
- package/benchmarks/README.md +48 -0
- package/benchmarks/baselines/context-navigation-2026-09-09.json +94 -0
- package/benchmarks/baselines/efficiency-2026-09-08.json +233 -0
- package/benchmarks/baselines/external-final-2026-09-08.json +588 -0
- package/benchmarks/baselines/external-intermediate-2026-09-08.json +116 -0
- package/benchmarks/baselines/external-matched-openai-2026-09-08.json +1922 -0
- package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +1706 -0
- package/benchmarks/baselines/external-pilot-2026-09-08.json +439 -0
- package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +1570 -0
- package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +1509 -0
- package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +2509 -0
- package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +564 -0
- package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +794 -0
- package/benchmarks/baselines/full-harness-review-2026-09-10.json +134 -0
- package/benchmarks/baselines/harness-audit-2026-09-09.json +136 -0
- package/benchmarks/baselines/harness-remediation-2026-09-09.json +160 -0
- package/benchmarks/baselines/oci-remediation-2026-09-10.json +535 -0
- package/benchmarks/baselines/rc14-holdout-2026-09-10.json +854 -0
- package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +75 -0
- package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +186 -0
- package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +186 -0
- package/contracts/public-api.json +25 -0
- package/contracts/security-controls.json +3 -2
- package/contracts/stable-api-signatures.json +58 -54
- package/dist/bounded-reads.d.ts +4 -0
- package/dist/change-envelope.d.ts +4 -4
- package/dist/cli-options.d.ts +2 -1
- package/dist/cli-profiles.d.ts +39 -0
- package/dist/cli-stream.d.ts +40 -40
- package/dist/cli.d.ts +38 -35
- package/dist/cli.js +6556 -4030
- package/dist/compaction.d.ts +12 -0
- package/dist/config.d.ts +6 -1
- package/dist/console-context.d.ts +26 -0
- package/dist/console-input.d.ts +28 -0
- package/dist/context-engineering.d.ts +5 -5
- package/dist/context-metrics.d.ts +11 -0
- package/dist/edit-contracts.d.ts +2 -2
- package/dist/execution-environment.d.ts +9 -5
- package/dist/harness.d.ts +52 -18
- package/dist/hostile-repository-demo.js +2942 -1088
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4316 -2435
- package/dist/json-contracts.d.ts +292 -236
- package/dist/model-budget.d.ts +61 -0
- package/dist/operations.d.ts +82 -20
- package/dist/orchestration.d.ts +1 -0
- package/dist/providers.d.ts +5 -2
- package/dist/repair-controller.d.ts +72 -0
- package/dist/repair-progress.d.ts +40 -0
- package/dist/repair-verifier.d.ts +6 -0
- package/dist/replacement-edits.d.ts +9 -0
- package/dist/routing.d.ts +1 -1
- package/dist/run-interruption.d.ts +4 -0
- package/dist/runtime-checkpoints.d.ts +7 -0
- package/dist/runtime-diagnostics.d.ts +63 -0
- package/dist/runtime-policy.d.ts +36 -0
- package/dist/sessions.d.ts +1 -1
- package/dist/state-backup.d.ts +2 -2
- package/dist/task-memory.d.ts +36 -0
- package/dist/terminal-markdown.d.ts +12 -0
- package/dist/time-to-safe-fix.d.ts +19 -19
- package/dist/tool-registry.d.ts +4 -0
- package/dist/verify-historical-migrations.js +6987 -5140
- package/dist/workspace-mutation-lock.d.ts +5 -0
- package/dist/workspace.d.ts +39 -4
- package/dist/zhx.js +6556 -4030
- package/docs/CLI.md +89 -3
- package/docs/CONTEXT_ENGINEERING.md +160 -0
- package/docs/EXECUTION_ENVIRONMENTS.md +21 -0
- package/docs/EXTENSIBILITY.md +2 -2
- package/docs/GA_READINESS.md +13 -7
- package/docs/LIVE_CERTIFICATION.md +12 -2
- package/docs/RC13_SECURITY_REVIEW.md +28 -0
- package/docs/RC14_DELEGATED_SECURITY_DECISION.md +80 -0
- package/docs/RC14_SECURITY_REVIEW.md +40 -0
- package/docs/README.md +33 -0
- package/docs/RELEASE.md +4 -2
- package/docs/REPOSITORY_EDITING.md +47 -0
- package/docs/SECURITY_REVIEW_EVIDENCE.md +5 -3
- package/docs/THREAT_MODEL.md +3 -3
- package/docs/TIME_TO_SAFE_FIX.md +4 -4
- package/docs/ga-readiness.json +147 -16
- package/docs/reports/EFFICIENCY_REVIEW.md +156 -0
- package/docs/reports/EXTERNAL_COMPARISON.md +434 -0
- package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +200 -0
- package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +38 -0
- package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +700 -0
- package/docs/reports/GA_VALIDATION_2026-09-19.md +111 -0
- package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +202 -0
- package/docs/reports/HARNESS_AUDIT_2026-09-09.md +306 -0
- package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +74 -0
- package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +90 -0
- package/docs/reports/MODEL_COMPARISON_2026-09-09.md +184 -0
- package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +142 -0
- package/docs/reports/RC14_VALIDATION_2026-09-10.md +45 -0
- package/docs/reports/README.md +26 -0
- package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +133 -0
- package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +699 -0
- package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +40 -0
- package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +985 -0
- package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +28 -0
- package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +15 -0
- package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +47 -0
- package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +22 -0
- package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +54 -0
- package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +242 -0
- package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +4318 -0
- package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +66 -0
- package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +31 -0
- package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +22 -0
- package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +39 -0
- package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +573 -0
- package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +24 -0
- package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +19 -0
- package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +24 -0
- package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +41 -0
- package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +35 -0
- package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +95 -0
- package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +211 -0
- package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +1092 -0
- package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +18 -0
- package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +571 -0
- package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +18 -0
- package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +85 -0
- package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +85 -0
- package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +1066 -0
- package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +1313 -0
- package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +1151 -0
- package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +3943 -0
- package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +1055 -0
- package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +1245 -0
- package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +699 -0
- package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +854 -0
- package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +596 -0
- package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +25 -0
- package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +1337 -0
- package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +25 -0
- package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +30 -0
- package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +559 -0
- package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +28 -0
- package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-validation-2026-09-19.json +236 -0
- package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +1369 -0
- package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +29 -0
- package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +30 -0
- package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +65 -0
- package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +1297 -0
- package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +113 -0
- package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +301 -0
- package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +84 -0
- package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +32 -0
- package/docs/reports/evidence/ga-working-context-2026-09-19.json +22 -0
- package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +81 -0
- package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +18 -0
- package/docs/reports/evidence/rc14-representative-2026-09-20.json +509 -0
- package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +64 -0
- package/docs/reports/evidence/security-current-2026-09-19.json +91 -0
- package/docs/reports/evidence/security-remediation-2026-09-19.json +97 -0
- package/evaluations/repair-controller-experiment.json +24 -0
- package/evaluations/representative-assembly-matrix.json +63 -0
- package/evaluations/representative-matrix.json +2219 -2
- package/fixtures/contracts/v1/init.json +19 -0
- package/package.json +25 -16
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
# Cierre de implementación de la auditoría del harness
|
|
2
|
+
|
|
3
|
+
> Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
|
|
4
|
+
|
|
5
|
+
Las correcciones pertenecen al harness y utilizan las versiones del SDK instaladas
|
|
6
|
+
(Core 1.14.0 / Agents 1.4.0). No se modificó el SDK ni se abrió una HU nueva.
|
|
7
|
+
La evidencia original permanece en `harness-audit-2026-09-09.json`; la nueva está
|
|
8
|
+
separada en `harness-remediation-2026-09-09.json`.
|
|
9
|
+
|
|
10
|
+
| Hallazgo | Implementación | Regresión principal |
|
|
11
|
+
| --- | --- | --- |
|
|
12
|
+
| H01 | Deadline y cancelación en aprobaciones/importación; lease renovable, revisión del estado, checkpoints y rollback de publicación | Cancelar antes, durante, después del verificador y durante publicación; conflicto/pérdida de lease |
|
|
13
|
+
| H02 | Apertura sin symlinks en toda la ruta, macOS y Linux | Intercalado de sustitución del ancestro; descriptor probe en Node/Bun macOS y Node Linux |
|
|
14
|
+
| H03 | Fuente completa de requisitos en metadata durable, `read_task`, plan acotado y continuidad entre turnos | Compactación real del SDK y aprobación/reanudación conservando criterio final y redacción |
|
|
15
|
+
| H04 | Límite agregado de búsquedas, continuación y límite por turno del perfil repair | Recorrer todas las páginas sin perder coincidencias; presupuesto serializado |
|
|
16
|
+
| H05 | Cobertura incompleta y motivos tipados de omisión | Archivo demasiado grande con única coincidencia no se presenta como ausencia concluyente |
|
|
17
|
+
| H06 | Instrucciones por catálogo/backend; búsqueda de archivo exacto | Herramientas ausentes no instruidas; memoria permitida por la política OCI |
|
|
18
|
+
| H07 | Audit privado por run sobrevive reacquisición | Registro previo conservado junto al parche OCI |
|
|
19
|
+
| H08 | Hashes de evidencia/solapamiento, observaciones de solo lectura y cupos de cierre durables | Inspeccionar no resetea duplicados; cambiar texto de consulta no oculta misma evidencia; reanudar no renueva cupos |
|
|
20
|
+
| H09 | `agentProfile: repair` compartido, CLI/config/resume y recuperación acotada | Perfil real con compactación, aprobación y recuperación de verificador |
|
|
21
|
+
| H10 | Captura privada de candidato; checkout y grading independiente | Digest, rutas, aislamiento del host y filtros Git externos rechazados |
|
|
22
|
+
| H11 | Diagnósticos tipados, herramientas solicitadas, etapas y tiempos | Fallos de parsing sin payload, ausencia de usage explícita y timings de fallo |
|
|
23
|
+
|
|
24
|
+
También se corrigió la pérdida de `maxSteps` entre rondas de aprobación. La
|
|
25
|
+
regresión observacional conserva `requestedMaxSteps=1` y ahora ejecuta una sola
|
|
26
|
+
petición al modelo. Agotar ese límite sigue siendo un resultado fallido, no éxito.
|
|
27
|
+
|
|
28
|
+
En el fixture de búsqueda de la auditoría, el resultado bajó de 310975 a 28618
|
|
29
|
+
caracteres (~90,8%), con paginación explícita. Es una reducción de ese payload,
|
|
30
|
+
no una medición de reducción general de tokens o mejora del score live.
|
|
31
|
+
|
|
32
|
+
## Validación y límites
|
|
33
|
+
|
|
34
|
+
Las pruebas ejercitan SDK publicado, stores, aprobación, snapshots, importación
|
|
35
|
+
y rollback reales; en las regresiones de cancelación se simula únicamente el
|
|
36
|
+
proceso OCI. El smoke OCI adicional usa Docker real y los smokes MCP usan el
|
|
37
|
+
servidor local, incluido el SDK oficial. El descriptor probe ejecuta el mismo
|
|
38
|
+
helper de producción en macOS y Linux.
|
|
39
|
+
|
|
40
|
+
La política repair es opt-in: `--agent-profile repair`, o `agentProfile: "repair"`.
|
|
41
|
+
El benchmark usa ese mismo perfil. El perfil strict sigue disponible. La nueva
|
|
42
|
+
estrategia cambia la huella de compatibilidad: no se reinterpreta una aprobación
|
|
43
|
+
pausada emitida por otro artifact/perfil.
|
|
44
|
+
|
|
45
|
+
Queda por medir eficacia con modelos reales: una campaña nueva debe congelar
|
|
46
|
+
fuentes, imágenes, catálogo, límites y preflight, hacer ablaciones y usar holdout
|
|
47
|
+
con repeticiones. No se ejecutaron nuevas llamadas pagas ni se modificaron scores
|
|
48
|
+
históricos. Las pruebas locales no establecen superioridad frente a un externo.
|
|
49
|
+
|
|
50
|
+
Los límites operativos se documentan en CONTEXT_ENGINEERING.md,
|
|
51
|
+
REPOSITORY_EDITING.md y EXTERNAL_COMPARISON.md: el presupuesto por fase no garantiza
|
|
52
|
+
una fracción exacta de tokens; el audit no es una transacción ACID de filesystem;
|
|
53
|
+
y la protección de lecturas no certifica todas las carreras de publicación.
|
|
54
|
+
|
|
55
|
+
## Resultado de los checks
|
|
56
|
+
|
|
57
|
+
- Suite completa: **485 tests, 0 fallos, 58 archivos**. Tras ajustar tipos de los
|
|
58
|
+
fixtures, se repitieron las 23 regresiones de auditoría/verificador: todas verdes.
|
|
59
|
+
- TypeScript del producto, scripts modificados y nuevos tests: sin errores.
|
|
60
|
+
- Documentación, contratos públicos y firmas: pasan; el gate de preparación sigue
|
|
61
|
+
mostrando su blocker de GA preexistente, no se declara un release GA.
|
|
62
|
+
- Migraciones publicadas 0.10.0/0.11.1: pasan. Evaluaciones determinísticas: **7/7**.
|
|
63
|
+
- Benchmarks CI de workspace y safe-fix e integridad de imagen: pasan.
|
|
64
|
+
- Smokes MCP controlado y SDK oficial: pasan con puertos locales autorizados.
|
|
65
|
+
- Smoke OCI real: pasa con Docker 29.7.2. Descriptor seguro: Node/Bun en macOS y
|
|
66
|
+
Node 24 en Linux, sin red en el contenedor.
|
|
67
|
+
- Paquete reconstruido e instalado como consumidor Node/Bun: pasa para rc.13.
|
|
68
|
+
- `git diff --check`: sin errores. No se hizo commit, push ni publicación.
|
|
69
|
+
|
|
70
|
+
El comando compuesto `bun run check` llegó hasta MCP y encontró la restricción de
|
|
71
|
+
puertos del sandbox. Los smokes restantes se ejecutaron por separado con el
|
|
72
|
+
acceso local necesario; no se interpreta ese fallo del sandbox como suite verde
|
|
73
|
+
ni como defecto del producto. El smoke de paquete también necesitó acceso al
|
|
74
|
+
caché/directorio temporal de Bun.
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
# Harness: implementación de la revisión completa
|
|
2
|
+
|
|
3
|
+
> Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
|
|
4
|
+
|
|
5
|
+
Esta implementación continúa la [revisión del 10 de septiembre](./FULL_HARNESS_REVIEW_2026-09-10.md)
|
|
6
|
+
y conserva los cambios locales anteriores. La revisión original es evidencia
|
|
7
|
+
histórica; sus resultados no describen el runtime modificado.
|
|
8
|
+
|
|
9
|
+
## Cambios implementados
|
|
10
|
+
|
|
11
|
+
| Hallazgo | Resultado |
|
|
12
|
+
| --- | --- |
|
|
13
|
+
| F01: colisiones MCP | Registro central de nombres locales, incluso herramientas deshabilitadas; rechazo antes del ensamblado. |
|
|
14
|
+
| F02: reserva de cierre | Previsión del contexto completo, separación trabajo/cierre, contabilidad durable y rechazo de consumo desconocido. Cap de salida cuando el transporte lo admite. |
|
|
15
|
+
| F03: cierre dependiente del modelo | Controlador durable: candidato, verificador registrado, llamada automática por el flujo normal de aprobación, recuperación acotada y rechazo de finales sin verificar. |
|
|
16
|
+
| F04: alcance por lote | Cada `files[].path` normalizado se compara con el plan durante el cierre antes de leer. |
|
|
17
|
+
| F05: compacción que crece | Resumen acotado en el prompt; fuentes completas fuera del prompt, conservadas por la CLI en metadata. |
|
|
18
|
+
| F06: SSE incorrecto | Unión de líneas dentro de cada evento y correlación por id; rechazo de respuestas ambiguas o ausentes. |
|
|
19
|
+
| F07: deuda de tipos | `tsconfig.tooling.json` compila src/scripts/tests; corregidos los 200 diagnósticos originales e incluido el gate en `check`/CI. |
|
|
20
|
+
| F08: paquete incoherente | Baselines públicos incluidos, auditorías de desarrollo excluidas y enlaces internos comprobados contra los bytes del tarball. |
|
|
21
|
+
|
|
22
|
+
Se extrajeron módulos para controlador, checkpoints, registro de herramientas,
|
|
23
|
+
políticas y diagnóstico. El registro de comprobaciones relaciona propósito,
|
|
24
|
+
digest de argumentos, revisión, candidato y resultado. Una proyección acotada de
|
|
25
|
+
la tarea y el estado se añade automáticamente a cada petición real.
|
|
26
|
+
|
|
27
|
+
`runs inspect <runId>` muestra fase y consumo; `--json` añade diagnóstico y
|
|
28
|
+
manifest efectivo sanitizados. La reanudación conserva métricas acumuladas.
|
|
29
|
+
Las políticas del padre y los hijos comparten la misma factoría de presupuestos;
|
|
30
|
+
el manifest identifica sus diferencias y el entorno OCI también se propaga a
|
|
31
|
+
los grupos de revisión. Las pruebas comprueban consumo agregado de hijos.
|
|
32
|
+
|
|
33
|
+
Los rechazos tipados del verificador se pueden recuperar tanto en el import del
|
|
34
|
+
parche existente como en la transacción de edición y verificación. Cada intento
|
|
35
|
+
necesita autorización nueva. Los efectos parciales se reinspeccionan y siguen
|
|
36
|
+
siendo una obligación pendiente; una cancelación no importa el candidato.
|
|
37
|
+
|
|
38
|
+
## Límites explícitos
|
|
39
|
+
|
|
40
|
+
- La previsión de tokens es heurística. Qwen Responses no admite `maxTokens`:
|
|
41
|
+
se conserva la ruta elegida y se expone `outputCapApplied: false`. Qwen Chat
|
|
42
|
+
explícito sí recibe el cap. Qwen con razonamiento activo recibe un catálogo
|
|
43
|
+
restringido con selección automática, porque rechaza herramientas forzadas
|
|
44
|
+
por nombre. Los contratos se probaron con el adapter publicado y HTTP inyectado.
|
|
45
|
+
- Un checkpoint `running` abandonado no demuestra contabilidad completa después
|
|
46
|
+
de una caída: se bloquea gasto nuevo. Una pausa de aprobación con contabilidad
|
|
47
|
+
completa puede reanudarse. No se presenta persistencia de facturación como una
|
|
48
|
+
transacción atómica con el proveedor.
|
|
49
|
+
- El propósito del verificador y su exit code no prueban cobertura semántica del
|
|
50
|
+
requisito. La evaluación independiente sigue siendo necesaria.
|
|
51
|
+
- Los hijos gestionados directamente por el SDK usan los guardrails compartidos,
|
|
52
|
+
pero no el scheduler de cierre del run principal. El manifest lo declara;
|
|
53
|
+
no se afirma paridad de reparación entre todas las rutas del SDK.
|
|
54
|
+
- La API de compacción que devuelve un array conserva las fuentes por referencia
|
|
55
|
+
dentro del proceso. Al serializar el array por separado, el consumidor debe
|
|
56
|
+
conservar también `zhivexTaskSources`; la CLI ya lo hace.
|
|
57
|
+
|
|
58
|
+
## Evidencia y release
|
|
59
|
+
|
|
60
|
+
La validación abarca tests determinísticos, tipos estrictos, contratos,
|
|
61
|
+
migraciones, evaluación 7/7, benchmarks offline, MCP loopback y servidor oficial,
|
|
62
|
+
Docker real, build, consumidor instalado y comprobación del artefacto.
|
|
63
|
+
El gate completo pasó con 511 tests; después pasó la suite de 27 regresiones
|
|
64
|
+
con la transacción combinada añadida y el test de estado final del stream.
|
|
65
|
+
El tarball final pasó el control de contenido y enlaces internos.
|
|
66
|
+
|
|
67
|
+
Las trayectorias nuevas incluyen candidato temprano, pausa, denegación,
|
|
68
|
+
cancelación, corrección de un verificador fallido, final no verificado, escritura
|
|
69
|
+
parcial, uso desconocido, alcance por lote y SSE fragmentado/ambiguo.
|
|
70
|
+
|
|
71
|
+
Se midió OCI con 100 archivos de fixture, tres repeticiones y un calentamiento.
|
|
72
|
+
El primer comando tuvo p50 310,27 ms; seis comandos reutilizados tuvieron p50
|
|
73
|
+
112,71 ms. El escenario registró un inicio de contenedor, cuatro reutilizaciones,
|
|
74
|
+
cinco publicaciones y una exportación de workspace. Es una medición local
|
|
75
|
+
pequeña, no un p99 representativo ni una comparación causal con otro release.
|
|
76
|
+
[Resultado completo](../../benchmarks/baselines/oci-remediation-2026-09-10.json).
|
|
77
|
+
|
|
78
|
+
El [protocolo de experimentos](../../evaluations/repair-controller-experiment.json)
|
|
79
|
+
predeclara ablaciones de una variable, identidad del artefacto y una cohorte
|
|
80
|
+
nueva separada de las cinco tareas históricas. No se ejecutó una nueva campaña
|
|
81
|
+
live de modelos y no se afirma mejora de tasa de resolución a partir de mocks.
|
|
82
|
+
|
|
83
|
+
El registry público consultado sigue ofreciendo Core 1.14.0 y Agents 1.4.0;
|
|
84
|
+
la corrección local de herramientas desconocidas del SDK no tiene un artefacto
|
|
85
|
+
posterior publicado para integrar. Se mantienen esas dependencias verificadas.
|
|
86
|
+
|
|
87
|
+
La revisión humana de seguridad continúa pendiente en el ledger. Esta
|
|
88
|
+
implementación no cambia esa decisión ni certifica GA. El fingerprint de runtime
|
|
89
|
+
cambia: las aprobaciones pausadas del artefacto anterior necesitan ese artefacto
|
|
90
|
+
para terminarse o denegarse. No se hizo commit, push, tag ni publicación.
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
# Frozen model comparison and verifier recovery
|
|
2
|
+
|
|
3
|
+
> Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
|
|
4
|
+
|
|
5
|
+
The controlled development comparison started on September 8 and finished on
|
|
6
|
+
September 9, 2026 (Argentina time). It repeats the five previously inspected
|
|
7
|
+
SWE-bench Verified cases, with one attempt per candidate and model configuration.
|
|
8
|
+
It does not establish holdout performance or model-quality causality.
|
|
9
|
+
|
|
10
|
+
## Frozen comparison
|
|
11
|
+
|
|
12
|
+
Both matrices used identical hashes for all 52 implementation files, verified
|
|
13
|
+
against the checkout and each archived source snapshot after completion. Tasks,
|
|
14
|
+
images, budgets, native tool inventory, compaction and verification policy were
|
|
15
|
+
unchanged across providers. Both matrices ran concurrently on the same host;
|
|
16
|
+
latency is not a controlled comparison.
|
|
17
|
+
|
|
18
|
+
| Configuration | Zhivex resolved | mini-SWE-agent resolved | Zhivex input tokens | mini input tokens |
|
|
19
|
+
| --- | ---: | ---: | ---: | ---: |
|
|
20
|
+
| OpenAI `gpt-5.6-luna`, low reasoning, Responses | 1/5 | 3/5 | 419,336 | 309,274 |
|
|
21
|
+
| Qwen `qwen3.8-flash`, thinking disabled, Chat Completions | 0/5 | 2/5 | 524,135 | 371,119 |
|
|
22
|
+
|
|
23
|
+
All 20 samples have complete usage, no missing samples and no grading failures.
|
|
24
|
+
Totals include unresolved attempts. No price rates were supplied. Limits per
|
|
25
|
+
attempt were 24 steps, 2,048 output tokens per response, 100,000 cumulative input
|
|
26
|
+
tokens, 16,000 cumulative output tokens and 300 seconds. A response can cross the
|
|
27
|
+
cumulative ceiling before the next request is blocked.
|
|
28
|
+
|
|
29
|
+
Native verified import was mandatory for both providers. Mini retained its
|
|
30
|
+
upstream submission loop for both providers; native and external tools are not
|
|
31
|
+
identical. The configuration bundles model, reasoning and API transport, so the
|
|
32
|
+
experiment isolates the harness version but does not isolate those three factors.
|
|
33
|
+
|
|
34
|
+
### Observed failure boundaries
|
|
35
|
+
|
|
36
|
+
- Qwen: all five native attempts exhausted the input budget and exported no patch.
|
|
37
|
+
- OpenAI: three native attempts exhausted the input budget. Scikit-learn 14141
|
|
38
|
+
resolved. Django 11265 reached a verifier failure, exit code 1, and did not import.
|
|
39
|
+
- The OpenAI Django verifier exit was identified by an exact SHA-256 match of the
|
|
40
|
+
runtime-generated failure message; the specific assertion/command output was
|
|
41
|
+
not retained, so the cause of that verifier failure remains unknown.
|
|
42
|
+
- Some SDK guardrail stops return `status: failed` with a null top-level `failure`.
|
|
43
|
+
Interpretation uses the status, typed guardrail and terminal diagnostics together;
|
|
44
|
+
a null failure string is not evidence of success.
|
|
45
|
+
- Empty patches count as unresolved without executing hidden tests.
|
|
46
|
+
|
|
47
|
+
The frozen result supports prioritizing context consumption. Reducing the
|
|
48
|
+
compaction threshold alone did not prevent repeated exploration. It does not
|
|
49
|
+
support blaming Qwen's adapter for the five budget stops or claiming that an
|
|
50
|
+
untested model such as Muse would fix them.
|
|
51
|
+
|
|
52
|
+
Sanitized evidence: [OpenAI](../../benchmarks/baselines/external-matched-openai-2026-09-08.json)
|
|
53
|
+
and [Qwen](../../benchmarks/baselines/external-matched-qwen-2026-09-08.json).
|
|
54
|
+
Local source snapshots and official grading artifacts are in
|
|
55
|
+
`results/swebench/matched-{openai,qwen}-2026-09-08/`.
|
|
56
|
+
|
|
57
|
+
## Isolated verifier recovery
|
|
58
|
+
|
|
59
|
+
After both frozen matrices completed, the harness gained an optional
|
|
60
|
+
`runHarness` setting, `maxTerminalVerificationRetries` (integer 0–3, default 0).
|
|
61
|
+
The external driver enables two corrections. Only a typed failure from
|
|
62
|
+
`verify_and_apply_environment_patch`, with a normal positive exit code below 124,
|
|
63
|
+
is eligible. Reserved/signal exits, timeouts, cancellation, authorization failures
|
|
64
|
+
and indeterminate durable executions remain terminal. Failed verification never
|
|
65
|
+
imports a patch. Each corrected call requires a fresh content-bound approval.
|
|
66
|
+
|
|
67
|
+
The failed attempt is journaled and returned as an error observation with a typed
|
|
68
|
+
exit code and instructions to diagnose the failure. The retry count is derived
|
|
69
|
+
from persisted failure receipts, so restarting an approval continuation cannot
|
|
70
|
+
reset it. No raw verifier logs are added to diagnostic telemetry.
|
|
71
|
+
|
|
72
|
+
Seven deterministic regressions exercise correction and successful import, retry
|
|
73
|
+
exhaustion, exhaustion after durable resume, the unchanged default behavior,
|
|
74
|
+
timeout, cancellation and output-limit termination. Existing terminal denial and
|
|
75
|
+
stale-digest tests remain in place. These fixtures establish the recovery mechanism,
|
|
76
|
+
not competitive repair quality.
|
|
77
|
+
|
|
78
|
+
A separate four-attempt OpenAI development ablation was predeclared: Django 11265
|
|
79
|
+
(the observed verifier failure) and scikit-learn 14141 (the resolved control), each
|
|
80
|
+
with native and unchanged external candidates. Only the verifier-recovery source
|
|
81
|
+
and its driver opt-in changed; model, budgets and context settings stayed fixed.
|
|
82
|
+
The selection deliberately uses inspected results.
|
|
83
|
+
|
|
84
|
+
| Candidate | Frozen baseline, same two tasks | Recovery enabled |
|
|
85
|
+
| --- | ---: | ---: |
|
|
86
|
+
| Zhivex | 1/2 | 1/2 |
|
|
87
|
+
| mini-SWE-agent | 1/2 | 1/2 |
|
|
88
|
+
|
|
89
|
+
All four attempts completed with full usage and no grading failures. All 52
|
|
90
|
+
treatment hashes matched checkout and archive; exactly `src/harness.ts` and
|
|
91
|
+
`scripts/swebench/zhivex-driver.ts` differed from the frozen implementation.
|
|
92
|
+
Scikit-learn 14141 still resolved. The native Django attempt consumed 102,877
|
|
93
|
+
input tokens in 15 model calls, ending on the input budget during exploration.
|
|
94
|
+
It never called the verifier, so this run did not exercise live recovery and
|
|
95
|
+
does not demonstrate a resolution improvement. The unchanged external candidate
|
|
96
|
+
also resolved only scikit-learn. A zero paired difference on two selected cases
|
|
97
|
+
is not evidence of general equivalence.
|
|
98
|
+
|
|
99
|
+
The [sanitized ablation](../../benchmarks/baselines/external-verifier-recovery-2026-09-09.json)
|
|
100
|
+
preserves all four samples. Local artifacts are under
|
|
101
|
+
`results/swebench/verifier-recovery-openai-2026-09-09/`.
|
|
102
|
+
|
|
103
|
+
Validation: 453 tests passed, including the seven recovery regressions. Contracts,
|
|
104
|
+
types, docs, migrations, deterministic evaluations and local benchmarks passed.
|
|
105
|
+
The aggregate check reached the sandbox's local-port restriction at MCP; MCP
|
|
106
|
+
(controlled and official), real OCI and installed-package smokes subsequently
|
|
107
|
+
passed with the required escalation. The correction fixture was additionally
|
|
108
|
+
rerun with distinct verifier argv, confirming a fresh approval for the corrected
|
|
109
|
+
command. No commit, push or release was performed.
|
|
110
|
+
|
|
111
|
+
## SDK follow-up
|
|
112
|
+
|
|
113
|
+
Update: published Core 1.14.0 and Agents 1.4.0 have now been installed in the
|
|
114
|
+
harness. The native driver explicitly enables `validationErrorMode: "tool-result"`.
|
|
115
|
+
Consumer regressions confirm correction, bounded errors, sanitized issue paths,
|
|
116
|
+
and approval continuation with complete usage. The historical failure below
|
|
117
|
+
describes Core 1.13.0; the frozen live results above predate this upgrade and are
|
|
118
|
+
not measurements of the new SDK.
|
|
119
|
+
|
|
120
|
+
Core 1.13.0 independently reproduces a fatal schema-validation error despite
|
|
121
|
+
`toolExecution.stopOnError: false`: the validation occurs before the recoverable
|
|
122
|
+
execution loop. No invalid tool is executed, but the model cannot correct its
|
|
123
|
+
arguments within that loop. A mock model reproduced this without HTTP or Qwen.
|
|
124
|
+
|
|
125
|
+
The [SDK story in Zhivex](https://app.notion.com/p/3d6777b104f681138a37c547a6db3bd5)
|
|
126
|
+
requests explicit, bounded provider-neutral validation recovery, zero execution of
|
|
127
|
+
invalid arguments, preserved approval/guardrail boundaries and paired tool history.
|
|
128
|
+
It includes a runnable reproduction and acceptance criteria. It is separate from
|
|
129
|
+
the already-completed Responses parser story. No SDK package or schema was patched
|
|
130
|
+
locally to bypass the validation.
|
|
131
|
+
|
|
132
|
+
## Qwen rerun with Core 1.14 and progress controls
|
|
133
|
+
|
|
134
|
+
The predeclared ten-attempt development rerun used the same five tasks, image
|
|
135
|
+
digests, Qwen 3.8 Flash with thinking disabled, and unchanged budgets. It combined
|
|
136
|
+
Core 1.14.0 / Agents 1.4.0 schema recovery, compaction v3, progress controls and
|
|
137
|
+
bounded terminal-verifier recovery. Qwen remained 0.11.4. Individual effects are
|
|
138
|
+
not isolated, and this inspected cohort is not a fresh holdout.
|
|
139
|
+
|
|
140
|
+
| Candidate | Previous matched Qwen run | Updated run | Recorded input tokens |
|
|
141
|
+
| --- | ---: | ---: | ---: |
|
|
142
|
+
| Zhivex | 0/5 | 0/5 | 493,929, incomplete |
|
|
143
|
+
| mini-SWE-agent | 2/5 | 2/5 | 366,258, complete |
|
|
144
|
+
|
|
145
|
+
All ten attempts were recorded with no grading infrastructure failures. All 54
|
|
146
|
+
implementation hashes matched both checkout and archived snapshot. Nine attempts
|
|
147
|
+
had complete usage. Native SymPy failed after ten model requests, with usage from
|
|
148
|
+
only nine responses; its recorded 61,527 input tokens are a lower bound. The
|
|
149
|
+
native aggregate therefore cannot establish token or cost savings against the
|
|
150
|
+
previous 524,135 complete input tokens. Monetary costs remain unknown.
|
|
151
|
+
|
|
152
|
+
The new SDK recovery was exercised live twice: invalid `read_files` arguments
|
|
153
|
+
at scikit-learn 10908 step 3 and invalid `search_many` arguments at Django 15554
|
|
154
|
+
step 10 became error observations followed by successful calls of the same tool.
|
|
155
|
+
Neither ended the run. Four native attempts instead exhausted the input budget;
|
|
156
|
+
SymPy ended with `EXECUTION_FAILED` and fingerprint
|
|
157
|
+
`3eba321b9573f380146626281ff9c8da1b22d77e355a18047e3a62394c9c5afe`.
|
|
158
|
+
The sanitized evidence does not identify its underlying cause or establish SDK
|
|
159
|
+
ownership. No additional SDK story is justified by that fingerprint alone.
|
|
160
|
+
|
|
161
|
+
All five native patches were empty and no native attempt reached terminal
|
|
162
|
+
verification. Closure activated in four runs but blocked only one broad call.
|
|
163
|
+
There were zero repeated-result detections or suppressions. This shows why exact
|
|
164
|
+
duplicate suppression did not address this run's exploration pattern: distinct
|
|
165
|
+
reads, scoped searches and commands continued to consume the remaining budget.
|
|
166
|
+
Verifier recovery was not exercised and cannot explain this result.
|
|
167
|
+
|
|
168
|
+
Across the 66 native requests, context instrumentation counted 674,906 tool-result
|
|
169
|
+
characters, 437,514 tool-definition characters, 298,848 system characters, 196,028
|
|
170
|
+
assistant characters and 68,341 user characters. No definitions or measurements
|
|
171
|
+
were omitted. These are cumulative provider-neutral serialization sizes, not
|
|
172
|
+
billed-token attribution. They identify repeated tool schemas and retained tool
|
|
173
|
+
results as concrete surfaces to measure in a later ablation.
|
|
174
|
+
|
|
175
|
+
The next harness experiment should constrain exploration across distinct reads
|
|
176
|
+
and shell commands, require a repair hypothesis earlier, and measure a smaller
|
|
177
|
+
phase-specific tool catalog. It must preserve approval and verification controls.
|
|
178
|
+
The current result does not demonstrate improved repair quality or competitiveness.
|
|
179
|
+
|
|
180
|
+
The [sanitized rerun](../../benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json)
|
|
181
|
+
contains the protocol, all ten samples, source hashes and analysis. Raw local
|
|
182
|
+
artifacts are under `results/swebench/qwen-sdk-114-progress-2026-09-09/`.
|
|
183
|
+
This follow-up changed evidence and documentation only; the implementation stayed
|
|
184
|
+
frozen throughout the matrix.
|
|
@@ -0,0 +1,142 @@
|
|
|
1
|
+
# Reevaluación de Qwen tras las mejoras del harness — 2026-09-09
|
|
2
|
+
|
|
3
|
+
> Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
|
|
4
|
+
|
|
5
|
+
La [revisión estructural posterior](HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md)
|
|
6
|
+
contrasta estas trazas con el controlador y añade reproductores offline de los
|
|
7
|
+
problemas pendientes. No modifica los resultados congelados de esta corrida.
|
|
8
|
+
|
|
9
|
+
Zhivex terminó con **0/10 reparaciones entregadas**, frente a **4/10 de
|
|
10
|
+
mini-SWE-agent**. Las mejoras no aumentaron la tasa final respecto de la corrida
|
|
11
|
+
anterior (0/5 frente a 2/5). La captura independiente detectó tres parches
|
|
12
|
+
correctos de Zhivex que quedaron sin verificar ni importar al agotarse el
|
|
13
|
+
presupuesto. No cuentan como éxitos finales ni como mejora frente a una
|
|
14
|
+
medición anterior que no capturaba ese dato.
|
|
15
|
+
|
|
16
|
+
## Diseño y evidencia
|
|
17
|
+
|
|
18
|
+
- Modelo solicitado: `qwen3.8-flash`, proveedor Qwen, endpoint internacional de
|
|
19
|
+
DashScope, Chat Completions, thinking desactivado en ambos candidatos.
|
|
20
|
+
- SWE-bench Verified, revisión `c104f840cc67f8b6eec6f759ebc8b2693d585d4a`:
|
|
21
|
+
cinco tareas conocidas, dos repeticiones por candidato, veinte intentos.
|
|
22
|
+
Es una reevaluación de desarrollo; no es un nuevo holdout ni veinte tareas
|
|
23
|
+
independientes. No permite afirmar superioridad general ni aislar causalmente
|
|
24
|
+
el efecto de cada mejora.
|
|
25
|
+
- Harness `1.0.0-rc.13`, Core `1.14.0`, Agents `1.4.0`, Qwen `0.11.4`;
|
|
26
|
+
mini-SWE-agent `2.4.6`, evaluador SWE-bench `4.1.0`.
|
|
27
|
+
- Límites: 24 pasos, 2.048 tokens de salida por respuesta, 100.000 de entrada
|
|
28
|
+
acumulada, 16.000 de salida acumulada, 300 segundos, 2 CPU y 2.048 MiB.
|
|
29
|
+
El límite acumulado se comprueba entre peticiones y puede sobrepasarse en una
|
|
30
|
+
respuesta. Los límites de herramientas y pasos no son idénticos entre loops.
|
|
31
|
+
- Ambos usan las mismas imágenes de tarea, sin red dentro del contenedor.
|
|
32
|
+
Zhivex usa raíz de solo lectura, `/workspace`, aprobaciones automáticas del
|
|
33
|
+
operador y cierre con verificación/importación; mini conserva su loop y
|
|
34
|
+
`/testbed` escribible. El perfil repair limita salida OCI a 20.000 bytes;
|
|
35
|
+
el adaptador mini recorta a 100.000 caracteres. Son diferencias declaradas.
|
|
36
|
+
- Preflight aprobado en cinco imágenes, sin llamadas al modelo. Veinte
|
|
37
|
+
muestras únicas, ninguna faltante ni fallo de evaluación. Uso completo en
|
|
38
|
+
las veinte. Los 60 hashes de fuentes coinciden con el checkout y la copia
|
|
39
|
+
archivada al terminar: no se modificó el runtime durante la comparación.
|
|
40
|
+
|
|
41
|
+
La [baseline pública](../../benchmarks/baselines/external-qwen-remediation-2026-09-09.json)
|
|
42
|
+
conserva configuración, hashes, métricas y diagnósticos sanitizados. Los parches,
|
|
43
|
+
predicciones y logs oficiales permanecen en el directorio local ignorado
|
|
44
|
+
`results/swebench/qwen-remediation-2026-09-09/`.
|
|
45
|
+
|
|
46
|
+
## Resultados
|
|
47
|
+
|
|
48
|
+
| Tarea | Zhivex final | Zhivex candidato correcto | Mini final |
|
|
49
|
+
| --- | ---: | ---: | ---: |
|
|
50
|
+
| sympy-21930 | 0/2 | 0/2 | 0/2 |
|
|
51
|
+
| scikit-learn-10908 | 0/2 | 1/2 | 2/2 |
|
|
52
|
+
| django-15554 | 0/2 | 0/2 | 0/2 |
|
|
53
|
+
| scikit-learn-14141 | 0/2 | 2/2 | 2/2 |
|
|
54
|
+
| django-11265 | 0/2 | 0/2 | 0/2 |
|
|
55
|
+
| Total | **0/10** | **3/10** | **4/10** |
|
|
56
|
+
|
|
57
|
+
La captura de candidatos funcionó en los veinte intentos; capturar un candidato
|
|
58
|
+
vacío no significa producir un parche. Zhivex produjo tres candidatos no vacíos,
|
|
59
|
+
y los tres pasaron la evaluación independiente. Mini produjo ocho no vacíos y
|
|
60
|
+
cuatro pasaron. La diferencia final por tarea es −40 puntos porcentuales;
|
|
61
|
+
el intervalo bootstrap exploratorio del reporte es [−80, 0], con solo cinco
|
|
62
|
+
tareas como unidades de remuestreo.
|
|
63
|
+
|
|
64
|
+
| Métrica (10 intentos por candidato) | Zhivex | Mini |
|
|
65
|
+
| --- | ---: | ---: |
|
|
66
|
+
| Tokens de entrada | 943.192 | 734.184 |
|
|
67
|
+
| Tokens de salida | 10.327 | 12.184 |
|
|
68
|
+
| Llamadas al modelo | 117 | 133 |
|
|
69
|
+
| Mediana de duración del driver | 36,51 s | 41,50 s |
|
|
70
|
+
| Agotamientos de presupuesto | 9 | 4 |
|
|
71
|
+
| Otro fallo terminal | 1 | 0 |
|
|
72
|
+
|
|
73
|
+
La mediana incluye fracasos y excluye el evaluador externo; no demuestra mayor
|
|
74
|
+
velocidad para resolver. No hay tiempo a reparación exitosa de Zhivex. No se
|
|
75
|
+
suministraron precios: costo USD y costo por solución permanecen desconocidos.
|
|
76
|
+
La corrida anterior tenía uso incompleto de Zhivex y una sola repetición; no se
|
|
77
|
+
deduce ahorro de tokens comparando sus totales con estos resultados.
|
|
78
|
+
|
|
79
|
+
## Qué sigue fallando en el harness
|
|
80
|
+
|
|
81
|
+
**El cierre no dispone de una reserva efectiva.** Nueve intentos entraron en
|
|
82
|
+
modo de cierre, pero hubo cero bloqueos de llamadas amplias y cero bloqueos por
|
|
83
|
+
fase. Ninguno solicitó la verificación del harness. Los tres parches correctos
|
|
84
|
+
se quedaron dentro del entorno de ejecución; la evaluación posterior es solo
|
|
85
|
+
diagnóstica y no sustituye aprobación, verificación ni importación.
|
|
86
|
+
|
|
87
|
+
En scikit-learn-10908 repetición 2, la edición gobernada terminó a los 74,23 s;
|
|
88
|
+
el agente siguió solicitando comandos y acabó con 102.299 tokens de entrada.
|
|
89
|
+
En scikit-learn-14141 las ediciones gobernadas terminaron a los 41,78 y 21,98 s,
|
|
90
|
+
pero tampoco hubo transición a verificación antes del corte. Hay capacidad de
|
|
91
|
+
resolver esos casos; falta convertirla en una entrega dentro del presupuesto.
|
|
92
|
+
|
|
93
|
+
**El catálogo añadido consume contexto en cada petición.** Las definiciones de
|
|
94
|
+
herramientas pasaron de 6.629 a 8.995 caracteres (+35,7%); sistema más catálogo
|
|
95
|
+
pasó de 11.157 a 13.755 (+23,3%). La media de resultados de herramientas presentes
|
|
96
|
+
en cada petición bajó de 10.225,85 a 9.486,09 caracteres (−7,2%), sobre 66 y 117
|
|
97
|
+
peticiones respectivamente. Son mediciones de caracteres serializados, no
|
|
98
|
+
tokens facturados ni una ablación controlada. Las ayudas de memoria y planificación
|
|
99
|
+
tienen un costo fijo que debe medirse frente al beneficio que aportan.
|
|
100
|
+
|
|
101
|
+
Las siguientes intervenciones a validar son:
|
|
102
|
+
|
|
103
|
+
1. Reservar presupuesto para verificar/importar y hacer explícita la transición
|
|
104
|
+
posterior a una edición, manteniendo permisos y controles de integridad.
|
|
105
|
+
La reserva debe considerar el tamaño de la siguiente petición y del catálogo;
|
|
106
|
+
rechazar únicamente búsquedas amplias no alcanza.
|
|
107
|
+
2. Exponer un catálogo pequeño por fase, conservando las herramientas necesarias
|
|
108
|
+
para corregir una reparación o un fallo de verificación. Medir la reducción
|
|
109
|
+
real de tokens y su efecto sobre las soluciones entregadas.
|
|
110
|
+
3. Ajustar compacción e historial con el costo completo de cada petición, y
|
|
111
|
+
reducir exploración que continúa dentro de comandos de shell aprobados.
|
|
112
|
+
4. Comparar esas variantes por separado en la cohorte de desarrollo y después
|
|
113
|
+
evaluar una cohorte nueva, sin modificar la métrica para contar candidatos
|
|
114
|
+
sin entregar. Esta corrida no incluye esas futuras intervenciones.
|
|
115
|
+
|
|
116
|
+
## Hallazgo del SDK y HU
|
|
117
|
+
|
|
118
|
+
Un intento de SymPy falló tras una respuesta por una herramienta no registrada.
|
|
119
|
+
El nombre exacto no quedó en el diagnóstico sanitizado, por lo que no se atribuye
|
|
120
|
+
un nombre concreto a esa llamada. La reproducción offline con Core 1.14.0 muestra
|
|
121
|
+
que el modelo entrega uso (100 entrada, 10 salida), pero el estado durable queda
|
|
122
|
+
fallido con cero pasos, cero resultados y uso ausente. El middleware del harness
|
|
123
|
+
sí conservó los 4.132 tokens de entrada del intento live.
|
|
124
|
+
|
|
125
|
+
Creada y verificada en el área Zhivex, prioridad Alta, estado Sin empezar:
|
|
126
|
+
[SDK-HU — Conservar uso y diagnóstico ante herramientas no registradas; recuperación explícita acotada](https://app.notion.com/p/3d7777b104f681248ed3cecffe9328d2).
|
|
127
|
+
|
|
128
|
+
La pérdida de uso/diagnóstico durable es el defecto reproducido. Recuperar
|
|
129
|
+
herramientas desconocidas es una petición de funcionalidad optativa: la HU
|
|
130
|
+
anterior de validación de argumentos no incluía ese caso. No se propone ejecutar
|
|
131
|
+
herramientas desconocidas, remapear nombres ni eludir aprobaciones.
|
|
132
|
+
|
|
133
|
+
Reproducción sin red, con cero ejecuciones de herramientas:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
bun --no-env-file run evaluations/audits/sdk-unknown-tool-2026-09-09.ts
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
El `../../evaluations/audits/sdk-unknown-tool-2026-09-09.ts` (source checkout) pasó typecheck
|
|
140
|
+
independiente. El reporte y la baseline se validaron contra las veinte muestras
|
|
141
|
+
y los hashes congelados. No se efectuó una nueva matriz paga, publicación ni
|
|
142
|
+
cambio del runtime como parte del cierre de esta reevaluación.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# RC14 validation and publication hold
|
|
2
|
+
|
|
3
|
+
## Decision
|
|
4
|
+
|
|
5
|
+
RC14 is prepared but publication is held after the new live cohort exposed continuing delivery failures. This is a release-readiness judgment, not a failed protected release workflow or a claim that the benchmark has a predefined comparative score gate. No RC14 tag, workflow dispatch, or registry publication was performed. The readiness ledger remains pending; GA human security review remains open.
|
|
6
|
+
|
|
7
|
+
The frozen runtime is commit `0609f11681cf44d0fc68b7671ed4e37ceaf48309` on [PR #69](https://github.com/Zhivex/zhivex-harness/pull/69). All 66 implementation file hashes were verified against the final checkout and both archived source snapshots. Subsequent evidence-only changes do not alter that runtime.
|
|
8
|
+
|
|
9
|
+
## New live cohort
|
|
10
|
+
|
|
11
|
+
Two SWE-bench Verified tasks were selected with seed `20260910`, excluding all 15 tasks appearing in prior local manifests, before either provider ran. The selected tasks are `django__django-15128` and `django__django-15851`. Both use digest-pinned images, three repetitions, independent official grading, and the same frozen harness. Each provider matrix includes the unchanged mini-SWE-agent control.
|
|
12
|
+
|
|
13
|
+
| Configuration | Zhivex accepted deliveries | Correct Zhivex candidates | mini-SWE-agent accepted deliveries |
|
|
14
|
+
| --- | ---: | ---: | ---: |
|
|
15
|
+
| OpenAI gpt-5.6-luna, low reasoning, Responses | 1/6 | 3/6 | 4/6 |
|
|
16
|
+
| Qwen qwen3.8-flash, thinking disabled, Chat Completions | 0/6 | 2/6 | 3/6 |
|
|
17
|
+
|
|
18
|
+
All 24 planned samples completed with complete token accounting, no missing samples and no grading failures. Correct private candidates are diagnostic only: four correct candidates across the providers were not delivered. Unresolved and failed attempts remain in the denominator.
|
|
19
|
+
|
|
20
|
+
Limits per attempt were 24 steps, 2,048 output tokens per response, 100,000 cumulative input tokens, 16,000 cumulative output tokens and 300 seconds. No prices were supplied, so no monetary cost is claimed. Provider matrices ran concurrently on one host; latency is not a controlled comparison. Two tasks from one repository do not establish general performance, and no before/after controller ablation was performed.
|
|
21
|
+
|
|
22
|
+
[Sanitized evidence, source identity, limits and per-sample outcomes](../../benchmarks/baselines/rc14-holdout-2026-09-10.json).
|
|
23
|
+
|
|
24
|
+
## Observed boundaries
|
|
25
|
+
|
|
26
|
+
- OpenAI: three work-budget stops on the first task; one accepted delivery and two execution failures on the second. All three second-task private candidates passed independent grading, but only one was delivered.
|
|
27
|
+
- Qwen: three work-budget stops overall, one analysis-only completion without a candidate, one agent failure and one input-budget stop. Two correct second-task candidates were not delivered.
|
|
28
|
+
- The first-task stops mostly occurred during exploration without a candidate or verification. The second task exercised candidate creation, automatic verification and recovery; recorded verifier failures included normal exit code 1. Sanitized evidence does not retain the exact verifier assertion or command output, so the underlying assertion failure is not established here.
|
|
29
|
+
- Code inspection confirms that the closure reserve becomes available when the controller has a pending candidate or is recovering. The evidence motivates investigating exploration-to-candidate progress and verifier recovery; it does not justify weakening approvals or importing a patch that failed verification.
|
|
30
|
+
|
|
31
|
+
## Validation boundaries
|
|
32
|
+
|
|
33
|
+
- Local complete checks reached the final release-readiness step after 512 passing tests, strict source/tooling types, docs/contracts, migrations, 7/7 deterministic evaluations, offline benchmarks, both MCP smokes, real Docker execution, installed-package smoke and dependency audit (15 packages, no vulnerabilities, no untrusted lifecycle scripts).
|
|
34
|
+
- That final step found a stale requirement for the whole `evaluations` package directory. It was corrected to require the published JSON/JSONL patterns. Tooling typecheck and 15 release-policy/workflow regressions passed after the correction. The branch restriction remains intentional: release checks must finish from clean `main`, not the candidate branch. The full `release:check` command is not reported as passing.
|
|
35
|
+
- [CI](https://github.com/Zhivex/zhivex-harness/actions/runs/34492027688) passed all four jobs on the frozen runtime: Ubuntu/macOS tooling and Node 22.13/24 installed consumers. [CodeQL](https://github.com/Zhivex/zhivex-harness/actions/runs/34492027646) passed.
|
|
36
|
+
- The local RC14 tarball passed exact content inspection and a separate installation/execution smoke. Its SHA-512 is recorded in the evidence. The holdout executed hash-frozen source, not a protected tag-bound release tarball; neither that local artifact nor RC13's historical certification supplies RC14 publication evidence.
|
|
37
|
+
- The repository requires one approving review, code-owner review and all required checks before merging. Those rules were not bypassed.
|
|
38
|
+
|
|
39
|
+
## Conditions to resume release
|
|
40
|
+
|
|
41
|
+
1. Reproduce and improve exploration-to-candidate progress and verifier recovery using independent regression fixtures. Treat these two tasks as development data from now on.
|
|
42
|
+
2. Freeze the corrected implementation and predeclare a fresh validation cohort and acceptance criteria. Demonstrate accepted deliveries through the problematic paths for both providers, retaining all failures and budget limits; do not tune hidden tests or count undelivered candidates as success.
|
|
43
|
+
3. Obtain the required PR approval, merge, pass release checks on clean main, and run protected tag-bound artifact/live/representative certification before publication to `next`.
|
|
44
|
+
|
|
45
|
+
The statistical comparison is exploratory. The publication hold is based on unresolved delivery behavior in the feature being stabilized, not a claim of general model superiority or a security regression.
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Historical reports
|
|
2
|
+
|
|
3
|
+
These reports preserve findings and measurements from specific checkouts and runs. Read each report's scope and limitations before reusing its claims. Local remediation does not certify a new published artifact or update an earlier model score. Maintained behavior is documented in the [documentation index](../README.md).
|
|
4
|
+
|
|
5
|
+
## Audits and remediation
|
|
6
|
+
|
|
7
|
+
| Snapshot | Follow-up |
|
|
8
|
+
| --- | --- |
|
|
9
|
+
| [Harness audit — September 9](HARNESS_AUDIT_2026-09-09.md) | [Implementation and validation — September 9](HARNESS_REMEDIATION_2026-09-09.md) |
|
|
10
|
+
| [Architecture review — September 9](HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md) | Subsequent [full review — September 10](FULL_HARNESS_REVIEW_2026-09-10.md) |
|
|
11
|
+
| [Full review — September 10](FULL_HARNESS_REVIEW_2026-09-10.md) | [Implementation, validation and remaining limits — September 10](HARNESS_REMEDIATION_2026-09-10.md) |
|
|
12
|
+
|
|
13
|
+
The follow-up documents record implementation evidence; retain the original reports and baseline JSON files for traceability.
|
|
14
|
+
|
|
15
|
+
## Efficiency and model comparisons
|
|
16
|
+
|
|
17
|
+
- [Efficiency implementation evidence](EFFICIENCY_REVIEW.md): September 8 work and subsequent recorded checks; SDK versions refer to those snapshots.
|
|
18
|
+
- [External comparison](EXTERNAL_COMPARISON.md): accumulated experimental cohorts and their limitations.
|
|
19
|
+
- [Model comparison — September 9](MODEL_COMPARISON_2026-09-09.md): frozen model comparisons and recovery studies.
|
|
20
|
+
- [Qwen reevaluation — September 9](QWEN_REMEDIATION_COMPARISON_2026-09-09.md): results after the then-current remediation, followed by structural findings.
|
|
21
|
+
|
|
22
|
+
Protocols remain in the [benchmark guide](../../benchmarks/README.md) and [Time-to-Safe-Fix guide](../TIME_TO_SAFE_FIX.md). Each report links its preserved baseline evidence.
|
|
23
|
+
|
|
24
|
+
## Release validation
|
|
25
|
+
|
|
26
|
+
- [RC14 validation and publication hold — September 10](RC14_VALIDATION_2026-09-10.md): new live cohort, frozen source identity, validation boundaries and conditions to resume publication.
|