@zhivex-ai/harness 1.0.0 → 1.1.0-rc.2
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 +97 -1
- package/README.md +52 -306
- package/SECURITY.md +1 -1
- package/SUPPORT.md +7 -3
- package/benchmarks/README.md +3 -3
- package/contracts/client-protocol-v1.schema.json +341 -0
- package/contracts/public-api.json +100 -1
- package/contracts/stable-api-signatures.json +14 -14
- package/dist/approval-diff.d.ts +45 -0
- package/dist/approval-history.d.ts +38 -0
- package/dist/approval-preview.d.ts +26 -0
- package/dist/cli-credentials.d.ts +38 -0
- package/dist/cli-help.d.ts +3 -0
- package/dist/cli-options.d.ts +1 -1
- package/dist/cli-stream.d.ts +3 -3
- package/dist/cli.d.ts +15 -69
- package/dist/cli.js +13796 -10032
- package/dist/client-contract.d.ts +208 -0
- package/dist/console-commands.d.ts +6 -0
- package/dist/console-context.d.ts +5 -1
- package/dist/console-input.d.ts +44 -4
- package/dist/console-model-catalog.d.ts +25 -0
- package/dist/console-navigation.d.ts +27 -0
- package/dist/console-presentation.d.ts +18 -0
- package/dist/console-welcome.d.ts +13 -0
- package/dist/execution-environment.d.ts +4 -0
- package/dist/harness.d.ts +3 -0
- package/dist/hostile-repository-demo.js +1913 -798
- package/dist/index.d.ts +7 -0
- package/dist/index.js +7908 -6330
- package/dist/local-service.d.ts +34 -0
- package/dist/operations.d.ts +23 -1
- package/dist/orchestration.d.ts +3 -0
- package/dist/persistence-secrets.d.ts +2 -0
- package/dist/recorded-workspace.d.ts +4 -0
- package/dist/run-document.d.ts +91 -0
- package/dist/runtime-policy.d.ts +4 -4
- package/dist/service-cli.d.ts +2 -0
- package/dist/service-cli.js +10858 -0
- package/dist/service-client-cli.d.ts +2 -0
- package/dist/service-events.d.ts +50 -0
- package/dist/sessions.d.ts +3 -0
- package/dist/sqlite-access.d.ts +26 -0
- package/dist/sqlite-database.d.ts +2 -0
- package/dist/state-backup.d.ts +8 -0
- package/dist/task-memory.d.ts +2 -2
- package/dist/terminal-continuation.d.ts +3 -0
- package/dist/terminal-markdown.d.ts +1 -0
- package/dist/terminal-ui.d.ts +5 -0
- package/dist/usage-ledger.d.ts +84 -0
- package/dist/verify-historical-migrations.js +5699 -5191
- package/dist/workspace.d.ts +22 -0
- package/dist/zhx.js +13796 -10032
- package/docs/CLI.md +136 -30
- package/docs/CLIENT_PROTOCOL.md +212 -0
- package/docs/CREDENTIALS.md +59 -0
- package/docs/DURABLE_OPERATIONS.md +2 -2
- package/docs/FIRST_USE.md +82 -0
- package/docs/FIRST_USE_EXAMPLE.md +40 -0
- package/docs/HOSTILE_REPOSITORY_DEMO.md +1 -1
- package/docs/LOCAL_SERVICE.md +142 -0
- package/docs/README.md +24 -23
- package/docs/THREAT_MODEL.md +1 -1
- package/docs/TIME_TO_SAFE_FIX.md +2 -2
- package/docs/USAGE.md +181 -0
- package/evaluations/daily-cli-cohort.json +33 -0
- package/evaluations/representative-assembly-matrix.json +19 -1
- package/examples/README.md +26 -0
- package/examples/first-use/greeting.test.ts +3 -0
- package/examples/first-use/greeting.ts +1 -0
- package/examples/first-use/package.json +7 -0
- package/package.json +34 -9
- package/ROADMAP.md +0 -414
- package/benchmarks/baselines/context-navigation-2026-09-09.json +0 -94
- package/benchmarks/baselines/efficiency-2026-09-08.json +0 -233
- package/benchmarks/baselines/external-final-2026-09-08.json +0 -588
- package/benchmarks/baselines/external-intermediate-2026-09-08.json +0 -116
- package/benchmarks/baselines/external-matched-openai-2026-09-08.json +0 -1922
- package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +0 -1706
- package/benchmarks/baselines/external-pilot-2026-09-08.json +0 -439
- package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +0 -1570
- package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +0 -1509
- package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +0 -2509
- package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +0 -564
- package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +0 -794
- package/benchmarks/baselines/full-harness-review-2026-09-10.json +0 -134
- package/benchmarks/baselines/harness-audit-2026-09-09.json +0 -136
- package/benchmarks/baselines/harness-remediation-2026-09-09.json +0 -160
- package/benchmarks/baselines/oci-remediation-2026-09-10.json +0 -535
- package/benchmarks/baselines/rc14-holdout-2026-09-10.json +0 -854
- package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +0 -75
- package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +0 -186
- package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +0 -186
- package/docs/GA_READINESS.md +0 -29
- package/docs/GEMINI_1_0_DECISION.md +0 -9
- package/docs/LIVE_CERTIFICATION.md +0 -107
- package/docs/RC13_SECURITY_REVIEW.md +0 -28
- package/docs/RC14_DELEGATED_SECURITY_DECISION.md +0 -80
- package/docs/RC14_SECURITY_REVIEW.md +0 -40
- package/docs/RELEASE.md +0 -96
- package/docs/ROLLBACK.md +0 -9
- package/docs/SECURITY_REVIEW_EVIDENCE.md +0 -17
- package/docs/ga-readiness.json +0 -366
- package/docs/reports/EFFICIENCY_REVIEW.md +0 -156
- package/docs/reports/EXTERNAL_COMPARISON.md +0 -434
- package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +0 -200
- package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +0 -38
- package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +0 -700
- package/docs/reports/GA_VALIDATION_2026-09-19.md +0 -111
- package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +0 -202
- package/docs/reports/HARNESS_AUDIT_2026-09-09.md +0 -306
- package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +0 -74
- package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +0 -90
- package/docs/reports/MODEL_COMPARISON_2026-09-09.md +0 -184
- package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +0 -142
- package/docs/reports/RC14_VALIDATION_2026-09-10.md +0 -45
- package/docs/reports/README.md +0 -26
- package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +0 -133
- package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +0 -699
- package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +0 -40
- package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +0 -985
- package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +0 -28
- package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +0 -15
- package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +0 -47
- package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +0 -22
- package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +0 -54
- package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +0 -242
- package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +0 -4318
- package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +0 -66
- package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +0 -31
- package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +0 -22
- package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +0 -39
- package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +0 -573
- package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +0 -24
- package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +0 -19
- package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +0 -24
- package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +0 -41
- package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +0 -35
- package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +0 -95
- package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +0 -211
- package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +0 -27
- package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +0 -1092
- package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +0 -18
- package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +0 -571
- package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +0 -18
- package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +0 -85
- package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +0 -85
- package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +0 -1066
- package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +0 -1313
- package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +0 -1151
- package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +0 -3943
- package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +0 -1055
- package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +0 -1245
- package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +0 -699
- package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +0 -854
- package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +0 -596
- package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +0 -25
- package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +0 -1337
- package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +0 -25
- package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +0 -30
- package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +0 -559
- package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +0 -28
- package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +0 -27
- package/docs/reports/evidence/ga-validation-2026-09-19.json +0 -236
- package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +0 -1369
- package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +0 -29
- package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +0 -30
- package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +0 -65
- package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +0 -1297
- package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +0 -27
- package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +0 -113
- package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +0 -301
- package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +0 -84
- package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +0 -32
- package/docs/reports/evidence/ga-working-context-2026-09-19.json +0 -22
- package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +0 -81
- package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +0 -18
- package/docs/reports/evidence/rc14-representative-2026-09-20.json +0 -509
- package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +0 -64
- package/docs/reports/evidence/security-current-2026-09-19.json +0 -91
- package/docs/reports/evidence/security-remediation-2026-09-19.json +0 -97
|
@@ -1,700 +0,0 @@
|
|
|
1
|
-
# Recuperación de reparaciones: diagnóstico de desarrollo
|
|
2
|
-
|
|
3
|
-
**Corrección implementada; aceptación live y GA todavía pendientes.**
|
|
4
|
-
|
|
5
|
-
El fingerprint `fe23962a75a1376aa486d886cd84986beba7daecf721dfdce7e3fc800f8ef82d`
|
|
6
|
-
de los fallos OpenAI del holdout RC14 corresponde exactamente a
|
|
7
|
-
`REPAIR_VERIFICATION_RETRIES_EXHAUSTED`. La evidencia histórica no contiene el
|
|
8
|
-
stdout del verificador: no permite atribuir el fallo de su aserción a una causa
|
|
9
|
-
concreta, ni concluir que esta corrección resolverá todas las entregas fallidas.
|
|
10
|
-
|
|
11
|
-
Una regresión independiente reprodujo un defecto del controlador: después de
|
|
12
|
-
fallar una verificación, cada comando diagnóstico con exit code distinto de cero
|
|
13
|
-
consumía otro reintento de verificación. Tres diagnósticos agotaban el límite aun
|
|
14
|
-
sin haber intentado verificar nuevamente. Las mutaciones fallidas también
|
|
15
|
-
consumían ese contador.
|
|
16
|
-
|
|
17
|
-
Ahora esos eventos mantienen la obligación de recuperación sin incrementar el
|
|
18
|
-
contador de verificaciones. Los intentos reales de verificación sí lo incrementan;
|
|
19
|
-
tres fallos reales siguen bloqueando el run. No se elimina la aprobación ni se
|
|
20
|
-
importa ningún candidato sin verificación exitosa. Los límites de pasos, tokens,
|
|
21
|
-
herramientas y comandos de recuperación siguen vigentes.
|
|
22
|
-
|
|
23
|
-
También se corrigió el evaluador SWE-bench para el nuevo aislamiento OCI:
|
|
24
|
-
|
|
25
|
-
- La captura del candidato y el preflight usan el scope del Harness.
|
|
26
|
-
- El padre conserva el directorio de estado hasta terminar la limpieza, incluso
|
|
27
|
-
si el proceso del driver muere.
|
|
28
|
-
- La limpieza usa la identidad de ejecución en metadata validada, no el hash del
|
|
29
|
-
run ID público. Las regresiones rechazan metadata de otro run o directorio.
|
|
30
|
-
|
|
31
|
-
Validación local: la regresión de diagnóstico falló antes del cambio y pasó
|
|
32
|
-
después. Las 38 pruebas enfocadas pasan; la suite completa pasó 529 tests, junto
|
|
33
|
-
a contratos, tipos, migraciones, evaluaciones, benchmarks y MCP. El gate completo
|
|
34
|
-
se detuvo en `docker start failed` durante el smoke OCI; queda pendiente repetir
|
|
35
|
-
esa frontera sin la carga concurrente de restauración/reproducción.
|
|
36
|
-
|
|
37
|
-
La reproducción live usa `django__django-15851` como **dato de desarrollo**, nunca
|
|
38
|
-
como holdout nuevo, con límites y modelos del manifiesto anterior. El primer
|
|
39
|
-
intento terminó antes de llamar al modelo porque la imagen histórica había sido
|
|
40
|
-
eliminada. Se reconstruyó desde los digests originales con el Dockerfile guardado.
|
|
41
|
-
El nuevo intento conserva hashes de fuentes y resultados en
|
|
42
|
-
`results/swebench/ga-recovery-development-2026-09-19-restored/` y terminó: OpenAI completó y entregó patch; Qwen retuvo un candidato sin
|
|
43
|
-
verificador y terminó `REPAIR_INCOMPLETE`. La [evidencia sanitizada](evidence/ga-recovery-development-2026-09-19.json)
|
|
44
|
-
preserva ambos resultados.
|
|
45
|
-
La presencia de un patch entregado no equivale a corrección oficial: este intento
|
|
46
|
-
diagnóstico no ejecuta el grader independiente.
|
|
47
|
-
|
|
48
|
-
Antes de GA todavía se requiere completar la validación de recuperación,
|
|
49
|
-
congelar el candidato, predeclarar una cohorte nueva y sus criterios, ejecutar
|
|
50
|
-
grading independiente y reunir la matriz representativa y los gates del release.
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
## Segundo ajuste y validación en curso
|
|
54
|
-
|
|
55
|
-
El caso Qwen confirmó que registrar un verificador antes de editar era sólo una
|
|
56
|
-
instrucción. El controlador OCI ahora rechaza mutaciones sin un verificador
|
|
57
|
-
concreto registrado mediante `repair_plan`, antes de ejecutar la herramienta.
|
|
58
|
-
Una regresión comprueba ausencia de escritura al rechazar y ejecución después
|
|
59
|
-
de registrar el plan. Esto no certifica que el comando propuesto sea suficiente:
|
|
60
|
-
la aprobación y la comprobación independiente siguen siendo necesarias.
|
|
61
|
-
|
|
62
|
-
Después de este ajuste pasaron 530 tests y tipos de tooling. El smoke OCI pasó
|
|
63
|
-
al repetirse sin la carga concurrente. La comparación de desarrollo con grading
|
|
64
|
-
oficial está ejecutándose secuencialmente para OpenAI y Qwen, una repetición del
|
|
65
|
-
caso y control mini-SWE-agent para cada proveedor, con límites originales y hashes
|
|
66
|
-
de fuente congelados por el runner. Resultados en
|
|
67
|
-
`results/swebench/ga-recovery-graded-{openai,qwen}/`. No se presenta como holdout
|
|
68
|
-
nuevo ni como una aprobación de GA; el resultado se detalla a continuación.
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
## Resultado oficial y corrección del presupuesto proyectado
|
|
72
|
-
|
|
73
|
-
La comparación anterior terminó sin samples faltantes ni fallos del grader.
|
|
74
|
-
Harness resolvió 0/1 con OpenAI y 0/1 con Qwen; mini-SWE-agent resolvió 1/1 con
|
|
75
|
-
cada proveedor. OpenAI se detuvo en `WORK_TOKEN_BUDGET` antes de editar; Qwen
|
|
76
|
-
terminó `REPAIR_INCOMPLETE`. [Evidencia completa sanitizada](evidence/ga-recovery-graded-development-2026-09-19.json).
|
|
77
|
-
No se excluyen estos intentos ni se presentan como validación exitosa.
|
|
78
|
-
|
|
79
|
-
Se reprodujo otra inconsistencia: el presupuesto calcula el consumo proyectado
|
|
80
|
-
de la siguiente llamada, pero el controlador de progreso entraba en cierre sólo
|
|
81
|
-
por consumo ya registrado. Por eso podía detenerse después de registrar un plan
|
|
82
|
-
con verificador, antes de poder usar la reserva para producir el candidato.
|
|
83
|
-
|
|
84
|
-
Ahora se calcula primero esa proyección y se activa el cierre focalizado cuando
|
|
85
|
-
el siguiente paso alcanza el umbral. Antes de tener candidato, la reserva sólo
|
|
86
|
-
se habilita si hay un verificador concreto registrado. El límite total no cambia;
|
|
87
|
-
se siguen bloqueando exploración global y llamadas que excederían el presupuesto
|
|
88
|
-
total. La regresión falla antes de la corrección y pasa después, incluyendo el
|
|
89
|
-
rechazo al superar el límite total. Las 31 pruebas del módulo pasan.
|
|
90
|
-
|
|
91
|
-
Está en curso una segunda comparación de desarrollo en
|
|
92
|
-
`results/swebench/ga-recovery-graded-v2-{openai,qwen}/`, con la misma tarea, límites,
|
|
93
|
-
modelos, control y grading oficial. Sigue pendiente demostrar entrega correcta
|
|
94
|
-
antes de congelar una cohorte nueva; GA permanece NO-GO.
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
## Segunda comparación y obligación de recuperación
|
|
98
|
-
|
|
99
|
-
La segunda comparación terminó: Harness 0/1 y control 1/1 en ambos proveedores.
|
|
100
|
-
OpenAI falló por `ProviderToolCallError` con `incomplete_arguments`; ese intento
|
|
101
|
-
no tiene accounting completo y no puede certificar presupuesto ni entrega.
|
|
102
|
-
Qwen terminó `REPAIR_INCOMPLETE` durante recuperación. El grading oficial pasó
|
|
103
|
-
sin errores y todos los intentos permanecen en el denominador.
|
|
104
|
-
[Evidencia sanitizada](evidence/ga-recovery-graded-v2-2026-09-19.json).
|
|
105
|
-
|
|
106
|
-
Otra regresión reprodujo que durante recuperación el controlador dejaba la
|
|
107
|
-
selección de herramienta en automático, aunque existía una obligación pendiente.
|
|
108
|
-
Ahora solicita una herramienta (`required`) cuando el proveedor/modo lo soporta;
|
|
109
|
-
los modos de Qwen con restricciones de thinking conservan su compatibilidad.
|
|
110
|
-
Una respuesta final sigue sin autorizar importación ni satisfacer la obligación.
|
|
111
|
-
La prueba falla antes y pasa después; las 32 pruebas enfocadas pasan.
|
|
112
|
-
|
|
113
|
-
La siguiente serie de desarrollo queda fijada antes de observar resultados:
|
|
114
|
-
`ga-recovery-v3-{openai,qwen}`, misma tarea y límites, tres repeticiones para cada
|
|
115
|
-
agente/proveedor (12 samples contando controles), grading oficial y conservación
|
|
116
|
-
de todos los fallos. No constituye holdout nuevo ni sustituye los gates de GA.
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
## Resultado de las tres repeticiones
|
|
120
|
-
|
|
121
|
-
La serie v3 terminó sus 12 samples, sin faltantes ni fallos del grader:
|
|
122
|
-
|
|
123
|
-
| Proveedor | Harness | Control mini-SWE-agent |
|
|
124
|
-
| --- | --- | --- |
|
|
125
|
-
| OpenAI | 1/3 entregas correctas | 3/3 |
|
|
126
|
-
| Qwen | 0/3 entregas correctas | 3/3 |
|
|
127
|
-
|
|
128
|
-
OpenAI tuvo un fallo de verificación y otro de argumentos incompletos con
|
|
129
|
-
accounting incompleto. Qwen tuvo dos reparaciones incompletas y un límite de
|
|
130
|
-
presupuesto de entrada. [Evidencia completa](evidence/ga-recovery-v3-2026-09-19.json).
|
|
131
|
-
Estos resultados mantienen NO-GO y no se usan como evidencia de una cohorte nueva.
|
|
132
|
-
|
|
133
|
-
Una regresión integrada adicional confirma que, con Qwen en Chat y thinking
|
|
134
|
-
apagado, `toolChoice: required` llega al modelo después de aprobación y fallo de
|
|
135
|
-
verificación. El diagnóstico de transporte terminó por INPUT_TOKEN_BUDGET con
|
|
136
|
-
accounting completo: las once primeras solicitudes no incluían tool choice y
|
|
137
|
-
la última sí llevaba `required`, con thinking apagado. Confirma su envío, no
|
|
138
|
-
que el servicio lo respete en el fallo anterior. El wrapper sólo leyó `max_tokens`;
|
|
139
|
-
Qwen usa `max_completion_tokens`, por lo que el valor nulo registrado no prueba
|
|
140
|
-
ausencia de límite. No se conservaron prompts, respuestas, argumentos ni claves
|
|
141
|
-
en esa traza.
|
|
142
|
-
|
|
143
|
-
El tarball local del commit `41bd1cb4ab8481a7413f096a0817f612fe9806fe` pasó instalado
|
|
144
|
-
por separado en Node 22.13.0 y Node 24.0.0 para macOS arm64.
|
|
145
|
-
[Evidencia de consumidores](evidence/ga-node-consumers-2026-09-19.json). Esto no
|
|
146
|
-
reemplaza Linux ni los checks remotos. La subida de la rama fue rechazada por la
|
|
147
|
-
revisión automática de permisos; el PR permanece local y su exportación espera
|
|
148
|
-
autorización explícita del operador.
|
|
149
|
-
|
|
150
|
-
## Diagnóstico del verificador para recuperación
|
|
151
|
-
|
|
152
|
-
Una regresión adicional reprodujo que el fallo de verificación devolvía sólo
|
|
153
|
-
exit code y timeout al agente. Ahora ambos verificadores compuestos conservan
|
|
154
|
-
stdout/stderr redactados y limitados a 2048 caracteres por canal, preservando el
|
|
155
|
-
principio y el final cuando se truncan. El contenido está marcado como salida no
|
|
156
|
-
confiable; no cambia aprobaciones, límites ni la prohibición de importar después
|
|
157
|
-
de un fallo. La redacción por patrones no elimina necesariamente datos de negocio
|
|
158
|
-
arbitrarios impresos por el comando aprobado.
|
|
159
|
-
|
|
160
|
-
La regresión falló antes y pasa después. Se actualizó la expectativa anterior de
|
|
161
|
-
omisión completa en el resultado interno: las pruebas ahora distinguen feedback
|
|
162
|
-
del agente, mensaje genérico de error y telemetría exportable. Estas dos últimas
|
|
163
|
-
superficies siguen omitiendo el diagnóstico. Pasan 533 tests, tipos de runtime y
|
|
164
|
-
tooling, contratos de preparación y las cinco comprobaciones de seguridad local.
|
|
165
|
-
La eficacia live de esta corrección todavía no se ha medido; los resultados v3
|
|
166
|
-
corresponden al runtime anterior y siguen conservados íntegros.
|
|
167
|
-
|
|
168
|
-
[Evidencia local del diagnóstico corregido](evidence/ga-verifier-feedback-2026-09-19.json)
|
|
169
|
-
incluye hashes de fuentes, suite, probes de seguridad e instalación del paquete.
|
|
170
|
-
La serie v4 usa la misma tarea de desarrollo, una repetición por proveedor y
|
|
171
|
-
agente, y conserva los límites y el grader de las series anteriores. Su arranque
|
|
172
|
-
inicial falló antes de llamar a los proveedores por credenciales no heredadas;
|
|
173
|
-
el arranque posterior carga el entorno local. No es una cohorte nueva.
|
|
174
|
-
|
|
175
|
-
## Resultado v4 y finalización sin candidato
|
|
176
|
-
|
|
177
|
-
La serie terminó sus cuatro samples con grading completo: Harness 0/1 y control
|
|
178
|
-
1/1 en ambos proveedores. OpenAI falló por `incomplete_arguments`, sin accounting
|
|
179
|
-
completo; Qwen terminó `completed` sin candidato ni verificación y el grader lo
|
|
180
|
-
marcó incorrecto. Ninguno alcanzó el fallo de verificador que esta serie pretendía
|
|
181
|
-
evaluar. [Evidencia íntegra sanitizada](evidence/ga-recovery-v4-2026-09-19.json).
|
|
182
|
-
|
|
183
|
-
Una regresión local reproduce la finalización después de registrar un plan con
|
|
184
|
-
verificador, antes de editar. La corrección exige una acción de herramienta en
|
|
185
|
-
modos compatibles y rechaza la finalización sin entrega: resultado y checkpoint
|
|
186
|
-
quedan `failed` con `REPAIR_INCOMPLETE`. No cambia presupuestos, aprobación ni
|
|
187
|
-
criterios de grading. Su eficacia live queda pendiente.
|
|
188
|
-
|
|
189
|
-
Un fixture SSE independiente reproduce otra limitación en OpenAI 0.13.2: el
|
|
190
|
-
adaptador rechaza `output_item.done` incompleto antes de consumir el evento
|
|
191
|
-
terminal que contiene el uso. `bun run scripts/validate-openai-stream-usage.ts`
|
|
192
|
-
sale con código 1: exige simultáneamente rechazar la llamada incompleta, no
|
|
193
|
-
emitir herramientas y conservar los contadores exactos del fixture. No usa red
|
|
194
|
-
ni credenciales reales. No demuestra que el intento live tuviera ese mismo
|
|
195
|
-
evento terminal, pero explica una ruta concreta hacia accounting incompleto.
|
|
196
|
-
La limitación permanece abierta; no se estiman tokens ni se habilitan reintentos
|
|
197
|
-
con consumo desconocido.
|
|
198
|
-
|
|
199
|
-
Validación posterior a la corrección de finalización: 534 tests sin fallos,
|
|
200
|
-
tipos de runtime/tooling, contratos de preparación, documentación e instalación
|
|
201
|
-
del paquete correctos. El probe separado de accounting sigue fallando y no está
|
|
202
|
-
contabilizado como aceptación aprobada ni oculto dentro de la suite verde.
|
|
203
|
-
|
|
204
|
-
## Serie v5 y propuesta para el SDK
|
|
205
|
-
|
|
206
|
-
La siguiente serie de desarrollo mantuvo tarea, límites y una repetición por
|
|
207
|
-
agente/proveedor. Terminó sus cuatro samples con grading completo:
|
|
208
|
-
OpenAI Harness 1/1 y control 1/1; Qwen Harness 0/1 y control 1/1. Qwen produjo
|
|
209
|
-
una edición, solicitó verificación y ejecutó un comando de diagnóstico, pero
|
|
210
|
-
terminó fallido sin patch importado. Ambos intentos Harness tuvieron accounting
|
|
211
|
-
completo. [Evidencia completa](evidence/ga-recovery-v5-2026-09-19.json).
|
|
212
|
-
Una sola entrega OpenAI en datos ya conocidos no acredita mejora general ni
|
|
213
|
-
sustituye el holdout nuevo. La retención de release sigue vigente.
|
|
214
|
-
|
|
215
|
-
El registry sigue publicando OpenAI 0.13.2. Se preparó un parche aislado del SDK
|
|
216
|
-
en `upstream-fixes/openai-terminal-usage/`, fuera del paquete distribuido del
|
|
217
|
-
Harness y sin modificar el checkout concurrente del SDK. Difiere el rechazo de
|
|
218
|
-
un item incompleto hasta poder leer uso terminal válido; nunca emite la llamada
|
|
219
|
-
incompleta. Once regresiones y el typecheck aislado pasan. El parche todavía
|
|
220
|
-
requiere contrato de error público tipado, checks completos del SDK, revisión,
|
|
221
|
-
publicación y consumo en el presupuesto del Harness. No corrige la dependencia
|
|
222
|
-
instalada ni constituye evidencia de release. El probe sobre 0.13.2 sigue rojo.
|
|
223
|
-
|
|
224
|
-
Actualización del parche SDK: el contrato Core ahora incluye `usage` opcional,
|
|
225
|
-
validado, copiado y congelado. Una copia aislada del commit base pasó 2078 tests,
|
|
226
|
-
tipos, build y documentación con Bun 1.4.2, además del smoke de consumidores
|
|
227
|
-
instalados. Se actualizaron únicamente la firma de `errors.d.ts`, tests, README
|
|
228
|
-
y changeset correspondientes. No se modificó el checkout concurrente del SDK.
|
|
229
|
-
|
|
230
|
-
El presupuesto del Harness consume ese campo sólo en un `ProviderToolCallError`
|
|
231
|
-
del proveedor correcto, conserva el error y evita contarlo dos veces después de
|
|
232
|
-
un finish. El consumo ausente, inválido o de un error no reconocido sigue siendo
|
|
233
|
-
desconocido. Pasan 543 tests y el paquete instalado. La integración con tarballs
|
|
234
|
-
locales del SDK corregido conservó 12 tokens de entrada y 8 de salida, sin ejecutar
|
|
235
|
-
herramientas y manteniendo el run fallido. Las identidades están en la evidencia
|
|
236
|
-
del parche. El adapter publicado sigue en 0.13.2 sin la corrección; falta integrar,
|
|
237
|
-
revisar y publicar el SDK, actualizar la dependencia y certificar el candidato.
|
|
238
|
-
|
|
239
|
-
## Continuación acotada ante finalización prematura
|
|
240
|
-
|
|
241
|
-
Una regresión independiente demuestra que el controlador puede recuperar una
|
|
242
|
-
finalización normal del modelo que todavía deja una reparación pendiente. La
|
|
243
|
-
aplicación solicita `read_task` una única vez a través de los gates ordinarios,
|
|
244
|
-
conserva el uso real de esa respuesta y vuelve a ofrecer al modelo la tarea
|
|
245
|
-
original. El contador se persiste y no se reinicia al reanudar. El recordatorio
|
|
246
|
-
no autoriza ediciones, no aumenta presupuestos y no extiende las dos solicitudes
|
|
247
|
-
de selección de verificador. Errores, cancelación, límite de salida o uso
|
|
248
|
-
desconocido no lo activan; se espera el cierre normal del stream para evitar
|
|
249
|
-
continuar después de un error tardío.
|
|
250
|
-
|
|
251
|
-
Las regresiones cubren continuación hasta una edición/verificación aprobada,
|
|
252
|
-
rechazo de una segunda finalización prematura, restauración del contador, uso
|
|
253
|
-
exacto y límites. Pasan 551 tests, tipos y contratos. La serie v6 ejecuta una
|
|
254
|
-
repetición Qwen y su control sobre la misma tarea de desarrollo, sin modificar
|
|
255
|
-
límites ni grader. Su resultado no constituye holdout nuevo.
|
|
256
|
-
|
|
257
|
-
La serie v6 terminó: Harness 0/1, control 1/1, grading completo y accounting
|
|
258
|
-
completo. Harness agotó WORK_TOKEN_BUDGET después de intentar editar sin plan;
|
|
259
|
-
la mutación no se ejecutó y el siguiente turno volvió a leer archivos. No hubo
|
|
260
|
-
candidato ni verificación, por lo que este intento no mide la eficacia del
|
|
261
|
-
recordatorio ante finalización prematura. Se conserva íntegro como fallo.
|
|
262
|
-
[Evidencia v6](evidence/ga-recovery-v6-2026-09-19.json) y
|
|
263
|
-
[regresiones del recordatorio](evidence/ga-completion-reminder-2026-09-19.json).
|
|
264
|
-
La próxima frontera es la transición desde REPAIR_PLAN_REQUIRED hacia un plan
|
|
265
|
-
válido, manteniendo presupuestos y la prohibición de editar sin verificador.
|
|
266
|
-
|
|
267
|
-
## Transición desde edición sin plan
|
|
268
|
-
|
|
269
|
-
La regresión falló antes y pasó después: rechazar una edición sin verificador
|
|
270
|
-
ahora persiste `planRequired`. Los dos siguientes intentos como máximo ofrecen
|
|
271
|
-
`repair_plan` y `read_task`; un guard de ejecución impide saltarse el catálogo
|
|
272
|
-
restringido. El límite persiste al reanudar y no abre la reserva de cierre ni
|
|
273
|
-
incrementa los presupuestos. Sólo un verificador válido retira la obligación;
|
|
274
|
-
la edición y su verificación mantienen sus aprobaciones normales.
|
|
275
|
-
|
|
276
|
-
Una prueba integrada reproduce rechazo, planificación, edición y verificación
|
|
277
|
-
aprobada hasta entrega. La serie v7 mide esta variante en la misma tarea Qwen de
|
|
278
|
-
desarrollo, con una repetición y control, manteniendo los límites y grader.
|
|
279
|
-
|
|
280
|
-
La serie v7 terminó con Harness 0/1 y control 1/1, sin faltantes ni fallos del
|
|
281
|
-
grader, y accounting completo. El Harness consumió 94.008 tokens de entrada en
|
|
282
|
-
13 llamadas y el siguiente preflight alcanzó INPUT_TOKEN_BUDGET. Registró un
|
|
283
|
-
plan en el turno 9; los tres siguientes intentos fueron rechazados por
|
|
284
|
-
REPAIR_PLAN_SCOPE y después hubo repetición de exploración. Los códigos se
|
|
285
|
-
identifican comparando el fingerprint con los mensajes constantes del runtime.
|
|
286
|
-
No hubo intento de edición: esta muestra no ejercita la transición nueva y no
|
|
287
|
-
permite atribuirle eficacia live. [Evidencia v7](evidence/ga-recovery-v7-2026-09-19.json).
|
|
288
|
-
|
|
289
|
-
La validación local de esta variante pasó 554 tests, tipos, contratos, docs y
|
|
290
|
-
paquete instalado. [Hashes y frontera de evidencia](evidence/ga-plan-transition-2026-09-19.json).
|
|
291
|
-
El parche SDK quedó además en la rama local `feat/ga-terminal-usage`, commit
|
|
292
|
-
`989ba33`, con historial normal desde el commit base y sin modificar el checkout
|
|
293
|
-
concurrente. Sus ocho archivos coinciden byte a byte con la copia validada.
|
|
294
|
-
No se hizo push ni publicación; continúa pendiente la autorización de exportación.
|
|
295
|
-
|
|
296
|
-
## Contexto persistente del alcance del plan
|
|
297
|
-
|
|
298
|
-
Una regresión independiente encontró que la proyección de trabajo del modelo
|
|
299
|
-
omitía las rutas que el controlador de progreso sí persistía y restringía. Tras
|
|
300
|
-
restaurar un estado con historial compactado, esa proyección no recuperaba los
|
|
301
|
-
archivos permitidos. Ahora obtiene directamente del controlador las rutas
|
|
302
|
-
normalizadas y los cupos restantes de lectura/comandos de cierre. Consultar esta
|
|
303
|
-
vista no activa cierre ni modifica los límites; las rutas fuera del plan siguen
|
|
304
|
-
rechazadas. La integración del Harness también verifica que las rutas llegan a
|
|
305
|
-
los siguientes turnos reales del modelo simulado.
|
|
306
|
-
|
|
307
|
-
Pasan 555 tests, tipos, contratos y paquete instalado. Se revisó y regeneró el
|
|
308
|
-
snapshot: cambiaron los hashes transitivos de `runHarness` y `HarnessRunOptions`
|
|
309
|
-
porque su diagnóstico referencia el tipo del controlador; los campos públicos
|
|
310
|
-
de estadísticas siguen iguales. La serie v8 mide una repetición Qwen y control
|
|
311
|
-
con el mismo presupuesto y grader. No se atribuye causalidad a la omisión para
|
|
312
|
-
los fallos live anteriores sin evidencia adicional.
|
|
313
|
-
|
|
314
|
-
La serie v8 terminó con Harness 0/1 por WORK_TOKEN_BUDGET y control 1/1.
|
|
315
|
-
Accounting y grading completos; no se descarta el fallo ni se acredita eficacia
|
|
316
|
-
live a partir de las regresiones. [Evidencia v8](evidence/ga-recovery-v8-2026-09-19.json)
|
|
317
|
-
y [validación local por hash](evidence/ga-working-context-2026-09-19.json).
|
|
318
|
-
El siguiente diagnóstico debe aislar el efecto del catálogo/contexto antes de
|
|
319
|
-
añadir reglas nuevas. Una variante diagnóstica no sustituirá el perfil del
|
|
320
|
-
producto ni se contará como aceptación GA.
|
|
321
|
-
|
|
322
|
-
## Diagnóstico del catálogo reducido
|
|
323
|
-
|
|
324
|
-
La variante aislada de cinco herramientas, predeclarada en
|
|
325
|
-
[el plan](evidence/ga-catalog-ablation-plan-2026-09-19.json), terminó con Harness
|
|
326
|
-
0/1 y control 1/1; grading y accounting completos. Harness consumió 41.620
|
|
327
|
-
tokens de entrada y 680 de salida en nueve llamadas. Tras compactar, solicitó
|
|
328
|
-
una herramienta no registrada y terminó con EXECUTION_FAILED. No se atribuye
|
|
329
|
-
causalidad a la compactación a partir de esta sola muestra.
|
|
330
|
-
|
|
331
|
-
Se conservan ambas muestras, el informe y la identidad de fuente en
|
|
332
|
-
[la evidencia](evidence/ga-catalog-ablation-2026-09-19.json). Frente al baseline
|
|
333
|
-
v8 sólo cambió el driver: catálogo e instrucciones renderizadas conjuntamente.
|
|
334
|
-
El shell ya disponible usa sus propios cupos; no son las mismas rutas ejecutadas
|
|
335
|
-
que las lecturas nativas. La variante no modifica el perfil del producto y no
|
|
336
|
-
cuenta como aceptación GA. Este resultado no justifica promover el catálogo
|
|
337
|
-
reducido ni demuestra que el tamaño del catálogo explique los fallos previos.
|
|
338
|
-
|
|
339
|
-
La inspección del SDK instalado y una regresión de transporte descartan una
|
|
340
|
-
pérdida determinística del catálogo o de las instrucciones de sistema en la
|
|
341
|
-
compactación ordinaria: cinco solicitudes conservan ambos elementos idénticos,
|
|
342
|
-
con más de una compactación intermedia. Pasan 13 tests de
|
|
343
|
-
`tests/sdk-compaction.test.ts` y tipos de tooling. Esta prueba usa un modelo
|
|
344
|
-
simulado y no explica por sí sola la elección live de una herramienta no
|
|
345
|
-
registrada; no se introdujo un cambio especulativo del runtime. La próxima
|
|
346
|
-
investigación necesita evidencia del catálogo efectivo en el límite del
|
|
347
|
-
proveedor, conservando la política de telemetría sin prompts ni secretos.
|
|
348
|
-
|
|
349
|
-
El driver ahora instrumenta el límite de entrada al adapter, por dentro de los
|
|
350
|
-
middlewares del controlador y presupuesto. `modelCatalog` conserva por llamada
|
|
351
|
-
los nombres locales ofrecidos y, para cada llamada devuelta, si fue ofrecida y
|
|
352
|
-
si pertenece al registro del driver. Los nombres externos se sustituyen por
|
|
353
|
-
`other-tool`; no se guardan argumentos, esquemas, mensajes ni errores crudos.
|
|
354
|
-
La evidencia se limita a 100 solicitudes y 64 llamadas devueltas por solicitud,
|
|
355
|
-
con contadores explícitos de omisiones. Una interrupción conserva
|
|
356
|
-
`completed: false` y no modifica el error ni los eventos.
|
|
357
|
-
|
|
358
|
-
Pasan 12 tests del driver y observador, y tipos de tooling. La prueba de orden
|
|
359
|
-
demuestra que observa el catálogo restringido por política, no sólo el inicial.
|
|
360
|
-
Esto mide el contrato neutral que recibe el adapter; no captura los bytes HTTP
|
|
361
|
-
ni prueba qué catálogo vio el servicio remoto. Las llamadas sintéticas del
|
|
362
|
-
controlador no llegan al adapter y no forman parte de esta medición. Todavía
|
|
363
|
-
no hay una nueva muestra live con esta instrumentación; no se atribuye una
|
|
364
|
-
causa al fallo anterior ni se declara mejoría de entrega.
|
|
365
|
-
|
|
366
|
-
La siguiente muestra, con catálogo completo y observación en el adapter, quedó
|
|
367
|
-
[predeclarada](evidence/ga-catalog-observed-plan-2026-09-19.json), pero **no se
|
|
368
|
-
inició**: la revisión automática de permisos rechazó el envío externo por no
|
|
369
|
-
constar autorización específica del contenido y destino. Se solicitó permiso
|
|
370
|
-
para el caso público, fragmentos del repositorio de evaluación e instrucciones
|
|
371
|
-
del Harness hacia Qwen internacional, con una ejecución por candidato y los
|
|
372
|
-
límites originales. No se reintentó por otra vía.
|
|
373
|
-
[Estado separado de la evidencia live](evidence/ga-catalog-observed-status-2026-09-19.json).
|
|
374
|
-
La validación local conjunta de observación, compactación y driver pasa 25 tests.
|
|
375
|
-
|
|
376
|
-
## Integración de la corrección publicada del SDK
|
|
377
|
-
|
|
378
|
-
Tras la confirmación del operador, la consulta pública con `bun info` verifica
|
|
379
|
-
Core 1.22.0, OpenAI 0.13.3 y Qwen 0.14.3. El Harness fija ahora esas versiones
|
|
380
|
-
en package.json y bun.lock, incluido el override de Core. Agents 1.8.0,
|
|
381
|
-
Gemini 0.12.1 y Meta 0.2.6 siguen siendo las versiones consultadas. Se actualizó
|
|
382
|
-
la documentación del lote y su comprobación exacta; los relatos anteriores
|
|
383
|
-
sobre OpenAI 0.13.2 se conservan como evidencia histórica.
|
|
384
|
-
|
|
385
|
-
El probe `validate-openai-stream-usage.ts` pasa con el paquete publicado:
|
|
386
|
-
error incomplete_arguments, cero llamadas de herramienta emitidas y uso
|
|
387
|
-
12/8 conservado. No usa red de proveedores. Pasan 559 tests, tipos de runtime
|
|
388
|
-
y tooling, build y smoke del tarball instalado. El primer intento de smoke
|
|
389
|
-
falló por EPERM del directorio temporal; la repetición con permisos terminó
|
|
390
|
-
correctamente. Esto cierra la dependencia del parche local para esta aceptación,
|
|
391
|
-
no acredita por sí solo provenance del SDK ni una nueva certificación live.
|
|
392
|
-
|
|
393
|
-
La autorización pendiente de Qwen y la de push del Harness siguen siendo
|
|
394
|
-
fronteras independientes. La confirmación de publicación del SDK no se tomó
|
|
395
|
-
como autorización de esas operaciones. GA permanece NO-GO por los pendientes
|
|
396
|
-
de entrega fiable y certificación final.
|
|
397
|
-
|
|
398
|
-
La aceptación integrada también pasa con `runHarness` del workspace y el
|
|
399
|
-
adapter del registry: el run falla sin ejecutar herramientas y contabiliza
|
|
400
|
-
12 tokens de entrada y 8 de salida, con usageComplete=true. Se incorporó
|
|
401
|
-
como regresión automática en `tests/model-budget-error-usage.test.ts`; sus
|
|
402
|
-
10 casos y tipos de tooling pasan. La prueba inyecta SSE local, sin llamadas
|
|
403
|
-
a proveedores. [Versiones, hashes y límites](evidence/ga-published-sdk-2026-09-19.json).
|
|
404
|
-
|
|
405
|
-
## Prueba Qwen autorizada con dependencias publicadas
|
|
406
|
-
|
|
407
|
-
Tras autorización explícita, la muestra con catálogo completo terminó con
|
|
408
|
-
Harness 0/1 y mini-SWE-agent 1/1, grading y accounting completos. Harness
|
|
409
|
-
consumió 64.624 tokens de entrada y 915 de salida en nueve llamadas; el control
|
|
410
|
-
20.189 y 597 en ocho. El Harness terminó por WORK_TOKEN_BUDGET, sin candidato
|
|
411
|
-
ni verificación. Las nueve solicitudes conservaron las 13 herramientas y un
|
|
412
|
-
mensaje de sistema; todas las llamadas devueltas estaban ofrecidas y registradas.
|
|
413
|
-
No hubo omisiones de observación. Esta muestra no reproduce el fallo previo
|
|
414
|
-
de herramienta desconocida y no demuestra la causa de ese fallo histórico.
|
|
415
|
-
|
|
416
|
-
Se conserva la [evidencia completa saneada](evidence/ga-catalog-observed-2026-09-19.json).
|
|
417
|
-
El cambio conjunto de dependencias y observación impide atribuir diferencias a
|
|
418
|
-
una sola variable. Es una tarea conocida de desarrollo, no holdout ni aceptación
|
|
419
|
-
GA. Los límites y el grader no cambiaron. La autorización de la prueba Qwen no
|
|
420
|
-
se extiende al push ni a publicación del Harness.
|
|
421
|
-
|
|
422
|
-
El fingerprint del último error coincide exactamente con el mensaje constante
|
|
423
|
-
REPAIR_PLAN_REQUIRED: el modelo intentó una edición sin registrar antes el
|
|
424
|
-
verificador. La edición se rechazó y el siguiente turno quedó bloqueado por
|
|
425
|
-
el presupuesto de trabajo. La frontera a investigar es la planificación
|
|
426
|
-
tardía y la reserva de recuperación; esta evidencia no justifica retirar la
|
|
427
|
-
precondición de verificación ni ampliar los límites para obtener un aprobado.
|
|
428
|
-
|
|
429
|
-
## Reserva para recuperar una edición rechazada sin plan
|
|
430
|
-
|
|
431
|
-
La transición observada se reprodujo sin red: tras rechazar una edición sin
|
|
432
|
-
verificador, el controlador ofrecía sólo repair_plan/read_task, pero el budget
|
|
433
|
-
no consideraba esa obligación como cierre. Con el 70% ya consumido, la llamada
|
|
434
|
-
fallaba antes de poder registrar el plan. La nueva regresión falló antes del
|
|
435
|
-
arreglo y pasa después, también restaurando el estado.
|
|
436
|
-
|
|
437
|
-
La obligación planRequired habilita ahora la reserva existente para los dos
|
|
438
|
-
intentos restringidos de planificación. Se mantiene la prohibición de ejecutar
|
|
439
|
-
la edición, el límite durable de intentos y el techo total de tokens; una
|
|
440
|
-
segunda prueba confirma rechazo al alcanzar ese techo. El fingerprint de
|
|
441
|
-
política pasa a repair-v3-reserved-plan-recovery para distinguir los checkpoints
|
|
442
|
-
del contrato anterior. No se incrementaron los límites del benchmark.
|
|
443
|
-
|
|
444
|
-
Pasan 562 tests tras la corrección de reserva, además de tipos. Esta aceptación
|
|
445
|
-
es determinística: todavía no demuestra una mejora de entrega live.
|
|
446
|
-
|
|
447
|
-
La repetición Qwen con la corrección terminó: Harness 0/1 y control 1/1,
|
|
448
|
-
grading y accounting completos. Harness consumió 22.916 tokens de entrada y
|
|
449
|
-
949 de salida en cinco llamadas. Intentó editar sin plan en el tercer turno;
|
|
450
|
-
los dos turnos de selección explícita ofrecieron repair_plan/read_task pero
|
|
451
|
-
no devolvieron llamadas desde el adapter. El read_task observado en el cuarto
|
|
452
|
-
turno es el recordatorio sintético del controlador, no una llamada de Qwen.
|
|
453
|
-
No hubo candidato ni verificación. El fallo ocurrió antes de alcanzar la
|
|
454
|
-
reserva, por lo que esta muestra no evalúa su eficacia live.
|
|
455
|
-
[Evidencia íntegra saneada](evidence/ga-plan-reserve-2026-09-19.json).
|
|
456
|
-
|
|
457
|
-
Una nueva prueba sin red verifica el cuerpo Chat serializado por Qwen 0.14.3
|
|
458
|
-
con el controlador real: tool_choice selecciona explícitamente repair_plan,
|
|
459
|
-
enable_thinking=false y el catálogo contiene sólo repair_plan/read_task.
|
|
460
|
-
Pasan la prueba y tipos de tooling. Esta comprobación verifica serialización
|
|
461
|
-
local; no acredita los bytes de la solicitud live histórica ni identifica la
|
|
462
|
-
causa de la ausencia de llamadas en la respuesta remota. No se relajó la
|
|
463
|
-
verificación ni se aumentaron intentos o presupuestos.
|
|
464
|
-
|
|
465
|
-
## Pérdida de llamadas Qwen al finalizar con stop
|
|
466
|
-
|
|
467
|
-
Un diagnóstico live mínimo con fixture sintético aisló una diferencia entre
|
|
468
|
-
servicio y adapter. Con selección explícita repair_plan, el servicio devolvió
|
|
469
|
-
25 fragmentos tool_calls y finish_reason=stop; Qwen 0.14.3 emitió cero llamadas.
|
|
470
|
-
Con selección required devolvió 24 fragmentos y finish_reason=tool_calls, y el
|
|
471
|
-
adapter sí emitió repair_plan. Ninguna herramienta se ejecutó.
|
|
472
|
-
[Evidencia saneada](evidence/ga-qwen-tool-choice-2026-09-19.json).
|
|
473
|
-
|
|
474
|
-
La inspección del adapter confirma que sólo vacía los buffers cuando el motivo
|
|
475
|
-
es tool_calls. `bun run scripts/validate-qwen-terminal-tool-call.ts` reproduce
|
|
476
|
-
sin red la pérdida con JSON completo y final stop: exit 1, cero llamadas, uso
|
|
477
|
-
12/8 conservado. Este defecto es del adapter; aún falta corregirlo y validar
|
|
478
|
-
que length, streams truncados y argumentos inválidos nunca habiliten ejecución.
|
|
479
|
-
No se infieren los bytes de las respuestas del benchmark a partir del fixture.
|
|
480
|
-
|
|
481
|
-
La corrección está preparada en la rama local SDK
|
|
482
|
-
`feat/qwen-terminal-tool-calls`, sobre el commit posterior al release
|
|
483
|
-
identificado en [la PR del SDK](https://github.com/Zhivex/zhivex-ai-sdk/pull/103).
|
|
484
|
-
Pasan 209 tests Qwen, 2.424 tests SDK, tipos, docs y build. El adapter compilado
|
|
485
|
-
pasa el mismo fixture que falla en Qwen 0.14.3: una llamada emitida, finish
|
|
486
|
-
normalizado tool-calls y uso 12/8. El parche valida el lote completo antes de
|
|
487
|
-
emitir efectos; casos truncados o inválidos se rechazan. Incluye changeset y
|
|
488
|
-
el mínimo Core 1.22.0. No está publicado ni instalado en el Harness; no se
|
|
489
|
-
hizo push. La prueba del build local no acredita aún el paquete publicado.
|
|
490
|
-
|
|
491
|
-
La corrección Qwen quedó en el commit local SDK `35e2bb4`. Pasó el smoke de
|
|
492
|
-
consumidores instalados (51 entrypoints y golden path determinístico con Bun
|
|
493
|
-
1.4.2). El diagnóstico live sintético con el adapter compilado recupera ahora
|
|
494
|
-
repair_plan tanto con selección explícita y final stop como con required y
|
|
495
|
-
final tool_calls, conservando uso.
|
|
496
|
-
[Evidencia posterior](evidence/ga-qwen-tool-choice-patched-2026-09-19.json).
|
|
497
|
-
No ejecutó herramientas ni evaluó una reparación; falta integrar el paquete
|
|
498
|
-
publicado y repetir la aceptación del Harness. No se hizo push ni publicación.
|
|
499
|
-
|
|
500
|
-
## Reparación completa con tarball Qwen corregido
|
|
501
|
-
|
|
502
|
-
Una copia aislada del Harness instaló el tarball local construido del commit
|
|
503
|
-
SDK 35e2bb4, conservando el catálogo, política, tarea, límites y grader. Los
|
|
504
|
-
hashes de fuente congelados sólo difieren del baseline en package.json y
|
|
505
|
-
bun.lock; el hash SHA-256 del tarball queda ligado al plan y resultado.
|
|
506
|
-
|
|
507
|
-
Resultado: **Harness 1/1 y control 1/1**, grading y accounting completos.
|
|
508
|
-
Harness registró plan, verificó e importó el parche y pasó el evaluador
|
|
509
|
-
independiente, con 71.480 tokens de entrada y 1.252 de salida. El control
|
|
510
|
-
consumió 19.344 y 545. Se preservan todas las muestras y fallos anteriores.
|
|
511
|
-
[Evidencia](evidence/ga-qwen-patched-package-2026-09-19.json).
|
|
512
|
-
|
|
513
|
-
Es una sola tarea conocida de desarrollo y un paquete local con el mismo
|
|
514
|
-
número de versión que el publicado, distinguido por hash; no constituye
|
|
515
|
-
certificación del registry, holdout ni prueba estadística de fiabilidad.
|
|
516
|
-
El Harness principal sigue fijando Qwen 0.14.3 publicado. El siguiente gate
|
|
517
|
-
es revisar/publicar la corrección SDK, integrarla por versión y verificar la
|
|
518
|
-
cohorte representativa y holdout con el candidato final. No se hizo push ni
|
|
519
|
-
se promovió el ledger a GA.
|
|
520
|
-
|
|
521
|
-
La revisión final añadió una regresión de error explícito tardío del proveedor:
|
|
522
|
-
el lote ya completo no debe emitirse si después llega ese error. Falló antes y
|
|
523
|
-
pasó después. El commit local SDK `c850ae0` lo rechaza conservando uso reportado
|
|
524
|
-
sin propagar detalles crudos. Pasan 2.425 tests, tipos, docs, build y aceptación
|
|
525
|
-
offline del adapter compilado. La evidencia live y de consumidores anterior
|
|
526
|
-
sigue vinculada a `35e2bb4`; no se atribuye al nuevo commit. El parche y el
|
|
527
|
-
texto de PR quedaron actualizados; no se hizo push.
|
|
528
|
-
|
|
529
|
-
El smoke de consumidores instalados se repitió y pasó sobre el commit final
|
|
530
|
-
SDK c850ae0 (51 entrypoints, Bun 1.4.2). La evidencia live sigue ligada al
|
|
531
|
-
commit anterior. Se solicitó autorización específica para subir la rama SDK
|
|
532
|
-
y abrir un PR; sigue pendiente. No hay publicación del parche Qwen ni se
|
|
533
|
-
puede certificar el candidato final del Harness contra esa versión publicada.
|
|
534
|
-
|
|
535
|
-
Por autorización explícita del operador, se ejecutó version-packages: Qwen
|
|
536
|
-
0.14.4 y changelog preparados, Core/SDK sin bump. Se incorporó main, resolviendo
|
|
537
|
-
sólo un comentario del gate de rangos, y pasaron de nuevo 2.425 tests, tipos,
|
|
538
|
-
docs, build y consumidores instalados (51 entrypoints). La rama se subió y
|
|
539
|
-
la [PR #103](https://github.com/Zhivex/zhivex-ai-sdk/pull/103) quedó abierta
|
|
540
|
-
sin draft, head e4cc9eb3e8218b604f58eccc3a8830f24e9fa71b. CI y CodeQL estaban
|
|
541
|
-
en curso al comprobarla. No se hizo merge ni publicación.
|
|
542
|
-
|
|
543
|
-
## Integración del Qwen publicado y nueva muestra
|
|
544
|
-
|
|
545
|
-
La PR #103 fue mergeada externamente. CI, CodeQL y consumidores Node pasaron;
|
|
546
|
-
provider conformance provenance quedó skipped. El release
|
|
547
|
-
[35477096556](https://github.com/Zhivex/zhivex-ai-sdk/actions/runs/35477096556)
|
|
548
|
-
terminó success y el registry publica Qwen 0.14.4. El Harness ahora fija esa
|
|
549
|
-
versión, incluida la documentación y el gate del lote. La aceptación offline
|
|
550
|
-
de terminal-stop pasa contra el paquete instalado. Pasan 563 tests, tipos,
|
|
551
|
-
docs, contrato de preparación y smoke del paquete Harness instalado.
|
|
552
|
-
|
|
553
|
-
La nueva comparación live produjo **Harness 0/1 y control 1/1**, con grading y
|
|
554
|
-
accounting completos. Harness terminó completed tras cinco llamadas, sin plan,
|
|
555
|
-
candidato, verificación ni importación; el grader rechazó la entrega. Consumió
|
|
556
|
-
32.073 tokens de entrada y 281 de salida. El control resolvió con 26.718 y 820.
|
|
557
|
-
[Evidencia publicada](evidence/ga-qwen-published-2026-09-19.json).
|
|
558
|
-
|
|
559
|
-
Se conserva el éxito anterior con tarball local, sin sustituir este fallo.
|
|
560
|
-
El defecto del adapter está corregido, pero queda una frontera del Harness:
|
|
561
|
-
la obligación actual sólo nace al registrar un plan o intentar/realizar una
|
|
562
|
-
edición; una finalización temprana desde exploración puede quedar completed
|
|
563
|
-
sin entregar una reparación. Se requiere un contrato explícito de entrega
|
|
564
|
-
para tareas que la exijan, preservando usos legítimos de inspección sin edición.
|
|
565
|
-
No se declara GA ni se atribuye causalidad de la variación a las dependencias.
|
|
566
|
-
|
|
567
|
-
## Contrato explícito de entrega verificada
|
|
568
|
-
|
|
569
|
-
Se añadió requireVerifiedDelivery, false por defecto y válido sólo con perfil
|
|
570
|
-
repair. Al activarlo, la obligación nace antes del primer plan o edición; una
|
|
571
|
-
finalización desde exploración no puede quedar completed sin entrega verificada.
|
|
572
|
-
Persiste en el controlador y se liga al fingerprint del run. No abre por sí sola
|
|
573
|
-
la reserva ni añade aprobaciones, intentos o presupuesto. El recordatorio único
|
|
574
|
-
y la obligación de verificación existentes se mantienen. El driver SWE-bench
|
|
575
|
-
lo activa porque su contrato exige reparación e importación. Inspección sin
|
|
576
|
-
edición sigue disponible dejando false.
|
|
577
|
-
|
|
578
|
-
La regresión falló antes y pasa después: salida y checkpoint quedan failed
|
|
579
|
-
cuando el modelo finaliza sin reparar, incluso conservando la obligación al
|
|
580
|
-
restaurar con opciones por defecto. Pasan 566 tests de la suite y una prueba
|
|
581
|
-
adicional de validación/fingerprint; las cuatro pruebas focales, tipos, docs,
|
|
582
|
-
contratos y paquete instalado pasan. Se regeneró el snapshot de firmas por la
|
|
583
|
-
nueva opción pública y sus tipos transitivos.
|
|
584
|
-
[Evidencia por hash](evidence/ga-required-delivery-2026-09-19.json).
|
|
585
|
-
Esto elimina un falso completed; todavía no demuestra mayor resolución live.
|
|
586
|
-
|
|
587
|
-
La comparación con entrega requerida terminó con **Harness 0/1 y control
|
|
588
|
-
1/1**, grading y accounting completos. Harness quedó failed por
|
|
589
|
-
INPUT_TOKEN_BUDGET tras 96.896 tokens de entrada y 1.330 de salida en trece
|
|
590
|
-
llamadas facturadas. Registró un plan, intentó editar y verificar, pero la
|
|
591
|
-
verificación produjo error y la recuperación no terminó. Dos lecturas fueron
|
|
592
|
-
rechazadas por REPAIR_PLAN_SCOPE y una nueva edición por REPAIR_PLAN_REQUIRED.
|
|
593
|
-
El control resolvió con 16.988 tokens de entrada y 544 de salida.
|
|
594
|
-
[Evidencia íntegra saneada](evidence/ga-required-delivery-live-2026-09-19.json).
|
|
595
|
-
|
|
596
|
-
Esta muestra no terminó con respuesta final desde exploración: no prueba
|
|
597
|
-
causalmente la eficacia del nuevo gate, aunque conserva correctamente el fallo.
|
|
598
|
-
La regresión determinística sigue siendo la evidencia del cierre del falso
|
|
599
|
-
completed. El error inicial de verificación sólo tiene un fingerprint genérico
|
|
600
|
-
en esta telemetría; no se atribuye su causa sin evidencia adicional. El siguiente
|
|
601
|
-
diagnóstico debe separar fallo del comando, rechazo por deriva del parche y
|
|
602
|
-
error de importación para enfocar la recuperación, sin publicar logs crudos.
|
|
603
|
-
|
|
604
|
-
### Offline verifier diagnosis and feedback regression
|
|
605
|
-
|
|
606
|
-
The required-delivery development run failed its verifier with exit code 1. The fixed `TerminalVerificationFailure` message hashes exactly to `d22955ecb1810cd7e960e732636eec570e04ab3b19eab276ebf23e2096a3c941`. Inspection of the full turn 9 also confirms existing structured evidence: exit 1, no timeout, failed verification, and 436 output characters. A later null-output projection does not establish missing model feedback. The underlying reason for verifier failure remains unknown; this is not evidence of a defective repair versus a defective verifier or environment.
|
|
607
|
-
|
|
608
|
-
Telemetry now recognizes only the exact fixed failure template and emits a bounded numeric exit code even for message-only serialized exceptions. It exports no raw message or verifier output. A regression checks strict and repair recovery at the next model request boundary, in addition to persisted state: bounded verifier diagnostics reach the model while external telemetry omits their content. All 18 focused tests and runtime/tooling typechecks passed. No new provider call, benchmark rerun, or change to prior failed samples was made. Evidence: `docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json`. GA remains unproven.
|
|
609
|
-
|
|
610
|
-
### Validation follow-up and one bounded diagnostic pair
|
|
611
|
-
|
|
612
|
-
The complete local suite passed 568 tests across 68 files before the verifier-output marker projection was added. After that telemetry-only change, 19 focused tests and the tooling typecheck passed. Documentation, preparation contract and five local security probes passed. The contract still reports one open GA blocker. Source hashes and check boundaries are retained in `evidence/ga-local-validation-followup-2026-09-19.json`.
|
|
613
|
-
|
|
614
|
-
The predeclared `ga-verifier-hints` pair is complete: Harness 0/1 versus control 1/1, with complete usage and grading. Harness used 94,600 input / 1,580 output tokens and stopped at INPUT_TOKEN_BUDGET. Its verifier returned exit 1 without a timeout at turn 13; no allowed Python exception marker was observed. The control used 27,051 input / 673 output tokens. No repair, prompt, model or budget setting was changed for this run. There was no repeat after completion.
|
|
615
|
-
|
|
616
|
-
This result does not identify the cause of verifier failure. The model had already spent turns on a missing path, a tool-input schema error and two plan-scope rejections before the edit. These are observed costs, not proof of the verifier's cause. A further diagnosis needs the exact approved verifier and bounded local failure details at the execution boundary; widening exception-label guesses or repeating the same pair would be insufficient. The temporary run state was intentionally cleaned by the runner, so the previous raw failure output cannot be recovered from retained samples. Evidence: `evidence/ga-verifier-hints-plan-2026-09-19.json` and `evidence/ga-verifier-hints-live-2026-09-19.json`. This remains development evidence and does not satisfy representative or fresh-holdout acceptance.
|
|
617
|
-
|
|
618
|
-
### Private execution diagnosis: unavailable runner and incorrect candidate scope
|
|
619
|
-
|
|
620
|
-
A single predeclared Harness-only diagnostic retained at most three verifier failure records in a private local temporary directory. The driver used the same Qwen model and limits; no control or acceptance evaluation was claimed. It stopped at INPUT_TOKEN_BUDGET (92,923 input / 1,028 output tokens). The captured approved verifier used `python -m pytest`; Python reported that pytest was not installed. This directly establishes the verifier infrastructure failure for this diagnostic, not every previous sample. The benchmark prompt had recommended pytest without checking availability. That recommendation is now replaced by discovering the project runner and available dependencies, or using a self-contained assertion; no dependencies or budget limits were changed.
|
|
621
|
-
|
|
622
|
-
Retained environment metadata also reproduced a candidate-capture defect: the actual run was unscoped, but the final diagnostic capture acquired config.scope and therefore inspected a different, empty snapshot. Candidate capture now uses the actual state.runId and state.scope. A real filesystem/OCI-session regression demonstrates that the configuration scope is empty while the run scope contains its edit. Historical candidatePresent=false values therefore cannot prove absence of a candidate. Imported host patches and official task failures remain unchanged.
|
|
623
|
-
|
|
624
|
-
The private observer preserves approval metadata, original error identity and normal execution even if its callback throws. Its callback is disabled by default and does not add raw records to exported benchmark results. Thirteen focused tests and the tooling typecheck pass. Evidence: `evidence/ga-private-verifier-plan-2026-09-19.json` and `evidence/ga-private-verifier-root-cause-2026-09-19.json`. The retained private snapshot now permits offline candidate diagnosis without another model request. No live effectiveness claim is made for either correction.
|
|
625
|
-
|
|
626
|
-
### Retained candidate passes official grading without another model call
|
|
627
|
-
|
|
628
|
-
The corrected scope-aware capture recovered one updated file, `django/db/backends/postgresql/client.py`, from the prior private diagnostic. Capture validated the retained execution binding and content digests. The existing candidate exporter reconstructed the diff in a separate disposable checkout and verified its base digests; no protected files changed. The pinned official evaluator completed with `resolved: true` for patch SHA-256 `15989da845ac1f766848c5c2e153296d7eef926a752ec658548702ac0e028bc7`. No model request or provider credential was involved in this grading.
|
|
629
|
-
|
|
630
|
-
This distinguishes a correct retained repair from unsuccessful delivery: the original verifier required unavailable pytest, import did not succeed, and the original run remains failed at its input budget. It does not demonstrate that the corrected prompt now completes the entire live flow. Historical failed samples remain unchanged. The current complete local suite passes 571 tests across 70 files. Evidence: `evidence/ga-retained-candidate-grading-2026-09-19.json`. The next live check should test the corrected verifier-discovery instruction and successful verified import under the unchanged limits; GA representative and fresh-holdout gates remain open.
|
|
631
|
-
|
|
632
|
-
### Verifier-discovery instruction: complete matched pair, delivery still fails
|
|
633
|
-
|
|
634
|
-
The single predeclared `ga-verifier-discovery` pair completed with full grading and usage: Harness delivered 0/1 and control delivered 1/1. Harness consumed 95,888 input / 1,241 output tokens. The corrected capture now finds its candidate and the official evaluator resolves that candidate, but neither verifier succeeded (exit codes 1 and 2), no patch was imported, and the run reached INPUT_TOKEN_BUDGET. The discovery instruction alone therefore does not establish reliable verification and delivery. No further retry or budget increase was made.
|
|
635
|
-
|
|
636
|
-
The scope correction has direct live evidence; delivery remains blocked. The next improvement must address actual verifier selection/execution failures rather than treating a correct retained patch as successful delivery. Source-bound samples and the unchanged-budget plan are retained in `evidence/ga-verifier-discovery-live-2026-09-19.json` and `evidence/ga-verifier-discovery-plan-2026-09-19.json`. This result does not alter any earlier sample or satisfy GA acceptance.
|
|
637
|
-
|
|
638
|
-
The current installed-package smoke also passed for `@zhivex-ai/harness@1.0.0-rc.14` after the verifier-discovery pair. No package publication was performed.
|
|
639
|
-
|
|
640
|
-
### Python editable-install shadowing reproduced and fixed in candidate images
|
|
641
|
-
|
|
642
|
-
Offline execution of the documented Django runner exposed another environment defect: running `python tests/runtests.py dbshell --settings=test_sqlite --parallel=1` reported Django from `/testbed/django`, outside the mounted candidate. Its apparent pass did not verify the retained edit. The image's editable installation took precedence when Python used the nested script directory rather than the checkout root.
|
|
643
|
-
|
|
644
|
-
Derived candidate images now set `PYTHONPATH=/workspace:/workspace/src:/testbed:/testbed/src`; the image tag derivation includes this policy. Both candidates still receive the same image, and the control retains `/testbed` resolution. Native preflight checks top-level checkout package origins without relying on `-c`'s current-directory shortcut and fails closed on absent or shadowed checkout packages. Old prepared images must be rebuilt; old results remain immutable development evidence, not proof of candidate-bound verification.
|
|
645
|
-
|
|
646
|
-
The corrected image `sha256:4c8b7a320988313b8881a96f334a189bfd0d6fda47cc0219d648867ffe765b80` resolves Django from `/workspace` for Harness and `/testbed` for the control. The public runner now genuinely sees the candidate and fails one historical test expecting the old argument order (26 tests, 5 skips); that is distinct from infrastructure availability. A separate four-case assertion derived solely from the public issue rejects the old image's source origin, fails against the baseline under the corrected image, and passes against the retained candidate. No repository tests, evaluator tests or host source were changed.
|
|
647
|
-
|
|
648
|
-
Twelve focused tests, tooling typecheck, Python compilation and native OCI preflight pass. No model/provider request was made. Evidence: `evidence/ga-python-checkout-imports-2026-09-19.json`. The next live comparison must use the corrected pinned image; this offline validation does not prove reliable verified delivery.
|
|
649
|
-
|
|
650
|
-
### Corrected-image diagnostic stopped on unknown tool selection
|
|
651
|
-
|
|
652
|
-
One private Qwen run with the corrected image stopped on the first model turn after two unregistered tool calls (4,652 input / 97 output tokens, zero executions and approvals). No verifier ran, so this cannot establish delivery effectiveness for the image correction. No retry was made. The result is retained in `evidence/ga-python-origin-delivery-2026-09-19.json`. Relative to the previous private diagnostic both the verifier-discovery instruction and image differ; this is not a causal A/B claim.
|
|
653
|
-
|
|
654
|
-
Installed Core 1.22.0 already supports opt-in unknownToolMode `tool-result`, but repair mode enabled only argument-schema recovery. Repair now also returns unknown selections as structured errors while leaving strict mode unchanged. The run fingerprint changes to bind this policy. Tests cover successful correction, strict/explicit fail-fast behavior, the tool-error ceiling, preserved token accounting and approval required for a subsequent mutation. No unknown tool is registered, renamed or executed.
|
|
655
|
-
|
|
656
|
-
Validation after the selection-recovery change: 577 tests across 72 files pass, including five focused regressions. Runtime/tooling types, documentation and the preparation contract pass. Evidence: `evidence/ga-tool-selection-recovery-2026-09-19.json`. No live retry or GA acceptance claim was made.
|
|
657
|
-
|
|
658
|
-
### Corrected-image end-to-end delivery passes one development diagnostic
|
|
659
|
-
|
|
660
|
-
The predeclared single Qwen run at implementation commit `fbceb4f` completed in 7 recorded turns, with 8 tools and 2 approvals. It used 47,739 input / 860 output tokens under the unchanged limits. Verification exited 0, the governed import completed, and the independent pinned official evaluator resolved the actual host patch. The imported patch SHA-256 is `15989da845ac1f766848c5c2e153296d7eef926a752ec658548702ac0e028bc7`, matching the independently graded retained candidate. No protected files changed.
|
|
661
|
-
|
|
662
|
-
No unknown-tool error occurred in this successful run, so it validates the current bundle's delivery path rather than proving the causal live effect of unknown-tool recovery. That behavior remains supported by focused regressions. This is one known development instance, without a concurrent control; previous failed attempts stay failed. It is not GA acceptance, a reliability rate, or fresh holdout evidence. Further repetitions of this same case are closed; the next external evaluation should use a fresh predeclared cohort and freeze implementation throughout. Evidence: `evidence/ga-tool-selection-live-plan-2026-09-19.json` and `evidence/ga-tool-selection-live-2026-09-19.json`.
|
|
663
|
-
|
|
664
|
-
### Fresh five-task cohort: complete, no GA approval
|
|
665
|
-
|
|
666
|
-
The predeclared cohort excluded all 17 previously used task IDs, pinned five new tasks and their images, and passed all five native preflights before paid calls. The frozen implementation was `1886644`. All ten planned model runs and their independent grading completed; usage is complete and there are no missing rows or grading failures. No retries, replacements or source changes occurred during the cohort.
|
|
667
|
-
|
|
668
|
-
Harness resolved 0/5; mini-SWE-agent resolved 1/5 (Requests). Harness stopped before any plan/candidate in three Django cases at WORK_TOKEN_BUDGET, exhausted total input on Requests, and completed/imported Pylint without satisfying the independent evaluator. The candidate-only score was also 0/5. The comparative bootstrap interval is exploratory for only five tasks and does not support a broad accuracy or safety claim.
|
|
669
|
-
|
|
670
|
-
The input target was 100,000 for both, but enforcement differs: the control checks between calls and observed totals ranged from 100,223 to 107,327; Harness predicts the next request and reserves work capacity for closure. Actual consumed-token parity is therefore not claimed. Three Harness work-budget stops occurred after 57,786–62,053 input tokens with no repair plan, leaving a substantial unused closure reserve. The next implementation investigation is whether required-delivery runs transition into bounded planning before the work boundary rejects another call. This is a hypothesis to reproduce locally, not proof of a fix.
|
|
671
|
-
|
|
672
|
-
The fresh holdout is now complete and these five cases join the exclusion set for future fresh evaluation. Its results do not support GA approval. Preparation, plan and all sanitized samples are preserved in `evidence/ga-fresh-cohort-preparation-2026-09-19.json`, `evidence/ga-fresh-cohort-plan-2026-09-19.json`, and `evidence/ga-fresh-cohort-result-2026-09-19.json`. All protected release, representative and final security requirements remain unchanged.
|
|
673
|
-
|
|
674
|
-
### Work-budget boundary regression and bounded planning transition
|
|
675
|
-
|
|
676
|
-
The three fresh-cohort work-budget failures had no plan/candidate and no verifier attempt. A local middleware regression reproduced the transition defect: with 60% of input already consumed and a large current exploration catalogue, the next request exceeded the 70% work ceiling and failed before offering planning. The positive regression failed with WORK_TOKEN_BUDGET before the change; optional-delivery inspection retained its expected rejection.
|
|
677
|
-
|
|
678
|
-
Required-delivery OCI runs now estimate the current request, including the working-state projection, before the budget gate. If exploration would reach the work boundary and there is no verifier/candidate, the controller enters its existing durable planning obligation: only repair_plan/read_task, at most two attempts across resumes. The budget then estimates the narrowed request and enforces the unchanged total ceilings. Tests also cover the output work boundary, no calls after total input/output exhaustion, rejected exploration during planning, and persistence of attempt limits. No task-specific answer or verifier was injected.
|
|
679
|
-
|
|
680
|
-
An initial implementation exposed the estimator through the internal budget return type, which unnecessarily changed transitive declaration hashes. The estimator was moved to a standalone internal helper; the existing Stable signature snapshot remains unchanged and the contract check passes. The runtime fingerprint advances to bind the new scheduling behavior. The failed fresh cohort remains immutable evidence; no live retry has yet validated this change.
|
|
681
|
-
|
|
682
|
-
Final local validation: 584 tests across 72 files, runtime/tooling types, documentation, preparation contract and installed-package smoke pass. Stable signatures remain unchanged. Evidence: `evidence/ga-work-budget-planning-2026-09-19.json`. No live provider call was made for this change.
|
|
683
|
-
|
|
684
|
-
Continuation review reproduced two additional failures: registering the forced plan cleared the transient reserve eligibility before an edit, and an already registered plan prevented boundary activation. Required-delivery OCI work now durably enters closure reserve at the boundary, with or without an existing verifier. Missing verifiers still require bounded planning. Checkpoint restoration preserves reserve eligibility without replenishing usage; total-input exhaustion still prevents dispatch. Both regressions failed before this correction and pass after it. Reserve availability alone does not prove a successful repair.
|
|
685
|
-
|
|
686
|
-
### Work-boundary live development check: plan reached, delivery still fails
|
|
687
|
-
|
|
688
|
-
The predeclared single rerun selected django__django-10914, the first previous work-budget failure in manifest order. Implementation a6d6540, all source hashes, prepared image and original limits were frozen. Native preflight passed. One Qwen attempt consumed 93,522 input and 1,275 output tokens across nine model calls with complete usage. The observed progress records enteredClosure=true and planRecorded=true; the run then failed INPUT_TOKEN_BUDGET without an imported patch. Independent grading completed with empty-patch-no-solution / resolved=false.
|
|
689
|
-
|
|
690
|
-
This supports the narrow observation that the run could record a plan and continue beyond the prior work-budget stop, not that the change improves correctness. Subsequent calls requested environment shells and patch inspection; no deliverable was established. A local postprocessing helper initially rejected the empty patch, so grading was resumed from the stored terminal result without another model call. The failed attempt remains the sole attempt.
|
|
691
|
-
|
|
692
|
-
The fresh 0/5 holdout remains unchanged. Further investigation should examine whether the remaining context and tool sequence allow the planned repair and verification to finish inside the fixed total budget; another indiscriminate retry is not justified. Evidence: evidence/ga-work-boundary-live-plan-2026-09-19.json and evidence/ga-work-boundary-live-2026-09-19.json.
|
|
693
|
-
|
|
694
|
-
### Complete local release preparation check
|
|
695
|
-
|
|
696
|
-
At implementation a6d581a, bun run check completed with exit 0: 584 tests, both typechecks, documentation, preparation contract, historical migrations, deterministic evaluation, workspace/safe-fix benchmark checks, both MCP interoperability smokes, native OCI smoke and installed-package smoke. bun audit found no vulnerabilities among 35 packages; bun pm untrusted reported no untrusted dependencies with scripts. This is local evidence, not a protected release result.
|
|
697
|
-
|
|
698
|
-
The release-readiness script remains red: RC14 is intentionally Unreleased without a dated release heading, the check ran on the feature branch, and the evidence additions were uncommitted when checked. Do not date a release or mark these gates passing before the corresponding release action. The formal GA ledger additionally requires final representative evaluation, immutable publication/provenance and named artifact-bound human security review. Context analysis of the latest failed development run is retained separately; it does not justify changing acceptance criteria or an unmeasured runtime tuning.
|
|
699
|
-
|
|
700
|
-
Evidence: evidence/ga-complete-local-check-2026-09-19.json and evidence/ga-work-boundary-context-analysis-2026-09-19.json.
|