Version History — The Forge

The Forge — Built, Not Bought — Sparrow Expeditions

Document SE-VHIST · Live log · June 2026

Version History — The Forge

Every change to The Forge gets shipped with a public note. Bugs found, fixes shipped, what changed and why. When I get something wrong and reverse course, that's in here too — those reversals are the most useful entries on the page.

If you find something I missed or a bug I should know about, write to sal@sparrowexpeditions.com.

v178June 13, 2026

BUG · fixedMeasured launch speed — type your number without it jumping on you

  • The bug: the optional “measured launch speed” box in Bow Setup snapped to its 120 fps minimum on every keystroke — so a number on its way in (“3” heading toward “300”) jumped to 120 before you finished, and you couldn't type the speed you actually chronoed.
  • The fix: the field now keeps exactly what you type and only snaps into the valid 120–420 fps range when you click away or press Enter.

A small one, but the kind that quietly makes a tool feel broken. Flagged it, fixed it same hour.

v177June 13, 2026

Rated IBO vs Real-world speed — your spine verdict on the speed your bow actually makes

  • A speed-basis toggle in Bow Setup. IBO is the factory's lab number — every bow clocked the same way (70 lb, 30″ draw, 350-grain arrow, bare string) so you can compare brands fairly. It's the EPA mpg on the window sticker: a real, standardized number nobody actually drives. Bolt on a peep, a D-loop, and vanes and shoot it at your draw, and you're off the bench — the number settles a little lower. The Forge now shows both, and defaults the spine verdict to the real-world number.
  • Both numbers, always. The card reads e.g. 353 fps rated → ~340 fps as you'll actually shoot it, using a per-bow chrono measurement where we have one (38 flagship bows tested) and a measured blanket gap where we don't. Nobody fudged anything — you're just not shooting the test.
  • Why it matters: a genuinely fast bow could trip the speed-step penalty on the spine chart and read your arrow “slightly weak” when it tunes perfectly in the real world (thanks Cody). Real-world mode puts those builds back in range. Speed, KE, momentum, and trajectory already ran on your real numbers and are unchanged; one shared resolver feeds every spine surface, so the gauge, checklist, what-if, recommender, and Build Review can never disagree.
  • Arrow wrap, for everyone. The wrap option used to hide in the advanced view. It's a basic choice now — available at every complexity, off by default, and weighted into FOC at the tail when you turn it on.

The spec sheet is honest and useful — it just isn't the shot you take. We show you both: the number to compare bows, and the number to tune yours.

v176June 13, 2026

BUG · fixedTAC vanes are back in the picker — plus wind drift for every TAC size and a build-sheet order fix

  • TAC vanes weren't showing up. The full TAC lineup — Driver, Matrix, Summit, and the High Profile broadhead vane — was in the catalog, but the live workshop was running a build from before that audit landed, so none of them appeared as choices. All ten sizes are selectable again.
  • Wind drift, modeled per TAC size. Only two TAC Drivers had measured drift numbers; the other eight fell back to a generic default. Every TAC vane now carries its own wind-drift coefficient, anchored to the two PCA-measured Drivers and scaled by length and profile height. Estimates are labeled as estimates, measured values as measured.
  • Sketch builder back in the right order. The component list in Sketch mode had slipped back to an old arrangement. It now follows the arrow from back to tip: bow, sight, arrow, nock, wrap, vanes, insert, collar, CTI, point.

The vanes were never lost — the live build was simply a step behind the catalog. Shipping this release is what put them back on the shelf.

v173June 12, 2026

BUG · fixedMembers stopped getting re-onboarded — no more “pick a tier” or “join the list” after you've already paid

  • The bug: signed in, already subscribed, and The Forge still popped “Pick your tier” and an email-capture box on load — as if you'd never been here. Exactly the kind of thing that makes a paying member wonder whether their payment even took.
  • Root cause: the builder loads inside Shopify and spends the first moment not yet knowing who you are. Both first-visit prompts fired in that blind window, keyed off a “have you seen this” flag that never checked whether you were already a member.
  • The fix: both prompts now wait until your account and tier are confirmed, and never show for a signed-in member or any paid tier. If your account confirms a beat after the page opens, the tier prompt closes itself. Regression-locked. 555 passing.

A member should never have to wonder whether the thing they paid for knows they paid.

v172June 12, 2026

BUG · fixedOne physics — a deep audit of every engine, and everything it caught

  • One velocity model — for real this time. v166 said "one velocity model everywhere." A deeper audit proved it wasn't: the trajectory table, the sight-tape fallback, the shot solver, and the express tape each still carried their own decay law, and the trajectory card showed roughly 20% more drop than the validated sight tape for the same arrow. There is now literally one velocity module every panel derives from, regression-locked so they can never disagree again. With a chrono reading, it uses your measured decay; without one, it uses an estimate anchored to our measured chrono data — and it's labeled as the estimate it is.
  • One wind model too. The Shot Solver's windage came from a different wind engine than the Build Review drift card — they could disagree by up to 70% on the same shot. The solver now reads the same calibrated wind-drift engine as everything else.
  • Lethality graded at 40 yards. Game-class verdicts (Kill-Zone card, Animal Matrix) were graded on muzzle energy while the Penetration Index graded at 40 yards downrange. Everything now grades at 40 yards, and the elk threshold is aligned to the published 55 ft·lb guideline. Some marginal builds read tougher now. They should.
  • Crash fixes. Clearing a step field in the Cut Chart could freeze the tab; the Range Log's "Open Tune step" link could error out the Tune tab entirely (and quietly skipped the Hunter-tier gate — closed); the wizard's "Run the Shot Solver" and "Print sight tape" buttons silently bounced back to the Builder.
  • Every input survives being blanked. The June 12 wind-drift white-screen turned out to be a pattern, not a one-off — clearing any numeric field could feed a zero into the math. Every input in every tool now keeps its last good value instead, and saved setups are sanitized when they load.
  • Things that silently didn't save, now save. Tune wizard progress and before/after history, your email (so we stop re-asking), and first-visit flows now persist properly on the live site through the same storefront mirror as your builds.
  • Share buttons hidden for now. They produced links to a share page that doesn't exist yet. They return when the page does.
  • Tabs reordered to match the workflow: Builder → Tune → Sight Tape → Range → Shot Solver → Saved Builds → Spine → Recommender → Physics → Database. 552 passing.

Two subscribers found bugs this week. That stings in the right way — this release is the full-codebase audit it triggered: three independent sweeps (inputs, math, wiring), thirty-plus findings, every one fixed or publicly listed. The audit doc ships in the repo.

v171June 11, 2026

BUG · fixedHonest save status — the “storage full” warning that wasn't

  • Fixed a false alarm: editing a setup in The Forge could pop “Device storage is full — changes can't be saved.” Storage wasn't full. Shopify serves the builder inside a security sandbox where the browser rejects every save to the frame's own storage, and we misread that rejection as a full disk. Your changes were being saved the whole time — by the storefront-page mirror that has carried your builds and setups since v164. The warning now only appears when storage is genuinely full.
  • Range Log hardened: sessions logged inside the embedded builder previously lived only in the sandboxed frame's storage — which the browser doesn't keep. The Range Log now persists through the same storefront-page mirror as your builds and setups, and restores from it on load.
  • Regression-locked: six new tests pin the difference between “storage is full” and “the sandbox said no.” 514 passing.

Caught while filming launch clips: the scary toast fired on the first slider drag. A warning that cries wolf trains people to ignore the one that matters.

v170June 11, 2026

One spine brain

  • The build recommender now derives its spine filter from the same canonical engine as the spine gauge, pre-flight checklist, and what-if matrix — its private duplicate math (which still used the pre-recalibration coefficients and ignored insert weight) is deleted. A 768-case automated sweep guarantees the recommender can never suggest a spine the spine check then flags.
  • Heavy-end recommendations shift appropriately weaker in line with the June 11 chart recalibration; light and mid-range picks are unchanged.
v169June 11, 2026

Chart-true spine — the engine recalibrated to three manufacturers' published charts

  • Recalibrated to manufacturer chart data. After validating the spine engine against Victory's, Easton's, and Gold Tip's published charts (437 chart cells): the length correction is now 3.5 lb/in (was 5), front-mass is 0.12 lb/gr with the first 25 grains of insert weight exempt (charts already assume a standard insert), and IBO speed is rebanded so 301–340 fps is the baseline. The engine now reproduces Easton's chart in 98% of cells and Victory's RIP TKO chart in 87%.
  • Real-world anchor. A 70# / 29" / 175gr-front build on a 300 spine — Victory's own chart pick, and a build our shop tunes routinely — previously read TOO WEAK; it now reads in-window. Full methodology and divergence tables in the repo (SPINE-CHART-VALIDATION-2026-06-11).
  • Regression-checked from here on. The validation harness ships with the repo, so future engine changes are regression-checked against all three manufacturer grids.
v168.1June 11, 2026

BUG · fixedTool-page sync fix — the standalone tools finally know who you are

  • Fixed: My Bows, My Arrows, Tune, and the other standalone tool pages never received a signed-in identity from the page wrapper — they always ran as anonymous, so gear saved there stayed on one device and never synced phone↔desktop. The wrapper now answers the identity handshake (reading it lazily at message time — the v167.1 lesson).
  • Your saved gear comes along. If a bow or arrow profile you saved before this fix is still on the device where you saved it, opening that tool signed-in will now mirror and cloud-sync it automatically.
v168June 10, 2026

BUG · fixedSpine truth — one verdict everywhere, plus Load from My Bows / My Arrows

  • One spine engine, three surfaces. The Wizard pre-flight "Spine match" check now uses the exact same spine engine as the spine gauge and the what-if matrix. Previously a simplified heuristic could call a build "stiff · tune-tolerant" while the gauge read TOO WEAK for the same arrow (thanks Austin for the catch). All three surfaces now agree, with a regression test sweeping 576 input combinations.
  • New: Load from My Bows / My Arrows. Saved gear profiles from the My Bows and My Arrows tools can now be pulled straight into the Wizard and Sketch builders — one tap, no re-typing. Works locally and, when signed in, across devices via cloud sync.
  • PDF spec sheets, sharpened. They now lead with THE FORGE — powered by Sparrow Expeditions, include a spine readout (selected spine, chart window, and verdict), and say whether the velocity behind the KE number was measured or estimated.
v167 – v167.1June 10, 2026

BUG · fixedCloud sync actually syncs — three stacked bugs, found by testing the live site

  • The honest version: v166 said "your setups follow you across devices." The code shipped, but a live end-to-end test the same evening showed nothing ever reached the sync server — for any signed-in user, ever. Not one bug; three, stacked, each silently masking the next.
  • Bug one: the sync server's security allow-list was missing one of the three identity headers every request carries, so browsers refused to send anything at all.
  • Bug two: Shopify serves the builder inside a security sandbox that strips its web origin; the sync server rejected those "originless" requests. Now explicitly allowed — identity is verified cryptographically, not by origin.
  • Bug three, the deep one: the storefront page answers the builder's "who is signed in?" question — but it captured that answer at page load, one script too early, before the sign-in data existed. It has answered "anonymous" to every visitor since the bridge shipped. Subscription tiers read the data later, which is why paid unlocks worked while sync didn't.
  • Verified live this time: a setup saved in the builder now lands in cloud storage and follows your sign-in to any device. Range Log cross-device sync — believed working since v136 — engages for real now too. 467 passing.

A test suite can't catch a bug that lives between four systems — the storefront page, a sandboxed iframe, a CORS preflight, and a worker. Testing the real site, signed in, on the live theme caught all three in one evening. That's the standard going forward.

v166June 10, 2026

BUG · fixedDeadly accurate — one physics engine, audited end to end

  • One velocity model everywhere. An internal audit caught the lethality tools (Penetration Index, game-class confidence) using a simpler speed-decay model than the trajectory and sight-tape engines — optimistic by roughly 9 fps at 40 yards and 18 fps at 60. Every tool now reads the same calibrated decay law, with a regression test so they can never drift apart again. Some marginal long-range verdicts will read slightly tougher now. They should.
  • Spine recommendations validated against the manufacturers' own charts. The spine engine now runs against 22 cells of Easton's Hunting Shaft Selector and 10 cells of Gold Tip's compound chart in the test suite — mean error about 4 spine units, every cell within half a spine class. The validity range (compound, 250–500 spine, 26–31" arrows, 75–150 gr points) is documented instead of implied.
  • Per-spine diameters for 33 shafts. A 300-spine and a 500-spine of the same model aren't the same diameter — wind drift, penetration, recommendations, and competition compliance now use your actual spine's OD instead of one nominal number per model.
  • Range Log → Tune now lands on the right step. Diagnose cards said "Open Tune step" but dropped you wherever the wizard was last open. Fixed.
  • Competition shaft-OD check is real now. It previously always passed as an advisory placeholder — a false green that could cost you at equipment check-in. It now compares your shaft's OD against the division limit and warns when you're within .005" of it.
  • Your setups follow you across devices. Sign in on your phone and your bow setups are there too, not just your Range Log.
  • Honest-copy fixes: the Hunter tier card now states its real 5-build save limit, and the add-to-cart card is hidden until we actually stock components. 445 passing.

"Deadly accurate" isn't a slogan — it's a test suite. This release is the product audit turned into shipped fixes, the day it was written.

v165June 10, 2026

BUG · fixedOne library everywhere — the builder and the tool pages now share the same catalogs

  • The bug a tester caught: the arrow and bow pickers on My Arrows, My Bows, and the other standalone tool pages were missing models that the main builder had — and vice versa. Root cause: two copies of the component libraries, each edited separately for weeks.
  • The fix: one canonical library now feeds everything, and an automated check blocks any future release where the copies drift apart. This can't quietly happen again.
  • The merge made both sides better. The builder gains verified 2026 bows it was missing — Mathews ARC 30/34, Elite Varos/Artus/Terrain, PSE Mach 30/33 DS and Sicario FDS 33/35, Mission, APA, Truth Archery, Xpedition XLite — plus 65 nocks, inserts, points, and broadheads, sound-test data on broadheads, and a re-verification of every shaft's GPI table against manufacturer charts. The tool pages gain the newest animal vitals data and sight catalog.
  • Removed phantom bows that never existed (Elite "Veros", non-DS 2026 Mach 30/33, a misnamed Sicario) — every 2026 entry is now verified against the manufacturer's published specs. 425 passing.

Thanks to the tester who noticed Victory models missing from the arrow choices. The library data is the product — drift between copies is a bug like any other, and now it's a tested one.

v163 – v164June 9–10, 2026

Catch-up — saves that survive, and a subscription tier that sticks

  • v164 — saves never lost. Your saved builds and setups now also persist in the storefront page itself, not just inside the builder frame — so browsers that clear third-party storage can no longer eat your work.
  • v163 — tier bridge root-cause fix. Signed-in Hunter/Pro subscribers occasionally loaded at the wrong tier; the page and the builder now actively handshake until the right tier lands. Also stopped asking subscribers for their email — we already know who you are.
v162June 9, 2026

Your subscription follows you to the standalone tools

  • The dedicated tool pages — Tune Wizard, Wind-Drift, Build Review, Range Log, My Bows, My Arrows, Spine — now recognize your Hunter or Pro subscription the same way the main Forge does. Sign in and a paid plan unlocks the gated tools on those pages too; everyone else stays on the free set. Closes a gap where those pages didn't yet read your tier.
v161June 9, 2026

Subscriptions are live — and the paywall actually works

  • Subscribe for real. Hunter and Pro now check out as true recurring subscriptions — monthly or annual — and a paid plan unlocks your tier inside The Forge automatically. Sign in and the tools you paid for are just there.
  • Free is the way in. No trial gimmick: the Free tier is genuinely free forever, no card required. Fixed a gating bug where the builder could open at the wrong tier, and removed every "7-day trial" mention now that the Free tier is how you try it.

The honest version of a launch: the free tools stay free, the paid tools are paid, and what you subscribe to is exactly what unlocks. Nothing more, nothing less.

v160June 9, 2026

Subscriptions — corrected, consistent pricing everywhere

  • The upgrade prompts inside The Forge now show the real numbers — Hunter $6/mo or $60/yr and Pro $12/mo or $120/yr (two months free on annual). Cleaned up an older modal that still quoted retired figures, and folded the separate Competition tier into Hunter (same price, same tools — target archers are welcome on Hunter). 337 passing.
v159June 9, 2026

Guided tour — a 60-second walkthrough of every tool

  • New here? The Forge now greets you with a quick guided tour that steps through each tool — build, spine gauge, Penetration Index, sight tape, Range Log, Your Number, and the ethical-shot verdict — switching tabs as it goes so you see each one. Reopen it anytime with the Tour button up top.
v158June 9, 2026

Ethical-shot verdict — one go/no-go from accuracy × penetration

  • On the Kill-Zone card your two signals combine into a single GREEN / AMBER / RED banner — GREEN only when you'll hit the vitals from there AND the arrow punches through. Either one failing vetoes the shot. 337 passing.

Accuracy puts it in the vitals; penetration punches it through. This is the line where both have to be true before you draw.

v157June 9, 2026

Penetration Index — the "deadly" half, paired with Your Number

  • A 0–100 lethality grade on the build view with an Ashby factor scorecard — momentum, broadhead mechanical advantage, FOC, shaft diameter, structural integrity — plus the heaviest game class cleared and your weakest link. 330 passing.
v153 – v156June 8, 2026

Your Number — honest confidence at range, from your own groups

  • v153 Range Log → Your Number turns your logged groups into a first-shot kill probability on any animal + a 90% ethical / 75% stretch max range (Hunter + Pro, unlocks at 20 plotted shots). v154 ranging-error toggle, long-range calibration from multi-distance groups, elliptical vitals across all 57 animals. v155 BUG measured launch speed in every mode (was a fixed 285 fps placeholder — a tester catch) + a "path to a longer number" coach. v156 crosswind dispersion folded into the kill probability. 324 passing.
v145 – v152June 8, 2026

Kill-Zone target, spine heat gauge, sight tape, and a corrected 2026 Mathews lineup

  • v145 Kill-Zone ranging forgiveness + Spine Gauge stiff→perfect→weak (Hunter+); BUG removed non-existent "ARC 29.5/33", real lineup is ARC 30 + 34. v146–150 Mathews Lift RS/XD + UV Slider pin · PDF footer email fix · Shot Solver opened to Hunter · bespoke silhouettes · CTI grouped with the front assembly. v151 compact sight-tape numbers + full-color printing; BUG removed non-existent UltraView "Hindsight/UV Sniper" (real = UV3, UV3 SE). v152 brighter fluorescent tape colors.
v137June 3, 2026

Spine What-If — cycle the standard spine ladder + see which lands you in window

Field-tested via Jesse's PSE Mach 33 DS / K2 Sawtooth 4mm setup — spine 300 IN RANGE at his effective 83.75 lb, matching his real-world tune. 196 passing.

v136.0June 3, 2026

Account sync · Phase 1 — sign in, sync the Range Log across devices

v135.3June 3, 2026

CRITICAL BUG · fixedCross-origin parent.location read crashed the entire bundle

Lesson locked in memory: cross-origin parent access in a Shopify iframe always throws — wrap with try/catch or use postMessage only.

v135 – v135.2June 2–3, 2026

Share engine + Jesse's pro-tester fixes (spine parity, cut-length guardrail, Messenger-hijack fix)

v109 – v134June 2–3, 2026

Earlier sprint — Range Log, photo target + CV detection, Compare, sight tape, Methods, OG image, FOC Hybrid Model

v134 CV arrow-hole auto-detect · v133 photo-anchored logging · v132 Range Log Advanced · v131 Compare Calculators · v130 shot-by-shot plotting · v129 mobile + safety disclaimers · v128 Pin Layout & Caliper · v127 new emblem · v126 OG image v2 · v125 SVGDiagram aerospace · v124/v123 Field Notes · v122 string-stopper card · v121 WindDrift CFD · v120 Methods rewrite · v119 sight-axis + French tune · v117 Methods page · v115 Sparrow Hybrid FOC (reframe of v111) · v114 arrow-prep step · v113 nock-fit card · v111 trajectory + Ashby EFOC (partially reversed in v115) · v110 Wizard save + Express guard · v109 density-altitude unit fix.

The Forge predates this log — pre-v109 shipped during a more compressed sprint. Going forward, every release is documented here within hours of going live.

If you find a bug or a wrong claim, write to sal@sparrowexpeditions.com. I want to keep it honest.

— Sal Misseri, Sparrow Expeditions · Chicago · June 2026