Skip to content
TuneView

Release Log

Changelog

What shipped, what broke, what got fixed. Written for the person looking at their log, not the press release.

v2.8.4Sep 8, 2026

Contact support works again, the chat window can be dragged out of your way, and Jake looks the same on the site and in the app.

What you'll notice

Contact support requests go through again

Product

Asking Jake for a person failed with an error every time you pressed Submit Request. The tables that hold support requests had never been created in the production database, so nothing could be saved. They exist now, and requests are saved and emailed to the team the moment you send them. If you tried to reach us and got the error, please send it again.

Honest wording after you send a request

Product

The confirmation used to say your request was awaiting a support agent, which made it look like someone was about to answer in the chat window. It now tells you the truth: a person reads the request and replies by email to the address on your account, and nothing more will appear in the chat.

Move the chat window wherever you want it

Product

The chat window can be dragged by its header, so it no longer sits on top of the footer links. It remembers where you left it, stays inside the screen when you resize the window, and moves with the arrow keys if you would rather not use a mouse. Double-click the header, or press Enter while it is selected, to put it back in the corner.

One look for Jake everywhere

Product

The chat window in the app now matches the one on the website: the same header, colors, text sizes, buttons, and message styling. The footer also leaves room for the support button so the Changelog link stays clickable.

Behind the scenes

Support tables created and recorded

Infrastructure

The support conversation, message, and request tables were added to the production database with row-level security and owner-only policies, and the migration was written into the migration ledger. Every other migration in the repository was checked against the ledger; none were missing.

Support requests fail loudly instead of silently

Infrastructure

When the database is unreachable, the support request endpoint now returns a clean service-unavailable response instead of an unhandled server error, so a request can never look like it succeeded when nothing was saved.

v2.8.3Sep 7, 2026

Fixed a deployment issue that was rejecting .hpl uploads, and Jake now watches for system errors automatically.

What you'll notice

.hpl uploads working again

Product

Some .hpl uploads were rejected over the past 24 hours because the analysis worker was running an older build. This is now fixed — .hpl files are accepted and processed normally. If your upload was rejected during this window, nothing was deducted from your account and you can retry now.

Behind the scenes

Jake now sweeps for system errors

Infrastructure

Jake now monitors the TuneView alert inbox three times a day (every 8 hours). When he finds an error alert, he diagnoses the root cause, files a GitHub issue with the fix if it is a system fault, and emails affected customers directly when the issue is on our side. The first alert type he handles is Round 2 upload health, with more to follow.

Correct file type tagging for .hpl uploads

Infrastructure

The upload form was tagging .hpl files with the wrong MIME type in storage. This did not affect analysis (the worker checks the file extension, not the content type), but it is now corrected for storage accuracy.

v2.8.2Sep 6, 2026

A TuneView Support assistant is now available on every page of the site.

What you'll notice

TuneView Support assistant

Product
  • A new support assistant is available from the Support button on every page. Ask it questions about getting started, what an analysis costs, which platforms are supported, and what to do with your log file.
  • When a question needs a person, the assistant points you to a real human at [email protected] — no waiting on hold, no dead ends.
  • It answers questions about TuneView itself. For tuning guidance, the Knowledge Base remains the place to dig into calibrations, fuel, spark, and knock.
v2.8.1Sep 1, 2026

The homepage now tells a clear story from top to bottom: what TuneView is, who it's for, and how to use it.

What you'll notice

Homepage rewrite

Milestone
  • The homepage has been restructured into a clear narrative that answers the questions a first-time visitor actually has: what is TuneView, who is it for, where it works, when you need it, why it exists, and how to use it.
  • The hero now opens in plain language instead of jargon. A new problem section frames the pain of conflicting tuning advice before the solution appears. A new section explains what TuneView is, who it's for, and where it works, including supported platforms and a trust badge row.
  • A new section explains what a parser is and why it matters, so the parser-vs-AI distinction is something anyone can understand instead of developer jargon.
  • The How It Works section now includes the live scan animation showing the parser reading 19 channels in real time, plus a revision loop diagram.
  • The pricing section now shows a no-expiration callout, a value comparison, and a safety net panel explaining what happens if your log is corrupted or your platform isn't supported.

Voice and consistency updates

Product
  • All marketing copy across the homepage, pricing page, FAQ, and about page has been rewritten in plain language. Technical jargon now lives in the FAQ where visitors can go deeper on their own terms.
  • The navbar and footer labels have been updated to match the new section names.
v2.8.0Sep 1, 2026

Upload .hpl logs directly — no CSV export needed. Plus AI revision steps for all paying customers.

What you'll notice

Direct .hpl upload

Milestone
  • Upload your VCM Scanner .hpl log files directly — no more exporting to CSV first.
  • TuneView now reads the binary .hpl format natively, decoding every channel your scanner logged with zero data loss.
  • Works for both the initial upload and Round 2 follow-up files. If you've been exporting CSV just to upload, you can skip that step.

AI-powered revision steps

AI

Every paying customer now receives AI-enhanced revision steps alongside the parser-based analysis. The AI pass cross-references your log against the calibration knowledge base and adds context the parser alone can't — fueling patterns, torque delivery diagnostics, and cross-module correlations.

Round 2 engine identification fix

Product

Round 2 follow-up analyses now correctly identify your engine family from the intake assessment, so the knowledge base lookup pulls the right calibration data instead of falling back to a generic profile.

Email notifications

Product
  • New accounts now receive a welcome email with a direct link to get started.
  • Round 2 analyses send a completion email with a link to the updated report.

Rich link previews for shared reports

Product

When you share a TuneView report link on social media or in a message, the link now shows a branded preview card with the TuneView title and description instead of a bare URL.

Behind the scenes

Pattern learning memory now persists across restarts

Infrastructure

The pattern correlation memory that helps TuneView learn from past analyses has been migrated from local storage to the cloud database, so insights accumulate across deployments instead of resetting on every service restart.

Frontend test coverage

Infrastructure

Added 25 tests covering scoring utilities, report formatting, API pagination, and component rendering to catch regressions before they ship.

v2.8.1Aug 29, 2026

Virtual VE revisions now read as smooth regions instead of scattered single cells.

What you'll notice

Smoother, more trustworthy VVE correction plans

AIProduct
  • Airflow-model corrections are now grouped into contiguous regions instead of a top-few list of the most extreme single cells, so the plan no longer reads as scattered islands.
  • Cells with few log samples are pulled toward zero before being recommended — a 6-sample +14% blip no longer outranks a 400-sample +8% region, and the sample count behind every cell is shown.
  • A single flagged cell with no flagged neighbours is now flagged as a suspected transient: the plan asks for a cleaner re-log instead of an edit.
  • Unvisited cells next to a corrected region get explicit blend values so the edited surface stays smooth; they are guidance, not exact targets, and verification treats them accordingly.
Behind the scenes

Region smoothing math + observability

Infrastructure

A deterministic post-pass adds confidence shrinkage (per-sample-count, lighter for wideband evidence), same-sign region grouping, isolated-cell demotion, and inverse-distance blend fill. Smoothing shape (edits/monitors/blends/regions per report) is telemetered to vve_smoothing_log, and blend adherence is recorded on every table verification so the blend band can be validated against real tuner pastes. Note: overall VVE error now reflects confidence-shrunk magnitudes, so trend baselines shift slightly downward from this release onward — a reporting change, not a mechanical one.

v2.8.0Aug 27, 2026

Analyses now draw on the full tuning knowledge base — 92% of it was previously unreachable by the retrieval engine.

What you'll notice

Deeper knowledge base coverage in every analysis

AIProduct

The retrieval engine could only see ~1,400 of 18,156 knowledge base entries because most entries were tagged with category labels the engine never queried. Every entry is now aligned to a canonical calibration category (idle, fueling, spark, knock, transmission, forced induction, and so on), so revision steps and findings can draw on Mopar, GM, and Ford knowledge that was sitting invisible in the database.

Behind the scenes

Category taxonomy alignment migration

Infrastructure

calibration_knowledge.category held 972 distinct values — two parallel slug taxonomies plus free-text titles. A backup-table + in-place UPDATE migration (ledgered in schema_migrations) mapped all 972 values into 23 canonical buckets. The 'general' bucket tops up sparse retrieval results instead of joining the complaint-driven filter, so broad content cannot crowd out specific categories under alphabetical ordering.

v2.7.9Aug 27, 2026
Behind the scenes

Release checks fail loudly again

Infrastructure

A release check had a stale network bypass that let real failures pass CI silently. It now fails on genuine errors and only skips when the network is truly unreachable.

v2.7.8Aug 24, 2026

Knowledge base coverage pages are tidier.

Behind the scenes

Fewer, fuller knowledge base pages

Infrastructure

Coverage pages that described the same hardware under slightly different names are now a single page, so the entry counts read true and there is one place to look instead of several.

v2.7.7Aug 24, 2026

Search engines now get a cleaner map of the site.

Behind the scenes

Cleaner search indexing

Infrastructure

Corrected how TuneView pages are listed for search engines, so each page has a single address and pages that were never meant to be public no longer appear.

v2.7.6Aug 20, 2026

The About page now documents TuneView's origin, operating principles, and founder.

What you'll notice

A fuller TuneView origin story

Product
  • The About page now explains why Ryan Lippmann built TuneView around a measured log, revision, and re-log cycle.
  • It links the founder's 416 Whipple Sierra revision-loop story and his source-backed construction project-controls case study.
  • The page also makes TuneView's evidence-first product contract easier to understand.
v2.7.5Aug 17, 2026

TuneView now offers one product: Full Tune for $69 one-time.

What you'll notice

v2.7.5 — Full Tune

Product
  • Covers one vehicle or motor.
  • Includes unlimited analyses and revision rounds.
  • Never expires.
  • The website, app, checkout, and Terms now present the same single offer.
  • Existing customer access and purchase history remain intact.
v2.8.2Sep 9, 2026

TuneView's labels and supporting detail are now easier to read across the site and app.

What you'll notice

Clearer type across TuneView

Product

We raised the minimum text size and increased supporting-text contrast across TuneView, so labels, chart details, and helpful context stay readable without losing the diagnostic layout.

v2.8.1Sep 6, 2026

Jake now sees the page you are on when you open support chat.

What you'll notice

Jake reads the room

AI
  • When you open support chat from a page, Jake now knows which page you are on, so answers line up with what is in front of you.
  • Jake also sees error messages, status notes, and form issues that are showing on the page at that moment, so he can address what you're looking at directly.
  • When the issue is somewhere else, Jake still picks it up from what you describe in your own words.
Behind the scenes

Smarter, faster assistant model

AI

Jake now runs on a faster, more economical model (Sonnet 4.6) that keeps answers accurate while cutting the cost and latency of every question.

v2.7.4Aug 16, 2026

The torque model check was rebuilt around what the ECU actually asked for and delivered, and you can now paste a Virtual Torque page for TuneView to check against your ECM.

What you'll notice

Torque model check rebuilt

Product
  • The torque model finding now compares what your ECU asked for with what it delivered — requested vs delivered torque, airmass target vs airmass estimate, torque-management interventions, and the WOT torque limit — instead of inferring a torque problem from low spark.
  • When the ECU is over- or under-delivering against its own request, the revision step names the RPM/airmass island and sends you to the airflow side first: VVE with fuel-trim evidence, then the throttle-body airflow model, then driver demand. TuneView will not tell you to scale Virtual Torque to hide a coherence gap — a log carries no true torque, only the ECU's estimate.
  • Log these channels for the check to run: Predicted Engine Torque Cmd, Delivered Engine Torque, Throttle Desired Airmass, Cylinder Airmass, Immediate Engine Torque Source, Torque Mgt Advance, Maximum Engine Torque.

Virtual Torque paste

Product
  • On the upload page you can now paste a Virtual Torque page (Copy with Axis) with its spark page and unit (Nm or lb·ft). TuneView checks the page against what your ECM reported delivering on those cells and tells you if you copied a different Table Grouping, spark page, or unit.
  • This is a check on your own table. TuneView does not derive Virtual Torque values from a log.
Behind the scenes

Exact channel matching in analysis modules

Infrastructure
  • Analysis modules now bind a log channel only on an exact channel-name match. A name TuneView does not recognize stays unbound and the module reports it as missing rather than reading a similarly named column.
  • Torque and airmass export units (lb·ft/Nm, g/mg) are read from the log's own units row, per channel.
  • Reports can no longer fail to save on a non-numeric metric value.
v2.7.3Aug 14, 2026
What you'll notice

About page

Product

Added a short About page with company and founder information.

v2.7.2Aug 11, 2026

This change was massive and corrected many checkout issues that were hidden on our end—not the processor. We've spent the last two days diagnosing, deploying, testing, and revising to build a system that now passes thousands of checks. Apologies to those of you who tried to check out and were met with errors, silence, or failed processing. We see every one of you and will be reaching out shortly. Rest assured: abandoned checkouts failed securely for you—no money left your account.

What you'll notice

Payments, refunds, and access now stay together

Product
  • TuneView grants access only after Stripe confirms payment. Delayed or failed payments do not unlock a tune, and repeated notifications cannot create duplicate purchases or credits.
  • Checkout recovery now clearly tells customers when a payment is still processing and prevents them from paying again unnecessarily.
Behind the scenes

Production billing audit and monitoring

SecurityInfrastructure
  • A protected read-only production audit now checks the Stripe catalog, webhook configuration, payment ledger, refunds, claims, and entitlements for drift.
v2.7.1Aug 11, 2026
What you'll notice

One-time purchases and legacy access are labeled honestly

Product
  • Accounts with no purchase now say "No tune purchased" instead of presenting a Free plan. Grandfathered products and active retired subscriptions remain visible with Legacy labels rather than being mistaken for something TuneView still sells.
v2.6.1Aug 7, 2026

Clearer homepage wording, and it no longer assumes you drive a truck.

What you'll notice

Plain-language homepage copy

Product

The headline now says what you actually get back from a datalog. The free way in reads "add your vehicle" rather than "add your truck" -- TuneView covers Camaro, Corvette, CT5-V and other Gen V platforms, not only Silverado and Sierra.

v2.5.2Aug 6, 2026

The homepage now explains what you upload and what TuneView returns.

What you'll notice

A clearer path from datalog to revisions

Product

The homepage now explains that you upload an HP Tuners CSV datalog and receive a tune-health summary, recommended revisions, and a downloadable detailed report in minutes.

v2.5.1Aug 1, 2026

You can add your truck and look around before you pay.

What you'll notice

Add your truck first, free

Product

Adding a vehicle has always been free, and analysis is what you pay for. Now the site says so: you can make an account, add your truck and look around before spending anything. No card needed to get in.

Behind the scenes

Report delivery for full-tune purchases

Infrastructure

Fixed a fault that could stop a completed analysis from being saved on a full-tune purchase. Affected uploads can simply be re-run; nothing was charged twice and no purchase was lost.

v2.5.0Jul 31, 2026

Knock analysis can now tell you WHICH cylinder knocked, not just how much - when your log carries the per-cylinder channels.

What you'll notice

Per-cylinder knock: one bad hole no longer reads as a bad tune

Product
  • Aggregate knock retard tells you the engine knocked. It cannot tell you whether it was the whole engine, and those two problems have opposite fixes. Eleven degrees on one cylinder while the other seven sit at zero is an injector, a plug, a coil, or coolant flow to one hole. Pulling timing across the whole table gives up power on seven healthy cylinders and leaves the actual fault in place.
  • If your log carries the per-cylinder knock channels, reports now call out a cylinder standing clear of its siblings and tell you to swap the plug and coil with a quiet cylinder before touching the spark table. If the knock follows the parts it is ignition; if it stays put, look at that injector.
  • A cylinder is only flagged when it clears the noise floor, persists across multiple events, and sits well above the MEDIAN of the others. Real engines scatter, and calling normal scatter a fault would be worse than saying nothing.

New guide: how to log knock per cylinder

Product

Only 14% of the logs we have seen carry these channels - they are simply not in the default VCM Scanner list. Adding them costs nothing and is the difference between "the engine knocked" and "cylinder 7 knocked and the other seven did not". The guide covers which PIDs to add and what the two patterns look like side by side.

Behind the scenes

Validated against real logs before release

Infrastructure

Measured across 470 real logs first: 83% carry only the aggregate channel, 14% carry both, and none carry per-cylinder alone. Reports for that 83% are byte-identical to before. Of the 67 logs rich enough to test, 23 flagged an isolated cylinder and the rest stayed quiet.

v2.4.0Jul 30, 2026

New pricing: a full tune is a one-time purchase that covers one motor for as many revision rounds as it takes, with no time limit and no subscription.

What you'll notice

One full tune, unlimited rounds

MilestoneProduct
  • There is no time limit either. Leave, do more engine work over a winter, come back, and the same tune still covers that motor. The entitlement is tied to the vehicle in your garage rather than to a VIN or an ECU serial, so a rebuild, a cam swap or a whole engine change costs you nothing.
  • Adding a vehicle is free. You can add cars and browse the app without buying anything; the purchase is only needed when you run an analysis. The first car you analyse claims your tune and keeps it, so you choose which motor is the paid one simply by using it.
Behind the scenes

Every buy link on the site checked against the live page

Infrastructure

The first pass searched the source for old prices and plan names, which missed files carrying only a checkout link -- including the homepage and navbar buttons. Caught by re-checking the published page rather than the code, and corrected.

Purchase and analysis paths rebuilt around the new model

Infrastructure

The entitlement, checkout and upload paths were reworked end to end, and the storefront now offers only what can actually be bought. Several defects were caught before release, including report access that would have failed closed for new buyers.

v2.3.5Jul 30, 2026

Fixed a channel binding that was reporting a sensor fault on intake air temperature when it was actually reading metal valve temperature, and cleared the false warning from every stored report that carried it.

What you'll notice

62 stored reports cleared of a false sensor fault

Product
  • The sensor-health check was binding the wrong physical channel to the intake-air-temperature slot. 'Intake Valve Temp' — the temperature of a metal valve — was being read as intake air temperature, so it was flagged as implausibly hot and marked actionable. Across every stored report, 62 cases carried that warning. The split was 60 founder-archive cases and 2 customer follow-up cases across 2 users. Those reports have been regraded: the warning has been downgraded to an informational note and the actionable flag removed.
  • A related binding was also corrected: 'Engine Oil Temp' had been read as coolant temperature on some logs. The parser-level fix is already live, so new reports use the correct channels.
Behind the scenes

Multiple upgrades to the calibration and mechanics of sensor readings, values and column assignments in the parser

Infrastructure

Stricter definitions and application rules were applied. Some existing user records were affected minimally. The majority were founder cases.

v2.3.4Jul 30, 2026

Fuel-trim numbers now come only from the moments your ECU was actually correcting fuel, wideband and temperature readings are converted using each log's own declared units, and every stored grade was re-checked under those rules.

What you'll notice

All 250 historical cases regraded; none changed grade

Product
  • Fuel-trim averages now include closed-loop samples only — the moments the ECU was actually correcting fuel. Deceleration fuel-cut and open-loop stretches no longer drag the averages toward numbers no one could act on: across the archive, 70 of 580 bank averages moved by at least a point, and the worst case went from −30.1% to −0.9%. That one is worth stating plainly, because −30.1% would have read as a serious fuel-system fault when the engine was simply coasting.
  • Wideband oxygen sensors logged on an air-fuel display scale are now converted using the constant measured from that log's own steady cruise instead of an assumed one, and a log that cannot prove its scale is skipped with a declaration rather than guessed at. Temperature channels are read from the unit row the scanner writes into the file and cross-checked against physics, so a Celsius export is treated as Celsius.
  • Every one of the 250 stored grades was re-decided under these rules and not one letter changed — the fixes alter the numbers inside reports and the round-over-round verdicts that read them, not the grading decisions. 169 reports had their calibration summary rebuilt so the wording matches today's rules. As always, the regrade is disclosed here rather than applied silently, and the pre-regrade state is retained in full.

Idle-oscillation wording tells the truth about engine temperature

Product

A warming engine could be labelled as fully warmed in the idle summary, because the label compared a Fahrenheit reading against a Celsius threshold. The label now reads "during warm-up" or "fully warmed" based on the log's own verified units, and says nothing at all when those units can't be established. Grades never depended on this label: rough idle is graded by how rough it is, at any temperature.

Flex-fuel and ECU state flags read correctly across the pipeline

Product

Closed-loop, power-enrichment and torque channels are now recognised everywhere the analysis needs them rather than only in some checks, using one shared dictionary of channel names. A corpus-wide comparison confirmed no log lost a single channel binding in the change.

Behind the scenes

Regrade tooling hardened before it touched anything

Infrastructure

The mandatory practice runs that precede any regrade caught four defects before a single stored report was rewritten: a crash on one corrupt archived log, an unbounded file transfer that could stall indefinitely, a dropped database connection at the moment of writing, and — most consequentially — a case where a transient download failure caused a report to be re-decided from stored summary numbers instead of its log. That last one now stops and declares the skip rather than proceeding on thinner evidence. Same-day runs also file their backups and records under distinct names so two runs can never overwrite each other.

v2.3.3Jul 29, 2026

Every measurement fix from the channel audit is now applied to every grade, the report card is rebuilt around a five-second verdict, and grades without a retained log say so.

What you'll notice

All 250 historical cases regraded; 9 changed

Product
  • This regrade applies the measurement fixes from the last two days of channel-audit work to every stored grade: airflow channels that log sensor frequency instead of mass flow are excluded from mass-flow math everywhere; airflow logged in other mass units is converted only after the log itself verifies the conversion; one wrong-channel spark binding was removed; and the ECU state flags for closed loop and power enrichment — which many logs record as text — are now read correctly, so those gates run on the ECU's own word instead of a stand-in.
  • 9 of 250 cases changed grade, and airflow metric names now say exactly which measurement they came from. As always, the regrade is disclosed here rather than applied silently, and the pre-regrade state is retained in full.

The report card now reads in altitudes

ProductMilestone
  • Five seconds: a verdict strip with the grade, why it's capped, the one repair to make first, and what the safety guard is doing meanwhile. Thirty seconds: one card per system with a finding — the decision-driving numbers, each tagged with its measurement source — while healthy systems collapse to a single line. On demand: a full detail drawer per finding with the complete instructions, the datalog chart, and the physical checks with what each result means.
  • At the bottom, one evidence panel replaces the disclaimers that used to be scattered through every step: how many channels were read (an exact count, or a floor when part of the analysis skipped), which knock causes this report ruled in, ruled out, or cannot see from your log, and a plain statement of how the letter grade is decided. Nothing was removed — everything the report declared before, it still declares, in one place.

Grades without a retained log now say so

Product

49 historical cases were graded at a time when their raw log file is no longer stored. Those grades are re-decided from the report's stored metrics whenever grading logic improves — which is honest, but different from re-reading the log. Each of those cases now carries a plain declaration of exactly that, so a frozen-basis grade can never be mistaken for a fresh log analysis.

Flex-fuel: ethanol content is read under both channel names

Product

Some scanners export ethanol content as "Ethanol Fuel %" and others as "Alcohol Percent". The analysis now reads both — 93 historical logs carried the second spelling only, and the fuel-quality check was blind to them. Their next analysis round sees it.

Behind the scenes

Channel-truth controls extended

Infrastructure

The corpus-wide channel audit was re-run to verify every shipped binding fix by measurement, the append-only channel record and its regression tests grew accordingly, and two imprecise claims found along the way were corrected in the record rather than edited away.

v2.3.2Jul 28, 2026

Altitude and weather are now measured from your log instead of assumed, and every historical grade has been re-keyed under the corrected knock gating.

What you'll notice

The load calculation now uses the barometric pressure you logged

Product
  • Deciding whether the engine was under load means comparing manifold pressure against the air pressure outside the engine. Until now that reference was a constant — sea-level atmosphere — no matter where the log was recorded. At altitude, real load sits higher against thinner air than the constant admits, so loaded knock samples could be dismissed as light-load noise exactly where lugging knock is most likely.
  • Most logs already carry the answer. If your log includes a manifold-to-barometric pressure ratio channel, the analysis now uses it directly. If it includes barometric pressure, that measured value becomes the reference. Only when neither was logged does the sea-level assumption remain — and the report now says so in plain text instead of applying it silently, so you know to add the channel next time.

All 249 historical cases regraded; 120 changed

Product
  • The corrected load gating from v2.3.1 and the measured pressure reference above were applied to every stored grade, not only to new uploads. 249 historical cases were re-analyzed from their original files; 120 changed grade, most of them downward, because part-throttle knock that was always present in those logs is now visible to the verdict.
  • This closes a gap where re-uploading an old log could produce a different grade than the stored report showed. Stored grades and fresh analysis now agree. As always, the regrade is disclosed here rather than applied silently.
Behind the scenes

Grade history integrity

Infrastructure

Pre-regrade state is retained in full, round-over-round trend history was rebuilt to stay coherent with the new grades, and internal retention records were corrected so every case accurately reports whether its original log file is still on hand.

v2.3.1Jul 27, 2026

Knock is now judged by manifold pressure instead of throttle position, and one case from v2.2.11 is corrected.

What you'll notice

Knock is measured under real load, not just at wide-open throttle

Product
  • The filter deciding whether a knock sample counted as "under load" required throttle above 60% and manifold pressure at 80% of atmospheric or higher. That is a wide-open-throttle test wearing the name "load", and it discarded the entire part-throttle range — including low-RPM, light-pedal, top-gear driving, where a loaded engine sees high cylinder pressure and is most likely to knock.
  • Knock now gates on manifold pressure. At half an atmosphere or above, the engine is filling cylinders and making torque, so those samples count toward the verdict. Closed-throttle deceleration, where the manifold sits in vacuum, is still excluded, and a single isolated spike still cannot raise an issue on its own.

One case from v2.2.11, corrected

Product
  • v2.2.11 stopped knock grades from being set by the raw peak retard in a log and started judging retard under load instead. That change was correct and it stands: retard spikes on closed-throttle deceleration are false knock, and they were pulling down grades on healthy tunes.
  • The threshold defining "load" is what was set too narrow. Because it effectively meant wide-open throttle, part-throttle driving fell outside it — and one case we published as moving from D to B was a genuine knock finding sitting in the range the filter skipped.
  • On that log, 216 of 32,369 samples cleared the old threshold — 0.67% of the file, all from two short wide-open-throttle pulls. Re-run with the corrected gate, 17,518 samples count as loaded, peak knock retard under load goes from 2.1° to 14.95°, and the case returns to D with a critical knock finding.
  • Credit for finding it goes to a member on the HP Tuners forum who ran his own log against our report and pushed back when the verdict did not match what he was experiencing in the truck.

What this means for reports you already have

Product

Reports generated before today still carry the earlier verdict. We are re-running the archive against the corrected gate and will publish what it changes, the same way we publish every other regrade.

v2.3.0Jul 27, 2026

Vehicle timeline, in-app help, fleet benchmarks, and smarter revision guidance.

What you'll notice

Vehicle score timeline

Product

Your vehicle page now shows a score progression chart — see how your tune grade improves across each upload. Key metric sparklines (knock, LTFT, MAF spread) appear below for quick trend visibility.

Fleet benchmarking

Product

Your latest case metrics are compared against fleet medians. Green = better than fleet, amber = above fleet median. Visible on your vehicle page below the timeline.

In-app help center

Product

A new Help page accessible from the nav covers your revision cycle workflow, how to read your report, logging best practices, vehicle management, and billing. No more hunting for answers.

Improved revision plan instructions

Product

The revision plan now includes numbered step-by-step guidance: open VCM Editor, find the table, apply the cell change, save a new cal, flash, re-log, upload. Designed for first-time users.

New case notification

Product

A badge on the Dashboard link tells you when new cases have completed since your last visit.

Behind the scenes

AI revision service evaluation

AI

Internal testing of knowledge-base-augmented revision steps. When active, steps show their source (parser vs AI) for quality evaluation.

v2.2.13Jul 27, 2026

More revision rounds included with every purchase.

v2.2.12Jul 23, 2026

Report cards now download as a print-ready PDF.

What you'll notice

Report card downloads are now PDFs

Product

The Download Report Card button now produces a paginated 8.5x11 PDF instead of one tall PNG image — easier to share, attach, and print. The export still carries the full card view and the technical review in a single document.

v2.2.11Jul 23, 2026

Knock is now judged under load, reports lead with the tune grade, and all historical cases were regraded under the new rule.

What you'll notice

Knock is graded on what happens under load

Product
  • Knock grading now keys off the load-gated knock measurement — timing pulled while the engine is actually under load — instead of the raw peak across all retard events. Decel and transient chatter can no longer cap a grade on its own.
  • A single unconfirmed severe sample can raise a warning, but it never sets the grade by itself.

Reports lead with the tune grade

Product

Report pages now lead with the tune grade itself; analysis confidence is shown as a supporting metric. Cases without enough gradeable data show "NEED BETTER DATA" instead of a letter.

Historical cases regraded under the new rule

Product

As our methodology requires, we regraded all historical cases under the new rule and disclose the result: 2 of 244 graded cases changed — one rose D→B (its raw knock peak was decel chatter, not detonation under load), one moved D-→D. Published trend metrics are parser-measured and unaffected.

v2.2.10Jul 23, 2026

First-log uploads on a new vehicle now run as a proper baseline, and interrupted uploads recover cleanly.

What you'll notice

First log on a vehicle runs as a baseline

Product

Uploading the first log on a vehicle now runs as a baseline analysis with matching on-screen guidance, instead of being treated like a follow-up revision.

Failed uploads no longer block the next try

Product

If an upload dies mid-flight, the page now clears the dead job and lets you start fresh immediately — no more retrying a job the server had already closed.

Behind the scenes

Analysis pipeline reliability fixes

Infrastructure

Fixed a case-record write that could fail after a successful upload, plus a caching error in the knowledge-base context layer.

v2.2.9Jul 23, 2026
What you'll notice

Clearer engine-family names in the public knowledge base

Product

Public KB pages now show full engine names (like L83 5.3L EcoTec3) with combined, de-duplicated entry counts per family.

Behind the scenes

Public site discoverability cleanup

Infrastructure

Tidied how public pages present themselves to search engines.

v2.2.8Jul 21, 2026
Behind the scenes

Improved internal operations monitoring

Infrastructure

Expanded internal monitoring of the analysis pipeline and member experience.

v2.2.7Jul 20, 2026

Report pages now point to your next move when a case's rounds are used up.

What you'll notice

Clearer next step at the end of a case

Product

When your case has used all of its included follow-up rounds, the end-of-report panel now links you directly to starting your next case or back to your dashboard — instead of leaving you at a dead end.

v2.2.6Jul 20, 2026

Fairness release: corrupt logs never cost a round, refunds release access automatically, and reports carry your filenames.

What you'll notice

Corrupt logs are rejected before they cost you a round

Product
  • If your datalog export is corrupted — truncated file, mangled rows — TuneView now catches it up front and rejects the upload with a clear re-export message instead of running a degraded analysis.
  • A rejected upload never consumes a round. You only spend a round when we can actually read your data.

Refunds release access automatically

ProductSecurity
  • If a purchase is refunded or disputed, any unused rounds from it are released automatically — no manual cleanup, no lingering access.
  • Reports you already received stay visible in your garage. A refund never deletes work you've seen.

Reports show your uploaded filename

Product

Reports now display the actual filename you uploaded instead of an internal storage name, so multi-log members can tell their cases apart at a glance.

Clearer next steps for returning members

Product

Members who have already completed a case no longer see the first-case offer when their rounds are used up. The upload page now recognizes your purchase history and points you straight to starting your next case.

Behind the scenes

Measurement accuracy

Infrastructure

Improved the accuracy of internal signup and analysis-pipeline metrics.

v2.2.5Jul 20, 2026

Full Tune checkout fixed and follow-up rounds restored — the full paid loop verified end to end.

What you'll notice

Full Tune checkout works again

Product
  • If a checkout failed on you during that window, check your inbox — we've reached out directly to make it right.

Follow-up uploads restored for Full Tune members

Product
  • Full Tune members were being shown a first-case offer instead of their remaining follow-up rounds after their baseline upload. The follow-up uploader now correctly shows your remaining rounds and takes your re-logs.
Behind the scenes

Checkout resilience and failure visibility

Infrastructure

Checkout now degrades gracefully if the payment provider rejects an optional session setting, and failed checkout attempts are recorded server-side so a silent checkout failure can never go unnoticed again.

v2.2.4Jul 19, 2026

Live analysis checklist: watch your report being built, stage by stage.

What you'll notice

Live upload & analysis checklist

Product
  • This fixes a real workflow flaw, not cosmetics: the old completion message told you the upload was done and you could leave the page — right when your report was still being built. People walked away, never saw the finished report land, and re-uploaded the same log thinking it had failed.
  • After your log uploads, the waiting screen now shows a live task checklist — secure upload, verification, queueing, retrieving your datalog, parsing & diagnostics, and grading — with the current stage highlighted in real time.
  • The analysis worker reports its actual progress while it runs, so the checklist reflects what is really happening, not a guess.
  • Clearer wording throughout: stay on the page and the finished report replaces the checklist the moment it is ready — and if your connection does drop, the analysis keeps running and the report still saves to your vehicle.
v2.2.3Jul 19, 2026

Paid log uploads: reliable large-file transfers and no lost work.

What you'll notice

Log upload and analysis reliability overhaul

ProductInfrastructure
  • Large logs (over 6 MB) now upload reliably and automatically resume from where they left off if your connection stalls mid-transfer.
  • If your browser loses its connection after an upload finishes, TuneView now picks the analysis back up where it left off — no failed case, no paying twice.
  • Long-running analyses no longer sign you out mid-report: the progress tracker keeps your session fresh while it waits.
  • When an analysis does hit a problem, it now fails fast with a clear message and a support reference code instead of hanging on “building report”.
  • Paid-access checks are more forgiving of flaky connections — a timed-out check will never show you a purchase prompt for something you already own.
Behind the scenes

Analysis pipeline monitoring

Infrastructure

Improved internal monitoring and recovery procedures for the analysis pipeline.

v2.2.2Jul 17, 2026

Founder Sierra update: structural rebuild before the next log.

What you'll notice

Founder vehicle update: frame-horn rebuild

Product

The 416 Whipple Sierra is pausing logs for a documented front-end structural rebuild. The update shares the driver-side twist survey, the planned frame-horn, suspension, and engine-cage work, and the verification required before the truck returns to the revision loop.

v2.2.1Jul 14, 2026

Coverage focus: GM platforms.

What you'll notice

TuneView now focuses on GM platforms

Product

Ford and Mopar coverage is paused while we deepen GM Gen V LT and LS support. Existing Ford and Mopar knowledge is preserved and will return when coverage reopens. The Ford early-access page is offline for now.

v2.2.0Jul 14, 2026

Simpler pricing: one-time tunes replace monthly plans.

v2.1.11Jul 14, 2026

Old public-report links work from every domain.

What you'll notice

tuneview.io/reporting no longer dead-ends

Product

Links to tuneview.io/reporting or tuneview.io/trends now forward to the public System Trends report at app.tuneview.io/trends instead of returning a 404.

v2.1.10Jul 14, 2026

Text across the site is easier to read.

What you'll notice

Higher contrast and larger minimum text size

Product

Secondary and label text across every page is brighter, and the smallest text sizes were raised site-wide — including in the emails we send. Labels, timestamps, and fine print that used to be hard to read against the dark background now meet accessibility contrast standards.

v2.1.9Jul 14, 2026

Terms of Service updated to v1.2.3.

v2.1.8Jul 14, 2026

Welcome and onboarding emails now describe current pricing accurately.

v2.1.6Jul 13, 2026

A new case study shows how TuneView uses AI to expand tuning knowledge without allowing missing fields or unsupported claims into the live KB.

What you'll notice

AI quality control, with the rejected rows included

AIProduct

The new Stories case study follows a real 2,142-row review from pending to zero unresolved. It shows exact rows that passed, exact rows that failed, and how parser-owned evidence, required fields, canonical sources, and independent audits keep rich-looking but incomplete guidance out of the public Knowledge Base.

v2.1.5Jul 13, 2026

The public path to a first case is clearer, and older pages that no longer reflect TuneView have been retired.

What you'll notice

Technical proof stays tied to the revision loop

Product

The shop page and several technical guides now describe the same contract: start from log evidence, receive P1-P4 table and cell revisions, then use a comparable follow-up log to judge the result. Older public pages that did not support that path have been removed.

v2.1.4Jul 12, 2026

TuneView now makes the roles of its in-house parser and AI support explicit on the public homepage.

What you'll notice

The parser sets the standard

Product

Measured Results now states the contract plainly: TuneView's in-house parser applies the same fixed thresholds to every matched round, and a general-purpose AI model does not decide whether a result improved, held, or got worse.

A transparent AI boundary

Product

A new homepage section explains where AI can help organize and explain parser-owned evidence, and where it has no authority. AI does not grade logs, set HP Tuners values, change thresholds, invent platform behavior, or replace next-log verification.

v2.1.3Jul 12, 2026

A clearer first-case path and a public results page built around the question that matters: did the next log improve?

What you'll notice

System Trends is now Measured Results

Product

The public results page now leads with round-over-round verdicts and clearly separates customer-fleet results from the founder development vehicle. Both scopes keep their own sample counts, suppressed months, and underlying methodology so the data can be judged on its own terms.

v2.1.1Jul 12, 2026

A full 416 Whipple Sierra revision loop is now published in Stories, including the measured verdicts from the follow-up log.

What you'll notice

New founder case study: 416 Whipple Sierra

Product

The founder's 2015 Sierra 1500 went through two real analysis rounds: one airflow-model recommendation improved, two held flat, and two startup-idle recommendations got worse. The story shows the logged regions, recommended corrections, and measured verdicts without hiding the misses.

v2.1.0Jul 11, 2026

Follow-up rounds now reset per tune, the upload flow got faster to use, and Verify Tune Changes accepts a table paste instead of a screenshot.

What you'll notice

Follow-up rounds now reset with every new tune, not just every vehicle

Product

Round numbering previously counted every follow-up a vehicle had ever had, so a well-used garage vehicle could see round counts that didn't match the tune actually on it. Starting a new case now begins a fresh round 1 — the two included follow-up re-evaluations count from there, and the report at the end of each round tells you exactly how many are left and links straight to the next upload.

Faster upload flow

Product
  • The vehicle picker on a new upload now pre-fills your build details — engine, forced induction, cam, injectors, the works — instead of asking you to re-enter them every time.
  • On the follow-up screen, picking a log file no longer starts the analysis immediately; it stages the file so you can still add notes, a calibration file, or a VVE/MAF table paste before submitting everything together in one step.

Verify Tune Changes: paste a table instead of a screenshot

MilestoneProduct
  • Verify Tune Changes checks that a recommended calibration edit actually landed before you re-log. It only took a screenshot before, which meant reading exact numbers off a photo of a table.
  • You can now paste the table instead — the same Copy with Axis paste used elsewhere in TuneView — for VVE, MAF, and Virtual Torque. TuneView compares the exact cell values against the target, not a guess at what's in the image. Screenshots are still supported for anyone who prefers them.
Behind the scenes

Simplified the follow-up report

Product

Removed the granular per-step pass/fail scoring tool from individual reports — it asked for a judgment call on raw metric deltas that most of the time only made sense with tuning-specific context. The plain revision-step checklist stays, and the public, aggregate System Trends report remains the source of truth for round-over-round improvement.

v2.0.0Jul 11, 2026

It took us a minute, but now you can send us your VVE and MAF tables — and everything TuneView tells you gets sharper because of it.

What you'll notice

Paste your VVE and MAF tables straight into TuneView

MilestoneProduct
  • It took us a minute, but now you can upload your VVE and MAF tables to further enhance datalog interpretation and tune step accuracy.
  • Here's why this is the biggest change we've shipped: a datalog shows the symptoms, but your tables ARE the calibration producing them. Until now, TuneView was diagnosing your tune from the outside. With your actual VVE grid and MAF curve in hand, analysis can line findings up against the exact cells in your editor — the same numbers you're about to change.
  • How it works: in VCM Editor, right-click your VVE virtual table or MAF calibration and choose Copy with Axis, then paste it into the new Tune Table Paste box on your vehicle's follow-up upload page. TuneView parses it on the spot and echoes back what it read (grid size, RPM range, MAP axis in bar or kPa) so you can confirm it matches your editor before it's attached to your case.
  • Bad pastes are caught immediately with a plain-English reason — plain Copy without the axis, a truncated grid, a non-numeric cell — so nothing silently wrong ever enters your case.
  • A lot of the smaller updates over the past weeks — channel mapping, grading only what a log can prove, the boost-detection ruling — were quietly laying the groundwork for this. This is the foundation for what comes next: revision steps computed against your actual table cells, not descriptions of regions.

New guide: Required Log Channels & Table Paste

Product

A new public reference at tuneview.io/log-channels lists every VCM Scanner channel TuneView looks for — what's required, what unlocks a complete grade, and what sharpens verdicts — plus step-by-step Copy with Axis instructions for both VVE and MAF tables.

v1.3.0Jul 11, 2026

Grading recalibration: letters now reflect measured tune behavior, and all historical grades were recomputed.

What you'll notice

Tune grades recalibrated — and your history regraded

ProductMilestone
  • Four analysis modules were over-penalizing healthy logs: sensor coverage flagged every log, startup analysis graded logs that never captured a key-on start, and the spark and shift metrics punished normal idle-to-WOT range and normal gear changes. A clean log literally could not score above 83.
  • Detectors now grade what they can actually measure. Startup idle is judged only when your log captures a real key-on start; spark is judged for consistency within operating regions instead of whole-log spread; shifting is judged on measured anomalies like flare, not on how often a transmission shifts; cammed builds get lope-aware allowances.
  • What a detector can't measure is now reported as coverage — with hints on what to log to unlock it — and never lowers your letter. Safety findings (knock, fueling, fuel pressure) still cap the grade at D.
  • Every historical case was regraded with the corrected detectors under the same scoring ladder. Median grades moved up purely because false penalties were removed — if your grade changed, that's why. Genuine issues kept their severity.
Behind the scenes

Case-data hygiene

Infrastructure

Deduplicated case records with a uniqueness guarantee, normalized report storage for faster queries, and rebuilt round-over-round trend history so deltas stay coherent across the regrade. Full audit trail in the migration ledger.

v1.2.2Jul 10, 2026
What you'll notice

System Trends: suppressed months are now visible, not invisible

Product
  • Months withheld for sample size (n < 10) previously rendered as blank gaps in the trend charts, which made sparse series look broken.
  • Each chart now shows hollow baseline markers for exactly which months each series was suppressed, and hovering a withheld month shows its sample count.
  • Per-chart footnotes explain what you're seeing — including why the boost wideband chart has no customer months yet and that the founder series is a single development truck under active tuning.
v1.2.1Jul 10, 2026
Behind the scenes

Infrastructure upgrades

Infrastructure

General infrastructure upgrades. No customer-facing changes.

v1.2.0Jul 10, 2026

A fairer tune grade: scored only on what your log can prove, with the methodology published for anyone to read.

What you'll notice

Grades now score tune health, not log coverage

ProductMilestone
  • Your letter grade is now computed only across the systems your log actually contains enough data to evaluate — a short log no longer drags your grade down for systems it couldn't see.
  • Case reports show exactly which systems were graded ("Graded on 9 of 12 systems") and what to log next time to unlock the rest of your grade.
  • If fewer than 6 systems are evaluable, you get an honest "Incomplete — Need Better Data" instead of a misleading letter.

Knock scoring separates sensor noise from real detonation

Product
  • Tiny knock-retard readings below the platform's noise floor no longer count against you — single sub-degree blips are sensor noise, not detonation.
  • Real knock is treated more seriously, not less: sustained retard at critical levels now caps the overall grade at D no matter how clean the rest of the log is.
  • Grades move in both directions under the new formula — some go up, some go down. That's the point.

The grading methodology is public

Product

The full grade formula — which systems count, how issue severity is weighted, the safety cap, the knock noise floor, and the letter scale — is now published on the System Trends page. Deterministic and versioned: same log, same grade, and the version is stamped on every report.

Public report renamed to System Trends

Product

The public accountability report now lives at app.tuneview.io/trends. Old links redirect permanently.

Every stored case regraded

Product

All historical cases were re-scored under the new formula so your case history, vehicle trends, and the public System Trends report all reflect the same standard. A pre-regrade backup was taken first.

v1.1.5Jul 9, 2026

Smarter, more accurate tune revision steps.

What you'll notice

Correct VCM Editor navigation with platform-specific guidance

Product
  • Revision steps now use the correct HP Tuners VCM Editor paths: Edit → Virtual Volumetric Efficiency and Edit → Virtual Torque on GM, Edit → MAF Transfer Function on Ford, and Edit → VE Table on Mopar.
  • GM VVE steps now walk you through the VE Mode drop-down first (VVT vs non-VVT), so edits land on the coefficients your ECM actually uses.
  • GM Virtual Torque steps now prompt you to pick the Table Grouping that matches your vehicle's setup before editing.

Grouped table edits with a mini table grid

Product
  • Multiple edits to the same VVE or Virtual Torque table are now grouped into a single step — the way you'd actually make them in the editor.
  • Each grouped step renders a mini table grid showing the delta to apply to each cell and, where known, the resulting new value — work from whichever form you prefer.
v1.1.4Jul 9, 2026

Smarter knock verdicts, correct fuel-pressure units, E85-aware fueling — applied to every report, past and present.

What you'll notice

Sharper analysis verdicts

Product
  • Knock verdicts are now load-gated: retard events are judged against throttle and manifold pressure, so a single transient blip on decel no longer grades like real detonation under load.
  • Fuel-pressure channels logged in kPa are now detected and normalized to psi before grading — no more phantom rail-pressure errors from mismatched units.
  • Fueling analysis now recognizes flex-fuel: commanded AFR is judged against the stoichiometric point for your actual ethanol content instead of assuming pump gas.

Historical reports re-analyzed

Product

Every stored report has been re-run through the improved analysis, so your case history and trends reflect the same grading standards as new uploads. The public accountability report was recomputed on the updated results.

Behind the scenes

Analysis maintenance tooling

Infrastructure

Internal tooling improvements supporting analysis quality and report maintenance.

v1.1.3Jul 8, 2026

Report cards now grade harder and read cleaner.

What you'll notice

More honest module grading

Product
  • Watch-tier findings — knock retard between 0.5° and 3°, narrow MAF sweeps, elevated wideband error — now surface as amber warnings instead of silently passing as OK.
  • Confirmed issues now render red on the report card so the severity ladder actually reads OK → Watch → Issue.
  • Each system now shows one verdict: duplicate module cards that could disagree with each other have been consolidated into the stronger analysis for knock, fuel pressure, airflow, torque, and startup.
  • Torque converter slip is only graded when the log includes vehicle speed — normal open-converter slip no longer triggers false transmission warnings.
Behind the scenes

Grading pipeline audit

Infrastructure

A full audit of every analysis module against real logged data tightened status normalization, sensor-value parsing, and channel alignment across the report pipeline.

v1.1.2Jul 8, 2026

The homepage scan demo now speaks the same language as your report.

What you'll notice

Real module names on the homepage demo

Product

The live scan demo and Technical Drive Review preview on tuneview.io now label every system with the exact module names your real report uses — startup idle, knock safety, MAF table, data quality, and the rest. What you see on the marketing site is what you get in the app.

v1.1.1Jul 8, 2026

The Accountability Report is now one click from anywhere on the site.

What you'll notice

REPORT link in the site navigation

Product

The public Accountability Report now has its own REPORT link in the tuneview.io navigation bar — the same spot it occupies in the app — so you can reach the live numbers from any page without scrolling the homepage.

v1.1.0Jul 8, 2026

The Accountability Report: our results, public, including the losses.

What you'll notice

Public Accountability Report — every tune outcome, published

ProductMilestone
  • New public report at app.tuneview.io/reporting — no account needed. It shows how tunes analyzed through TuneView actually perform, round over round.
  • The full ledger: the percentage of follow-up rounds that got better, got WORSE, or didn't move — overall and per system (knock, fueling, MAF, boost, idle). We publish the losses next to the wins.
  • Fleet health trends: monthly medians for knock retard, fuel trims, boost error, and MAF spread, with the sample size (n=) printed on every figure.
  • Numbers you can't game: deterministic parser verdicts only (no AI in the scoring), medians instead of averages, and any figure with fewer than 10 datapoints is suppressed as "insufficient data" rather than shown.
  • History that can't be rewritten: each month is frozen as an append-only snapshot once it closes. Past numbers never quietly change.
  • The founder's development truck is shown as its own clearly-labeled series — it never inflates the customer numbers.
  • Download the raw data behind every chart as JSON or CSV and check our math yourself.
Behind the scenes

Append-only reporting snapshots

Infrastructure

Monthly report snapshots are stored in a database table where frozen rows are immutable at the database level — even we can't edit a closed month without it being a new, visible migration.

v1.0.24Jul 8, 2026

See your knock data, not just our verdict.

What you'll notice

Datalog charts in report cards

Product

Knock & Spark Safety report cards now include an interactive chart of your actual logged data: RPM, throttle, knock retard, and timing plotted over the log, so you can see exactly where the ECU pulled timing instead of taking the verdict on faith. More modules to follow.

v1.0.23Jul 8, 2026
Behind the scenes

Internal data-import and account tooling improvements

Infrastructure

Founder account data-import and tooling housekeeping. No customer-facing changes.

v1.0.22Jul 8, 2026
Behind the scenes

Internal QA access for the team on production

Infrastructure

Housekeeping so the TuneView team can evaluate features end-to-end on the live site. No customer-facing changes.

v1.0.20Jul 8, 2026

A cleaner How It Works: one-line steps, a parser-first strip, and the re-tune loop front and center.

What you'll notice

How It Works section redesigned around the re-tune loop

Product
  • Step cards now carry one line each — full detail moved into the click-to-expand view ([+] MORE).
  • New parser-first strip: a deterministic in-house parser reads every log before any AI touches it (format gate, channel map, pull detection, fail-closed).
  • The re-tune loop is now a connected four-node flow — baseline report → apply the edits → re-log & upload → change report — looping back to the next revision.
  • Corrected marketing copy: removed the free-first-upload claim and reworded the pricing headline to "Start with a single case."
v1.0.19Jul 8, 2026

Locked reports now preview the tune steps you're missing.

What you'll notice

Locked module details show what's behind the paywall

Product

On locked reports, opening a module's detail view now shows a preview of the step-by-step tune revisions — clearly-marked sample steps, grayed out and fading to black, with an unlock button centered over the preview leading to the full HP Tuners revision instructions.

v1.0.18Jul 8, 2026

Boost fueling fixes are now judged on measured wideband error, not fuel trims.

What you'll notice

Smarter effectiveness verdicts for boosted engines

Product

Revision steps targeting in-boost VVE cells are now judged on measured wideband-vs-commanded fueling error instead of closed-loop fuel trims (which can't see open-loop power enrichment). Also fixed the report module counter and a stray encoding artifact in verdict units.

Behind the scenes

Wideband error scalar stored per analysis

Infrastructure

Each scan now records the signed median wideband-vs-commanded error across all in-boost power-enrichment samples. Rounds analyzed before this change read indeterminate on boost steps rather than being mis-scored against fuel trims.

v1.0.17Jul 8, 2026

Full scan results are now free on every upload — only the revision steps are paid.

Behind the scenes

Locked-report payload hardening

Security

The paywall redaction now strips tuning instructions at the source: revision steps, per-module recommendations, technical drive review, calibration correction cells, and KB research data are all removed server-side before a locked report leaves the API.

v1.0.16Jul 8, 2026
What you'll notice

TuneView is out of beta

ProductMilestone

Beta labels and notices are gone across the app and site. "Beta Terms of Service" is now simply the Terms of Service, with app.tuneview.io/terms pointing at the single canonical terms page.

v1.0.15Jul 7, 2026

Homepage copy now leads with the effectiveness verdict, plus two new diagnostic guides in Stories.

What you'll notice

Homepage leads with the verdict

Product

The homepage now says what the re-log loop actually gives you: exact revision steps, then a verdict on your next log — what improved, what regressed, and what to do next. Less abstract, closer to how the product behaves.

New story: How to Read Knock Retard in HPTuners

Product

A practical guide to reading KR in your logs — what the channel actually measures, how to separate real knock from false knock, and when a KR event is worth a tune change.

New story: MAF vs VE — Which Table Is Actually Wrong?

Product

How to tell whether your fueling error lives in the MAF curve or the VE table before you start editing either one, using the trims and conditions already in your log.

v1.0.14Jul 7, 2026

Terms of Service v1.2.0 for paid access, a single /legal hub for every policy, and Terms acceptance at checkout.

What you'll notice

Terms of Service v1.2.0

Product

The Terms are updated for paid access. They spell out that TuneView provides analysis and guidance only, that you assume the risk of applying any suggested revision or editing guidance to your vehicle, that you're expected to have the required diagnostic equipment and mechanical knowledge, and that emissions-control tampering is prohibited use.

One legal hub at /legal

Product

Terms, Privacy, the LambdaWorx privacy policy, and Trust & Security now live behind a single Legal page, each with its own version and effective date. The navbar and footer link to LEGAL instead of four scattered entries.

Terms acceptance at checkout

Product

Checkout now asks for one acknowledgment: a single checkbox confirming the Terms of Service and Privacy Policy before you purchase. No other sign-up or per-feature legal prompts were added.

v1.0.13Jul 6, 2026

Public site cleanup — legal pages no longer show draft placeholders, Stories render article cards immediately, and legacy app links stop dead-ending.

What you'll notice

Legal pages cleaned up

Product

The public Terms and Privacy pages no longer show draft banners, insert-date markers, TTL placeholders, or internal review notes.

Stories render immediately

Product

The Stories index now includes article cards in the initial page response instead of waiting on client-side loading, so readers and crawlers see the posts right away.

Old app URLs redirect cleanly

Product

Common public URLs such as /start, /signup, /billing, /profile, and /vehicles now route to the app surface instead of landing on public-site 404 pages.

Shop page placeholder removed

Product

The For Shops page no longer shows a placeholder testimonial. Early-access validation is now described plainly until approved public case studies are ready.

Behind the scenes

Public route map documented

Infrastructure

The web-to-app redirect policy is documented so future public-site reviews can tell which paths should redirect, which stay on tuneview.io, and why direct /ford links are public while homepage placement can be controlled separately.

Ford coverage route is public

Infrastructure

The /ford coverage page no longer depends on the homepage Ford-section feature flag, and robots.txt no longer blocks the route.

v1.0.11Jul 5, 2026

Filing logs under a vehicle is now impossible to miss — multi-select on the dashboard, a picker on every vehicle page, and a banner on unassigned cases.

What you'll notice

Assign logs to a vehicle from anywhere

Product
  • Dashboard: unassigned logs now show checkboxes with a select-all header and a visible action bar — pick the logs, choose the vehicle, done. No more hunting for a tiny dropdown.
  • Vehicle page: a new "Unassigned Logs" section lists every log that isn't filed yet, so you can pull the right ones into the build you're looking at with one button.
  • Case detail: an unassigned case now shows a clear banner in the header with an assign selector, and links straight to the vehicle once it's filed.
  • Assignment is still permanent by design — a log analyzed against one build shouldn't quietly move to another.

"Vehicles" is now "Garage"

Product

The top-nav item is renamed to Garage — that's where your builds, session history, photos, and dyno sheets live. Same page, better name.

Behind the scenes

One shared assignment helper

Infrastructure

All three assign surfaces call a single shared helper that PATCHes each case and reports per-log success and failure, so partial failures surface instead of silently dropping logs.

v1.0.10Jul 5, 2026

One report card, everywhere — the card you see after an upload is the exact same card you get back from your dashboard and vehicle history.

What you'll notice

Your report card is now the single source of truth

Product
  • The report card generated at the end of an upload is saved with the case, and opening that case later — from your dashboard, a vehicle page, or a shared link — shows that exact same card. Same layout, same numbers, same revision steps.
  • Previously the saved-case view was a separate rendering with its own layout and a reduced set of details, so the same analysis could look different depending on where you opened it. That inconsistency is gone.

Clearer wording on how AI is used

AI
  • Every report card now states it plainly: AI is used to organize and explain the result but is not generating log metrics, KB claims, or calibration facts. Those functions are handled in-house through TuneView's proprietary algorithms.
Behind the scenes

Shared report card component

Infrastructure

The anonymous upload flow, vehicle round-2 uploads, and the saved case detail page all render one shared report card component driven by the stored analysis snapshot — three duplicated render paths were deleted.

v1.0.9Jul 5, 2026

Your garage is now yours to organize — rename vehicles and file stray logs under the right build.

What you'll notice

Rename your vehicles

Product
  • Vehicles created during intake defaulted to the engine platform you picked — not much of a name for your build. Every vehicle page now has a Rename control next to the title, so "L86 — 6.2L Gen 5 Truck" can finally become "Red Sierra".

Assign a log to a vehicle

Product
  • Logs analyzed before you saved a vehicle — or uploaded outside a vehicle page — used to sit unattached in your case list. Each unassigned log on the dashboard now has an "Assign to vehicle" selector that files it under any vehicle in your garage.
  • Assignment is one-way for now: once a log belongs to a vehicle it stays there, so round tracking and trend history stay honest.
v1.0.8Jul 5, 2026

Reports no longer ask you to log channels you already logged — channel detection now runs on the parser's mapping end to end.

What you'll notice

Accurate channel detection on every report

Product
  • Some HP Tuners exports name the time column "Offset", and part of the analyzer missed it — reports could claim required channels were missing and ask you to re-log data that was already in your file. Channel identity now comes from the log parser's own mapping everywhere, so what the parser found is what every module sees.
  • Log Quality scores no longer take a false hit on affected logs.

Tune revision steps come from your data first

ProductAI
  • Recommended revisions are now always generated from the parsed log data first. The AI pass runs last and only adds steps that bring something new — an uncovered system or a knowledge-base citation — and can no longer ask you to capture channels your log already contains.
v1.0.7Jul 4, 2026

Tune revisions are now front and center on every report card, and signed-in uploads are tracked per vehicle automatically.

What you'll notice

Recommended tune revisions on the report card

Product
  • Every report card now leads with a dedicated Recommended Tune Revisions section — priority-sorted steps with the system, target table, and what to change in your editor. No more digging through individual module tiles to find them.
  • The same panel appears on saved case reports, so the steps are always one click away when you're at the bench with VCM Editor open.

Signed-in uploads tracked per vehicle, automatically

Product
  • Uploading a log while signed in now always files it under a vehicle. Pick one of your saved vehicles — or do nothing and TuneView saves a new one from your build profile.
  • That means every follow-up upload for the same vehicle automatically gets round-over-round treatment: measured verdicts on last round's steps plus fresh recommendations, with no extra setup.

Attach your calibration and dyno sheet on follow-ups

Product

Follow-up uploads can now include your current calibration file (.hpt/.efi) and a dyno sheet (PDF or image) alongside the log. They're stored with the round for tuner review.

v1.0.6Jul 4, 2026

Follow-up logs now measure whether last round's tune steps actually worked — verdicts computed from your data, not guesswork.

What you'll notice

Round-over-round effectiveness verdicts

ProductAI
  • Upload a follow-up log and TuneView now compares it against the log behind your previous report, step by step. Each recommended revision from last round gets a measured verdict — Improved, Worse, or No change — with the actual before → after numbers (knock retard, fuel trims, MAF spread, idle stability) shown next to it.
  • Steps that don't map to a measurable channel are marked so you can judge them manually instead of being given a fake verdict.
  • The feedback buttons under each prior step come pre-selected with the measured outcome — you can override with one click if the data doesn't match what you felt in the seat.

Follow-up reports know what happened last round

AI

The revision engine now receives last round's steps and their measured outcomes before writing your new tune steps. Steps that worked get reinforced or closed out; steps that didn't get a revised approach instead of a repeat of the same advice.

Behind the scenes

Log trend history on follow-up uploads

Infrastructure

Follow-up uploads now record log-trend metrics the same way first-time analyses do, so round 3 and beyond build on a full metric history for the vehicle.

v1.0.5Jul 4, 2026

The Technical Drive Review — the member white paper behind every report — now has its own spot on the homepage.

What you'll notice

Homepage: Technical Drive Review highlight

Product
  • A new homepage section shows what account holders get with every analyzed log: the long-form Technical Drive Review — a printable engineering white paper covering every channel, module finding, and revision action behind the report card.
  • Includes a document preview and direct links to start free or sign in and view yours.
v1.0.4Jul 4, 2026

Saved case reports show their full contents again — module results and tune steps included.

What you'll notice

Fixed: saved reports missing tune steps

Product
  • Opening a saved case from your vehicle's history showed an empty report — no module results and no tune steps — even though the analysis had generated them. Saved reports now show everything the original analysis produced.
  • This also affected follow-up logs added to a saved vehicle: the report looked empty when reopened. Your existing cases are intact; no re-upload needed.
Behind the scenes

Case read endpoints decode legacy-encoded reports

Infrastructure

The /cases list, detail, and dashboard endpoints now decode string-encoded stored reports (same root cause as the v1.0.3 Round 2 fix, on a different read path), with a safe empty-report fallback for malformed data.

v1.0.3Jul 4, 2026

Follow-up uploads now always run through Round 2 — and ask how last round's steps worked out.

What you'll notice

Fixed: "Did it work?" prompts on follow-up logs

Product
  • Uploading a follow-up log for a saved vehicle now reliably shows last round's tune steps with one-tap outcome buttons (Improved / No change / Worse / Not applied) — a bug kept this section from appearing.
  • The prompts now cover every step from your previous round, not just steps backed by a knowledge-base citation.
  • Picking a saved vehicle on the upload screen now takes you straight to that vehicle's Round 2 upload flow, so your logs stay attached to the right build history.
Behind the scenes

Round 2 prior-round lookup hardened

Infrastructure

The backend now decodes stored case reports defensively when carrying the prior round's steps forward; malformed or legacy-encoded reports no longer break follow-up uploads for vehicles with existing history.

v1.0.2Jul 3, 2026

Terms of Service clarify how stock calibration uploads are anonymized.

What you'll notice

New: a plain-English clause on stock calibration files

Product

If you upload an unmodified OEM stock calibration file, we now spell out exactly what happens to it: VIN, owner name/contact, and dealer code are stripped before anything is added to TuneView's knowledge base, and the anonymized result only powers aggregate stock-vs-tuned comparison features. Your original file still follows the retention schedule in the Privacy Policy.

v1.0.1Jul 3, 2026

KB taxonomy sentinels applied; first-paint stat floor updated.

Behind the scenes

KB taxonomy consolidation — Phase 2 sentinels live

Infrastructure

SPEC-4 Phase 2 SQL applied: 3,000+ GM Gen V / EcoTec3 rows normalized to the Gen5_All retrieval sentinel, 370+ LS/Gen III-IV rows normalized to a new LS_All sentinel (RPC special-cased), multiple sentinel added to the RPC list, and 10 Electric rows corrected. The engine_families count drops from 616 to 281 — expected consolidation, not a regression.

KB first-paint stat floor updated

Infrastructure

The hardcoded first-paint stats in lib/kbStats.ts updated to 15,523 entries / 843 categories / 281 engine families (2026-07-03), reflecting the post-Phase-2 baseline. The live /api/stats fetch still overwrites these on hydration.

v1.0.0Jul 2, 2026

The tuning loop closes end to end, the recommendation engine is fully live, and a real upload bug is gone.

What you'll notice

The loop closes: last round's fix gets checked, not just replaced

ProductMilestone
  • TuneView was always supposed to be a loop, not a one-shot report: tell us your goal, we walk you through specific edits, you re-log after making them, we check whether it worked before telling you what's next. That last step was missing until now.
  • After you upload a Round 2 or Round 3 log, you'll see a new section asking how last round's changes actually went: improved, no change, worse, or not applied. That answer feeds directly into the system generating your next set of steps, not into a form that goes nowhere.
  • This only shows up for steps tied to a specific recommendation, not the generic "capture more data" placeholders you sometimes see early on.

Every round now runs on the full analysis engine

AIMilestone

Recommendations are now generated using TuneView's full calibration knowledge base and outcomes already confirmed by other tuners on similar issues, instead of falling back to simplified logic. This runs automatically on every round — nothing you need to do differently.

Upload reliability

Product

We found and fixed an issue that could cause a log upload to fail with an error. If an upload didn't go through for you recently, that's resolved now — give it another try.

v0.10.46Jul 1, 2026

Homepage hero calls out the extended free beta; the email signup box is gone.

What you'll notice

Beta extended — free analysis for new and existing users

Product

A stamp-style badge now sits at the top of the homepage announcing extended beta access, with free tune analysis for both new and existing accounts.

Simplified homepage hero

Product

Removed the email capture field and its secondary "Get Early Access" button from the hero — Start Here is now the single, clear call to action.

v0.10.45Jun 24, 2026

Start Here now lands you in intake, with a cleaner site-wide look.

What you'll notice

Start Here button fixed

Product

The Start Here button on the homepage now takes you straight into intake instead of hitting a missing page.

Cleaner page labels

Product

Trimmed decorative slashes from section labels across the site and removed an unused stats ticker for a calmer, more readable layout.

v0.10.44Jun 23, 2026

Homepage leads with a live scan, plus contact and demo copy cleanup.

What you'll notice

The sample scan now leads the homepage

Product

The live CASE_001 scan card — overall grade, per-system modules, and the P1 fix — now sits directly under the hero, so you see what a TuneView report looks like before the explainer sections.

Cleaner demo and contact details

Product

The transmission module in the sample scan reads as a real finding instead of a raw NaN flag, and the contact card now points to the community Discord instead of a placeholder phone line.

v0.10.43Jun 15, 2026

Public KB and metadata surfaces are cleaner for crawlers.

What you'll notice

Public KB pages show aggregate coverage

Product

The public KB link now lands on aggregate-only coverage pages on tuneview.io, with engine-family pages that show counts and category breakdowns while row-level findings stay signed in.

Behind the scenes

SEO metadata and stats filters tightened

Infrastructure

Changelog, legal, privacy, KB, and family pages now carry page-specific canonical/social metadata. Public stats reads also keep both moderation_status=active and deleted_at IS NULL filters, and CI now checks that the first-paint KB fallback never exceeds live stats.

v0.10.42Jun 15, 2026

Homepage beta copy is calmer near pricing.

What you'll notice

Beta notice moved away from pricing

Product

The homepage now keeps one active-beta note in the hero and removes outage-flavored copy from the Early Access area, so the pricing path is not surrounded by reliability warnings.

v0.10.41Jun 13, 2026

Search engines no longer index the gated /ford section.

Behind the scenes

/ford disallowed in robots.txt while gated

Infrastructure

While the Ford section remains feature-flagged off, robots.txt now disallows /ford so the gated route is not crawled or indexed. When NEXT_PUBLIC_FORD_SECTION_VISIBLE flips on, the disallow drops automatically.

v0.10.40Jun 9, 2026

Billing cards now show the paid offer details before checkout.

What you'll notice

Plan details visible on billing cards

Product

The app billing page now shows the plan feature bullets from the same billing plan map used by pricing, including the custom session's no completed-tune guarantee before checkout.

Behind the scenes

billing copy aligned with pricing

Infrastructure

The signed-in billing cards now render canonical plan features instead of only the short description, reducing drift between the public pricing page and the final purchase surface.

v0.10.39Jun 9, 2026

Selected billing offers are clearer before sign-in.

Behind the scenes

selected tier survives the account gate

Infrastructure

The app billing route now renders the requested plan from the same canonical billing plan map used after sign-in, keeping the public CTA, account gate, and checkout path aligned.

v0.10.38Jun 9, 2026

Custom session expectations are now clearer before purchase.

v0.10.33Jun 9, 2026

Stripe return links now carry a checkout reference for support.

What you'll notice

Checkout confirmation includes a support reference

Product

When Stripe returns a customer to billing, TuneView now keeps a short checkout reference visible while billing sync completes, making support follow-up cleaner if a payment needs to be traced.

Behind the scenes

Checkout Session ID added to success redirects

Infrastructure

Stripe success URLs now include the Checkout Session ID placeholder, giving TuneView a concrete reconciliation handle on the post-payment return path.

v0.10.32Jun 9, 2026

Checkout return now waits for billing sync instead of restarting checkout.

What you'll notice

Billing return state is clearer

Product

After Stripe sends a customer back to TuneView, the billing page now says payment was received and checks for the plan update instead of immediately claiming activation before the webhook finishes.

v0.10.31Jun 9, 2026

Member dashboards now show the active plan and paid value.

Behind the scenes

dashboard reads live entitlement state

Infrastructure

The dashboard now loads the user's billing fields from the account API alongside case history, so plan messaging follows the same entitlement state used by billing and intake gates.

v0.10.30Jun 9, 2026

Milestone: pricing now leads into the live Stripe checkout path.

v0.10.29Jun 9, 2026

Start Here no longer lands on a missing auth page.

What you'll notice

Start Here sign-up path repaired

Product

Unauthenticated users who click Start Here now enter the app through a dedicated /start route, which sends them to the sign-up flow with the intake destination preserved.

Behind the scenes

auth compatibility route added

Infrastructure

The app now owns a dedicated /start route for new-user intake entry, redirects legacy /auth?next=... traffic into the dashboard auth wall, and preserves next=/portal/intake after sign-up.

v0.10.28Jun 9, 2026

Start Here now hands users directly to the app-owned three-round assessment flow.

What you'll notice

Start Here opens the app immediately

ProductMilestone

The public site now sends Start Here and Intake actions straight to app.tuneview.io, so upload, account, assessment, and follow-up report behavior live in one TuneView app path.

First assessment requires the engine datalog

Product

The app intake Files step now labels the engine datalog CSV as required for the first assessment, warns before Review when it is missing, and blocks submission until the log is attached.

Three-round assessment package is visible

ProductMilestone

Reports and upload screens now identify Round 1 as the initial assessment and Round 2/3 as the bounded follow-up re-evaluation path, so users understand what TuneView delivered and what remains available.

Behind the scenes

retired the public-site intake UI as the primary funnel

Infrastructure

The public /intake route now redirects to the app intake route, public navigation/error/portal CTAs point to the app-owned intake surface, and the old website intake form components were removed from the active tree.

follow-up upload cap enforced by the API

Infrastructure

The Round 2 upload endpoint now counts prior follow-up parser scans for the vehicle and blocks uploads after the two included re-evaluations, returning the current round and remaining upload count to the app UI.

v0.10.27Jun 8, 2026

Account pages now keep profile totals and billing recovery aligned with the live member data.

What you'll notice

Profile totals are more reliable

Product

The profile page now derives vehicle totals from both saved vehicles and owned case history, so a user with uploaded sessions does not see an empty profile summary when vehicle rows lag behind case data.

Billing load failures can be retried in place

Product

If the billing profile or Stripe portal request fails, the page now gives a clear retry path instead of leaving the account screen stuck or silent.

Behind the scenes

member account views use resilient account data fallbacks

Infrastructure

Profile counts now cross-check case ownership against vehicle rows, vehicle deletion refreshes the full account summary, and billing portal errors preserve backend detail for the UI.

v0.10.26Jun 8, 2026

Case grades now use one canonical report score across upload, dashboard, vehicle, and case views.

What you'll notice

Case grades stay consistent everywhere

Product

The dashboard, vehicle session history, and case detail page now prefer the computed report score produced by TuneView's analysis pipeline, so users do not see one grade after upload and a different grade after opening the case.

Behind the scenes

frontend score display now follows the report rollup

Infrastructure

The app now uses a shared score selector that reads report_header_rollup.computed_score first and only falls back to legacy client-side scoring when older cases do not have a report rollup.

v0.10.25Jun 8, 2026

Round 2 uploads now fail clearly and weak-signal findings are explained more honestly.

What you'll notice

Round 2 upload errors are now actionable

Product

If a follow-up upload cannot complete analysis, the app now shows a clear Round 2 upload message instead of a generic browser fetch failure.

Weak signal coverage is called out directly

Product

When TuneView receives a signal but the log is too thin for a safe calibration edit, reports now say that the signal was received, explain what coverage was missing, and hold broad table changes until the right operating window is logged.

Behind the scenes

Round 2 API failures return structured JSON

Infrastructure

The canonical vehicle Round 2 upload endpoint now catches unexpected storage, parser, and database failures and returns a structured API response the app can display.

fallback recommended actions now use the report contract

Infrastructure

Report assembly no longer emits vague legacy investigate actions. Fallbacks now choose collect_better_log when coverage is weak and reserve calibration_change for concrete module instructions.

v0.10.24Jun 8, 2026

Milestone: Round 2 reports now produce clearer HP Tuners-ready revision steps.

What you'll notice

Round 2 tune steps are now table-first and cell-specific

MilestoneProduct
  • Member follow-up reports now lead with concrete HP Tuners navigation paths, table names, operating windows, percent or degree changes, and validation checks instead of generic review language.
  • When signal coverage is weak, TuneView now says the signal was received and explains what it proved, what coverage is missing, and why a table edit is being held.
  • The primary issue, recommended action, and long-form technical review now point at the same highest-priority revision step so the report reads as one clear action plan.
Behind the scenes

backend revision-step generator expanded across OEM families

Infrastructure

The canonical Round 2 parser path now emits manufacturer-safe HP Tuners table guidance for GM, Ford, Mopar, import/euro, and unknown-platform fallbacks while keeping edits tied to logged RPM/load, pedal, speed, and slip regions.

app report surfaces expose revision-step table badges

Product

Case and upload report views now carry the generated target_table field through the UI so users can see the exact table or coverage plan associated with each revision step.

v0.10.23Jun 6, 2026

Start Here upload, submitted report access, and Round 2 handoff reliability fixes.

What you'll notice

Start Here accepts larger baseline logs

Product

The intake form no longer blocks baseline CSV logs at the old 10 MB browser limit. The visible upload limit now matches the backend intake limit.

Submitted reports stay reachable

Product

The submitted report page now preserves the report access token and keeps polling the review engine correctly, so completed assessments open as report cards instead of failing with a backend 404.

Behind the scenes

Round 2 vehicle handoff aligned with signed-in ownership

Infrastructure

When the same intake email signs in for follow-up logs, the database API can attach the anonymous intake vehicle to that account and continue through the canonical Round 2 parser path.

v0.10.22Jun 6, 2026

Milestone: case reports now separate TuneView's computed analysis from AI-written explanation.

What you'll notice

Report provenance is now visible on case reviews

MilestoneProductAI

Case reports now show a provenance rollup and source badges so users can see what TuneView computed, what came from KB-backed guidance, and what the AI helped explain in plain language.

Behind the scenes

case views render report provenance metadata

Infrastructure

Signed-in and anonymous case views now read the report_header_rollup and provenance_summary fields produced by the backend report pipeline.

v0.10.21Jun 1, 2026

Milestone: OKOT means TuneView now treats the calibration knowledge base as the single product truth.

What you'll notice

KB Explorer is now a window into the canonical knowledge base

MilestoneProductAI

The signed-in KB Explorer reads the same calibration knowledge base used by TuneView's parser and recommendation flow. Public pages show aggregate coverage only; detailed row browsing stays inside the app.

Small OKOT footer note added

Product

A quiet OKOT note now lives in the site footer as a reminder: one KB, one truth.

Behind the scenes

removed legacy KB paths from active product code

Infrastructure

Stats, ticker, app Explorer, backend KB stats, and parser-backed table analysis now point at the canonical calibration knowledge base. Legacy row-import routes and migrations were removed from the active tree.

parser ownership tightened

Infrastructure

HPT table-upload parsing now delegates through the canonical parser module so tune/log parsing has one owner.

v0.10.20Jun 1, 2026

Milestone: this page is now the only TuneView changelog.

What you'll notice

One changelog for website, app, backend, and KB work

MilestoneProduct

The app changelog now redirects here, so release notes for TuneView's public site, member app, backend/API, uploads, cases, vehicles, billing, and KB Explorer all live in one place.

App KB Explorer updated to the live data-heavy view

ProductAI

The member app KB Explorer now loads the live KB rows by paging through the dataset, shows loaded and total row counts, and builds brand, platform, ECM/PCM, category, and confidence filters from the actual data.

Case and upload flows now use the active app session

Product

Case detail pages opened from the dashboard use the signed-in app session, and upload, billing, verify, and consent actions resolve the active TuneView API path consistently.

Behind the scenes

canonical changelog moved to tuneview.io

Infrastructure

app.tuneview.io/changelog redirects to www.tuneview.io/changelog, and the app nav points directly to the canonical public changelog.

KB Explorer avoids displaying source/provenance columns

Security

The app KB table shows operational tuning knowledge fields without rendering source/provenance columns in the visible interface.

v0.10.19Jun 1, 2026

The public site now funnels member actions into the single TuneView app.

What you'll notice

Sign in, dashboard, vehicles, cases, and KB now open the app

Product

The main website is now the public front door. Member actions route to app.tuneview.io, where login, vehicle tracking, case review, uploads, and the live KB Explorer belong.

Behind the scenes

removed the second member-surface path from the website

Infrastructure

Website routes for login, dashboard, portal, vehicles, cases, and KB now redirect to the app instance instead of keeping parallel product pages alive on tuneview.io.

v0.10.18May 31, 2026

Milestone: Ford and Mopar tuning support are now called out on the homepage.

What you'll notice

Ford and Mopar live-support badges added

MilestoneProduct

The TuneView homepage now shows separate Ford tuning support and Mopar tuning support badges marked now live, making the expanded OEM coverage visible before a tuner reaches the supported-platforms table.

Behind the scenes

homepage support messaging aligned with live OEM coverage

Infrastructure

Hero support badges and the How It Works support chip now reflect Ford and Mopar as live tuning-support surfaces.

v0.10.17May 29, 2026

Milestone: Mopar Gen III Hemi intake form support lets users select exact displacement at submission.

What you'll notice

Mopar Gen III Hemi now selectable in the intake form

MilestoneProduct

When submitting an intake via /intake, you can now select 'Mopar Gen III Hemi' as your platform (step 2) and pick your exact displacement variant: 5.7L Eagle, 6.1L SRT8, 6.2L 392, 6.4L Apache / 392 SRT, or 6.2L SC Hellcat / Redeye. Previously Mopar users had to select 'Other / not listed'. Your submission now routes directly to Mopar KB entries.

Behind the scenes

feat(LAM-1065): mopar_gen3_hemi added to intake Platform type + hemi_displacement picker

Infrastructure
  • IntakeForm.tsx: mopar_gen3_hemi added to Platform union, MoparVariant type added, hemi_displacement field wired through FormState → platform_data payload.
  • thresholds.ts ENGINE_FAMILY_MAP: mopar_gen3_hemi → gen3_hemi mapping added.
  • SQL migration: hemi_displacement column added to intake_submissions + mopar_gen3_hemi added to platform check constraint.
v0.10.16May 26, 2026

TuneView's public site reopened after the maintenance window.

What you'll notice

The public homepage is open again

Product

The temporary maintenance page has been removed and the normal TuneView marketing site, Start Here entry point, knowledge-base positioning, pricing, and beta signup sections are back online.

Behind the scenes

release: restored indexable homepage

Infrastructure

The homepage now renders the standard TuneView sections again instead of the noindex maintenance screen.

v0.10.15May 26, 2026

Start Here now sends baseline CSV uploads through the datalog lane.

What you'll notice

Baseline CSV uploads are treated as logs

Product

The Start Here form now submits baseline CSV files as datalogs so the review engine can use them as log evidence for the initial assessment.

Behind the scenes

intake: aligned upload field with backend attachment kinds

Infrastructure

The marketing intake form now posts baseline CSV attachments with the `datalogs_0` field instead of the calibration-file field.

v0.10.14May 26, 2026

Website subscribe now matches Resend's current Contacts flow.

What you'll notice

Email signup works with the current Resend contacts system

Product

The site no longer depends on an old audience-list ID for website signups, so the beta list can accept new subscribers through Resend's current Contacts workflow.

Behind the scenes

email: removed deprecated audience-id dependency

Infrastructure

Subscribe and unsubscribe now use global Resend Contacts calls instead of requiring a deprecated `RESEND_AUDIENCE_ID` value.

v0.10.13May 26, 2026

Public-site QC tightened private routes and mobile pages.

What you'll notice

More mobile pages now fit narrow screens

Product

The calibrator, for-shops, and trust pages were checked on mobile and adjusted where long calls-to-action, code blocks, or the live stats ticker could push content sideways.

Behind the scenes

qc: private routes now carry page-level noindex signals

Infrastructure

Login, portal, case, and vehicle routes now send noindex metadata in addition to robots.txt blocks, and the retired waitlist API route was removed from the active route tree.

v0.10.12May 26, 2026

Mobile maintenance-page layout tightened.

What you'll notice

Maintenance page reads cleanly on mobile

Product

The temporary maintenance page headline and Feedback button now fit small screens without clipping off the right edge.

Behind the scenes

qc: fixed mobile overflow on the public homepage

Infrastructure

A production QC pass caught mobile horizontal overflow on the maintenance landing page. The headline now wraps more safely and the fixed feedback control has tighter small-screen spacing.

v0.10.11May 26, 2026

Pricing now leads users into a real checkout path.

v0.10.10May 25, 2026

Initial report wording now comes clean from the review engine.

What you'll notice

Start Here report wording is cleaner at the source

Product

Initial assessment reports now rely on the database review engine to remove unsupported file-type claims before the site displays the report.

Behind the scenes

cleanup: removed duplicate site-side assessment copy rewriting

Infrastructure

The site no longer patches assessment wording in its proxy route because the database API now returns normalized Round 1 report copy.

v0.10.9May 25, 2026

Case report access tightened.

What you'll notice

Vehicle Hub report lookups are stricter

Security

The public site no longer falls back to reading an intake report from a raw case ID. Trial report access stays on the submitted report link with its dedicated access token.

Behind the scenes

security: removed raw case-id assessment fallback

Security

The /cases route now avoids calling the database assessment endpoint without a report access token when no matching case row is visible.

v0.10.8May 25, 2026

Public report access hardened.

What you'll notice

Start Here report links now use explicit access tokens

Security

Submitted Start Here reports still open from the confirmation screen, but the report link now carries a dedicated access token instead of relying on the raw submission ID alone.

Behind the scenes

security: public assessment polling no longer treats UUIDs as access keys

Security

The site forwards a per-submission report access token to the database review engine when polling the initial assessment.

v0.10.7May 23, 2026

Milestone: Mopar Gen III Hemi now live — 6,174+ KB entries across 392 categories.

What you'll notice

Mopar Gen III Hemi now supported (5.7, 6.1, 6.2, 6.4 — including Hellcat/Redeye 6.2SC)

MilestoneProduct

TuneView's KB covers Mopar Gen III Hemi across 14+ phases — knock, fueling, VVT, cam, and transmission categories. Submit intakes via /intake using the 'Other / not listed' platform option and specify Gen III Hemi in the notes. The /for-shops Supported Platforms table now reflects Gen III Hemi as LIVE. Pentastar V6, EcoDiesel 3.0, and Cummins 6.7 intake form options are coming next.

Behind the scenes

feat: Mopar Gen III Hemi /for-shops status updated to LIVE + platform rows added

Infrastructure
  • /for-shops COVERAGE: Mopar Gen III Hemi live: false → live: true, variants expanded to include Hellcat/Redeye 6.2SC.
  • Pentastar V6, EcoDiesel 3.0, and Cummins 6.7 rows added as COMING SOON — intake form support tracked in LAM-1065.
  • 6,174+ KB entries across 392 categories and 221 engine families already cover Mopar platforms end-to-end.
v0.10.6May 22, 2026

Onboarding email URL and pricing corrections.

Behind the scenes

Onboarding email URLs and pricing corrected

Infrastructure
  • Email1: unsubscribe URL already fixed in v0.10.5.
  • Email2: /upload → /intake (button CTA).
  • Email3: /reports → /portal (View Your Report button).
v0.10.5May 22, 2026

Onboarding email unsubscribe link fixed.

Behind the scenes

Onboarding email unsubscribe URL corrected

Infrastructure

The unsubscribe link in the welcome email pointed to the UI page instead of the processing endpoint, so clicking it showed an error instead of completing the unsubscribe. Fixed to route through /api/unsubscribe.

v0.10.4May 22, 2026

Case page now has a direct link back to the Portal dashboard.

What you'll notice

← Portal link on case and assessment pages

Product

The scan report page now shows a '← Portal' link so you can return to your vehicle dashboard in one click instead of navigating via the homepage.

v0.10.3May 22, 2026

Login redirects authenticated users to portal; KB ticker first-paint updated.

What you'll notice

Sign-in page sends authenticated users to their portal

Product

If you navigate to the sign-in page while already logged in, you now land directly in your vehicle dashboard instead of the homepage.

Behind the scenes

KB ticker first-paint fallback updated

Infrastructure

The hardcoded first-paint stats for the knowledge base ticker were updated to 4,176 entries / 165 categories / 191 engine families (2026-05-22), reducing the flash of stale numbers before live data loads.

v0.10.2May 22, 2026

Navbar portal shortcut for signed-in users; grade D color fix.

What you'll notice

Navbar shows "Portal" instead of "Early Access" when signed in

Product

Returning users now see a direct "Portal" link in the top navigation bar, taking them straight to their case dashboard. New (unauthenticated) visitors continue to see "Early Access" as before.

Behind the scenes

Grade D displayed in red on case detail fallback view

Product

The assessment ready state on the case page was rendering a Grade D badge in amber instead of red, inconsistent with the portal and submitted page. Fixed.

v0.10.1May 22, 2026

Portal UX polish: shorter case IDs, fixed upload navigation.

What you'll notice

Case IDs now show as short 8-character codes

Product

The case dashboard and case detail pages were showing full 36-character UUID codes (e.g. "a1b2c3d4-e5f6-..."). They now show a concise 8-character code (e.g. "A1B2C3D4") that's easier to reference and share.

Upload page back/cancel navigation fixed

Product

The "Back" and "Cancel" links on the Round 2 upload page now go directly to your case instead of routing through an extra redirect.

v0.10.0May 22, 2026

Intake form review now shows human-readable labels.

What you'll notice

Intake review summary: plain English instead of codes

Product

The review step at the bottom of the intake form was showing raw internal codes (e.g. "gm_lsx_ltx", "pump_only") instead of the labels you selected. Fixed — it now shows "GM LSx / LTx (incl. LSA / LT4)", "Pump gas only", etc.

v0.9.10May 22, 2026

Milestone: Ford Coyote 5.0 and Raptor 3.5 platform support now live.

What you'll notice

Ford Coyote 5.0, Raptor 3.5, GT350/GT500, and Godzilla 7.3 now supported

MilestoneProduct

TuneView now accepts intakes for Ford performance platforms. The intake form at /intake includes all four Ford variants in the platform selector — Coyote shows a generation field (Gen 1/2/3/4), Raptor shows terrain mode preferences. Platform-specific KB entries cover knock, fueling, MAF, and transmission categories. The How It Works coverage chip now reflects GM Gen 5 LT/LS + Ford Coyote 5.0 + Ford Raptor 3.5.

Behind the scenes

feat: Ford platform ENGINE_FAMILY_MAP wiring + KB seed

Infrastructure
  • Ford Coyote, Raptor 3.5 EcoBoost, GT350/GT500 (Voodoo/Predator), and Godzilla 7.3 families added to ENGINE_FAMILY_MAP.
  • KB seeded with 50+ Ford rows via Ford Tuning Specialist agent. Round-trip assessment verified end-to-end.
  • How It Works coverage chip updated: Gen 5 LT · LS · 6L80E → GM Gen 5 LT/LS · Ford Coyote 5.0 · Ford Raptor 3.5.
v0.9.9May 21, 2026

Case assessment page now shows full report data; unsubscribe flow fixed.

What you'll notice

Case page now shows full assessment detail

Product

When the vehicle record is still syncing, the case page now renders your primary concerns, round 2 requirements, risk areas, and tune approach directly — instead of showing only grade and summary. The full portal report is still accessible via the 'View Full Report' link.

Behind the scenes

fix: unsubscribe link in emails was broken

Infrastructure
  • WelcomeEmail footer link pointed to /unsubscribe (UI page) instead of /api/unsubscribe (processing route). Clicking in email never processed the opt-out.
  • Added RFC 8058 POST handler to /api/unsubscribe for one-click unsubscribe compliance (Gmail, Apple Mail use this).
  • Refactored shared processUnsubscribe() to eliminate duplicate logic.

fix: SEO metadataBase added to root layout

Infrastructure

Added metadataBase to root layout so Open Graph and canonical URLs resolve correctly across all pages. Uses NEXT_PUBLIC_SITE_URL with www.tuneview.io fallback.

fix: EarlyAccess section masked 5xx errors

Infrastructure

The EarlyAccess email capture section had the same 5xx masking gap as EmailCapture — fixed to show a generic user message for all server errors.

v0.9.8May 21, 2026

Broken sign-up links corrected; intake report accessible from case detail page.

What you'll notice

Case detail page now links to your intake report

Product

The vehicle case page (/cases/{id}) now has a direct link to view your full Round 1 intake report card. Previously there was no way to navigate back from the case to the original assessment.

Behind the scenes

fix: broken /signup links replaced with /intake

Infrastructure
  • WelcomeEmail CTA button: tuneview.io/signup → tuneview.io/intake.
  • Two blog post CTAs in lt1-knock-pattern and ltft-fuel-trim posts updated to match.
  • /signup route does not exist — /intake is the correct new-user entry point.

fix: EmailCapture 5xx error masking

Infrastructure

Internal server errors from the subscribe API no longer surface raw error messages to users. Generic user-friendly message shown for all 5xx responses.

v0.9.7May 21, 2026

Stories page hero images load correctly; all four posts now show article art.

What you'll notice

Stories page hero images fixed

Product

All four technical articles on the /stories page now display their hero illustrations. A routing conflict was causing the images to 404 — fixed by aligning the asset paths with the canonical /stories route and updating the blog redirect to not intercept static files.

Behind the scenes

fix: blog redirect excluded static assets; hero SVGs moved to /stories/

Infrastructure
  • next.config.ts: constrained /blog/:slug redirect to slug([^.]+) so file-extension paths are not redirected.
  • Copied hero SVGs from public/blog/ to public/stories/ to cover CDN-cached 308 redirects.
  • Updated all four blog post frontmatter hero paths to /stories/hero-*.svg (canonical route).
  • Wired missing hero images for lt1-knock-pattern and ltft-fuel-trim posts.

refactor: Supabase client singleton

Infrastructure

Extracted getSupabaseClient() singleton into lib/supabase.ts. Updated login, portal, and vehicle-upload pages to share a single GoTrueClient instance, eliminating the browser warning about multiple concurrent instances.

v0.9.6May 20, 2026

Vehicle Dashboard now shows letter grades and a summary stats row.

What you'll notice

Vehicle Dashboard shows A/B/C/D grade badges

Product

Each vehicle card on the dashboard (/portal) now displays a circular grade badge — A, B, C, or D — derived from the assessment confidence score. Pending vehicles show a placeholder ring while the assessment runs. A stats row at the top shows total vehicles, ready assessments, and in-queue count at a glance.

Behind the scenes

feat(portal): gradeFromConfidence() + stats row

Product
  • Added gradeFromConfidence() helper mapping overall_confidence to A/B/C/D letter + color palette matching UX Designer portal-dashboard.html mockup.
  • Replaced raw CONF % badge with 48px circular grade ring. Stats row renders only when cases.length > 0.
v0.9.5May 20, 2026

Intake form now guides you to newly revealed fields when your build changes.

What you'll notice

Blower pulley field scrolls into view when you select Supercharger / blower

Product

Previously, selecting 'Supercharger / blower' from the Forced Induction dropdown silently inserted a new required field mid-form, shifting everything below it. Customers filling top-to-bottom would enter fuel pump data into the blower pulley slot. The field now scrolls into view with a brief cyan highlight so it's impossible to miss.

Behind the scenes

Fix(UX-audit D-4): scroll-into-view + flash animation on conditional field insert

Product
  • Added useEffect watching forced_induction in IntakeForm.tsx. When value changes to 'blower', blowerPulleyRef.current.scrollIntoView({ behavior: 'smooth', block: 'center' }) fires.
  • A 1.2-second CSS ring flash (box-shadow transition-shadow duration-500) provides visual confirmation. State auto-clears via setTimeout to avoid stale highlight on re-render.
v0.9.4May 21, 2026

Terms of Service updated to v1.1 — full automotive tuning liability language.

What you'll notice

Terms of Service v1.1

ProductSecurity
  • The /terms page has been rewritten from a thin 9-section placeholder to a comprehensive 14-section Terms of Service covering automotive tuning liability, emissions compliance, tune IP ownership, dyno testing assumptions, refund policy, and indemnification.
  • Key additions: California Civil Code §1542 waiver, $100 liability cap, assumption-of-risk acknowledgment, and a Legal Notices section with mailing address.
  • Contact section now includes [email protected] and [email protected]. Privacy Policy link added.
v0.9.3May 20, 2026

Case page no longer loops forever when vehicle_id is null.

What you'll notice

Scan report accessible even when case sync is delayed

Product

If your assessment completed but the Vehicle Hub page hadn't synced yet, it would spin indefinitely with a contradictory 'Assessment in progress / assessment is ready' message. The page now detects this state, stops refreshing, and shows a direct link to your Round 1 report card.

Behind the scenes

Fix(LAM-952/889): AssessmentReadyState replaces infinite-refresh PendingState fallback

Product
  • /cases/{id} was calling PendingState with message='Your assessment is ready' while PendingState unconditionally rendered kicker 'ASSESSMENT IN PROGRESS' — three contradictory signals at once (LAM-889).
  • Root cause: when vehicle_id=null on the backend, no Supabase cases row is written, so /cases/{id} found nothing and entered a 10-second auto-refresh loop that could never resolve (LAM-952).
  • Fix: new AssessmentReadyState component — consistent copy (ASSESSMENT COMPLETE), no auto-refresh, shows grade + summary from the backend assessment, and links to /portal/intake/submitted where the full report card is always available.
  • Backend must still ensure vehicle_id is populated and the cases row is created — tracked under LAM-952.
v0.9.2May 21, 2026

For-shops email capture now uses the live subscriber pipeline.

Behind the scenes

Fix: /for-shops email form wired to subscriber pipeline

Product
  • ForShopsClient was still posting to /api/waitlist (old Supabase-only route). Shop signups were not reaching the Resend audience or triggering the welcome email.
  • Migrated to /api/subscribe with source=for_shops_page, matching the Hero and EarlyAccess capture points fixed in v0.9.0.
  • 409 (already subscribed) now shows success state. sessionStorage deduplication prevents the form from re-opening on the same session. Progressive-enhancement fallback (action/method attributes) matches the other forms.
v0.9.1May 20, 2026

Accessibility pass, contrast fixes, and privacy consent wired into intake.

What you'll notice

Privacy Policy consent link in intake form

ProductSecurity

The intake submit area now shows an explicit link to the TuneView Privacy Policy (v1.1.1). Submitting the form is consent — that's now visible at the point of action.

Blog now server-rendered

Product

The /blog index was client-rendered, which meant the page arrived blank until JavaScript loaded and tag filtering happened client-side. It now renders server-side — content is in the HTML on first byte, tag filtering works without JS.

Branded 404 page

Product

Broken URLs now show a TuneView-styled 404 with navigation back to home, blog, and intake — instead of Next.js's default error page.

Intake form required-field markers now visible

Product

Required fields were marked with '&star;' (an HTML entity) which rendered as literal text in browsers rather than the ★ character. Fixed by replacing all 13 instances with the actual Unicode character.

Stories page: skeleton while posts load

Product

The /stories page was rendering the footer before posts appeared. StoriesList uses useSearchParams() which defers client hydration — the Suspense boundary had no fallback so the page would flash Stories → footer → posts on load. Added an animated card skeleton as the fallback.

Social sharing cards for all pages

Product

The homepage, intake, for-shops, trust, changelog, and other non-blog pages had no og:image — social shares showed blank previews. Added app/opengraph-image.tsx which generates a branded 1200x630 card (TuneView wordmark, cyan headline, dark background) via Next.js ImageResponse. Blog and stories posts already had per-post images from their hero images.

Behind the scenes

Contrast audit: text-t3 → text-t2 on readable body copy

Product
  • text-t3 (#3A5068) on #060810 background is 2.7:1 contrast — fails WCAG AA.
  • Fixed on: ForShopsClient hero kicker, HowItWorks step captions (card + modal), blog/[slug] author/date metadata, blog post email-capture pitch.
  • text-t3 retained for intentionally de-emphasized UI chrome (step labels, fine print, placeholders).

HowItWorks step cards: keyboard + ARIA

Product
  • Step cards were click-only divs with no keyboard path. Added role=button, tabIndex=0, onKeyDown (Enter/Space), and focus-visible outline.
  • Modal overlay: role=dialog, aria-modal, aria-label. Close button: aria-label=Close + focus-visible ring.

Loading skeleton for /cases/:id

Infrastructure

Vehicle Hub makes Supabase + backend API calls server-side with no fallback. Added cases/[id]/loading.tsx skeleton that renders immediately while data resolves.

Intake form: label contrast + file drop zone keyboard access

Product
  • All form field labels upgraded from text-t3 (2.7:1 contrast, fails WCAG AA) to text-t2 (~9:1).
  • File drop zone made keyboard-accessible: role=button, tabIndex=0, Enter/Space triggers file picker, focus-visible ring.
  • Instructional copy in file, compliance, and privacy sections upgraded to text-t2.

Branded error boundaries (app-wide + Vehicle Hub)

ProductInfrastructure
  • app/error.tsx: catches unexpected server/client errors in any route, shows TuneView-styled error with retry button and nav links.
  • app/cases/[id]/error.tsx: Vehicle Hub-specific error with backend-unavailability context and in-place retry via unstable_retry.
  • Previously all errors fell through to Next.js's default unbranded error page.

Contrast audit continued: trust, stories, login, upload, blog states

Product
  • trust/page.tsx: code annotation (codeNote) and Questions? paragraph: text-t3 → text-t2.
  • stories/[slug]/page.tsx: author/date/readTime meta row: text-t3 → text-t2.
  • login/page.tsx: CHECKING SESSION / LOADING fallbacks and Email label: text-t3 → text-t2.
  • vehicle/[id]/upload/page.tsx: AUTHENTICATING, file field labels, hints, Additional Notes label: text-t3 → text-t2.
  • IntakeForm: file hint text, platform-other coverage note: text-t3 → text-t2.
  • EarlyAccess: no-spam reassurance copy, Pricing tier name kicker, Proof demo vehicle subtitle: text-t3 → text-t2.
  • BlogEmpty + BlogNotFound empty/not-found state messages: text-t3 → text-t2.
  • Intentional t3 retained: code comment kickers (// SIGN IN etc), logo splits, scroll indicator, placeholders, hover-only nav links, UI demo metadata labels.

Contrast sweep final: legal pages, PostCard, Vehicle Hub subtitle, navigation links

Product
  • privacy/page.tsx + privacy/lambdaworx/page.tsx: version metadata and policy redirect box: text-t3 → text-t2.
  • terms/page.tsx: version metadata: text-t3 → text-t2.
  • cases/[id]/page.tsx: engineFamily subtitle (e.g. 'L86 6.2L GEN IV'): text-t3 → text-t2.
  • PostCard: date and author/readTime rows in both featured and grid variants: text-t3 → text-t2.
  • Footer nav links (Trust, Privacy, Terms, Changelog, For Shops): text-t3 → text-t2. These are legal/navigation links that must be readable.
  • Navbar desktop nav links: text-t3 → text-t2. Same fix as footer — navigation links that need to be read.
  • cases/[id] back links (StateShell + report footer): text-t3 → text-t2.
  • unsubscribe/page.tsx back link: text-t3 → text-t2.

Intake form: autocomplete + label association for personal info fields

Product
  • autocomplete='name/email/tel/organization' added to Name, Email, Phone, and Shop fields — mobile autofill now works.
  • autocomplete='email' added to EarlyAccess, EmailCapture, and For Shops email capture inputs.
  • autocomplete='off' on VIN field — browsers won't suggest stale VINs.
  • htmlFor+id pairs added to Name, Email, Phone, Shop, and VIN — clicking a label now focuses the right input; screen readers explicitly associate labels to inputs.

404 page: noindex metadata

Infrastructure

app/not-found.tsx now exports robots: { index: false } — 404 pages won't appear in Google results.

Contrast sweep complete: Vehicle Hub report, empty states, footers

Product
  • Vehicle Hub report (cases/[id]): CONFIDENCE, SAFETY, PRIMARY ISSUE, WOT PULL, module names, CONF%, step system names, card type labels, NEXT STEP — all text-t3 → text-t2. These are the core data labels in a paid report.
  • BlogEmpty + BlogNotFound: empty-state kickers (// 404, // NOTHING HERE YET) — text-t3 → text-t2.
  • HowItWorks: [ESC] close button text — text-t3 → text-t2. Close actions must be visible without hover.
  • IntakeForm: remove-file button (×), review summary section headers, field name labels — text-t3 → text-t2.
  • KBCounter: stat sub-labels (+N this month, category examples, engine family examples) — text-t3 → text-t2.
  • ScanDemo: OVERALL SCORE label — text-t3 → text-t2.
  • Pricing: price unit labels (/case, /mo) — text-t3 → text-t2. Users need to read the billing model.
  • Footer: LambdaWorx attribution lines — text-t3 → text-t2.
  • error.tsx + cases/error.tsx: Error ref digest shown to user — text-t3 → text-t2.
  • trust/page.tsx: LambdaWorx attribution line — text-t3 → text-t2.
  • vehicle/upload: Cancel link — text-t3 → text-t2.

Navbar: mobile hamburger keyboard access + ARIA

Product
  • Added Escape key handler to close the mobile nav drawer (useEffect on document keydown).
  • Hamburger button: added focus-visible:outline ring, aria-expanded, and dynamic aria-label (Open/Close menu).
  • Nav element: aria-label=Main navigation added so landmark navigation is properly labelled.

Keyboard pass: skip-to-content, focus management, focus-visible rings

Product
  • layout.tsx: skip-to-content link added (sr-only, reveals on Tab, jumps to #main-content past Navbar).
  • HowItWorks modal: focus now moves to the [ESC] close button when modal opens — keyboard users don't need to Tab through the full modal to find a dismiss action.
  • ShareRow, LoadMoreButton, TagBadge, EmailCapture, EarlyAccess, IntakeForm, login, vehicle upload: focus-visible:outline rings on all buttons that were missing them.

ARIA: screen reader announcements + KbTicker exclusion

Product
  • KbTicker: aria-hidden=true — the scrolling knowledge-base banner is decorative (repeated 16×) and was being read in full by screen readers.
  • EmailCapture + EarlyAccess: role=status on success message, role=alert on error message.
  • Login magic-link sent panel: role=status + aria-live=polite so screen readers announce 'Check your email' after submit.
  • IntakeForm submission error: role=alert so screen readers interrupt to announce validation failures.
  • portal/intake/submitted: ErrorState div now has role=alert so screen readers announce polling failures. ProcessingScreen section gets aria-label=Assessment processing for orientation.
  • for-shops/ForShopsClient: role=status on success, role=alert on error.

Sitemap SEO: missing pages added, /stories and /blog both indexed

Infrastructure
  • sitemap.ts was missing /intake (main conversion page), /stories, and /terms — all added.
  • Post entries now emit both /stories/:slug (priority 0.7) and /blog/:slug (priority 0.6) so both routes are indexed. Each page has its own canonical URL.
  • not-found.tsx: BLOG navigation link updated to /stories to match the Navbar.

Focus-visible audit complete + filtered stories empty state

Product
  • Final focus-visible pass: IntakeForm remove-file button (×), app/error.tsx retry button, and cases/[id]/error.tsx retry button were missing keyboard focus rings. All three now have focus-visible:outline-cyan/60.
  • Every <button> in the codebase now has an explicit focus-visible ring — keyboard navigation is complete across all interactive elements.
  • StoriesList: filtering by tag with no matching posts now shows a '// NO RESULTS' empty state instead of silently rendering a blank area below the tag filter.

Intake form: section landmarks, file validation errors, tag filter group label

Product
  • IntakeForm: all 8 form sections now carry aria-label (Contact information, Vehicle information, Hardware modifications, Platform-specific details, Tuning goals, File attachments, Compliance and intended use, Review and submit) — screen reader users can navigate the long form by named regions.
  • FileDropZone: replaced blocking browser alert() dialogs with inline role=alert error messages that appear in context and auto-dismiss after 4 seconds. Wrong file type and limit-exceeded errors are now announced without freezing the page.
  • TagFilter: added role=group + aria-label='Filter by tag' to the filter button group — screen readers announce the group purpose when navigating into it.

Intake form: complete label association for all fields

Product
  • Every input, select, and textarea in the intake form now has an explicit htmlFor/id pair — 30+ fields total across Vehicle Info, Hardware, Platform-specific, Goals, and Compliance sections.
  • Clicking any label now reliably focuses the correct field in all browsers. Screen readers announce the correct field label when the input receives focus.
  • Signature field: added autoComplete=name so mobile keyboard can pre-fill from contact suggestions.
  • Vehicle year/make/model/trim: autoComplete=off prevents browsers suggesting stale vehicle data from previous form fills.

ARIA: tag filter state, share button label, nav current page, vehicle field labels

Product
  • TagBadge: interactive tag filter buttons now carry aria-pressed — screen readers announce whether a tag is active or inactive.
  • ShareRow copy button: added aria-label that changes from 'Copy link to clipboard' to 'Link copied' after the copy action — previously the icon-only button was unlabeled on mobile.
  • Navbar: desktop and mobile nav links now carry aria-current=page on the active route — screen readers can identify the current page in the navigation landmark.
  • IntakeForm vehicle fields: Year, Make, Model, and Trim now have htmlFor/id pairs and autocomplete=off — clicking a label focuses the field; browsers won't suggest stale vehicle data.

Intake form: label association for all select fields + keyboard focus on inputs

Product
  • All 11 <select> elements in IntakeForm (Platform, Cal file, Forced induction, E85 pump, FFS wiring, Headers, Cats, Fuel strategy, Power priority, Trans, Intended use) now have explicit htmlFor/id pairs.
  • Clicking a label now focuses the corresponding select in all browsers. Screen readers announce the correct label when each select receives focus.
  • HowItWorks modal: focus now returns to the step card that opened the modal when the modal closes (Escape or overlay click). Keyboard users don't lose their place in the page.
  • All text inputs, selects, and textareas in IntakeForm, login, EmailCapture, EarlyAccess, ForShops, and vehicle upload now show a focus-visible:ring on keyboard Tab — previously outline:none removed the ring for keyboard users as well as mouse users.
  • login/page.tsx + vehicle/upload: error paragraphs now have role=alert so screen readers interrupt to announce auth and upload failures.
v0.9.0May 19, 2026

Vehicle Hub, live AI assessments, and end-to-end intake pipeline — verified clean on a real CTS-V dry run.

What you'll notice

Vehicle Hub page with Round 1 assessment

Product

After submitting an intake, you now have a dedicated vehicle page showing your build details and the full Round 1 assessment card — executive summary, primary concerns by severity, and a Round 2 upload CTA.

Intake form wired end-to-end

Product
  • The website intake form now runs through the full backend pipeline: draft creation, file attachments, assessment trigger, and ref number — instead of only writing to a legacy table.
  • The submitted page shows real processing status and transitions to the report card when the assessment completes.

Round 2 upload link fixed

Product

The 'Upload Round 2 Logs' button was redirecting unauthenticated users to the intake form instead of the login page. Fixed — the Round 2 upload loop is reachable again.

AI assessments are live

ProductAI

Assessments were silently stuck in fixture mode because the AI enablement flag was unset in production. Now active — real AI-generated report cards for every intake.

Privacy policy rewritten

Product

Separate privacy policies for LambdaWorx and TuneView, replacing the shared placeholder.

Vercel auto-deploy from GitHub restored

Infrastructure

Pushes to main now trigger Vercel deploys again. The webhook had stopped firing since late April.

Behind the scenes

End-to-end CTS-V dry run verified clean

Infrastructure

Full intake-to-assessment flow verified with a synthetic 2012 CTS-V build (LSA 6.2L, E67 ECM, DW 90lb injectors, Lingenfelter pulley+intake). All 10 defects from the prior dry run confirmed fixed.

Assessment generation JSON parsing hardened

InfrastructureAI
  • The assessment generator was failing on unterminated JSON strings in LLM responses.
  • Response handler now parses robustly with fallback extraction so a truncated completion no longer breaks the entire intake flow.

Intake API 502 resolved

Infrastructure

The Vercel /api/intake proxy was crashing on POST due to misconfigured proxy-to-Railway path. Fixed and load-verified.

Anthropic API credits replenished

InfrastructureAI

Assessment generation was blocked on exhausted credits. Replenished to unblock the live pipeline.

Supabase env vars verified in Vercel prod

InfrastructureSecurity

SUPABASE_SERVICE_ROLE_KEY and NEXT_PUBLIC_SUPABASE_URL confirmed present and correct in the production environment.

OEM generalization data model audit

Infrastructure

Design doc and schema diff proving TuneView can carry GM LSA and Ford Coyote using shared flex-fuel, fuel-system, and log-channel entities. No production refactor yet — design only.

Agent fleet and KB pipeline recovered

Infrastructure
  • Three tuning specialists were stuck in error state — recovered and re-activated.
  • KB ingest pipeline unblocked after Railway and Vercel dashboard changes.
v0.8.5May 18, 2026

Intake regression fixed — file uploads work again.

What you'll notice

Intake file uploads work again

Product

An intake regression on Sunday made every submission fail with a storage upload error. The upload path is now async-streamed end to end, so attachments save correctly and the intake completes through to the report-card handoff.

Behind the scenes

Storage upload streams via async iterator on httpx.AsyncClient

Infrastructure
  • Sunday's async-Supabase migration shipped a sync file handle into httpx 0.28's AsyncClient.post(content=), which rejects it.
  • The upload now wraps file reads in a 64KB-chunk async generator and sets Content-Length explicitly so Supabase Storage doesn't see chunked transfer encoding.
  • A regression test using httpx.MockTransport covers the path with a >64KB multi-chunk payload.

Caches for KB context and initial assessments

InfrastructureAI
  • A 24-hour kb_context_cache avoids re-fetching the same brand/platform context on every step.
  • An initial_assessment_cache memoizes Round 1 assessment outputs so re-runs and retries don't re-bill the provider.
  • Both backed by new Supabase tables on the lutrlvbjthgqakazjiwt project.

FastAPI lifespan migration + script dedup

Infrastructure
  • App startup/shutdown moved from on_event handlers to the lifespan context manager (the deprecation FastAPI flagged in 0.95+).
  • load_hptuners_csv and big_log_manager.py are now single implementations in app/; scripts/ imports the canonical version instead of carrying drift copies.

.env.* variants ignored by default

SecurityInfrastructure

.gitignore now covers .env.local, .env.production, etc. — defense-in-depth so a local override never accidentally gets staged.

Marketing intake page cleanup

Infrastructure

Removed the legacy '1 business day' microcopy under the submit button — superseded earlier by the live processing wall and report card from 0.8.0.

v0.8.4May 17, 2026

Round 2 uploads now go directly to the backend parser path instead of proxying through Vercel.

What you'll notice

Round 2 uploads create reports more directly

Product

CSV Round 2 logs now upload straight to the backend parser, store the related files, and create a report case from the same request.

Behind the scenes

Vercel upload proxy removed from Round 2 flow

Infrastructure
  • The vehicle Round 2 page now posts to /vehicles/{id}/round2/upload on the backend.
  • The old Next.js API proxy for vehicle uploads was removed so large files no longer take an extra hop through Vercel.
  • The backend endpoint performs ownership checks, Supabase Storage writes, parser report generation, case creation, and run recording in one path.
v0.8.3May 17, 2026

Round 2 CSV uploads now trigger parser-backed reports instead of only storing files.

What you'll notice

Round 2 CSV logs generate parser reports

Product
  • Uploading a Round 2 CSV log now sends it through the backend parser and returns a report case when analysis completes.
  • The upload confirmation links directly to the parser report when one is created.
  • Non-CSV log uploads are still stored safely, with a clear note that immediate parser analysis requires CSV export.
Behind the scenes

Parser dataframe reused by event cache

Infrastructure

The event-window cache now reuses the dataframe from the main parser path, avoiding a second CSV parse during normal report generation.

v0.8.2May 17, 2026

Upload processing is safer under load, with parser timings now recorded for each scan.

What you'll notice

Faster-feeling uploads under load

Product

Large uploads now spend less time blocking other requests while the backend parses, stores, and records scan data.

Behind the scenes

Pipeline timing telemetry added

Infrastructure
  • Reports now include pipeline_timing_ms so parser, event-cache, module, research, and revision stages can be measured directly.
  • The big-log event cache no longer hashes each source log twice before parsing.
  • Upload parsing and storage writes are moved off the async request loop, reducing server stalls during large file handling.
  • Each upload now writes its report to an isolated temporary output folder instead of the shared output/report.json path.
v0.8.1May 17, 2026

Log processing is now parser-first, with AI enrichment moved behind explicit switches.

What you'll notice

Faster parser-first log processing

Product
  • TuneView now isolates high-signal event windows from uploaded logs before any optional AI enrichment runs.
  • Reports can show deterministic parser/module guidance immediately, instead of waiting on provider calls for every revision note.
Behind the scenes

Big-log event cache promoted into the backend parser layer

Infrastructure
  • The existing big-log manager now runs as a reusable parser component and writes a manifest with high-load, fuel-error, injector-pulsewidth, and shift windows.
  • The pipeline adds an event_windows module plus parser_event_summary/parser_event_manifest fields to report payloads.
  • Event slices use Parquet when available and fall back to CSV, so the parser cache does not depend on optional columnar libraries.

AI paths separated from deterministic parsing

InfrastructureAI
  • Revision-step AI now runs only when TUNEVIEW_ENABLE_AI_REVISION=true; otherwise parser-derived revision steps are emitted.
  • Round 1 assessment AI, trend interpretation, and screenshot verification also have explicit enablement flags, preventing normal site activity from silently calling Anthropic.
  • Parser report cards now preserve their original severity/actionable status through normalization, so legacy parser modules still show up as useful tiles.
v0.8.0May 15, 2026

The intake handoff now shows a real processing screen and report card instead of going blank.

What you'll notice

Intake now finishes with a report-card handoff

ProductAI
  • After submitting an intake, you now see the same kind of module-by-module processing wall used by the log scanner.
  • When the Round 1 assessment finishes, the page turns into a tuner-facing report card: grade, score, primary concerns, Round 2 asks, risk areas, and next upload action.
  • Pending assessment states stay visibly pending instead of rendering an empty success screen.

Larger tune and log files accepted during intake

Product

The intake uploader now accepts larger cal files and datalogs, so normal tune files should not fail just because they are bigger than the old small-file limit.

Provider outages no longer look like broken intake

ProductAI

If the AI report generator cannot run, the intake stays captured and the submitted page shows a clear retry-ready status instead of a raw provider error.

Behind the scenes

Intake upload and polling circuit repaired

Infrastructure
  • The marketing intake form uploads grouped files; the backend now accepts that multi-file payload shape and records each attachment.
  • The submitted-page proxy now uses NEXT_PUBLIC_API_BASE, matching the rest of the frontend/backend handoff.
  • Assessment statuses are normalized so pending, triggered, and generating responses keep polling, while failed responses surface a real error.

Assessment generation can run in fixture mode for development

InfrastructureAI

Local development can render a deterministic report card without calling Anthropic, while live deployments can still use a funded provider key for real assessments.

v0.7.0May 15, 2026

Step-level feedback works for real now. Tell us which recommendations panned out.

What you'll notice

Tell us if a recommendation worked

ProductAI
  • Every revision step in a case detail now has a feedback row — Improved, No Change, Worse, or Not Applied — plus an optional notes field.
  • Previously these buttons looked like they submitted but silently dropped on the floor. Fixed.
  • Your feedback feeds the trust-weighted KB sort. The more tuners report on what actually moved the needle, the smarter the recommendations get over time.
Behind the scenes

StepFeedback — real implementation, authed submission

InfrastructureAI
  • 4-outcome vocab (improved | no_change | worse | not_applied) aligned to backend.
  • Authenticated POST with Supabase Bearer JWT — backend derives user_id from the token, no client-side trust.
  • Real success/error states: RECORDED only on response.ok; non-200 and network failures surface an inline error instead of pretending it worked.
  • Frontend done. Backend still needs to emit kb_entry_id on each RevisionStep so feedback can attribute to the specific KB entry that drove the recommendation.

Marketing intake env var aligned

Infrastructure

tuneview.io's intake form was using NEXT_PUBLIC_API_URL while the rest of the codebase used NEXT_PUBLIC_API_BASE. Renamed to a single source of truth across both deploys.

v0.6.0May 13, 2026

Ford and Mopar join the platform. Email capture goes live. StepPlatform now supports per-OEM extension fields.

What you'll notice

Ford and Mopar platform support

Product
  • The context engine now handles Ford (Coyote Gen2/3 VCT exhaust cam) and Mopar platforms.
  • Previously everything was GM-specific. Now TPS primary, single-port variable pressure, and VVT architecture fields are all recognized on non-GM logs.
  • If you scan a Ford or Mopar file, you'll start seeing meaningful results instead of blanks.

Email capture and onboarding sequence

Product

Submitted your email on tuneview.io? You're now entering an onboarding sequence via Resend — welcome email, what TuneView does, and what to try first.

Platform-specific extension fields (StepPlatform 4a–4f)

Product

The intake step for platform selection now supports extension fields unique to each OEM. More targeted data collection per vehicle family.

Behind the scenes

OEM generalization — Phase 1 schema migration (LAM-155)

Infrastructure
  • Replaced GM-hardcoded schema columns with multi-OEM fields: load_axis_type, vvt_architecture, single_port_varpres, tps_primary, vvt_exhaust_actual.
  • Ford channel maps and Mopar tuning specialist recommendations seeded.
  • The schema is now OEM-agnostic at the storage layer.

Client intake API

Infrastructure

New POST /intake endpoint enables programmatic case submission from external surfaces — tuneview.io intake form is now wired through it.

KB dedup endpoint + filter bug fix

InfrastructureAI

GET /kb/rows now supports filter params for dedup checks before bulk ingest. A silent bug where filters were passed as a list instead of a dict (causing them to be silently dropped) has been fixed.

v0.5.0May 9, 2026

Public intake goes live on tuneview.io. KB Explorer lets you browse the knowledge base. The research layer gets its own storage table.

What you'll notice

Public intake form (tuneview.io/intake)

Product
  • Anyone can now submit a vehicle case without an account.
  • Platform picker routes the submission to the right specialist queue.
  • Cases are persisted and visible to the team immediately.

KB Explorer

ProductAI

Browse the growing knowledge base directly from the app. Filter by brand, platform, and sub-category. The KB is the structured pattern library behind the research companion — now you can see what's in it.

Add Vehicle shortcut on dashboard

Product

"Add Vehicle" button sits next to New Case on the dashboard. One less click to get a build into the system before uploading a log.

Behind the scenes

KB rows table and researcher write path

InfrastructureAI

Structured knowledge entries from specialist researchers now flow into the canonical calibration knowledge base.

HPT channel alias table (19-row seed)

InfrastructureAI

hpt_channel_aliases normalizes channel names across HPTuners platforms. 19 seed rows cover the most common divergences between OEM naming and what VCM Scanner exports.

v0.4.0Apr 28, 2026

Vehicles and profiles are real features now. Security, reliability, and performance all got a dedicated pass.

What you'll notice

Vehicle hub and garage

Product
  • Track your builds: create, list, and delete vehicles from the new Vehicle Hub and Garage pages.
  • Vehicles now show up in your upload picker — add a vehicle, scan a log, and the case binds to the right build.

Profile page with avatar and media gallery

Product
  • New profile page: upload an avatar, see your account info.
  • Vehicle media gallery attached to each vehicle — attach photos to a build.

Security hardening sprint

Security
  • Auth middleware now protects all protected routes.
  • Strict CSP headers added; hardcoded API URLs removed.
  • Auth flows (sign-in, relog) now correctly send credentials on every request.

Performance: faster load times

Product

Chart libraries are now lazy-loaded. Inline CSS moved to globals. Initial bundle smaller; dashboard loads faster on first visit.

Behind the scenes

Supabase client consolidation

Infrastructure

All backend services (main app, auth, billing, embedding) now share a single Supabase client. Connection configuration drift between services eliminated.

Google Analytics GA4

Infrastructure

GA4 instrumented via @next/third-parties (G-CNNSE4EHE4). Product analytics pipeline is live.

Dashboard error surface

Infrastructure

Root error and loading states added across dashboard, upload, and vehicle routes. Type errors and silent failures that were hiding behind blank screens now show actionable messages.

v0.3.1Apr 20, 2026

Marketing site tells the story better. Backend research layer gets a second brain — region-locked DB lookups that stay quiet until we feed them.

What you'll notice

Demo section actually shows the product

Product
  • The homepage demo used to gesture at what TuneView does.
  • Now it shows a real B-/81 module card with the penalty breakdown — the thing you'll actually see after a scan.
  • Cut the floating score-weighting button and the stale scores panel. One clear artifact beats three half-explained ones.

How It Works reads like it was written for a tuner

Product
  • Trust chips, tighter step captions, no dev-speak.
  • If you land on the page cold, you should now understand the pipeline in under ten seconds.

Site type is readable again

Product
  • Sweep across the marketing site bumped small-type sizes up a notch.
  • Nothing changed structurally — things just stop straining your eyes.
Behind the scenes

Research intelligence gets a DB-backed query layer

AIInfrastructure
  • The pipeline now merges two research sources: the existing rule-based matcher and a new region-locked layer that queries structured patterns from a SQLite knowledge DB.
  • Region-locking means a pattern only counts if your log actually has the operating region (idle / low pedal / part throttle / WOT) it was derived from.
  • The DB is optional — if it's not populated, the pipeline falls back to rule-based only. Silent fail-open, by design.

End-of-session protocol codified in AI.md

Infrastructure

Claude now drafts a changelog entry before every session close instead of waiting to be asked. This entry is the first one it produced on its own.

v0.3.0Apr 19, 2026

Log upload accepts real CSV files. Fuel-pressure analysis finally works on Gen 5 DI. Adding a vehicle actually flows into the upload. Three silent failures, three fixes.

What you'll notice

Log upload accepts real CSV logs

Product
  • Upload validator was rejecting every real VCM Scanner CSV.
  • It was checking the wrong row for column headers — failing before it ever looked at the data.
  • Fixed. Real CSV logs go through.

Fuel pressure analysis works on Gen 5 DI

Product
  • Gen 5 DI engines report fuel rail pressure in MPa.
  • The unit detector only knew kPa and psi.
  • Every Gen 5 DI log was silently falling through and producing no fuel-pressure results — even WOT pulls that clearly showed pump capacity limits.
  • Fixed. The module now detects sustained HPFP capacity events — the thing that matters when your pump is at its limit.

Vehicle picker actually sees your builds

Product
  • Adding a vehicle from the dashboard used to do nothing for the upload flow.
  • Saved vehicle went one place; the upload's picker looked somewhere else.
  • Fixed. Add a vehicle — it shows in your upload picker, and your case rows bind to the right build.

Changelog page live

Product
  • app.tuneview.io/changelog
  • tuneview.io/changelog
  • No signup, no gating.
Behind the scenes

Log format recognition consolidated

Infrastructure
  • Two of the user-facing bugs above traced to the same cause.
  • Two separate parts of the code each had their own answer to "is this an HPT log" — and they'd drifted apart.
  • Collapsed to one. A standing rule prevents it from creeping back in.

Region-aware fuel-pressure analytics

Infrastructure
  • Errors stratified by operating region: idle / light cruise / moderate load.
  • Steady vs transient flow separated — a commanded pressure ramp no longer inflates error stats.
  • Duration-based filtering: one-off noise doesn't count; sustained drops under load do.
  • When a sustained event fires, the module recommends checking pump duty cycle and inlet vacuum.

Legacy prototype cleanup

Infrastructure
  • Removed a dead internal API endpoint from an earlier experimental phase.
  • Archived the old prototype directory after lifting its useful analytics.
  • Workbench clearer.
v0.2.0Apr 19, 2026

Research companion goes live. Your log now gets matched against known field patterns — not just analyzed in isolation.

What you'll notice

Research companion

AIProduct

Every analysis now runs through a research layer that matches your log against known Gen 5 patterns — light-load torque-model mismatches, post-change airflow instability, DI rail pressure tracking limits, cold-start flare signatures, TCC strategy conflicts, and a handful more. The layer is region-aware: it only fires a pattern if your log actually contains the operating window it applies to (low-pedal, part-throttle, idle, WOT). Cross-module correlations are surfaced as families — when spark_control + torque_model + throttle_driver_demand all move together, you get a single 'torque/airflow delivery' finding with a recommended focus region instead of three separate flags. The system also remembers confirmed fixes over time; a family that's been resolved before gets a small confidence boost on future matching logs.

Password reset flow

Product

The sign-in screen now has a 'Forgot password?' link that sends a reset email. If you get locked out, you recover yourself.

api.tuneview.io

Infrastructure

The backend now responds at api.tuneview.io instead of a generic Railway URL. No change in how the app works — but if you ever poke at network requests, everything's on one clean domain now.

Behind the scenes

Backend architecture consolidation

Infrastructure

All Python code now lives under a single app/ package. The prior dual-layout (duplicate modules at repo root and under app/) is gone. 20 root-level dev artifacts cleared out, 5 superseded duplicates deleted, 6 services migrated into app/services/ and app/parsers/. Net effect: next time something needs changing in the pipeline, there's one place to look.

Frontend structure cleanup

Infrastructure

The upload page went from 1990 lines to 345 by extracting types, helpers, styles, and eight subcomponents into lib/upload/ and components/upload/. Dashboard got the same treatment: 635 → 480. Nothing changed visually. Everything got easier to change without breaking.

Silent analysis bug caught and fixed

AI

The kb_entry_performance view — which powers the trust-weighted ordering on KB suggestions — was silently producing zero success rates because its internal outcome-string comparisons (`'worked'` / `'did_not_work'`) never matched the real values the system actually stores (`'improved'` / `'worse'`). Been broken since it shipped. Fixed in the same migration that added the KB-entry foreign key to recommendation_feedback.

Feedback flagging function fixed

AISecurity

The flag_low_trust_user routine — called after every feedback submission to catch bad-faith users — was silently no-opping in production because it was querying an admin-gated view as a service role. Rewrote it to call a dedicated SECURITY DEFINER RPC instead. It actually runs now.

Security hardening

Security

Seven of nine SECURITY DEFINER view advisor warnings cleared. Two more remain by design — they back admin-aggregation views that legitimately need elevated privileges. Listed as a separate item to tackle when there's an admin-bypass design.

Recommendation feedback table finalized

AIInfrastructure

Added a kb_entry_id foreign key so feedback can finally be attributed to the specific knowledge-base entry that drove a recommendation. Row-level security aligned to the Path 1 identity model. Once feedback data starts flowing, the trust-weighted KB sort will have a real signal to operate on.

v0.1.0Apr 18, 2026

Foundational beta. Upload a log, get a report, save it, come back to it.

What you'll notice

Anonymous upload claim flow

Product

Drop a log without signing up. The report is yours for 30 days via a claim token stored in your browser. Create an account anytime to save it permanently across devices.

Unified app navigation

Product

Dashboard, upload, verify, add-vehicle, and case detail pages now share a single top navigation. Signed-in state shows Dashboard / Upload / Add Vehicle links plus your email and a Sign Out button. Signed-out state shows a single Sign In CTA.

Email confirmation lands on your dashboard

Product

New account flow used to drop confirmed users on the anonymous upload page. Now you confirm your email and land directly on your authed dashboard — the 'you're in' moment the flow was missing.

Case links route correctly

Product

Clicking a row in the dashboard case history used to try to open a URL on the marketing site that didn't exist, so it 404'd. Now it routes to the full SSR case detail page: grade, safety, confidence, primary issue, metrics grid, module results sorted by severity, and priority-ranked revision steps.

Behind the scenes

User identity standardized across the platform (RLS Path 1)

SecurityInfrastructure

Row-level security across 23 tables now resolves the current user's ID through a single current_app_user_id() helper. Legacy users whose auth.users.id and public.users.id diverged (from older auth flows) were reconciled, so they can see and write their own data again without any workarounds.

Add-vehicle write path repaired

Security

The vehicles table insert was broken by the Path 1 migration — it was writing auth.uid() into a column foreign-keyed to public.users.id. Repaired via the current_app_user_id() RPC plus a null-guard for legacy linkage edge cases.

Dead API routes removed

Infrastructure

Five Next.js API routes that tried to read from hardcoded Windows absolute paths (left over from an earlier dev pattern) were returning empty stubs in production, had zero frontend callers, and were adding 578 lines of noise. Deleted. Route count 14 → 9.