round39 serve + tokenizer port #
scope and source #
- upstream range:
296b59d2f73c8f04a805df29c2fa97655adace78..477ac13cbe8e582c20484871ce459d20d82df09d. - read
vendor/strata/AGENTS.md,docs/DETAILS.mdthinking/API sections,docs/LOGIT_BIAS.md, design-preflight and orchestrating-agents. - owner boundaries: tokenizer owns exact incremental encoding; service owns request preparation/cache admission, thinking budgets and API defaults; telemetry owns fail-open platform readers. no engine/model/GPU execution or running service changes.
- all 21 upstream serve/tokenizer changed files ported. 16 match upstream exactly; exceptions: server.py retains the pre-existing local image omission hunk unchanged and caps prompt retention; logit_bias.py removes unsafe identity caching; test_logit_bias.py adds regression coverage and removes obsolete _last resets; telemetry.py caches/releases the working-set device; test_server.py covers those hardening changes. one local test file added.
- complete owned patch, including untracked upstream tests:
results/round39/serve-owned-final.patch. - sha256s of every owned final file and upstream counterpart:
results/round39/serve-source-hashes.json.
behavior and deviations #
ports prompt encoder resume points, plain-span-aware prefix reuse and rejected-prompt forgetting; parser wrapped-call scan cursor and bounded suffix checks; bounded content-keyed logit-bias LRU; apple IOKit telemetry; anthropic hard thinking budgets and automatic answer reservation. also carries upstream admission ordering (opt-in), turn-aware slot choice, sampling/model-card/web defaults, scrape-window throughput gauges, config diagnostics, and prompt telemetry fields.
local image omission still mutates content lists before image processing and encoding, exactly as before. new tests prove retained text-part identity, omitted images cached as text, full/incremental token parity, repeated fresh/mutated-object requests, disabled-switch error, and no mutation when vision exists.
parent review identified upstream's _last identity+length fast path returning stale values after same-length mutation. removed it rather than asserting request immutability. every large input now receives a JSON content key; four-entry bounded LRU and cached engine-key strings remain. new tests cover nested list/dict edits to valid/invalid values and JSON-equivalent inputs/duplicate IDs. red-on-upstream evidence: serve-logit-bias-upstream-repro.log (one test, two failing subtests); fixed bias suite: 14 passed.
hardening requested after opus review: service retention is capped at the explicit PROMPT_ENCODER_KEEP_MAX = 16, including huge engine INFO and lazy-start argument values. apple working-set budget is read once per _Metal instance and reused by read and static telemetry. the local SDK's /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks/Metal.framework/Headers/MTLDevice.h:130 declares MTLCreateSystemDefaultDevice NS_RETURNS_RETAINED; the helper now releases it in finally, including unsupported-selector returns. mock tests count one helper call through three reads and Telemetry static initialization, and verify device release on success/unsupported selectors.
validation #
python: /tmp/r39-serve-venv/bin/python (3.14.7); dependencies: results/round39/serve-python-packages.txt. initial system python lacked jinja2/regex; initial import-failure logs retained separately. baseline tree copied to /tmp/r39-serve-baseline, restoring only owned paths to source baseline plus original local image hunk; shared checkout never reverted.
- tokenizer baseline: 6 passed.
- tokenizer default candidate: 11 run, 3 skips (real-vocabulary classes/oracle unavailable by default).
- tokenizer with
STRATA_TOKENIZER=$PWD/models/K256_reap_l2_sum/tokenizer: 18 run, 1 skip (external llama.cpp oracle vectors absent), no failures; reads vocabulary only, no model execution. - image compatibility: 3 passed.
- final logit bias: 14 passed.
- hardening affected suites: 39 passed in 3.786s (
serve-hardening-affected.log), with real vocabulary enabled; rerun after final readability adjustment also passes 39 (serve-hardening-final.log). - first full serve baseline/candidate attempts hit 300s deadlines; partial logs retained as
serve-baseline.log/serve-post.log. no completed suite count claimed for these. - completed full baseline: 785 tests in 494.236s, 1 failure, 11 skips (
serve-baseline-full.log). - completed full candidate (pre-hardening imports, before one extra bias-key test): 852 tests in 516.658s, 1 failure, 6 skips (
serve-final-full.log). - the sole failure is identical on baseline/candidate:
test_keepawake.KeepAwakeTests.test_service_holds_for_the_whole_request_including_early_close, line 87. this is an existing asynchronous-observation race, not a port regression: the mock request can acquire and release its hold before the keep-awake daemon acquires_cond;_loopthen sees_count == 0withheld == Falseand waits without emitting either transition. the test assumes the daemon observed the transient busy state. deterministic baseline/candidate reproductions block that condition lock through the request and both recordcount=0, calls=[], then only idle reset on close (keepawake-mechanism-{baseline,candidate}.log). no timeout increase, expectedFailure, or unrelated product/test edit applied. - final hardening is checked by the separate 39-test affected-suite run, not falsely folded into the older full-run count.
changed files #
vendor/strata/serve/frontend.pyvendor/strata/serve/logit_bias.pyvendor/strata/serve/runconfig.pyvendor/strata/serve/server.pyvendor/strata/serve/telemetry.pyvendor/strata/serve/test_admit_order.pyvendor/strata/serve/test_effort_paths.pyvendor/strata/serve/test_logit_bias.pyvendor/strata/serve/test_model_card_sampling.pyvendor/strata/serve/test_parallel.pyvendor/strata/serve/test_parser_call_scan.pyvendor/strata/serve/test_parser_hold.pyvendor/strata/serve/test_prompt_encoder.pyvendor/strata/serve/test_q36_config.pyvendor/strata/serve/test_reasoning_loop_recovery.pyvendor/strata/serve/test_server.pyvendor/strata/serve/test_slot_alloc.pyvendor/strata/serve/test_web_sampling.pyvendor/strata/serve/web/app.jsvendor/strata/tools/strata_tokenizer.pyvendor/strata/tools/test_strata_tokenizer.pyvendor/strata/serve/test_image_omission.py
final review #
view_diff reviewed every tracked owned diff; view_code reviewed every new upstream/local test file and final local mutation/key-equivalence tests. tokenizer reuse helpers are shared with service rather than duplicated. upstream comments/style retained for port fidelity. no assertion or test removed except obsolete _last reset setup lines; upstream loop-recovery tests explicitly disable automatic answer_room to continue testing the original loop-guard path.
parent independent verification #
parent reports an independent full-suite run passed: 852 tests in 517.636s, 11 skips, exit 0; its independent hardening selection also passed 39/39. these are parent-reported results, not this agent's own runs. the baseline-shared keepawake race above did not reproduce in the parent full run. no additional suites launched after parent began quiet paired CLI benchmarking.