Keep pedal power-meter length separate from the physical crank
A complete free guide connects installed arm identity, pedal-system model, documented controller authority and observed crank-length readback. Scoped manufacturer sources distinguish app and computer settings, defaults, calibration and scale factors. Original fictional length arithmetic is explicitly not a watt correction or a validated change to historical power records.
Learn and the existing crank page lead to the whole reading journey, with reciprocal physical-length and trainer-reference links and two original schematics backed by ordinary readable HTML. The crank entry opens a separate tab without passing inputs or changing a field or acknowledgment. The blank paper preview remains general reference space, not a dedicated device-setting form.
Existing calculators, saved-work transitions and mechanical or access gates remain unchanged. Reading connects no sensor, changes no electronic setting and adds no storage, upload, tracking, dependency, vendor, cost or consent. It does not verify physical installation, fit or power accuracy. All public tools remain free.
v0.76.0
Keep the whole saved setup transfer tied to current source bikes
Plan creation, each installation record and measured keep or revert now compare both current selected passports and the saved transfer under the same local database lock. Changed payloads are detected even at the same timestamp, competing target plans are blocked, and repeated final measurements update the fresh target passport and matching history together. Resume checks the values and named references actually frozen in the existing device draft.
A conflicting view retains its choices and raw readings but pauses progress until an explicit reload. Ordinary failures retain the draft for a manual retry. A confirmed journal save is distinguished from a separate device-draft failure, with retry controls that touch only that draft and never repeat the saved transfer. Busy and lifecycle guards prevent repeated or late writes; success requires the transaction commit rather than request success alone.
The existing seven-field transfer, complete passport context, cockpit datum proof, mechanical evidence and repeated-reading rules remain. Stop and existing discard actions recheck their selected journal without changing either passport. No historical record is repaired, no physical installation is verified, and no database collection, storage key, upload, tracking, dependency, vendor, cost or consent is added. All public tools remain free.
v0.75.0
Read the complete torque reference before recording mechanical work
A complete new free guide connects exact joint and receiving-part identity to torque units, range versus maximum, preparation and tool questions, and an honest source record. Original fictional unit and constraint examples distinguish a numerical overlap from an approved assembly; no component torque table or tightening setting is supplied.
The existing crank installation Torque reference field opens the guide in a separate tab without transferring inputs, changing the draft or checking an acknowledgment. Learn and related crank and saddle-clamp guides connect the reference journey to the actual blank paper preview, whose general fields do not become dedicated torque slots.
Existing calculator arithmetic, saved-work transitions, mechanical evidence and access gates remain unchanged. Reading performs no physical check and adds no database field, storage key, upload, tracking, dependency, vendor, cost or consent. All public tools remain free; this is source interpretation, not installation or safety approval.
v0.74.0
Keep newer saved work safe through the whole crank trial
Freezing a crank plan, recording installation and saving keep or revert now compare the current selected passport and crank journal under the same local database lock. Exact payload checks detect changes even when timestamps stay the same, and concurrent creation cannot silently leave two open plans for one bike. Stop and existing discard actions recheck their selected plan without writing passport coordinates.
A conflicting view retains its readings and choices but locks further progress until you explicitly reload saved work and discard that draft. Ordinary failures retain the draft for a manual retry. Synchronous busy and lifecycle guards prevent repeated or late actions; success requires the transaction commit, not only a successful write request. Read failures are unavailable states, never an assumed empty inventory.
Existing calculator arithmetic, mechanical evidence, ride gates, saved formats and access remain unchanged. This protects this crank workflow's saved-data transitions, not physical installation, changes after a completed action or every other application writer. No historic record is repaired and no database collection, storage key, upload, tracking, dependency, vendor, cost or consent is added. All public tools remain free.
v0.73.0
Identify the trainer reference before measuring or filming
A complete new guide separates the intended bicycle baseline, actual axle heights, trainer support and loading, and phone orientation. Exact manufacturer examples explain why a front support is model-specific; mixed-wheel and suspension conditions do not become a universal equal-axle rule or a guessed block height.
Original station and rigid-point schematics, readable worked geometry, practical questions and scoped primary sources keep observed inclination separate from frame rotation and camera correction. The existing camera reading path and bicycle checklist connect to the guide without starting a camera, changing a component or transferring example values.
The existing measurement tools, camera runtime, saved workflows, titles and access remain unchanged. Reading adds no record, storage, upload, tracking, dependency, vendor, cost or consent. No trainer modification, mounting approval, ideal position or rider outcome is supplied, and all public tools remain free.
v0.72.0
Keep a changed saved bike out of a new camera entry
The guided intake and Capture Director now confirm a selected saved bike with a completed profile-only read before creating its session link. An exact payload check detects changed references or dimensions even without a timestamp change, as well as a missing or ambiguous selected identity. Unrelated bikes do not replace the chosen source.
A changed source stops the entry action, retains form values and shows the refreshed inventory without applying it. Choose the current bike again or explicitly continue standalone. Read failures and the existing ten-second read deadline retain the selection for manual retry; busy and lifecycle guards prevent repeated or late entry actions. Existing historical saved-link-only choices remain labelled snapshots rather than newly checked profiles.
This checks saved data at action time, not the physical bicycle or changes after the read. Existing session recovery, scope and camera gates remain separate; no old recording is rewritten and no new database store, storage key, upload, tracking, dependency, vendor, cost or consent is added. All public tools remain free.
v0.71.0
Measure the person before entering calculator inputs
A complete new guide connects barefoot height and cycling inseam to the actual calculator fields. Separate body observations from trouser labels, installed saddle coordinates and frame-size names; identify the different book edges, retain repeated readings and use centimetres or total inches deliberately.
Both calculator input areas now open the same guide in a separate tab without inserting examples or changing the parent inputs. Learn distinguishes measuring the person from recording the existing bicycle. An original endpoint schematic, readable worked examples, practical questions and scoped primary references keep the method and its limits together.
The calculator engines, validation, unit conversion, saved workflows and existing access remain unchanged. The static guide adds no body record, storage, upload, tracking, dependency, vendor, cost or consent. Exact unit factors do not prove measurement accuracy, and model estimates are not installed coordinates or personal fit approval. All public tools remain free.
v0.70.0
Prepare private archives without a late or automatic download
Settings now separates preparing a complete local archive or a recovery copy without raw videos from downloading it. Inspect the six collection counts, exact file size, snapshot times and browser-state inclusions or exclusions, then choose Download separately. This inventory is not a display or validation of every private value.
A private same-origin worker encodes optional videos and builds the JSON file. Cancel, leaving the screen and the whole preparation deadline stop the worker and ignore late results; completed readonly database reads may still finish. A failed download start retains the exact prepared bytes for a manual retry, while unsaved session copies continue to block preparation and download.
The existing version-1 format, complete archive contents and separate no-video recovery exclusions remain. Oversized complete files are clearly outside the local recovery limit; oversized no-video copies are refused without silently dropping records. No database write, new storage key, upload, tracking, dependency, vendor, cost or consent is added. Started downloads and external or synced copies cannot be recalled; all public tools remain free.
v0.69.0
Choose a reading path before browsing the whole learning library
Learn now puts its four question-based topic choices directly after the introduction. A separate bicycle-reference directory groups all nineteen existing reading paths into saddle and cockpit, frame and wheels and suspension, cranks and gearing, and camera method. Choose a named subject instead of traversing every expanded journey in release order.
Each reading path opens independently with native browser controls and retains its complete original steps, limitations and fixed guide or workspace links in the page. The full catalogue still contains all seventy-six guides and the established topic anchors; no guide, canonical owner, source or tool is replaced by a shortened answer.
The directory adds no application state, search service, database access, storage, upload, tracking, vendor, dependency, cost or consent step. Existing tool-page learning paths stay unchanged, and all public guides and tools remain free. Opening a reading path does not run a calculator, select a component or approve a physical setup.
v0.68.0
Keep complete dropper configurations and reference states together
The fore-aft page now has a separate free dropper configuration sheet for 2–4 complete technical declarations of one receiving frame. Retain exact sources, endpoint and state definitions, independent travel and interval dimensions, insertion bounds, actuator stations, routing questions and one explicit arithmetic reference. Unknowns and contradictions remain visible; no post is ranked or chosen.
Common-axis declarations gate interval sums and scoped differences. Independent collapsed and total observations retain their discrepancies; missing bounds do not become zero or unlimited. An optional, default-off artificial fixed-frame construction keeps independent BB-relative point and straight-axis inputs, separating axial, horizontal, vertical and direct-distance changes without a real suspension, clearance, fitting or installation verdict.
Edits remove stale results and review; invalid entered fields block the whole sheet while retaining every configuration. Separate complete review and manual TXT retain active raw fields, unknowns, provenance and limits, with a focused download error and manual retry. Exact task and learning links reach the blank workspace; English and Polish privacy describe its memory-only contents and external-copy boundaries. Existing rigid-post, saved-work and consent workflows stay separate; no database access, persistence, upload, tracking, vendor, dependency, cost or paid gate is added.
v0.67.0
Read the complete dropper reference before combining dimensions
Three new free guides connect dropper travel, total length and named stack states; receiving-frame insertion, independent actuator endpoints and routing; then collar-to-rail and BB-relative saddle reference states. Keep exact source definitions together instead of treating a familiar length or an unobstructed tube as a whole assembly verdict.
Original static schematics and readable HTML distinguish extended and collapsed intervals, common-datum constraint intersections and conditional axial, horizontal, vertical and direct-distance changes. Unknown endpoints or states remain unresolved. No preferred travel, universal clearance allowance, control-function check, pressure, torque, physical adjustment, fit or installation approval is supplied.
The learning library and existing fore-aft page now expose the whole three-step journey, related diameter and rail/clamp guides, and the real blank paper worksheet. The existing rigid seatpost sheet stays explicitly narrower and does not model a dropper. No state, persistence, upload, tracking, vendor, dependency, cost or consent is added; public tools remain free.
v0.66.0
Keep complete front fork conditions together
The geometry page now has a separate free front fork condition sheet for 2–6 named observations of one unchanged assembly. Keep the applicable travel source, settled axial compression, later event marker, visible interval and independently defined fork length separate. Choose one arithmetic reference, retain every raw field and unknown, and inspect the complete result without creating a saved bike.
An optional, default-off artificial construction uses explicitly declared initial BB-relative geometry, a rigid rear frame and unchanged equal ideal wheel supports. It shows the conditional frame rotation, axle span, BB ground height and fixed-point projections with equal-scale diagrams and readable numbers. Missing or inconsistent assumptions withhold the model rather than supplying a real full-suspension prediction, pressure or sag target, clearance, handling, part choice or installation approval.
Edits remove stale results and review; invalid entered fields block the whole comparison while preserving every condition. The separately reviewed TXT retains the full active inventory and reasons, with a focused download error and manual retry. Fixed task and learning-path links reach the blank workspace; English and Polish privacy describe the actual memory-only contents and external-copy boundaries. Existing engines, saved records, consent and free public access remain unchanged; no dependency, upload, tracking, vendor or paid service is added.
v0.65.0
Read the fork state before comparing bicycle geometry
Three new free source-scoped guides separate suspension fork travel from exposed upper tube, retain the load and denominator behind a sag observation, and distinguish frame-fixed points from a ground-relative pose. A four-step learning path reuses the existing fork-length guide on Learn and the geometry page instead of duplicating its endpoint definitions.
Original fictional schematics and readable numerical examples keep movement capacity, marker history, frame rotation, BB ground height and cockpit projections separate. The explicitly front-only rigid-rear construction does not solve a real fully suspended bicycle, loaded tyres, clearance, handling or an ideal setup. No sag target, pressure, damping setting, part change or installation is prescribed.
Nearby primary-source links, practical FAQs, the related-guide graph and the free blank paper preview keep references and unknowns together. The worksheet has no dedicated fork-travel or sag fields, and the existing front geometry workspace does not calculate the illustrated sag rotation. Existing engines, titles, saved records, consent, storage and free public access remain unchanged; no dependency, tracking, upload or paid service is added.
v0.64.0
Protect a newer saved fit without losing the rejected working copy
Generic session edits now compare their last confirmed wellness payload against the current saved fit under one session-only transaction. A same-timestamp change, missing record or new-ID collision refuses the write; new identities use add, not replacement. Serial edits advance the source only after commit. An in-tab opening reference also prevents a later provider from silently rebasing an older copy. This protects the generic tab writer, not every independent writer or historical record.
A conflict retains the latest unsaved copy and pauses its fit actions and retry. A separate deliberate read opens the exact current saved version only after a completed valid read, while keeping the rejected copy separately in tab memory. Failed, late or abandoned reads do not substitute another fit or discard the copy. Independent sessions can still save; no automatic merge, overwrite or retry is added.
Recovery messages and English/Polish privacy distinguish an opened saved version from retained unsaved copies. The existing private rescue JSON includes all held versions, even when their fit IDs match; it remains readable, non-importable and without separate video or pose files. No new storage key, database schema, upload, clipboard operation, provider, dependency, tracking, paid service or consent is added. Keep the tab open: reload or closing can lose held copies. Public tools remain free.
v0.63.0
Keep two complete measurement occasions together
A separate free A/B workspace in the existing worksheet retains two independent whole bicycle measurement occasions: frame, saddle, cockpit and controls, all 15 quantities and 90 raw reading places. Exact references, methods, support conditions, dates, unknowns and every entered outlier remain visible. Any malformed or partial recorded row on either side blocks the entire review without discarding either draft. The single whole sheet, single-quantity note and blank paper PDF stay separate.
A separate same-protocol declaration and matching context, quantity definitions, methods and applicable saddle-model declarations permit descriptive mean B minus mean A. Missing or different declarations retain both observations while withholding the affected difference, never substituting zero. Arithmetic uses unrounded means before display rounding; means, spans and differences are not accuracy, uncertainty, significance, a physical-change proof, a better-fit score or installation approval.
Review the complete contexts, all readings, statuses and limits before a separate manual discussion-TXT download. Edits immediately remove stale review; download-start failure retains the exact note for deliberate retry. Tools opens the actual blank paired workspace, and English/Polish privacy explains page memory and outside copies. No saved-bike access, import, persistence, automatic clipboard, upload, sending, sensor, dependency, provider or paid service is added; public tools remain free. Reloading or leaving clears the pair, not external copies.
v0.62.0
Inspect source identity and calculator assumptions before trusting a number
The public methodology now contains a dated audit of all 22 central references, with checked identities, exact PubMed and DOI identifiers where available, and separate abstract, bibliographic, webpage, catalog and unreviewed access limits. Eight previously unrelated PubMed destinations are corrected. A conference abstract is identified as such; source type and a matching title do not certify a derived app rule. Existing result and crank citations expose the same reading limits.
The full calculator, focused saddle tool and result journey explain the actual inseam-based approximation: historical ratio, declared or estimated crank term, fixed correction and app-specific angle-band coefficient. A measured knee angle and individual segment lengths are not inputs. Fictional arithmetic is distinguished from an installed coordinate; a fixed dynamic-band shift is an app convention, not a universal instrument conversion or calibration of phone tracking.
Source summaries, result explanations, FAQs and the claim map now retain study-specific participants and protocol limits instead of implying guaranteed power, aerodynamic savings or health-directed decisions. Retired symptom inputs remain excluded. All nine numerical outputs are unchanged across the pre-change regression matrix; no new data storage, upload, clipboard operation, tracking, provider, dependency, paid service or consent flow is introduced. Public tools stay free. This is source and product-transparency remediation, not clinical, legal, installation, traffic or revenue certification.
v0.61.0
Keep whole crank-interface declarations together before comparing numbers
A separate free mode in the existing crank tool retains 2–4 complete frame/shell/BB/spindle/ring declarations, exact sources, independent diameter and length definitions, chainline and unresolved whole-system questions. Strict validation blocks malformed fields across the whole list without silently selecting a partial subset. Missing values remain unknown; no configuration is chosen or ranked.
One explicit reference defines scoped numerical subtraction, not a preferred part. Conditional straight-shaft bearing stations retain their own origin, direction and endpoints; regular bolt-centre circles require equal angular spacing and exact pattern evidence. Asymmetric, direct-mount, missing or inconsistent conditions retain raw data while withholding dependent constructions. All quantities and limits remain readable outside the shared-scale diagrams; no spacer, preload, engagement, compatibility or installation instruction is inferred.
Review every declaration, quantity, difference and unknown before a separate manual TXT download. Edits and mode changes discard stale results/review; a download-start failure retains the exact note for deliberate manual retry. Tools and the connected guides open the actual blank mode, and EN/PL privacy describes page memory and outside copies. No bike-database access, persistence, automatic clipboard, upload, sending, new dependency, provider, tracking, sensor or paid service; existing length and saved-swap workflows stay separate and all public tools remain free.
v0.60.0
Identify the crank interfaces before matching a diameter or bolt count
Three connected free guides distinguish the receiving bottom-bracket shell and its BSA, T47 or press-fit references; exact spindle variants, diameter stations, axial endpoints and bearing locations; and chainring BCD, regular versus asymmetric spacing and direct-mount families. Each has scoped primary references, four practical FAQs and an original static construction with ordinary HTML equivalents. Missing evidence stays unknown.
A native four-step path on Learn and the existing crank tool returns these specific records to the existing whole-crank compatibility guide. Fictional shell/outer spans, equal-length spindle counterexamples and regular bolt-circle chords are not cup, spacer, engagement, conversion or installation instructions. General paper questions and existing free crank/gearing tools remain separate from assembly permission.
The learning journey adds no measurement form, component chooser, engine, persistence, bike-database access, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service. Existing titles, models and access gates stay separate; all public tools remain free. Coverage and native navigation do not certify Google indexing, traffic, revenue, physical fit, performance or installation outcomes.
v0.59.0
Keep the whole wheel mounting declaration together before comparing a number
A separate free wheel mounting reference sheet retains 2–4 complete technical configurations: receiving assembly, hub/end/contact span, retaining-part diameter subject, exact length endpoints, thread and head references, rotor/brake evidence and independent source-defined bounds. Whole-list validation blocks malformed fields without selecting a partial subset. Unknowns and conflicting declarations stay visible; no part is recommended or ranked.
One deliberately selected reference defines scoped subtraction, not a preferred wheel. Contact span, shaft length, pitch, threaded extent, rotor diameter and thickness retain their independent bases. Optional axial-space pitch observation and its residual stay row-specific. Separate shared-scale millimetre lanes are numerical, not an assembled part drawing. Equal family labels and passed inequalities never approve conversion, engagement, braking or installation.
Review every raw declaration, quantity, withheld difference and limit before a separate manual TXT download. Edits remove earlier results and review; a download-start failure retains the exact note for manual retry. Tools and all four mounting guides open the real blank workspace, and English/Polish privacy explains page-memory and external-copy limits. No bike-database access, persistence, automatic clipboard, upload, sending, new dependency, provider, tracking, sensor or paid service; all public tools remain free. No physical fit, handling, traffic or revenue outcome is certified.
v0.58.0
Identify the whole wheel mounting reference before matching a label
Four connected free guides distinguish quick-release skewer and hollow hub axle from thru-axle retention; hub contact span from retaining-shaft length; exact axle length endpoints, diameter, pitch, threaded extent and head contact; and rotor mounting family from diameter, thickness and each receiving brake condition. Each has scoped primary references, four practical FAQs and an original static schematic with ordinary HTML equivalents.
A native four-step path on Learn and the existing geometry comparator connects the complete mounting journey to tyre, fork and cassette references and the free blank worksheet. Fictional span, thread-interval and rotor-radius examples are not spacer, conversion, engagement or adapter instructions. One matching field never approves the whole wheel, axle or brake assembly; missing and conflicting evidence stays unresolved.
The editorial journey adds no measurement form, component chooser, engine, persistence, bike-database access, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service. Existing geometry models and access gates stay separate; all public tools remain free. Coverage and navigation are not evidence of Google indexing, traffic, revenue, fit, braking, handling or installation outcomes.
v0.57.0
Compare complete gearing configurations without losing the intermediate pairs
A separate free bicycle gearing comparator keeps 2–4 complete declared chainring and rear-sprocket inventories. Every numerical tooth pairing remains, including equal ratios, with a shared-scale ladder, overall ratio range versus increase and all adjacent steps. Whole-list validation blocks malformed entered fields without filtering, defaults or partial notes; it does not rank options or approve an allowed shift inventory.
Explicit transmission conditions and independent rolling circumferences enable conditional development, circumference-equivalent gear inches and optional gain. A deliberately chosen reference pair and cadence support same-speed comparisons without substituting a target. Missing conditions stay unknown. Total tooth difference, front difference and rear endpoints are checked separately against declared source-specific bounds; passed inequalities do not approve components, chain length, adjustment or installation.
Review every configuration, raw declaration, pairing, unknown and limit before a separate manual TXT download. Edits remove earlier results and review; a download-start failure retains the exact note for manual retry. Tools and the drivetrain learning path open the real blank workspace, and English/Polish privacy explains page-memory and external-copy limits. No new saved-bike access, persistence, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service; all public tools remain free. No physical fit, performance, traffic or revenue outcome is certified.
v0.56.0
Read the whole drivetrain reference before interpreting a gear label
Four connected free guides distinguish tooth ratio, gear inches and rolling development; overall range, adjacent steps and conditional cadence; cassette and driver-body identities; and rear-derailleur total capacity versus independent sprocket and front limits. Each has scoped primary references, practical FAQs and an original schematic with ordinary HTML equivalents. Fictional examples are not real component specifications or rider targets.
A native four-step path on Learn and the existing crank tool links the complete journey to established wheel and crank references and the free blank worksheet. Same endpoints can conceal different intermediate steps; one passed tooth-difference inequality cannot approve a largest sprocket, chain length or whole drivetrain. No chain-cutting, spacer, force, adjustment, conversion or installation instruction is generated.
The new editorial journey collects no measurements and adds no engine, persistence, bike-database access, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service. Existing crank models and access gates remain separate; all public tools remain free. Coverage is not evidence of Google indexing, traffic, revenue, fit, medical or performance outcomes.
v0.55.0
Keep the complete headset assembly declaration together
The existing cockpit calculator now offers a separate free reference sheet for 2–4 technical headset options. Upper/lower nominal codes, independent bearing dimensions and named contacts, crown construction and receiving/contact identities remain distinct. Whole-list validation blocks malformed entries without filtering; blanks stay unknown and contradictory dimensions stay visible without substitution or compatibility approval.
Explicitly declared common-axis endpoints, configuration, sources and complete lower/head-tube/upper intervals permit an abstract axial sum and shared-scale station diagrams. Differences require matching declared endpoints and condition. Bearing heights and separate spacers/clamp are not added into that sum. A whole-note review retains every option and unresolved question before a separate manual TXT download; edits clear old results, and download-start failures retain the note for manual retry. No steerer-cut, preload, torque, adapter, engagement, clearance or installation instruction is generated.
The Tools launcher and all four headset guides open the exact blank sheet. English/Polish privacy explains the technical inventory, page-memory lifecycle and external-copy limits; technical text is not anonymous. The new sheet adds no saved-bike access, persistence, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service. Existing cockpit models, saved workflows and access gates remain separate. All public tools remain free; no physical compatibility, handling, fit, medical, traffic or revenue outcome is certified.
v0.54.0
Identify the whole headset reference chain before comparing cockpit geometry
Four connected free guides separate upper/lower SHIS support codes, bearing dimensions and named contacts, crown races and fork receiving seats, and source-defined external headset stack from head-tube and cockpit intervals. Each includes nearby scoped primary references, practical FAQs and a distinct original schematic with ordinary readable HTML equivalents; nominal codes and matching dimensions never become tolerance or compatibility certificates.
A native four-step journey on Learn and the existing cockpit calculator connects all four references to each other, the established fork and spacer guides and the free blank worksheet. Fictional axial stations show why unknown contributions cannot become zero and included covers or races cannot be counted twice. No pressing, preload, cutting, adapter, replacement, steerer-engagement, clearance or handling instruction is generated.
The learning flow is read-only and introduces no measurement collection, engine, persistence, bike-database access, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service. Existing tool models, titles, access gates and physical checks remain separate. All public tools remain free; the new coverage is not a claim of Google indexing, traffic, revenue, fit or medical outcomes.
v0.53.0
Keep every rear-suspension observation with its declared condition
The geometry comparator now offers a separate free sheet for 2–6 named conditions of one unchanged rear assembly. Shared shock-axis and stroke references, load/support/front-state descriptions, static or event-marker classification and independent frame-fixed axle coordinates remain distinct. Whole-list validation retains unknowns and blocks malformed entries without filtering, zero-filling, ranking or choosing a setting.
Readable quantities and two original shared-scale constructions separate axis compression, usable-stroke fraction, raw marker history, signed axle differences, endpoint chord and a strictly two-point vertical quotient. No linkage curve, intermediate position, ground-height prediction, pressure, damping or sag target is generated. The complete frozen discussion-note review includes all raw conditions and withheld reasons before a separate manual TXT download; edits remove old results and download-start errors retain the note for manual retry.
The Tools launcher and all four rear-shock guides open the exact blank sheet; a malformed Trek primary-reference URL in that learning journey is corrected. The new sheet stays in page memory, adds no bike-database access, persistence, automatic clipboard, upload, sending, dependency, provider, tracking, sensor or paid service, and discards unsaved conditions when leaving its mode. English/Polish privacy explains the inventory and external-copy limits. Existing cockpit engines, saved-build controls and access gates remain separate. All public tools remain free; no physical compatibility, installation, handling, fit or medical outcome is certified.
v0.52.0
Read the whole rear-shock reference before interpreting frame geometry
Four connected free guides distinguish rear-shock eye-to-eye length from usable stroke, standard and trunnion mount axes from hardware width and bolt diameter, shock movement from axle-motion conventions, and settled loaded references from ride-marker history. Nearby scoped primary references and practical FAQs keep exact frame, part and condition evidence separate.
A native four-step path on Learn and the geometry comparator connects length and interface identification to linkage and load-state questions. Four original static schematics retain all quantities and limits in ordinary HTML. Fictional equal-total curves show why a full-interval travel ratio does not establish an intermediate wheel position; unknown stroke, mapping or state remains unresolved.
The guides link to the existing blank paper worksheet and separate geometry workspaces without inventing dedicated shock fields or a rear-linkage engine. No pressure, sag target, damping, torque, stroke change, replacement or installation is prescribed. No new dependency, provider, tracking, upload, persistence, database operation, sensor, consent change or paid service is added. All public tools remain free; no compatibility, clearance, handling, fit, performance or medical outcome is certified.
v0.51.0
Keep all four aero contact references across a whole configuration sheet
The cockpit route now offers a separate free sheet for 2–4 technical configurations with independent left/right pad and grip points, declared BB/level/centre-plane references, exact endpoints, support states and parts/source references. A separate tube-length declaration never reconstructs a hand point. Explicit whole-list validation retains incomplete configurations and blocks malformed entries without filtering, zero-filling, ranking or choosing a position.
Three shared-scale orthographic constructions and readable quantities separate signed point vectors, lateral spans/midpoints, side-plane distance and full 3D distance. Cross-option coordinate differences require matching declared endpoints and support conditions; unknown bases or axes remain visibly withheld. A complete frozen discussion-note review includes every raw input, quantity, difference, reason and provenance before a separate manual TXT download. Editing clears results/review; download-start errors retain the note for manual retry.
Learn and the Tools launcher link to the exact blank aero mode. The sheet stays only in tab memory, adds no bike-database access, persistence, automatic clipboard, upload, sending, sensor, dependency, provider, tracking or paid service, and discards unsaved aero fields when leaving its mode. Existing stem engines, saved-work controls and access gates remain separate. English/Polish privacy describes included technical text and external copies; no fit, compatibility, installation, cutting, race-rule or aerodynamic approval is supplied. All public tools remain free.
v0.50.0
Name the whole aero cockpit reference before comparing a position
Four connected free field guides separate basebar and extension interfaces, BB-relative armrest stack and reach, individual pad-width stations, and extension length versus a named grip point. Original fictional constructions, practical FAQs and section-scoped primary references preserve local manufacturer conventions, missing dimensions and independent hardware permissions.
A native learning path on Learn and the existing cockpit route connects interface identification to a technical paper reference. Every diagram keeps its quantities and limits in ordinary readable HTML. Frame, clamp, pad and grip endpoints remain distinct; the existing stem calculator is not a new armrest or extension model, and the fixed digital whole sheet has no dedicated aerobar slots.
No pad width, height, hand position, tube cutting, torque or installation is recommended. Coordinates do not verify fit, compatibility, physical condition, control function, race rules or aerodynamic performance. Reading creates no record, uses no sensor and adds no dependency, vendor, tracking, upload or paid service. All public tools remain free.
v0.49.0
Keep a whole measurement occasion together without creating a bike record
The free worksheet now offers a separate whole-bicycle measurement note with 15 fixed frame, saddle, crank, cockpit and control dimensions. Each recorded quantity retains two required readings and an optional third, its exact points, side, datum and convention, and its instrument and repeated-placement method. Shared assembly, date and support conditions stay with the whole occasion; every unmeasured slot remains visible instead of becoming zero.
A deliberate whole-sheet review checks all entered rows together. Partial or malformed readings block the entire review without removing entries or outliers. The complete frozen discussion note retains all raw readings, descriptive summaries, prepared references and unknowns before a separate TXT download. Editing removes the old review; download-start failure retains it for a manual retry. Fictional examples remain labelled after edits. The existing blank paper PDF and single-quantity A/B note remain separate.
The new sheet stays only in tab memory and reads no saved-bike database. It adds no persistence, automatic clipboard, upload, recipient sending, camera access, dependency, provider, tracking or paid service. Reloading or leaving discards unsaved work, not external copies. This note does not verify accuracy, fit, compatibility or installation and is not an importable profile, backup or work order. All public tools remain free.
v0.48.0
Read the whole flat-bar reference before interpreting grip position
Four connected free field guides separate central stem and grip-area interfaces, full bar width and named lateral grip spans, flat-bar rise and sweep planes, and installed roll versus the bar-clamp and grip points. Original worked examples, scoped first-party references and task-specific FAQs keep missing geometry and physical permissions visible.
A native four-step learning path on Learn and the existing cockpit route links interface identification to a technical baseline on the free blank worksheet. Four original static constructions retain every quantity and limit in readable HTML. The existing clamp-options workspace remains a separate, narrower model rather than a complete three-dimensional grip reconstruction.
No width, rise, sweep, roll, torque or cutting plan is recommended. Matching a labelled diameter or a modeled clamp point does not verify material permission, mounting regions, installation, control function, handling or rider fit. Reading creates no record and changes no mechanical setting; existing engines and access gates remain unchanged. No dependency, provider, tracking, upload or paid service was added. All public tools remain free.
v0.47.0
Find the exact workspace before entering measurements
The Tools hub now exposes 30 task entries across the existing workbench, including whole crank, seatpost, front geometry, control baseline, cockpit and saddle shortlists plus the blank paper worksheet. Search, workflow and starting-material filters retain catalogue order rather than suggesting a fit or a preferred component.
A separate task preview explains the required references, actual result, data boundary and what remains unverified before a deliberate native Open action. Fixed public mode links open the existing blank crank, seatpost, front and cockpit option workspaces after hydration; bare routes and resumable saved-work entries retain their existing defaults. The hub reads no bike inventory and grants no camera or processing permission.
Search, filters and previews stay in page memory and are never copied into destination URLs. Public mode fragments name only the workspace, not measurements or local record IDs. Existing calculations, saved-work protocols and access gates remain separate; no dependency, provider, upload, tracking or paid service was added. All public tools remain free.
v0.46.0
Read the whole wheel and tyre reference before entering a radius
Four connected free field guides explain ETRTO and traditional wheel names, nominal versus mounted tyre width and internal rim references, independent hookless/tubeless/tube permissions, and rolling circumference versus equivalent or loaded radius. Each keeps original worked examples, current scoped primary sources and a task-specific next step rather than a guessed compatibility or pressure result.
Original wheel constructions retain all quantities and limitations in readable HTML. A native four-step path on Learn and the geometry-comparison route connects identification, actual dimensions, unresolved permissions and rolling observations to the free blank worksheet, existing geometry references and separate front sheet.
Matching diameter, a tube, a low pressure limit or a derived radius does not approve an assembly, clearance, wheel conversion, handling or rider fit. Reading creates no bike or rider record and changes no mechanical setting. Existing engines, access gates and business transport remain unchanged; no dependency, vendor, tracking, upload or paid service was added. All public tools remain free.
v0.45.0
Compare the whole front geometry without choosing a bicycle
The frame-comparison route now has a separate free sheet for 2–4 technical declarations: source and configuration, explicit snapshot and offset/length conventions, steering quantities, fork endpoints, independent front and rear axle coordinates and a separately declared wheelbase. One explicit arithmetic reference defines descriptive differences; every option remains in entered order, with missing data unresolved rather than replaced or ranked.
Original shared-scale constructions and readable quantities distinguish ground versus normal trail, direct versus on-axis fork length, horizontal versus direct centre distances, unequal axle heights and independent ground-to-BB references. Contradictory triangles withhold dependent arithmetic; steerer and travel remain separate raw fields. A complete note review includes all declarations, calculated values, differences, unknowns, provenance and UTC preparation date before a separate optional TXT download. Edits remove old results/review and download errors retain the exact note for manual retry.
The existing cockpit model, saved transfer and quick stack/reach comparison remain separate and unchanged. Fixed new-tab guide links retain the sheet; mode changes discard unsaved work but cannot recall a valid save already started or external copies. EN/PL privacy describes the memory-only fields and copy boundaries. This model does not approve frame size, handling, toe clearance, compatibility, installation or rider fit. No dependency, vendor, upload, tracking or paid service was added; all public tools remain free.
v0.44.0
Read the whole front geometry beyond a cockpit match
Three connected free field guides distinguish head angle, perpendicular fork offset and ground versus normal trail; direct versus on-axis axle-to-crown, steerer length, travel and fork state; and direct versus horizontal front-centre, rear-centre and wheelbase. Each retains its own measurement convention, original fictional arithmetic and scoped primary sources instead of selecting a fork or rating handling.
Original schematics keep every quantity and equation in readable HTML too. A four-step native learning path on Learn and the frame-comparison route connects the new guides to the existing BB drop/height reference, unfilled worksheet and openly fictional cockpit example. The comparison model and mechanical gates remain unchanged.
A chart or modeled clamp match does not prove complete bicycle equivalence, toe clearance, frame size, component compatibility or installation approval. Reading creates no bike or rider record and adds no dependency, vendor, tracking, upload or paid service. All public tools remain free.
v0.43.0
Compare the whole seatpost reference sheet without choosing a winner
The saddle fore-aft route now has a separate free 2–4 option workspace with shared receiving-system references, independent post, adapter and rail/clamp identities, and a declared common insertion axis. Every option remains in entered order; missing limits stay unknown and contradictory bounds get no midpoint or closest-fit fallback.
Equal-scale insertion diagrams and an optional original rigid BB-relative construction separate shaft exposure, horizontal or perpendicular head offset, a named-point vector and an optional declared baseline. Numeric terms, withheld points and unresolved physical checks stay visible. A complete review contains every option before a separate deliberate TXT download; failed download retains the review for manual retry, while edits remove stale results and review.
Fictional examples remain labelled through edits. Mode changes discard unsaved workspace fields but cannot recall external copies or a save already started in the unchanged one-move workflow. EN/PL privacy describes the included technical fields and copy boundaries. This sheet does not choose an ideal position, approve compatibility or installation, predict rider outcomes or create a saved record. No dependency, vendor, tracking, upload or paid service was added; all public tools remain free.
v0.42.0
Identify seatpost references before comparing a replacement
Three connected free field guides separate head/shaft offset from BB-relative saddle setback, post/frame/collar and exact shim interfaces, and minimum engagement from maximum insertion and named exposed length. Original fictional schematics and worked arithmetic include perpendicular-offset directions, radial versus diametral differences and an empty insertion interval without a closest-fit fallback.
A native four-step path on Learn and the saddle fore–aft route connects the three new intents to the existing rail/clamp guide. Scoped primary references, practical FAQs and the free blank worksheet keep exact identities, datums, missing evidence and source conditions visible.
These are dimensional learning resources, not part selections, installation instructions, position prescriptions or fit and health promises. Existing tool engines, hardware and access gates, local records and working page titles remain unchanged. No dependency, vendor, tracking, upload or paid service was added; all public tools remain free.
v0.41.0
Compare a whole crank shortlist against one declared baseline
The crank tool now has a separate free 2–6 option workspace, keeping named alternatives together against one current length without an inseam or saved bike. Whole-list validation, entered order rather than ranking, equal-scale pedal-axis diagrams and separate saddle-fixed and conditional X-fixed vertical scenarios keep the geometry assumptions visible.
Optional declared BB-relative coordinates distinguish vertical gaps from straight-line distances to a named saddle point. A complete note review includes every alternative, input, unknown physical check and limitation before a separate explicit TXT download. Edits remove the old comparison and review; failed download retains the note for manual retry. Fictional examples remain labelled through edits, and fixed new-tab references retain the original workspace.
The existing one-pair assistant, starting band and bike-linked saved swap workflow remain separate. Mode changes discard unsaved inputs but cannot recall a started save or downloaded copy. This model does not select an ideal crank, verify fit or installation, predict power or health outcomes, or approve compatibility. EN/PL privacy describes the memory-only fields and external copies. No dependency, vendor, upload, tracking or paid service was added; all public tools remain free.
v0.40.0
Identify crank references before comparing a replacement
Three connected free field guides distinguish BB-to-pedal-axis crank length from markings and other dimensions, derive the conditional vertical saddle-compensation model with non-collinear counterexamples, and separate shell, spindle, chainring, chainline and clearance evidence. Original fictional schematics, readable quantities, nearby scoped primary links and practical FAQs keep assumptions visible.
A native four-step path on Learn and the crank tool joins these new guides to the existing BB drop/height guide rather than duplicating its search intent. Each guide connects to the unchanged free comparison workflow or blank worksheet; current and retired health content remain separate.
The calculator engines, starting ranges, bike-linked save and re-check workflow, existing access gates and public page titles remain unchanged. These are dimensional learning resources, not an ideal crank prescription, installation manual, power or health promise. No dependency, vendor, tracking, upload or paid service was added; all public tools remain free.
v0.39.0
Keep and compare a whole control baseline without creating a bike record
The existing handlebar-controls assistant now offers one whole A/B measurement bench: upper and lower bar spans, separate left/right body heights, declared surface-angle planes and resting blade gaps. Each quantity retains its exact reference, method, two independent readings and optional third beside assembly, date and support declarations. An explicit review holds each set in page memory before comparing all eight rows.
The comparison keeps unknown rows visibly separate from zero and withholds subtraction when declared points, convention, plane, method or support differ. Every raw reading remains visible beside descriptive means, spans and independent quantity rails. Editing a set removes its earlier review and result while preserving the other set; copying A references creates a blank B without copying measurements or a date. Fictional examples stay labelled through edits.
Existing width/gap checks remain a separate mode with their unchanged engines and saved-data actions. The new bench has no automatic save, export, sensor, adjustment target, brake-function test, fit verdict or installation approval. Fixed new-tab guide and blank-worksheet links retain the original workspace, and EN/PL privacy describes its memory boundary. No dependency, vendor, upload, tracking or paid service was added; all public tools remain free.
v0.38.0
Read width, bar shape and control state before comparing the cockpit
Four connected free field guides explain drop-bar width stations and centre/edge conventions, flare versus outsweep and backsweep, blade reach versus free stroke or contact point, and separate left/right body height, orientation and resting gaps. Original fictional schematics and worked arithmetic retain their named references beside scoped primary sources and practical FAQs.
The Learn hub and existing handlebar-controls and hood-position entry pages connect the same four-step path. Readers can inspect the appropriate existing free workflow or record unresolved references on the blank worksheet without a bike, account, sensor or assembly change. The earlier clamp/bar/hood coordinate guide keeps its separate intent.
A width label, shape angle, matching resting gap or repeatable observation is not an ideal-size prescription, lever setting, brake-function test, fit verdict or installation approval. Existing engines, consent, hardware gates and local-data workflows are unchanged. No dependency, vendor, upload, tracking or paid service was added; all public tools remain free. Publishing this coverage is not proof of Google indexing or traffic.
v0.37.0
Take a repeatable width range through a whole saddle shortlist
The existing saddle-width assistant now compares two or three named saddle declarations together: outside width, exact maker sizing definition and source, external section station and method, surface description, both rail cross-section dimensions and the current clamp reference. Equal outside numbers remain visibly separate from section spans and maker-defined usable widths. Unknown facts stay unknown and produce concrete inspection questions; no model is automatically ranked or chosen.
An explicit choice opens one inspection brief with its exact declaration inventory, unresolved physical checks and a next step to the existing blank measurement worksheet. Fixed new-tab reference links retain the original in-memory workspace without putting entered values in the address. Changing measurements, posture, declarations, clamp or choice removes an old comparison or brief. Invalid or discordant inputs block the whole comparison while retaining declarations for a manual correction. Fictional examples remain labelled through edits.
This is a local shortlist and inspection preparation, not a purchase recommendation, pressure map, fit verdict, compatibility certificate, installed baseline, saved bike or ride log. The existing measurement engine, reference allowances, hardware gates and consent remain unchanged. EN/PL privacy describes the actual memory-only contents and copy boundaries. No dependency, vendor, database access, upload, clipboard action, download, tracking or paid service was added; all public tools remain free.
v0.36.0
Read the saddle surface and clamp references before comparing parts
Four connected free field guides explain independent centre-to-centre sit-bone impressions, external versus usable saddle width, front/centre/bridge angle references on curved surfaces, and exact rail/clamp identification with marked engagement limits. Original fictional schematics and worked arithmetic keep quantities readable in HTML beside scoped manufacturer sources.
The Learn hub and existing width, tilt and fore-aft tool pages connect the same four-step reading path. Readers can inspect the existing free workflows or keep unresolved reference questions on an unfilled paper worksheet, without creating a bike, activating sensors or making an assembly change.
Agreement rules and posture allowances remain explicit product conventions, not anatomical accuracy or an ideal saddle prescription. A width label, angle or rail dimension does not verify pressure, comfort, compatibility, torque or installation. Existing engines, hardware gates, consent and local-data workflows are unchanged. No dependency, vendor, upload, tracking or paid service was added; all public tools remain free.
v0.35.0
Compare and review a whole frame shortlist without a saved bike
The existing frame studio now retains one comparison combination per frame, including options beyond the three quick choices. A shared equal-scale X/Y residual map and named rows compare all 2–4 declared frames against the same BB-relative clamp target. Input order, explicit choices and modeled-best placeholders remain distinct; no frame is automatically chosen for a discussion.
An explicit model-only review includes every compared geometry source, exact size, declared target and datum, full stem/spacer catalog and limit, comparison combination, residual, model window and exclusion. A separate optional TXT download needs no saved bike and creates no bike or installation record. Missing, ambiguous, stale or overlong context blocks the whole note rather than filtering or shortening it. Fictional provenance survives edits until a new blank shortlist is deliberately started.
Outside-window combinations remain unresolved discussion options, never fit, purchase, compatibility or installation approval. Physical checks stay unconfirmed and installed coordinates unmeasured. Source or choice changes remove old reviews; download errors retain them for manual retry. External copies may be retained or synced and cannot be recalled. Existing saved build, installation, ride, consent and local-history workflows remain separate. No dependency, vendor, upload, tracking, storage migration or paid service was added; all public tools remain free.
v0.34.0
Read the geometry chart before comparing frames
Four connected free field guides explain effective top tube versus reach, effective seat angle at a stated height, standover stations and independent seatpost limits, and bottom bracket drop versus ground height. Each has an original static schematic, readable fictional arithmetic, practical questions and scoped primary sources beside the relevant explanation.
The Learn hub, frame comparator and saved setup-transfer entry connect the same four-step reading path. Readers can inspect the existing comparator, a record-free fictional frame example or a blank paper worksheet. Endpoints, model/year/size and assembly conditions stay attached to numbers; no universal size or clearance threshold is supplied.
A chart, modeled residual or arithmetic gap does not approve purchase, compatibility, handling, pedal clearance, installation or rider fit. Existing engines, mechanical checks, consent and local-data workflows are unchanged. No dependency, vendor, upload, tracking, storage migration or paid service was added; all public tools remain free.
v0.33.0
Measure a complete first bike before saving its passport
My bikes now offers a measurement-first path for a new bike: name the physical saddle point, take independent saddle-height and setback readings, define the exact cockpit endpoint and levelling/projection methods, then capture reach and drop. The same existing measurement engines request a third reading when needed. An optional crank length can be recorded; other unknown dimensions remain absent, not zero.
Review all four resolved coordinates, every included raw reading and observed span, the declared local-calendar date and physical definitions before a separate explicit save. One add-only transaction commits the new passport and both measurement-history entries together without first creating a blank bike or replacing an existing one. Confirmed storage errors keep the exact review for manual retry; an unconfirmed outcome blocks retry and asks for inventory inspection.
The saved passport immediately enters the existing garage, history and setup-card workflows. Back retains entries but removes the old review and acknowledgment; cancel, reload or leaving loses the unsaved draft, while a valid pending local write may still commit. Original manual entry, import, camera and consent rules remain unchanged. This is a record of entered measurements, not accuracy, fit or installation approval. No dependency, vendor, upload, tracking, storage migration or paid service was added; all public tools remain free.
v0.32.0
Understand the shoe and pedal interface before a cleat trial
Four connected free guides explain shoe–cleat–pedal compatibility, mounted rotation versus float and release, crank Q-factor versus pedal and shoe spans, and the endpoints behind a stack-height claim. Each has original static schematics, readable worked examples, scoped manufacturer sources and practical questions.
The Learn hub and existing cleat and crank tool pages connect the same learning path. Readers can inspect the correct existing workflow or keep a paper record without a bike profile. Model names and measurement conventions remain attached to values; bolt count, colour or catalogue arithmetic never becomes installation approval.
The guides do not select an optimal foot position, diagnose symptoms, promise performance or prescribe a saddle change from shoe stack. Existing engines, mechanical checks, consent and local-data behavior are unchanged. No new dependency, vendor, upload, tracking, persistence or paid service was added; all public tools remain free.
v0.31.0
Keep and compare six cockpit alternatives against one baseline
The free cockpit calculator now has a separate multi-option workspace beside its existing pair view. Keep one current baseline and up to six named alternatives, add or duplicate an option, switch editors without losing other drafts, and deliberately compare every option together. Three fictional configurations demonstrate spacer, stem-length and actual-angle changes without a bike record or camera.
One equal-scale map and readable result cards show the exact baseline and option inputs, modeled clamp coordinates and signed horizontal, vertical, fixed-saddle drop and optional nominal-hood changes. Results keep entry order, not a fit ranking. Invalid options block the whole comparison; edits remove all old results. Open one exact option in the detailed pair view without installing or saving anything, while the independent workspace stays intact.
The workspace stays only in page memory; reset, reload, close or leaving loses its unsaved work. Existing coordinate engines, optional local-journal actions, physical hardware checks and consent gates are unchanged. A model does not verify an installed contact point, component compatibility or rider suitability. No new dependency, vendor, upload, tracking, persistence or paid service was added, and all public tools remain free.
v0.30.0
Read cockpit dimensions before comparing parts
Three connected guides explain nominal versus installed stem angle, spacer and stem contributions to both clamp axes, and handlebar reach/drop versus installed hood position. Original static diagrams, worked fictional geometry, nearby scoped primary references and practical FAQs keep each measurement convention and limitation visible.
Learn, the stem comparison calculator and the stem/spacer and hood workflows now share a four-step reading path. Each new guide connects to the appropriate existing free tool through native links, while the frame/contact-point guide retains its separate endpoint intent. No calculator engine, installation gate or consent rule changed; a model remains distinct from an installed measurement or fit approval.
The guides require no bike record, account, camera or upload. No new dependency, vendor, cost, persistence or tracking was added, and all public tools remain free. Search discovery and later traffic are separate from publishing this educational coverage.
v0.29.1
Return keyboard focus after clearing setup files
Clear files and review now returns focus to the File A control even when a profile selection already removed the comparison. This closes a keyboard-recovery issue found during production acceptance of the new no-import setup-file workflow.
File validation, all 15 recorded values, definition checks, reviewed TXT, cancellation and memory-only boundaries are unchanged. Clearing does not delete saved bikes or external copies; all public tools remain free.
v0.29.0
Compare two private setup files without importing bikes
Settings now offers a separate file-comparison workflow: check two portable bike-profile JSON files, explicitly choose one profile from each and compare all 15 recorded mechanical fields without importing, merging or creating local bikes. The existing Tools finder and setup-transfer page lead to this flow. A clearly fictional pair demonstrates different cockpit endpoints without a camera, account or saved bike.
The comparison reuses passport definition checks, retains raw A/B values and distinguishes different or equal numbers, missing values and incompatible definitions. Cockpit deltas require the same structured datum; missing or different definitions never become zero or a passing result. A/B labels and stored dates do not assert bike identity, chronological order, physical accuracy, fit quality or an instruction to adjust equipment.
Review exact TXT contents before a separate optional download. The note excludes IDs, file names, free-text notes, hardware/manual/torque references, unselected profiles, fits, history and video. Changing a source removes the old result; read cancellation, errors and manual retry preserve the other checked file. Reset, reload or leaving clears tab memory, not external copies. English and Polish privacy notices describe this scope. Existing import, archive, transfer and consent semantics stay unchanged; no new dependency, upload, tracking, vendor or paid service was added, and all public tools remain free.
v0.28.0
Understand the camera method before interpreting a bike-fit angle
Three new connected guides explain repeatable phone-camera setup, cycling knee-angle conventions and independent video takes. The existing confidence guide is expanded into a full explanation of visibility, clip quality, agreement and their limits. Four original static diagrams, nearby primary-source references and practical FAQs keep the method beside the number; fictional angle examples are not fit targets.
Learn, the camera readiness page and the public fictional analysis now share a four-step reading path. Each guide leads to the relevant existing free tool without starting a camera, creating a fit or accepting consent. Interior versus flexion, maximum extension versus a static pose, and repeated cycles versus independent recordings remain explicitly distinct.
The camera engines, quality thresholds, reference bands, saved-record workflows and consent gates are unchanged. No new dependency, vendor, upload, tracking or paid service was added. Expanded search-intent coverage is not evidence of Google indexing, ranking, validated physical accuracy or improved rider outcomes; all public tools remain free.
v0.27.0
Keep repeated manual readings together with their measurement protocol
The free workshop worksheet now offers an optional in-tab reading note without an account, saved bike or camera. Choose one named mechanical quantity, describe the points, datum, instrument and conditions, then enter two to six independent readings. Review every raw value, declared date, observed span and rounded mean with a descriptive plot. The original blank paper worksheet and PDF remain available unchanged.
A second series is included only by explicit choice and requires a declaration of the same protocol. Its mean difference is arithmetic, not proof of physical change, accuracy or improved fit. Editing removes the earlier review; changing quantity requires a conscious new blank draft instead of reusing numbers as another unit. Invalid included readings block the whole review, and clearly fictional examples remain labeled after edits.
After reviewing the exact contents, choose a private TXT download. Errors retain the review for manual retry; a download start does not confirm a saved file or delivery. Reset, reload or leaving clears the unsaved note, not existing external copies. The Tools finder and repeatability guide link directly to the new flow. Header, mobile dock and footer exits from the worksheet use ordinary navigation to fix a verified fragment-then-Back journey; navigation on other routes is unchanged. No bike database write, upload, automatic clipboard, tracking, dependency, vendor or paid service was added; all public tools remain free.
v0.26.1
Return to the measurement guide after opening its tool
The four new measurement guides and the new Learn tool choices use ordinary same-tab links for their main tool actions. This fixes a verified journey where using the guide table of contents, opening the worksheet through the main action and going Back changed the URL without restoring the guide content.
The controls keep the same appearance and destinations. Opening a tool still makes a normal website request and keeps its existing consent and save boundaries. This is a narrow navigation fix, not new draft persistence or a guarantee of browser crash recovery. The connected guides, search-intent coverage and free public tools are unchanged.
v0.26.0
Record a repeatable bike setup with four connected measurement guides
The Learn library now includes a complete measurement checklist and three detailed guides to saddle reference points, frame versus cockpit coordinates and repeated manual readings. Original static diagrams and clearly fictional worked examples explain named endpoints, BB-relative axes, direct versus component distances and the limits of an observed reading span.
Each guide connects to the appropriate existing free worksheet or tool and to the other measurement topics. Scoped primary-source links sit beside the relevant convention; they are not clinical evidence grades, fit prescriptions or installation approvals. The library features the new measurement path and no longer links to empty topic sections. Existing calculator titles, engines and retired health-content boundaries are unchanged.
The guides are readable without a camera, account or saved bike. Following a tool link keeps its existing consent and explicit-save boundaries; reading a guide records no measurements. No new dependency, vendor, upload, tracking, storage or paid service was added, and all public tools remain free. New search-intent coverage is not proof of indexing, traffic, leads or better fit outcomes.
v0.25.0
Review a clearly sourced movement-summary PNG before hand-off
Preview the exact movement-summary PNG before separately choosing Download PNG or system file sharing. The image now carries its synthetic-demo or on-device-estimate label, the rounded knee interior angle at maximum extension, knee and analysis confidence, analysis date, reference band and limitations. A synthetic example is explicitly not your measurement; the compact image no longer carries decontextualized hardware-adjustment advice. The full report and analysis engine are unchanged.
Preparation can be cancelled and has a ten-second UI window. Errors retain the report or prepared preview with focused feedback and manual retry; cancellation and uncertain system-share outcomes do not start an automatic download. A changed analysis or leaving closes the old preview and ignores late results. A download start or system hand-off does not confirm saved files, recipient delivery or publishing; closing cannot recall existing copies or an open system share.
The existing public workshop example includes a memory-only fictional movement image built with the real pipeline, without camera or saved records. English and Polish privacy notices explain the PNG contents and external-copy boundaries. No new database write, storage schema, dependency, upload, tracking, vendor or paid service was added; public tools remain free. The UI window does not interrupt native encoding or guarantee timing in a frozen browser.
v0.24.5
Export the current saved bikes in a compatible portable file
Export bike profiles in My bikes now reads one completed profile-only snapshot when chosen, rather than exporting the old displayed list. New saved bikes, same-timestamp changes and current saved notes are included. Your unsaved form entries and the displayed inventory are left alone; fits, history and videos are not included.
The whole portable bundle must pass the existing import validator and its limits of 100 bikes and 1 MB (1,000,000 UTF-8 bytes) before a download starts. Empty, invalid, ambiguous or oversized sources produce an explanation, not a partial file. No bikes or notes are silently filtered or truncated; use the separate complete archive in Settings when the portable limits do not fit.
Pending controls, focused feedback and a ten-second read window support manual retry after an error without losing your draft. A late read cannot download after leaving or timing out. This does not interrupt a frozen browser or native readonly work, include later saved changes, verify physical measurements, repair old files or confirm that a started file was saved or sent. Version-1 import semantics, free tools, consent and database schema stay unchanged, with no new dependency, upload, tracking, vendor or paid service.
v0.24.4
Protect newer bike and component lifecycle records
Creating a component plan, recording its installation and closing it with Keep or Revert now check the exact saved passport and lifecycle inside the same transaction as their writes. Keep and Revert also confirm the selected camera condition and its current bike/demo binding. Changes without a timestamp bump, removal or a newer terminal decision stop the old action instead of overwriting newer work.
A conflict focuses an explanation, retains your own entries and pauses progress until you explicitly reload the saved lifecycle and discard the draft. A failed or stalled reload keeps the draft; ordinary write errors allow manual retry. If the old frozen plan is no longer valid, an explicit new-lifecycle restart reads current sources first and leaves saved history untouched. Inputs remain disabled while one operation is pending. Success requires commit and uses that committed result without a fallible post-save refresh being mistaken for a failed write.
Stop compares and updates only the lifecycle journal, so a changed or missing passport or camera session does not prevent recording a technical stop or rewrite the bike. This protects these component-studio writers, not every writer, historical records, physical compatibility or installation. Leaving suppresses the late screen response but does not recall a valid pending commit. The ten-second reload deadline limits the UI promise, not a frozen engine or native transaction. No new storage schema, dependency, tracking, upload, vendor or paid service was added; public tools remain free.
v0.24.3
Inspect workshop materials without losing your inquiry draft
Tool, fictional-example, worksheet and contextual privacy links on the business page now visibly say new tab and open separately. You can inspect a workflow or read the notice while the original tab retains its scope choices, attached scope, entered business fields and email review, rather than navigating away and rebuilding them.
These are native links with no opener access and no referrer. They do not add your contact fields, message or reviewed email text to the destination URL, copy them to storage or submit the inquiry. Normal Home, navigation, same-page pilot and mail-app actions are unchanged. Keep the original tab open: reloading, closing or leaving it still clears the unsaved draft, and a browser controls whether a separate tab or window opens.
An unconfirmed form attempt remains unconfirmed while you inspect a separate page; inspection is not a submission, retry, receipt, lead or email delivery. English and Polish privacy notices explain the boundary and ordinary destination web requests. Public tools, endpoint, retry identity, storage and consent are unchanged, with no new dependency, tracking, vendor, upload or paid service.
v0.24.2
Keep newer frame installations and ride decisions
Recording a Frame Transfer Studio installation or closing a ride trial now compares the exact journal entry opened on this screen with the current saved entry inside the same journal-only transaction as its write. A changed or removed source stops the action instead of erasing a newer installation, reopening a stopped trial, replacing a newer decision or recreating a removed plan. Changes without a timestamp bump are detected.
A conflict focuses an explanation and preserves your own draft while progress actions stay paused. Reload saved plan and discard draft explicitly loads the current saved installation and decision without merging or writing; a failed or stalled reload keeps the draft. Ordinary write failures allow manual retry. Pending controls and a synchronous guard block competing actions on this screen; success requires the transaction commit.
This protects these two studio progress writers, not every journal writer, historical records or physical work. Leaving the screen suppresses its late response but does not recall a valid pending local commit. The reload deadline limits the UI promise, not a frozen browser or native database transaction; no write deadline or continuous monitoring is promised. Free tools, engines, consent and storage schema remain unchanged, with no new dependency, browser key, upload, tracking, vendor or paid service.
v0.24.1
Keep frame-transfer plans tied to their modeled inputs
Editing a Frame Transfer Studio target, datum, parts catalog, numeric limit or candidate now removes the previous ranking and build choice. Adding or removing a frame also requires modeling again; the repairable form remains available, and a failed recalculation cannot leave the old result ready to save.
Freezing a build checks that the exact declared input set and selected combination still belong to the completed model. The plan takes its target, geometry, coordinates and residual from that same result. Remove/add uses an unused candidate identity, and competing clicks or edits are blocked while this plan is being saved. Storage errors retain the current choice for manual retry.
This protects newly frozen plans in the studio, not historical records, every other journal writer or physical work. It does not certify component compatibility, installation or fit, prevent cross-tab writes or recall a pending local commit. Free tools, modeling engines, consent and storage schema remain unchanged; no new dependency, browser key, upload, tracking, vendor or paid service was added.
v0.24.0
Inspect a fictional frame and cockpit hand-off before custom work
The public workshop example now compares three clearly fictional frames against one BB-relative handlebar-clamp target using the existing coordinate and shortlist engines. Inspect the fixed geometry, actual stem angles, spacers and numeric limits, then explicitly choose a combination before preparing a planning brief. A higher-target example shows an unresolved catalog and blocks the brief instead of approving the closest option.
The brief and optional TXT carry the selected fictional components, modeled coordinates, residuals, named datums and still-missing mechanical checks. Installed coordinates remain Not measured and rider comfort Not reported. Changing the scenario or combination removes the old brief; reset, leaving the example and reload clear its memory state. Failed downloads keep the brief for manual retry, and a started download does not confirm a saved or sent file.
Workshop scope drafts link directly to the appropriate setup-card, work-order or frame-comparison example. No sample measurements or selection are passed to an inquiry, and no local bike records are read or saved by the new example. These are demonstrations, not component compatibility, installation or fit approvals. Free tools, engines, storage and consent remain unchanged, with no new dependency, upload, tracking, vendor or paid service.
v0.23.11
Keep a newer bike passport when saving a manual edit
The manual bike-profile editor compares the exact passport opened for editing with the current local record inside the same profile-only transaction as its save. A changed or removed source stops the edit rather than replacing newer measurements, references or component notes, or recreating the bike. Changes without a timestamp bump are detected.
A source conflict refreshes the saved-bike list, focuses an explanation and keeps your own unsaved entries in the editor. Save stays paused until you explicitly cancel or reopen a saved profile; nothing is merged automatically. Ordinary storage errors retain the draft for manual retry. Busy fields and actions prevent competing edits on the same screen, and success requires the transaction commit.
This protects this manual editor, not every other bike writer, historical data or a physical inspection. Leaving the screen suppresses its late save response but does not recall a valid pending local commit; no write deadline or continuous monitoring is promised. Free tools, consent and storage schema are unchanged, with no new dependency, browser key, upload, tracking, vendor or paid service.
v0.23.10
Keep live camera attempts and viewpoint changes separate
Live camera startup and switching now belong to one guarded attempt at a time. Cancelling startup or stopping live capture releases its available camera tracks, model and audio. Streams and models returned later are released instead of replacing a newer camera; a late failure from an abandoned start cannot stop your manual retry.
Reset setup and Retry with this camera discard a detection that was already running for the earlier setup. Changing cameras releases the previous attempt before starting a fresh one, and the displayed mirror updates only after the new viewpoint is ready. Current errors focus their explanation; Stop and Cancel return focus to the start button. A completed current capture still passes the unchanged director and technical quality gates before its frame copy reaches analysis.
Stopping cannot dismiss an already-open browser permission prompt, interrupt every native promise or recall a clip already handed to analysis. Any stream returned later is stopped; a frozen browser has no wall-clock guarantee. This change does not repair historical data or certify physical setup, camera accuracy or installation. Free tools, consent and storage remain unchanged, with no new dependency, browser key, upload, tracking, vendor or paid service.
v0.23.9
Stop an abandoned recorded capture before it reaches analysis
Recorded-camera screens now let you cancel camera startup, stop the preview or discard the current recording. Stopping clears the in-memory frames for that attempt, stops its available camera tracks and releases its model; a late detection cannot complete an abandoned clip. The same guards apply when leaving the recorded capture, independent repeat or controlled re-check screen.
Each attempt owns its resources. A camera stream or model arriving after cancellation is released rather than installed into a newer attempt. Startup and recording have synchronous repeat-action guards; a later failure from an abandoned start cannot stop your manual retry. Cancellation returns focus to the start button, and current startup errors focus their explanation.
Stopping cannot dismiss a browser permission prompt or interrupt a native promise that is already pending; any later stream is stopped on return. It does not recall a clip already handed to analysis, change historical saved data, modify the separate live mode or guarantee wall-clock timing in a frozen browser. Recording duration, quality and consent gates, free tools and storage stay unchanged; no new dependency, browser key, upload, tracking, vendor or paid service was added.
v0.23.8
Open your chosen fit without losing unsaved copies
Choosing a saved fit now updates the explicit tab selection as well as the existing resume shortcut. An unrelated unsaved working copy cannot replace the chosen fit. Other pending copies remain available to the existing recovery controls, and a blocked resume shortcut does not prevent the in-tab choice.
Fit pages wait for a completed local opening snapshot before showing their content. A missing or ambiguous chosen identity, a read failure or a ten-second opening timeout shows an explanation and manual retry instead of another or a new fit. Starting a separate fit requires an explicit action. Returning to the chosen fit's own pending copy is clearly labeled until that copy is saved.
Opening current-schema records no longer rewrites cached fits. Existing older-record wellness cleanup runs under one session-only transaction using the current stored records. Leaving the provider requests abort and suppresses late results; the UI deadline does not guarantee wall-clock timing in a frozen browser. This is an opening identity guard, not protection for every other writer, continuous monitoring or physical inspection. Free tools, consent and storage schema stay unchanged, with no new dependency, browser key, upload, tracking, vendor or paid service.
v0.23.7
Keep newer saved fit evidence when recording a rider check-in
Saving a rider check-in from Saved fits compares the opened fit with the current local record inside the same session-only transaction as the append. A changed or removed source, an existing check-in or a no-longer-ready adjustment stops the save rather than replacing newer evidence or recreating a fit. Changes without a timestamp bump are detected.
A source conflict closes the old form and refreshes the queue for an explicit new choice. A failed refresh pauses fit actions until a successful manual read. Ordinary storage failures retain the selected ride count and comfort response for manual retry; success is shown only after the transaction commits. Busy controls prevent repeated clicks and competing actions on the same screen.
Comfort remains rider-reported evidence, separate from camera movement and installation or safety conclusions. This guard covers this check-in save, not every other fit writer or historical data. Leaving the screen suppresses late UI updates but does not cancel a valid pending local commit; no write deadline or continuous monitoring is promised. Free tools, storage schema and consent remain unchanged, with no new dependency, upload, tracking, vendor or paid service.
v0.23.6
Check both saved camera dates before comparing or opening their reports
The private camera comparison workspace reads a completed local session snapshot before Compare and before opening either report. A changed, removed or ambiguous selected source stops the action, refreshes the inventory and removes the earlier result for an explicit new selection. Changes without a timestamp bump are detected; unrelated saved sessions do not block the pair.
Compatible date discovery uses the same normalized declared context as the comparison engine, so valid older and current context-marker formats can be paired. Selected baseline dates stay readable below the native selectors on small screens. Distinct date order, frozen setup, protocol and complete metric checks remain required. Refresh saved dates offers a deliberate inventory reload without silently choosing replacement sources.
Read failures preserve the earlier view with an explanation and disable its report actions until a successful manual comparison. A ten-second UI read deadline, busy controls and leaving-page guards prevent repeat or late actions; they do not abort a native readonly transaction, continuously monitor storage or verify the physical bike. Movement rules, free public tools, consent and camera protocols are unchanged; no new store, dependency, upload, tracking, vendor or paid service was added.
v0.23.5
Do not overwrite a newer bike passport while saving guided measurements
Guided saddle measurements, structured cockpit captures, the cockpit remeasurement aid and saddle/hood detail captures keep the passport opened for that measurement. Saving compares that exact source inside the same local transaction as the profile and new history event; a changed or removed bike stops the save instead of reverting newer fields or recreating the bike.
A source conflict refreshes the inventory, closes the old measurement draft and focuses an explanation asking you to start measuring again. Ordinary storage errors retain the entered readings for manual retry. Competing saves from one source cannot both replace the passport, and a new measurement event cannot overwrite an existing history ID.
This protects these guided measurement saves, not every edit or adjustment workflow, historical data or a physical inspection. Existing measurement rules, calculation ranges and free public tools are unchanged. No new database store, browser key, migration, dependency, upload, tracking, vendor or paid service was added.
v0.23.4
Keep new recording context stable through a JSON recovery copy
New analysis and recording-condition context markers use a versioned JSON-compatible representation. Omitting an unentered optional input during export no longer makes an unchanged new result or recording baseline appear outdated after recovery. Material input changes still block reuse.
Older context markers are checked against their original representation without rewriting records or guessing optional values lost in an older JSON copy. Cross-session comparison checks each saved condition first, then compares the normalized declared contexts rather than rejecting two valid marker versions solely for their labels.
This repairs new context-marker serialization, not historical data, a physical measurement or authentication. Calculation ranges, Fit Plan source checks, camera and consent protocols, archive review and atomic recovery are unchanged. All public tools remain free; no new store, browser key, dependency, upload, tracking, vendor or paid service was added.
v0.23.3
Keep a camera result tied to its exact calculator plan
New movement analyses and recording conditions keep an exact local source representation of the calculator plan, not only its ID. A changed plan with the same ID no longer reuses the old target comparison or unlocks setup suggestions from old takes. Older plan-backed results without that source proof need analysis and confirmation again; planless results keep their existing checks.
The shared calculator-to-camera card explains an unavailable comparison without substituting the current targets into an old recording. The analysis page binds an in-flight read to its exact source, drops late results after a source change or leaving the page, and still completes its own valid save.
This is a saved-source integrity check, not authentication, a physical inspection or proof of a fit outcome. Existing records and downloaded copies are not rewritten. The local proof contains plan data already on this device; no new store, browser key, upload, tracking, dependency, vendor or paid service was added. Calculation ranges, camera protocol and free public tools are unchanged.
v0.23.2
Do not silently substitute inputs from a damaged result link
Calculator links now reject explicitly unsupported or empty preference values and repeated measurement or preference fields instead of choosing a default or the first value. The result page explains the problem, focuses its warning and links back to the calculator without producing a substituted result.
A damaged or repeated previous-input comparison is kept separate: a valid current calculation remains available with a comparison warning. Older links that omitted preference fields still use their established defaults; valid generated links retain the same values and calculations.
This checks incoming link data, not the physical accuracy of measurements, a fit outcome or past shared copies. The calculation engine, local records and sharing choices are unchanged. All public tools remain free, with no new dependency, storage, upload, tracking, vendor or paid service.
v0.23.1
Keep a storage read error separate from an empty fit workspace
Saved fits no longer treats a failed local read as an empty device. It shows an explicit error and manual retry; the first-fit prompt appears only after a successful empty read.
Initial load and manual refresh use a completed, session-only readonly snapshot with a 10-second UI deadline. A failed refresh preserves the last successfully read list and counts, labels them as an older snapshot and pauses its fit actions. Repeated clicks during a read are ignored, and late results after timeout or leaving the screen cannot replace the view.
A successful manual read restores the workspace and moves keyboard focus to its queue. This is not continuous monitoring, a native database timeout guarantee, a repair of old data or a change to saving and deletion. No new dependency, storage, upload, tracking, vendor or paid service was added, and all public tools remain free.
v0.23.0
Try a workshop hand-off on a blank paper worksheet
Bike businesses can download a free three-page A4 measurement worksheet without creating a saved bike or copying fictional dimensions. The page previews every field and the PDF has blank writing spaces rather than an editable form.
The worksheet carries named measurement references, millimetres or degrees, the same coordinate directions as setup cards, explicit Not measured choices and space for procedure and hand-off notes. It supplies no targets, fit verdict, compatibility approval or confirmation of installation.
Complete and retain the sheet in your own workflow, not on this page or in a business inquiry. Downloads and printouts may be retained or synced outside OpenBikeFit. The business offer, scope planner and fictional examples link to the sheet; custom branding still requires a separate agreement. No new product dependency, storage, upload, tracking, vendor or paid service was added, and all public tools remain free.
v0.22.3
Keep post-ride reminders safe across stale views
Scheduling, ride progress and dismissal now compare the current saved bike, source workflow and reminder inside the same local transaction as the write. Changed or removed records stop the action, and competing saves from this queue cannot create a second active reminder for the same source.
Conflicts refresh the queue and require a fresh choice instead of overwriting newer progress or reviving a dismissed reminder. Storage errors keep the view for manual retry; controls are locked during saves. A confirmed save remains confirmed if its later refresh fails, with another action blocked until manual refresh.
Leaving the screen requests cancellation of an uncommitted save; an already committed change is not recalled. These are saved-data checks, not continuous monitoring, automatic notifications or a physical re-check. Existing history is not repaired. Timing gates, storage format and free public tools are unchanged, with no new dependency, upload, tracking, vendor or paid service.
v0.22.2
Patch the dependencies behind the public toolkit
Updated the existing Next.js, image-processing and source-map dependencies to patched versions after newly published security advisories. This is a preventive dependency update, not evidence that the static site was compromised.
The static deployment, calculation tools, local records, exports and sharing choices are unchanged. All public tools remain free; no new dependency, upload, tracking, vendor or paid service was added.
This update does not claim that every development dependency is free of advisories. Separate build-time CSS warnings remain under review; the existing CSS toolchain was not forcibly migrated to a new major version.
v0.22.1
Confirm saved bike data before a setup-card hand-off
Setup-card Print, CSV and profile JSON actions now re-read the saved profile from a completed, profile-only local transaction. Changed or removed data stops the action and clears the old card, requiring a fresh selection rather than silently exporting an outdated record.
An unavailable or stalled read preserves the card for manual retry without starting a document action. Controls are locked while checking, repeat clicks during that check are ignored, and a result arriving after timeout or leaving the screen cannot start a late export. Download errors keep the card and show a focused message; download started is not a guarantee that a file was saved.
These are saved-data checks at action time, not continuous monitoring or inspection of a physical bike. Existing downloaded or printed copies cannot be recalled. The card still excludes journal history; storage format, public pricing and the calculation tools are unchanged, with no new dependency, upload, tracking, vendor or paid service.
v0.22.0
Review what you share in a calculator result link
Calculator results now offer a local link review instead of a silent automatic clipboard attempt. Links include current inputs only by default; previous inputs for comparison require a separate choice. The review describes the body measurements, preferences and entered component settings carried by the link.
Inspect labelled input values, select the reviewed link for your own copy command or download a plain-text link, input inventory and boundaries. Failed downloads keep the review for manual retry. Closing returns focus to the review button; changing the calculation closes an outdated review and resets the comparison choice.
Links use the canonical result address and the existing validated fragment format, without query parameters, record IDs or retired symptom fields. Opening one recalculates rather than restoring a frozen report. Browser history and external copies may be synced. No automatic clipboard access, sending, new storage, tracking, dependency, vendor or paid service was added; all public tools remain free.
v0.21.0
Find the right tool without scrolling the whole workbench
The tools workbench now has an optional local finder for parts and tasks, with a workflow filter, plain-language examples and direct links to matching tools. Search terms and the selected workflow are combined; results keep catalogue order rather than inventing a fit recommendation.
No-match feedback explains how to try again. Reset clears both controls and returns focus to search; example searches deliberately start across all workflows. The original complete catalogue, category links and tool descriptions remain available, including without JavaScript.
Queries stay in page memory and are not put in a URL, stored, submitted or tracked by the finder. This is task discovery, not symptom triage or a diagnosis. Existing tool gates and safety checks are unchanged. All public tools remain free, with no new dependency, vendor, upload or paid service.
v0.20.0
Take a complete workshop brief into your own email
The business inquiry now offers a separate local email review with the current business details, reply address, allowlisted channel and only the workshop scope you explicitly attached. It uses the same business-only validation as the form; reviewing it does not submit the form or create an OpenBikeFit reference.
Select the reviewed text to use your device’s copy command, or download a plain-text brief, then send it yourself from your mail app. The mail link has a fixed recipient and subject without draft or contact data in its URL. Failed downloads keep the brief for manual retry, and editing the form or attachment closes an outdated review.
An unconfirmed form attempt is described as possibly already stored, not a failed delivery. The email is a separate contact. Reviews stay in page memory only; external clipboard, download and mail copies are under your control and are not cleared by closing the review. No automatic email, clipboard access, tracking, upload, new vendor, dependency or paid service was added. All public tools remain free.
v0.19.1
Keep bike measurements and their history together on write failure
The shared local bike-profile and journal write now explicitly aborts its two-store transaction if either write throws or rejects. A synchronous history-write error can no longer leave a changed or newly created profile without its matching history entry.
Success waits for the transaction commit, not just individual requests. Failure observes all queued requests and the transaction outcome before returning the original error, so callers can offer a deliberate manual retry without a false successful save.
This fixes local persistence only; it does not validate a physical bike, prevent concurrent stale edits or repair records affected before this release. Storage format and existing workflows are unchanged. All public tools remain free, with no new dependency, upload, tracking, vendor or paid service.
v0.19.0
Keep archive review responsive and cancellable
Complete-archive reading, JSON validation and video decoding now run in a dedicated local browser worker rather than blocking the page. Cancel reading and leaving Settings stop the review worker. A 30-second deadline covers the whole review, including startup and decoding, and a late result cannot complete a cancelled attempt or its manual retry.
Worker startup, read, validation and return failures show an explicit error without saving records or falling back to blocking the page. A completed review still requires your separate confirmation before the existing all-six-store, add-only restore transaction. Browser preferences, consent and unfinished drafts remain excluded.
The 64 MB archive limit, video limits, collision and cross-link checks are unchanged. Large files still need device memory and cannot be guaranteed on every browser; keep the original archive. All public tools remain free. No new dependency, upload, tracking, vendor or paid service was added.
v0.18.0
Re-check saved work before handing it to a mechanic
Generating, printing and downloading a mechanic work order each re-read the local bike profile and journal together. If the selected saved work or profile changed, the action stops, the refreshed tasks require a new selection, and no replacement plan is silently handed off. A failed or stalled read keeps the existing review for explicit manual retry instead of claiming confirmation.
Component-replacement hand-offs now use the source workflow's frozen-plan integrity and current-component checks. A changed profile, different current component or altered frozen candidate blocks the hand-off. The public fictional example can demonstrate a source changing after selection or generation without accessing local bike records.
These are saved-record checks at action time, not continuous monitoring or a physical-bike inspection. Already downloaded or printed copies cannot be revoked, and later changes remain possible. No installation is marked complete; all public tools remain free, with no new dependency, upload, tracking or vendor.
v0.17.1
Make publishing failures safe to diagnose
The publishing workflow now identifies release checks, sitemap selection, page preflight and submission separately. A failure before POST explicitly says no IndexNow submission was started; a failure after submission starts keeps the outcome unconfirmed and warns against retrying an uncertain POST automatically.
Network diagnostics include the request method and a safe address without credentials, query strings or fragments. Raw response text, request payloads and arbitrary transport-error details are not copied into publishing logs. Failed page-check batches settle their bounded requests before stopping the workflow.
Exact production version/commit checks, request deadlines, canonical URL validation and one submission attempt remain enforced. IndexNow acceptance is not proof of Google indexing or traffic. Public tools, local records, workshop forms and the free stack are unchanged.
v0.17.0
Keep competing plans out of a mechanic hand-off
Mechanic work orders now check the complete selected group, not only each task separately. Overlapping coordinates, ambiguous duplicate task IDs and different component identities block generation. Left/right hood and cleat scopes, stem/spacer measurement effects and declared component-replacement impacts are included; independent tasks can still share a document.
Conflicts appear before generation with the competing plan summaries. No plan is silently chosen, combined or sequenced; review the source workflows or select one plan. This is a saved-planning check, not proof of mechanical compatibility, current measurements, installation or fit outcome.
The existing public workshop example now includes a fictional mechanic-work-order selector using the same checks and renderer. Inspect a conflict, resolve the selection and print or download a clearly marked sample without reading or writing local bike records. Work-order download failures preserve the document for manual retry; Download started does not guarantee that a file was saved.
All public tools remain free. No new dependency, account, upload, tracking or paid service was added.
v0.16.0
Cancel local archive recovery with a confirmed outcome
Settings now lets you cancel archive recovery while local saving is still pending. The same cancellation signal reaches storage when you leave the recovery screen; an archive cancelled before storage opens cannot start a late write.
Saving has a 30-second deadline. All six collections still use one add-only transaction, and cancellation waits for the database to confirm rollback before saying that no archive records were saved. The reviewed archive stays available for a fresh, explicit retry; no automatic retry or upload was added.
If a commit wins the cancellation race, recovery is reported as completed, not undone. If the browser cannot confirm the outcome, a warning asks you to keep the original file and reload to check the inventory, and blocks another recovery attempt in that screen. The 64 MB review limit and free public tools are unchanged.
v0.15.1
Keep restored records from attaching to unrelated local data
Before adding an archive to a device that already has records, OpenBikeFit checks known links in both directions: an archived fit or bike-history link must not attach to a separate record already on the device, and an existing orphaned link must not attach to a new archive record. Either conflict cancels the complete import before writing anything.
This helps keep bike histories separate and prevents a saved fit from pointing at another record's pose or video data. Archives with self-contained links, and orphaned links that remain unconnected on this device, still use the existing add-only recovery path.
The empty-device recovery path, 64 MB archive limit, local-only handling and free public tools are unchanged. Keep the original archive and use a separate empty browser or device when a link conflict cannot be resolved safely.
v0.15.0
Add saved records to a device without replacing its records
Settings can now add a reviewed complete archive or records-only recovery copy to a device that already contains saved records. The existing empty-device recovery path remains available.
The six local database collections are written in one transaction using add-only keys. If an archive ID or key already exists, or a write fails, the whole import is cancelled and existing records are not replaced. Export the current device first; this is not record deduplication, cloud sync or a way to combine colliding copies.
The 64 MB file limit and explicit review remain. Browser preferences, consent and unfinished drafts are not imported; a records-only copy still omits raw videos. All public tools remain free.
v0.14.2
Show a business inquiry as received only with its receipt
Business inquiries sent from the current form now show a received confirmation only when the server returns a valid submission reference. A generic success without a reference is treated as unconfirmed, keeping the draft and allowing a manual retry or direct email instead of falsely claiming the brief was stored.
The existing anti-spam trap, server storage, manual retry identity and free public tools are unchanged. This does not add automatic email notifications or prove that an inquiry has been reviewed.
v0.14.1
Refresh the optional offline pose runtime safely
The optional offline mode now reuses pose-model and WASM files only from a cache bound to their exact seven-file fingerprint. After a runtime update it downloads fresh same-origin files on the first camera use, bypassing an older browser HTTP cache; later uses can stay fast and offline.
If optional browser caching runs out of space or fails, a successful online page or asset response is still used. An offline fallback is available only when this device already holds the current files; after an update, open the camera online before relying on it offline.
Protected workflows and measurement-bearing URLs remain outside the offline cache. No account, vendor, upload or paid gate was added; all public tools remain free.
v0.14.0
Keep saved records recoverable when videos are too large
Settings now offers a separate recovery copy of saved fits, reduced pose series, bike profiles, history and metadata without raw videos. It is checked against the existing 64 MB local restore limit before a download starts.
The copy removes video playback links only from its exported session records; it does not change records on the device. Review and restore still require an empty local database and an explicit action. The review shows how many raw videos were left out.
The original complete export remains available to keep those videos. The records-only file excludes browser preferences, consent and drafts; neither file is cloud sync or a guarantee against browser storage failure. All public tools remain free.
v0.13.0
Connect the free calculator to workshop workflows
Bike-shop and fitter visitors now have an optional, contextual path from both the free calculator and its result to a fictional workshop hand-off and the existing workshop-pilot inquiry. The calculator and all public tools remain free; custom work is discussed and quoted separately.
These links carry only fixed calculator or calculator-result source labels. Body measurements, result links and local bike records are not copied into the business form. A label is stored only if someone explicitly sends an inquiry; there is no new page-view tracking, vendor or paid gate.
v0.12.3
Recover a business-inquiry receipt after a lost response
An unchanged manual retry now checks for its already stored feedback or business inquiry before taking a new rate-limit slot. When that stored record is visible, its reference remains available even if all new-inquiry slots for the current minute are full.
A visible retry does not rewrite the record or renew its retention period. New or edited inquiries still use the existing approximate rate limit; an unreadable record returns an error rather than a false confirmation. This is not an exactly-once delivery guarantee, and all public tools remain free.
v0.12.2
Make landing-page step labels easier to read
Raised the contrast of the large numbered steps on the homepage and business page while keeping their visual hierarchy. This addresses the low-contrast elements identified in a mobile accessibility audit; it is not a claim of complete WCAG or screen-reader certification.
The public toolkit, business inquiry flow and privacy boundaries are unchanged. All public tools remain free.
v0.12.1
Refresh security-patched build dependencies
Updated Next.js and image-processing dependencies to versions that address published security advisories. OpenBikeFit still publishes static pages on Cloudflare Pages; this update is preventive and does not claim a confirmed compromise or exploit of the live site.
Updated the test runner and transitive browser-target packages. The installed dependency tree reports no known npm audit advisories after the update; public tools remain free with no new account, vendor or tracking.
v0.12.0
Enter body measurements in centimetres or inches
The full bike-fit calculator and focused saddle-height calculator now accept height, inseam and optional shoulder width in centimetres or inches. The choice uses the existing on-device unit preference; changing units does not upload measurements or add a new account or vendor.
Calculator links and formulas keep their validated metric values. Editing an existing result without changing a body measurement preserves its exact original value rather than creating a false comparison from display rounding. Validation messages use the selected input unit.
Results show body lengths in both systems. Crank, saddle and other bike dimensions and adjustment steps remain explicitly in millimetres; all public tools remain free.
v0.11.3
Preview an analysis before choosing the fit tool
First-time visitors at an interactive tool can open the public fictional bike-fit analysis example directly from the adult/on-device consent dialog. The example needs no camera, measurements, account or acceptance.
The dialog now says it appears before using an interactive tool, not only before a saved calculation. Consent remains required before the calculator, camera and saved workspace; no data, tracking, vendor or paid gate was added.
v0.11.2
Keep corrected inquiries deliverable
Rejected form attempts no longer consume one of the five approximate inquiry slots for the current minute. Someone can correct an empty message, invalid address or malformed submission and still send a valid business or Help inquiry.
Valid new submissions remain subject to the existing best-effort rate limit and storage error handling. The 12,000-byte request cap now also has an eight-second read deadline; a stalled send returns an error without claiming delivery. No account, tracking, new vendor or paid gate was added, and all public tools remain free.
v0.11.1
Wait for a stable production release
The publishing check now requires the exact production version and commit on three checks spaced apart before submitting updated public URLs to IndexNow. This reduces failed notifications while a new release is still propagating across Cloudflare locations.
A changed or unavailable response resets the check, and the deadline still fails closed before any submission. The workflow still makes at most one IndexNow POST per run and never automatically retries an uncertain POST. This is not a claim of Google indexing or improved traffic; public tools remain free.
v0.11.0
See an analysis before recording
A new public bike-fit analysis example walks through a clearly synthetic side-view sequence, input-quality gate, independent repeat and controlled re-check. Reading it needs no camera, account, consent to the fit tool or saved measurements.
The tools hub and evidence page now link to the example. The evidence page title is clearer about its sources-and-limitations role, while the separate example answers what an analysis looks like. The interactive demo still requires its existing adult/on-device consent before creating a local session.
This is a search-intent and product-orientation experiment, not proof of improved Google ranking or conversion. No new vendor, tracking, upload or paid gate was added; all public tools remain free.
v0.10.3
Keep rapid inquiries deliverable
Help and business submissions now use separate, short-lived admission slots instead of repeatedly writing one Cloudflare KV rate-counter key. This avoids the one-write-per-key-per-second failure for ordinary rapid submissions from the same address.
The five-per-minute check remains best effort because KV is eventually consistent across locations; it is not a strict atomic quota. Storage failures still return an error without claiming delivery. No new vendor, account, paid gate or tracking was added; all public tools remain free.
v0.10.2
Keep calculator bike settings through a reload
The two current bike settings you explicitly pass from the calculator to My bikes can now be recovered after an accidental reload within the original 30-minute window. Reading the draft no longer consumes it or extends its expiry.
A successful bike save, cancellation or starting a different bike form removes that temporary handoff. Other unsaved bike-form edits, calculated targets and body measurements are not stored in it. English and Polish storage/privacy notices describe the new lifecycle; all public tools remain free.
v0.10.1
Keep inquiry text out of listing metadata
Help and business inquiries no longer copy the first 80 characters of a message into the KV listing metadata. The message remains in the saved inquiry itself, while metadata keeps only routing fields such as category, time, source and reference.
Submission confirmation, manual retry and retention are unchanged. This change applies to new records; it does not rewrite earlier submissions. All public tools remain free.
v0.10.0
Recover saved local records from a complete export
Settings can now review a complete OpenBikeFit JSON archive and restore its six saved-record collections, including optional videos, into an empty local database. Choosing a file never writes records; you must review the counts and explicitly start recovery.
Recovery refuses to merge with or replace any existing saved record. A failed database write cancels the entire six-store transaction; unsupported or inconsistent archives are rejected before writing.
The local recovery limit is 64 MB per archive. Browser preferences, consent receipts and unfinished drafts are deliberately not restored; the original private export should be kept securely. No account, upload, new vendor or paid gate was added, and all public tools remain free.
v0.9.0
Carry your recorded bike setup from the calculator
From a calculator result, you can review the current saddle height and crank length you entered as a draft in My bikes. The calculated targets and body measurements are never copied into the bike profile.
The draft stays in this tab's temporary storage for up to 30 minutes and is consumed once. My bikes asks for a bike name and physical reference points; nothing is saved until you choose Save.
If temporary storage is blocked or the draft expires, the page explains the problem and keeps manual bike entry available. Existing profiles are never overwritten; all public tools remain free, with no upload, vendor or tracking added.
English and Polish device-storage notices now describe this optional same-tab draft, its limited contents and 30-minute usability window.
v0.8.0
A direct business contact path alongside the pilot form
The bike-business page now offers the existing Balance IT email as a clear alternative to the online pilot form. Opening the link uses your mail app; it does not send a form submission or create an OpenBikeFit reference.
The form confirmation now says that stored inquiries await manual review and do not trigger an automatic email alert. It also gives a direct follow-up route without resending the brief.
English and Polish privacy notices distinguish the 180-day Cloudflare KV form record from copies in email accounts. The operator procedure keeps message review human-only because the current KV dashboard exposes full values; public tools remain free, with no new tracking or vendor.
v0.7.2
Record where OpenBikeFit visuals came from
The visual-asset register now records an owner-attested AI-assisted creation and usage-rights statement for the exact current image and icon files, rather than leaving their source unknown.
Regenerating the register preserves reviewed fields only while a file's path, hash and size stay unchanged. New or modified visuals do not inherit an earlier attestation.
This does not certify model terms, likenesses, visible marks or final legal approval. Those reviews remain on hold; public tools are unchanged and free.
v0.7.1
Show the limits of the studies behind calculator results
The free calculator now identifies the 11 well-trained male cyclists behind the cited 73% saddle-height finding, instead of presenting that result as a rate for all riders.
The saddle-height explanation now includes the study in its displayed citations. The crank-length summary also names the 16-person maximal-power study and avoids treating its result as a universal prescription.
These wording changes do not alter the calculated ranges or add data collection. They are not a medical or legal approval of the product; public tools remain free.
v0.7.0
Plan a workshop pilot before sharing contact details
The business page now has a free workshop scope planner. Choose a hand-off and custom support to review the existing free tool, possible deliverables, a proposed acceptance check and what is not included.
Download a plain-text discussion draft without entering contact details, or explicitly attach a separate scope summary to an inquiry. Your own message is preserved; changing service removes an incompatible attachment.
Planning and downloading send no inquiry and store no browser draft. Only Send a pilot brief submits an attached scope with the form; existing confirmation references and manual-retry safeguards remain in place.
A scope draft is not a quotation, booking or compatibility approval. Public tools remain free; custom work, pricing and responsibilities still require a separate written agreement.
v0.6.0
Review and choose the bikes you import
Bike-profile files now open a review in My bikes and Settings. Check names, recorded coordinates and reference points, choose the bikes you want, or cancel without saving anything.
Only an explicit Import action saves the selection as new local copies. Current IDs are checked and copies added in one transaction; existing bikes are never replaced, and a failed batch is aborted.
File reading has a 15-second deadline and a cancel action. Invalid files, duplicate source IDs and files over 1 MB are rejected; failed saves retain the review for a manual retry.
Bike-profile downloads use the shared download helper and ask you to check the browser's downloads. Complete local exports still cannot be restored: profile imports do not include fits, history or videos. Public tools remain free, with no new upload or tracking.
v0.5.0
Keep a reference for your inquiry
Business inquiries and Help feedback now show a submission reference after the server acknowledges storage. Keep it when contacting us; it is not an account, tracking identifier or a link to the message.
If delivery is unconfirmed, manually retrying the unchanged message in the same open form reuses the attempt. The server uses a content-bound storage key so repeated identical attempts target the same inbox record, including after delayed storage reads.
Changing the message, closing the form or starting another inquiry creates a new attempt. Nothing is automatically resent, and drafts or retry identifiers are not saved in browser storage.
Help confirmations stay open until you close them. English and Polish privacy notices explain the delivery metadata and its retention; public tools remain free.
v0.4.2
Export saved records without silent omissions
Complete export reads all six local database stores in one transaction, keeping linked records and video keys together. Preferences and workflow drafts are captured separately, with these limits recorded in the file.
Unconfirmed session changes block complete export until saving succeeds. Failed storage or video reads stop the export instead of silently leaving data out; saved videos are encoded one at a time with a bounded read deadline.
Settings distinguishes unreadable storage from an empty database and offers an inventory retry. Export progress ends with Download started, not a claim that the browser has saved the file.
The complete JSON is explicitly labelled a readable private export, not an importable backup. Public tools stay free, and no new upload, tracking or storage destination was added.
v0.4.1
Recover session records when local storage fails
A visible storage warning keeps unconfirmed session changes in tab memory, with an explicit retry and a private JSON rescue copy. The copy excludes videos and pose files and is not an importable backup.
Session writes run in order so older edits cannot finish after newer ones. Pending records survive navigation within the site, and closing or reloading the tab triggers a browser warning where supported.
Failed or interrupted local-database connections can reopen on retry. Opening storage has a 15-second limit; no saved data is cleared to recover it.
Clearing local data also clears pending in-memory records after successful database deletion and prevents late work from the old session recreating them.
v0.4.0
Inspect a workshop hand-off before requesting custom work
The business offer now includes a free fictional setup-card example using the same document renderer and CSV columns as the public tool. No bike profile, client data or account is needed to inspect it.
Switch to an incomplete example to see how missing optional dimensions remain explicitly unrecorded while required measurement references stay visible. The example never calculates replacements or recommends its sample dimensions.
Print the marked example or download its CSV and explicitly labelled example JSON. It does not read or write your local bike profiles; example JSON is not a bike-profile import bundle.
A contextual link preselects Branded hand-off pack in the business inquiry without copying measurements into the form. Every public tool remains free; custom work still requires a separate agreed scope.
v0.3.1
Verified publishing and search discovery
Search-engine notifications now wait for the exact release to appear on the live site instead of assuming a deployment has finished after a fixed delay.
Each submitted URL is checked first. Missing, redirected or unavailable pages stop the notification, and network waits have explicit deadlines.
Build checks reject unsupported Node versions and detect Cloudflare configuration drift. Preview and production use the same repository-pinned build version.
All public tools remain free. This release changes publishing checks, not calculation formulas, tracking or search-ranking guarantees.
v0.3.0
Edit, recalculate and compare
Edit inputs & compare restores your measurements, riding choices and current setup from the result you are viewing. You no longer have to start with empty fields.
Recalculating shows changed inputs and a side-by-side comparison of changed estimates, including their ranges. These are calculated scenarios, not measured improvements or proof that one fit is better.
All optional measurements are checked before calculation. Incorrect or unsupported values are explained instead of silently ignored; blank optional fields remain optional. Decimal commas and decimal points are accepted.
Comparison links keep only one previous calculation in the URL fragment. Copy result link includes both sets of inputs, and the existing last-result shortcut can reopen the comparison on this device. Share measurement links only if intended.
The calculation formulas and public-tool pricing have not changed: every public tool remains free, with no account, new tracking or upload required.
v0.2.1
Clearer business inquiry validation
Business inquiries now explain missing or invalid fields next to the relevant control and focus the first field that needs attention. The message length requirement is visible before you submit.
Fields are locked while an inquiry is being sent, so a delayed response cannot discard edits made during that attempt. Leaving the form cancels the browser's pending request, but cannot recall an inquiry the server already received.
Unconfirmed delivery still preserves the message while you stay on the page. Drafts are not saved in browser storage, and no automatic retry or new tracking was added.
v0.2.0
Visible versions and a public update history
Every page now shows its release version in the footer, linked to this update history.
Each version has a date and a plain-language list of changes. Public version numbering starts here; earlier changes below are not assigned invented version numbers.
Release checks keep the displayed version, package version and update notes in sync. The release workflow also checks that a new push increases the version.
Before public versioning
Earlier verified updates
A summary of recent changes shipped before version numbers appeared on the site, not a complete history of the product.
Workshop hand-offs, camera guidance and reliable inquiries
Setup cards and mechanic work orders gained optional links to custom workshop implementation. The matching service is selected in the inquiry form; the public tools remain free.
The business page now links directly to setup cards, work orders, frame comparison and the camera-free demo.
Camera preview and final analysis now use the same side-view check. Rejected recordings explain the individual checks instead of suggesting that users must reach a 100% score.
Camera views preserve the full frame, including landscape laptop cameras. The side-view check remains an estimate, not a measurement of the camera angle.
Feedback and business inquiries have a 15-second delivery deadline and require explicit server confirmation. An unconfirmed attempt keeps the entered message available for manual retry; there is no automatic resend.
The feedback endpoint rejects malformed input and bounds the request body by its actual byte size.
Something still not working? Use the Help button and mention your version and the page involved. Do not include client records or health information. You can also return to the free tools or review our methodology and limitations.