Eiko — combined history and plan tools, 4 October 2026 Shipped in Eiko only - Normal app and optional plan view share one newest-first epoch list. - Source identity is vault + series + epoch. Results are never compounded or joined across vault boundaries. Each record retains its source link and optional breakdown. The source-specific loader DOM remains hidden so its existing gates and cache machinery continue to work. - The plan headline uses the latest available completed record in that list. - Try an amount selects one past epoch and scales its recorded starting position, passive-limit outcome and full endpoint asset value. The input denomination follows that epoch's starting side; the two ending amounts share the benchmark's output denomination. This is a historical model at recorded prices, before entry/exit costs, not an actual wallet return. - The budget helper lives inside the selected-option buy form. A connected wallet is required by the existing executable-quote service. It probes at most nine sizes, returns only an actually quoted affordable candidate, fills the quantity field and requests a fresh price. It does not claim to solve the exact maximum over arbitrary non-monotonic liquidity. - Cheapest listed premium is only the first sizing hint. Accepted cost and max spend are obtained through the existing marketFill simulation. The budget is carried in the frozen buy form and checked against max spend before accepting a fresh quote. No new transaction sender was added. Tests and review Fresh Astra review found the first bounded search could miss small budgets in deep pools. Proportional probing and the initial sizing hint fixed that; the budget=3/depth=1000/maxSpend=2q+1 regression now returns q=1. Opened history breakdowns are preserved across refresh. Independent historical examples cover a struck call (100 base -> limit 300 quote vs vault 320) and a struck put (100 quote -> limit 50 base vs vault 45). All 15 completed current-vault seed epochs reproduce the existing comparison. The WBTC 70k regression uses the real withdrawal endpoint fixture from block 25933807 inside a synthetic model interval: 0.00212114 WBTC + 828.575558 USDC is 995.232134 USDC at the recorded spot, not about 977 at the strike. The interval is a test fixture, not claimed as a historical WBTC roll. Budget tests exercise the real quantity conversion, same-block successful probes, change cancellation, disconnected refusal and fresh repricing. 105 buyer quote/funds-boundary scenarios pass, including over-budget price refusal and a budget change invalidating a previously accepted quote. All 36 root Eiko JavaScript suites run: 28 pass; the same eight prior nonzero exits remain (aave-fork, alpha, chain-focus, core-housekeeping, m-cutover, markets-r2-live opt-in, no-swap-withdraw, vault-generation). check-wiring versus 878f8eb7 and whitespace diff checks pass. Live verification Only /dev/eiko on the production origin, desktop 1440x1000 and phone 390x844. One visible history, both old source panels hidden, three expected TIBBIR records: 15.78%, 0.49%, 3.39%. Amount changed from 1000 to 500; selected September 11 switches input/output to TIBBIR and yields 516.947102 vs 500. Display rounds ordinary amounts to two decimals; calculations are unchanged. No horizontal overflow in the inspected phone route. Normal app still has positions/withdrawal controls and the unified history. Read-only calls at Base block 52168803 witnessed TIBBIR vault paused=true, Markets paused=false. No flags were changed. The live book had no offers, so no successful live budget quote or purchase was claimed. The budget form was directly opened, with no fabricated price, to inspect controls and confirm disconnected refusal; Buy remained disabled with no accepted quote. Console: existing WalletConnect warning and transient RPC 429/500 retries; final inspected history and replay completed. No new JS exception observed. Rollout Independent Eiko copies only. No Gyro/Meryl/Merry or beta update, no indexer change, no wallet transaction, no public share creation. Committed and merged to local dev for review; not pushed.