Executive summary
Hiro's two local-model libraries were relocated from the space-constrained system volume to dedicated directories on E:. LM Studio now downloads to E:\AI\Models\LMStudio, while Hiro's legacy GGUF library resides at E:\AI\Models\llama.cpp.
The migration used copy-first activation. Every source and destination file was compared by relative path, byte length, and SHA-256 before the original paths were replaced by compatibility junctions. This preserved Hiro's existing pinned paths without changing application source.
LM Studio discovered four language models and one embedding model after migration. A real 6.50 GiB Gemma 4 12B load from E: completed, used the intended 4,096-token single-slot configuration, returned READY in 0.363 seconds, and unloaded cleanly.
Removing the verified C: backups increased measured free space from 20.83 GiB to 65.25 GiB, reclaiming 44.42 GiB. The main tradeoff is cold-load latency: the Gemma load took 3 minutes 13.95 seconds from E:, far slower than the historical system-volume startup.
A controlled follow-up compared the same 6.497 GiB Gemma file on the separate D: and E: USB hard drives. Two uncached reads averaged 104.16 MiB/s on D: versus 42.52 MiB/s on E:, making D: 2.45 times faster. A fresh-file LM Studio cold load took 69.67 seconds from D: versus 199.73 seconds from E:, a 65.1% reduction.
Once loaded, storage placement did not materially change inference: the first fixed response took 0.252 seconds from D: and 0.253 seconds from E:, with subsequent responses near 0.11 seconds on both. Hiro was restored to its original E: configuration after the benchmark; both temporary D: copies were deleted, and no model or server was left running.
After the benchmark established D: as the faster device, Hiro's complete active model estate was intentionally migrated from E: to D:. The move covered 19.392 GiB across five LM Studio files and 31.516 GiB across thirteen legacy files; all 50.908 GiB matched by relative path, length, and SHA-256 before activation.
LM Studio now downloads directly to D:\AI\Models\LMStudio, while the active legacy library is D:\AI\Models\llama.cpp. Direct compatibility junctions preserve both the prior C: and E: paths. A real Gemma load completed in 69.76 seconds, three READY responses passed, the E: backups were removed, and no model or server was left running.
Downloaded bartowski's recommended single-file Q4_K_M conversion of Qwen3.6-35B-A3B directly through LM Studio to D:. The 22,285,080,192-byte main GGUF matched the publisher's SHA-256 exactly, and LM Studio also obtained the 899,283,296-byte F16 vision projector.
Qwen3.6-35B-A3B Q4_K_M was evaluated in LM Studio with an 8,192-token context, one parallel slot, and full GPU offload. Estimate-only reported 22.51 GiB. The real load completed in 399.48 seconds; LM Studio reported a 21.59 GiB model footprint, while total GPU use increased from 6,307 MiB before loading to 29,996 MiB after loading.
The 120-case deterministic Hiro core suite completed without API errors at a raised 1,024-token generation ceiling. The primary run averaged 78.37%, with 94 of 120 cases meeting the 70% pass threshold: evidence obedience 29/30, no-evidence refusal 17/20, simulated tool routing 25/25, structured JSON 20/20, troubleshooting 0/15, and self-improvement specification 3/10.
The weak categories were dominated by reasoning-token starvation rather than inability to solve the tasks. LM Studio kept Qwen3.6 thinking enabled even when OpenAI-compatible template parameters and the native reasoning-off request were attempted. A repeated 120-case sweep reproduced the same runaway-reasoning pattern. Two representative failed cases succeeded when retried at 4,096 tokens, taking 8.49 and 8.99 seconds and consuming 1,144 and 1,240 hidden reasoning tokens respectively.
Qwen3.6 passed a real function-call request in 1.21 seconds, selecting the requested weather function with the correct Seattle argument. It also passed a near-full-window retrieval probe with 7,623 prompt tokens and 7,817 total tokens in 2.46 seconds, returning the exact final ledger marker.
Raw decode throughput is strong on the RTX 5090: a sustained sample produced 2,048 completion tokens in 12.02 seconds, or 170.32 tokens per second. However, 1,829 tokens, 89.3%, were hidden reasoning, and the requested long answer stopped after only 165 visible words. A synthetic vision card was read correctly in 3.10 seconds, identifying all three colored shapes and the text HIRO 8K.
Qwen3.6 is not being promoted to Hiro's default in its current runtime configuration. Its primary 78.37% suite score is below the historical Qwen 9B score of 79.96% and Gemma 4 score of 83.13%, despite the larger output allowance, and reasoning overhead breaks Hiro's compact-response economics. The model was unloaded, the API server was stopped, and total GPU use returned to 6,482 MiB.
Restored Hiro's local Evaluation Observatory at the previously used http://127.0.0.1:8765/benchmarks address. The failure was service availability, not lost dashboard code or evaluation data: no process was listening on port 8765, while the FastAPI route, static dashboard, and 1.5 MB evaluation ledger remained present.
The machine no longer had a registered system Python interpreter capable of running Hiro. Rebuilt the pinned project environment inside Hiro's ignored .runtime directory, leaving the dirty source worktree and all existing application changes untouched.
Started the existing FastAPI application as a standalone loopback-only service on port 8765. Live checks returned HTTP 200 for the dashboard, confirmed the Evaluation Observatory page title, and loaded the read-only overview API with 100 completed runs across 101 variants.
Left the local dashboard service running so benchmark history can be monitored without loading an LLM. The latest ledger entry remains the completed resume-live-soak run with a 1.0 weighted score.
Repeated Qwen3.6-35B-A3B Q4_K_M at 8,192-token context through Hiro's actual append-only Evaluation Observatory ledger, using one slot, full GPU offload, the frozen emergence-level1-public@1.1.0 suite, and the full run_turn agent path.
The valid 16-observation run scored 85.42% with a 37.5% strict pass rate, zero invariant failures, and 3,545.67 ms p95 latency. Three matched Gemma 4 12B ledger runs averaged 95.49%, 72.92%, and 379.91 ms respectively, so Qwen trailed by 10.07 score points and 35.42 pass-rate points while running 9.33 times slower at p95.
A first attempt was preserved as invalid audit evidence because restricted execution made Hiro's main conversation database read-only and every case failed before inference. The valid r2 run used normal Hiro host permissions; its zero invariant failures and recorded model responses distinguish the model result from the infrastructure-only r1 failure.
The matched ledger run reinforces the no-promotion decision. Qwen's forced hidden reasoning frequently exhausted Hiro's 512-token agent completion allowance, leaving partial reasoning fragments instead of the exact compact answers the suite requested. The confidence intervals overlap at this small sample size, so the ledger does not label the score difference statistically clear, but the quality and latency directions are both unfavorable.
After ingestion, the live loopback Evaluation Observatory reported 130 completed runs across 103 variants and identified qwen36-35b-a3b-8k-public-20260720-r2 as the latest run. Qwen was unloaded and the LM Studio API stopped; the dashboard remained available at http://127.0.0.1:8765/benchmarks.
A read-only architectural diagnosis mapped what would be required to move evaluation orchestration and self-improvement from an external ChatGPT-led development loop into Hiro. Hiro already has strong measurement primitives and proposal generation, but the trusted variant laboratory is intentionally operator-driven while the autonomous legacy loop lacks equivalent isolation, comparative baselines, and reliable rollback.
The central migration challenge is preserving an evaluator that the candidate cannot influence. Hiro may own scheduling, hypothesis formation, candidate construction, test execution, and evidence packaging, but evaluator definitions, held-out cases, safety policy, permission grants, and high-risk promotion authority must remain outside the mutable candidate boundary.
Changed Hiro's local router from a universal 512-token completion ceiling to model-profile-aware defaults. Gemma and the smaller Qwens retain 512 tokens, explicitly short calls retain their requested limits, and the new qwen35 profile receives 7,168 tokens on both non-streaming and streaming paths.
The larger Qwen budget fixed the observed reasoning starvation. A live Hiro preflight expanded the ordinary request to 4,096 tokens and returned visible READY in 1.41 seconds; a 4,096-token ledger run then scored 97.92% and passed 15 of 16 observations, versus 85.42% and 6 of 16 at 512 tokens.
The only 4,096-token failure passed as LABEL: GLIM in 7.63 seconds with 7,168-token headroom. The final 7,168-token run passed all 16 observations, scored 100%, achieved 1.0 in every category, and recorded zero invariant failures.
Qwen's perfect quality result exceeded the three-run Gemma mean by 4.51 score points and 27.08 pass-rate points, and exceeded the starved Qwen run by 14.58 score points and 62.5 pass-rate points. The improvement over starved Qwen is statistically clear under the ledger comparison; the smaller advantage over Gemma is not statistically clear at this sample size.
The quality gain has a substantial latency cost: the perfect run averaged 9.83 seconds, had a 4.82-second median, and reached 36.77 seconds at p95. That p95 is 96.8 times the matched Gemma mean, so the tuned Qwen profile is quality-first rather than a universal low-latency replacement.
After validation, Qwen was unloaded and LM Studio's API stopped. The loopback Evaluation Observatory remained online, reporting 132 completed runs across 105 variants with qwen36-35b-a3b-8k-public-7168-20260720-r4 as the latest result.
Defined a staged operating workflow for transferring self-improvement work from ChatGPT-assisted operation into Hiro. The sequence starts with observation, clustering, experiment specification, evaluation orchestration, and evidence packaging before expanding into isolated candidate construction and narrowly bounded automatic promotion.
The transition is organized around task-level delegation rather than an all-at-once autonomous loop. ChatGPT remains the reviewer and implementation fallback while Hiro proves reliability at each stage, with responsibility expanding after repeated cycles produce complete, reproducible, useful handoff packets.
Implemented cycle coordinator v0, the first operational step in transferring self-improvement work into Hiro. It consumes one structured ImprovementSpec, validates its evidence and planned scope, records an immutable cycle, runs or resumes paired public and external held-out baseline evaluations, pins the baseline, and writes review-ready JSON and Markdown evidence packets.
The coordinator intentionally stops before candidate construction or promotion. Twenty-five focused evaluation, variant-laboratory, CLI, and coordinator tests passed after redirecting pytest temporary files into Hiro's ignored runtime directory; the initial default-temp attempt was an infrastructure failure rather than a product-test failure.
Added a nightly synthetic evaluation harvest to Hiro's existing 22:00 self-improvement job so useful improvement evidence no longer depends on organic conversation volume. The first development suite runs eight versioned public cases with two repetitions each, for at most sixteen Hiro turns per night.
Each nightly run now uses deterministic scoring and the append-only evaluation ledger, resumes interrupted work, reuses an already-completed same-day run, compares against the previous matching run, and converts the highest-impact failure category into a cycle-coordinator-compatible ImprovementSpec.
The scheduler remains proposal-only: held-out cases, candidate construction, promotion, and live code changes are excluded. Twenty-eight focused evaluation, laboratory, coordinator, nightly-harvest, and scheduler tests passed.
Removed the running Hiro API as a manual prerequisite for the nightly evaluation. A registered Windows task now wakes at 21:55, checks the real Observatory endpoint, starts Hiro through the pinned project runtime only when needed, waits for readiness, and keeps the API process attached through a ten-hour overnight window.
Preserved one scheduler authority by serving HTTPS 8000, HTTP 8001, and the familiar loopback Evaluation Observatory at 8765 from the same Hiro process. Live verification showed all three listeners owned by one PID, while the scheduled preflight remained in the Running state.
Added a Nightly tab to the Evaluation Observatory. It reads append-only nightly ledger runs, displays pass rate, weighted score, failures, latency, failed cases, longitudinal history, and the deterministic improvement signal without exposing held-out cases or adding promotion controls.
Added a daily Codex readiness review for Hiro's nightly self-improvement process. The review runs each morning after the overnight window, classifies the latest result separately from infrastructure failures, compares valid nights longitudinally, and recommends bounded adjustments only after repeated reliable evidence.
The readiness policy requires at least three valid completed nights, with five preferred, before expanding the workload. It favors broader case diversity and adaptive testing over repeated execution of the same small suite, and reserves larger workloads for a separately reviewed weekly deep run.
A live pre-night check found that the API and Evaluation Observatory were available and the 22:00 schedule was enabled, but the local model endpoint was unavailable. Consequently, an evaluation recorded tonight without additional model startup would be classified as infrastructure evidence rather than a valid product-quality baseline.