@miller-tech/uap 2.48.0 → 2.48.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/docs/plans/droid-client-performance-options.md +56 -0
- package/package.json +1 -1
- package/scripts/lib/droid-sync-contracts.sh +28 -6
- package/src/policies/enforcers/__pycache__/_common.cpython-311.pyc +0 -0
- package/src/policies/enforcers/__pycache__/expert_review_required.cpython-311.pyc +0 -0
- package/src/policies/enforcers/__pycache__/quality_metrics_gate.cpython-311.pyc +0 -0
- package/templates/hooks/__pycache__/deliver_autoroute.cpython-311.pyc +0 -0
- package/tools/agents/scripts/__pycache__/anthropic_proxy.cpython-311.pyc +0 -0
- package/tools/agents/scripts/__pycache__/tool_risk.cpython-311.pyc +0 -0
- package/tools/agents/scripts/__pycache__/toolcall_path_normalizer.cpython-311.pyc +0 -0
|
@@ -250,3 +250,59 @@ deliver run), which inflates its latency but not its gate outcomes. The
|
|
|
250
250
|
frontier anatomy counts Droid-native tool results, not the UAP tool layer the
|
|
251
251
|
monitoring round measured — the classes are aligned but the instruments
|
|
252
252
|
differ; cross-comparison of rates between the two instruments is qualitative.
|
|
253
|
+
|
|
254
|
+
---
|
|
255
|
+
|
|
256
|
+
## Monitoring round 2 (2026-11-14 evening) — post-O-C/O-D/O-B state
|
|
257
|
+
|
|
258
|
+
Re-mined the live corpus after the day's merges (v2.46.0 O-C hints+readGate,
|
|
259
|
+
v2.47.0 O-D shim+O-E corpus, v2.48.0 turnpack ports; master `6dd4fc90`),
|
|
260
|
+
with the O-B GLM-5.3 baseline now available as the frontier reference.
|
|
261
|
+
|
|
262
|
+
### Finding 1 — THE CLIENT IS STALE (the round's headline)
|
|
263
|
+
|
|
264
|
+
The running Droid qwen3.8 UAP client executes the **globally-installed
|
|
265
|
+
`@miller-tech/uap` = v2.45.0** (NVM path, verified: the global dist lacks
|
|
266
|
+
`delivery/path-hints.js`; the npm registry's `latest` is also 2.45.0 while
|
|
267
|
+
master is 2.48.0). Every deliver/client session today therefore runs
|
|
268
|
+
**pre-fix code** — none of O-C's hints, the readGate, or the turnpack
|
|
269
|
+
listing-anchor ports are in any live client. The only fix that reached the
|
|
270
|
+
client is O-D's proxy-side shim (the proxy serves from the repo tree and was
|
|
271
|
+
restarted 19:14 and again 20:50 for v2.48.0). The npm-publish workflow
|
|
272
|
+
(manual-trigger) was fired 09:58 UTC; until it lands and the global install
|
|
273
|
+
is updated, **every measured "post-fix" window is actually shim-only.**
|
|
274
|
+
|
|
275
|
+
### Finding 2 — the shim-only window (era B, n=209, directional)
|
|
276
|
+
|
|
277
|
+
| Class | Era A (pre-shim, n=19,794) | Era B (shim live, n=209) |
|
|
278
|
+
|---|---:|---:|
|
|
279
|
+
| ok | 75.7% | **81.8%** |
|
|
280
|
+
| stub-refusal | 5.4% | 7.2% |
|
|
281
|
+
| edit-miss | 3.2% | **0** |
|
|
282
|
+
| path-not-found | 2.6% | **0** |
|
|
283
|
+
| no-op | 3.8% | 1.9% |
|
|
284
|
+
|
|
285
|
+
Zero edit-miss and zero path-not-found in era B is encouraging but
|
|
286
|
+
underpowered (one deliver run's task mix, n=209) — directional, not a
|
|
287
|
+
finding. stub-refusal persists at 7.2% (all write_file gutting re-sends) —
|
|
288
|
+
exactly the class the not-yet-client-live readGate targets, consistent with
|
|
289
|
+
Finding 1.
|
|
290
|
+
|
|
291
|
+
### The ranked levers now (against the measured O-B frontier reference)
|
|
292
|
+
|
|
293
|
+
- **R2-A — Update the global client (free, minutes, the biggest immediate
|
|
294
|
+
lever):** once the npm publish lands, `npm i -g @miller-tech/uap@latest`
|
|
295
|
+
puts O-C + turnpack in every new client session. The next monitoring
|
|
296
|
+
window after that is the first true post-fix read; watch stub-refusal
|
|
297
|
+
(readGate) and edit-miss (turnpack) first.
|
|
298
|
+
- **R2-B — Serve v31 for client sessions (free):** iq2_xs (floor tier) is
|
|
299
|
+
STILL serving all client work. The O-B suite measured what that tier
|
|
300
|
+
costs on identical tasks: same gates at ~24x tool volume and ~10x wall
|
|
301
|
+
time. This is the original O-A, still unexecuted.
|
|
302
|
+
- **R2-C — Route frontier-class client sessions to glm-5.3 (one flag, now
|
|
303
|
+
measured):** `droid -m glm-5.3` / the session default (already set).
|
|
304
|
+
The O-B baseline quantifies the buy: same gates, 1/24 the tool activity,
|
|
305
|
+
1/10 the wall time, zero edit/write misses. This is the concrete
|
|
306
|
+
"Opus 5.5 / Fable 5.2 levels" lever on this box today.
|
|
307
|
+
- **R2-D — Re-measure after R2-A:** the post-client-update window is the
|
|
308
|
+
honest post-fix read; era B's zeros become testable at population scale.
|
package/package.json
CHANGED
|
@@ -66,6 +66,20 @@ _UAP_DROID_SYNC_CONTRACTS_LOADED=1
|
|
|
66
66
|
# local model id — it must never carry a qwen id.
|
|
67
67
|
: "${DROID_ANTHROPIC_BASE_MODEL:=claude-sonnet-4-6}"
|
|
68
68
|
|
|
69
|
+
# DROID_CHAT_BASE_MODEL — the Factory BUILT-IN catalog id written into
|
|
70
|
+
# `baseModelId` of the OpenAI-shaped local entries (the proxy chat /v1 route
|
|
71
|
+
# and the direct Responses :8080 route). qwen3.8-max is the choice because the
|
|
72
|
+
# served stack IS the Qwen3.8 family (Flash-Next 125B arms and its Edge0-145B
|
|
73
|
+
# latent-MoE derivative): the entry inherits the built-in's Qwen3.8-class
|
|
74
|
+
# prompts, tool-call conventions, reasoning levels, and Script-mode
|
|
75
|
+
# eligibility instead of tripping the "does not map to a built-in model"
|
|
76
|
+
# warning. Same family, same catalog — this is a BUILT-IN id, never a local
|
|
77
|
+
# wire id: it must never be the served alias, a retired arm, or anything the
|
|
78
|
+
# registry's advertises lists carry. (The prefix-era guard "never a qwen id"
|
|
79
|
+
# predates the Factory catalog gaining Qwen3.8 built-ins; the exact local-id
|
|
80
|
+
# check lives in the sandbox suite.)
|
|
81
|
+
: "${DROID_CHAT_BASE_MODEL:=qwen3.8-max}"
|
|
82
|
+
|
|
69
83
|
# DROID_SYNC_LOCK — lock file serialising concurrent Droid config writes
|
|
70
84
|
# (session-start hook + manual installer run + a second Droid window).
|
|
71
85
|
# Without it two writers read-modify-write the same JSON and one set of
|
|
@@ -95,15 +109,23 @@ fi
|
|
|
95
109
|
# in place or left alone. "0" = patch only when present.
|
|
96
110
|
# Reads from the caller's scope: MODEL_ALIAS, PROXY_URL, DIRECT_URL,
|
|
97
111
|
# CTX_SESSION, CTX_POOL, MAX_OUTPUT, DROID_ANTHROPIC_BASE_MODEL,
|
|
98
|
-
# PROXY_TOKEN (via UAP_SYNC_TOKEN env), DRY_RUN.
|
|
112
|
+
# DROID_CHAT_BASE_MODEL, PROXY_TOKEN (via UAP_SYNC_TOKEN env), DRY_RUN.
|
|
99
113
|
# Migration rules (idempotent; no change => file left byte-identical):
|
|
100
|
-
# * entries whose model is a RETIRED local id —
|
|
101
|
-
#
|
|
102
|
-
#
|
|
114
|
+
# * entries whose model is a RETIRED local id — already the live alias,
|
|
115
|
+
# a FLEET wire id (any registry advertises entry) pointed at this
|
|
116
|
+
# box's :4000/:8080, or model-less but pointed at :4000/:8080 —
|
|
117
|
+
# converge onto MODEL_ALIAS (fleet ids are gated on a local base:
|
|
118
|
+
# the compat names collide with real cloud ids, so a cloud-router
|
|
119
|
+
# entry carrying one survives untouched);
|
|
103
120
|
# * route by existing shape: baseUrl with :8080 -> direct strata route
|
|
104
121
|
# (pool-sized); :4000 WITHOUT /v1 -> Anthropic Messages root (proxy
|
|
105
|
-
# root + baseModelId + apiKey only if
|
|
106
|
-
# else local -> proxy chat route
|
|
122
|
+
# root + baseModelId=DROID_ANTHROPIC_BASE_MODEL + apiKey only if
|
|
123
|
+
# absent, session-sized); anything else local -> proxy chat route
|
|
124
|
+
# ($PROXY_URL/v1 + token); every camelCase local route also gains
|
|
125
|
+
# baseModelId (anthropic shape -> DROID_ANTHROPIC_BASE_MODEL, OpenAI
|
|
126
|
+
# shapes -> DROID_CHAT_BASE_MODEL) when absent, so Droid inherits the
|
|
127
|
+
# built-in's prompts/tools/reasoning instead of warning the entry
|
|
128
|
+
# "does not map to a built-in model";
|
|
107
129
|
# * cloud models (anything else, including the :8317 router entries) are
|
|
108
130
|
# deliberate user choices and are never repointed;
|
|
109
131
|
# * a settings.json with NO local entry after migration gains the
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|