CHANGE LOG

XABCD Pattern Suite

v1.7.0.68 August 2026

Version number update only — no functional changes in this release.

✎ Maintenance
  • Internal version alignment. Nothing changed in how the indicator behaves or looks
v1.7.0.67 August 2026

A stability update: two chart-rendering resource leaks are fixed across every pattern drawing tool in the suite. Neither ever affected what was drawn on your chart — only how cleanly NinjaTrader released the graphics resources behind it — but both leaks scaled with normal use, so a chart left open with patterns on it, or a session with a lot of mouse movement over the chart, was accumulating more of them the longer it ran.

⚠ Bug Fixes
  • Fixed a graphics resource leak in the shared drawing code every pattern type in the suite is built on — including XABCD Patterns, Double Top/Bottom, Head and Shoulders, the XTP pattern types, ZigZag, and XT Sonar. The shapes drawn on your chart were correct either way, but the drawing resource behind each one wasn't being fully released, so NinjaTrader's resource usage could climb the longer a chart with patterns stayed open and the more you moved your mouse over it
  • Fixed a second leak in the same area affecting time extension lines specifically, where only the last of several drawn shapes was ever released and the earlier ones were left behind on every redraw
  • Fixed a related leak in the text drawn on patterns — the ratio labels, pattern names, and annotations — across nine files including ABCD, Double Top/Bottom, Head and Shoulders, Three Drives, XABCD, and Six Point Wave. Each pattern redraw could leave several text-rendering resources behind uncollected, an effect that compounded with every additional pattern on the chart
  • Added an internal check that catches this entire class of leak automatically going forward, so a future change that reintroduces it is caught before release rather than after
v1.7.0.66 August 2026

A Pattern Builder precision update: rule rows can now state an exact ratio with a small band around it instead of only a range, a rule that can never match is caught and refused before you save or import it, and the diagnostics report is more accurate about what your custom patterns are actually doing.

✦ New Features
  • Exact ratio rules — a new ± toggle on any rule row lets you state a precise ratio (like exactly 1.272) with a small band around it, instead of typing the same number into both the low and high ends. That old approach produced a rule that could never match anything a real chart draws, since a measured ratio almost never lands on an exact value
⚠ Bug Fixes
  • A rule whose low and high ends are the same value is now refused, with a message naming the rule and explaining the fix, whether you type it by hand, open an older pattern, or import one from a file
  • Fixed the diagnostics report sometimes saying "No pattern types are enabled — nothing can be drawn" even when Additional Custom Patterns were switched on
  • Fixed the diagnostics report not showing a custom pattern's rule ranges when that pattern was built in the Pattern Builder, so a rule that could never match gave no visible clue in the report
v1.7.0.65 August 2026

A custom pattern reliability update: Additional Custom Patterns now actually appear on the chart and in the Market Analyzer, copying a built-in pattern into a custom slot now produces a pattern that can match, the old single-slot "Custom Pattern" row has been retired in favor of the Additional Custom Patterns you already use, and the XABCD Alerts board gains a multi-timeframe confluence badge — plus a round of smaller fixes and polish.

✦ New Features
  • Multi-timeframe confluence badge — a tile on the XABCD Alerts board now shows a CONFLUENCE badge with a count whenever another timeframe on the same instrument has a live, confirmed pattern in the same direction whose reversal area overlaps this one's. Only confirmed patterns count as agreement, so a forming pattern elsewhere is never counted as evidence
  • Custom pattern diagnostics — with Pattern Visibility Debug switched on (Advanced tab), the log now explains exactly why a custom pattern is not matching: which shapes were tried, how many candidates were offered, and how close the nearest miss came to your ratio rules
⬆ Improvements
  • The "Custom Pattern" row has been retired from the Patterns tab — the Additional Custom Patterns already do everything it did, with their own names, colors, and up to nine of them. If you had it switched on, it is moved automatically into an Additional Custom Pattern slot the first time you load your settings, so nothing you configured is lost
  • The exact time an alert fired now shows in a tooltip over its age on the XABCD Alerts board, instead of taking up its own line on the tile
⚠ Bug Fixes
  • Fixed Additional Custom Patterns (slots 2 through 10) not appearing on the chart or being reported in the Market Analyzer column, even when correctly configured and enabled
  • Fixed a switched-off "Custom Pattern" silently blocking every one of your Additional Custom Patterns from ever being detected
  • Fixed copying a built-in pattern into a custom slot producing a copy that could never actually match anything
  • Fixed Pattern Visibility Debug continuing to write to the log after being switched off, and stopped it repeating the same line many times a second
  • Fixed the pattern meter flickering through its entire history whenever you changed the chart's instrument or timeframe
v1.7.0.62 – 64 August 2026

A settings and alerts-board update: General Settings rebuilt into three searchable sub-tabs that mark every setting you have changed and let you reset any one of them, click any alert to draw that pattern on your chart along with an explanation of why it was not already there, an instrument filter for the alerts board, stricter leg-quality grading, and a round of fixes to the properties window itself.

✦ New Features
  • Draw an alerted pattern on your chart — click any tile on the XABCD Alerts board and that exact pattern is drawn on a matching chart, even when your chart never detected it. A note on the chart explains why it was not already showing: the pattern starts before your loaded history, "Show Last Pattern Only" is hiding it, that pattern type is turned off here, its meter is below your minimum, or a confirmation filter is holding it back. Patterns drawn from an alert carry a leading diamond so they are easy to tell apart from patterns the chart found itself
  • Replicate Market Analyzer Patterns — a new toggle under Pattern Search, on by default. Turn it off and the chart shows only patterns it detects for itself, so a click on the alerts board never adds a drawing
  • Instrument filter on the alerts board — check instruments on and off the same way you already filter periods, with the list built from the alerts you actually have. The filter label reads "filtered" when your current selection is hiding everything, so an empty board is never a mystery
  • Search every settings tab at once — the search box in the XABCD Properties window now filters General Settings, Patterns, Scanner & Alerts and Advanced together, and shows how many settings matched on each tab so you know which one to open
  • Changed-from-default markers — a dot appears beside any setting that no longer matches its default, and it updates the moment you change the value. "Changed only" narrows the window to just those rows, and right-clicking a setting resets that one setting to its default without touching anything else
  • Appearance presets — Minimal, Standard and Detailed presets on the Style sub-tab set the on-chart display settings in one click
  • The properties window remembers your layout — which sections you left open and which sub-tab you were on are restored the next time you open it. Stored separately from your settings, so your layout never travels inside a saved template and is never wiped by Restore Defaults
  • Pattern Sync Debug — a new checkbox on the Advanced tab writes a troubleshooting log recording why the chart and the scanner disagreed about a pattern, for the times a board alert will not draw
⬆ Improvements
  • General Settings rebuilt — split into Detection, Chart Display and Style sub-tabs, with settings regrouped, duplicates removed, and any setting that depends on another one greyed out while the setting it relies on is off. Every control now has a tooltip explaining what it does
  • Leg quality is graded on the weakest leg — the score is now the worst of the four legs rather than their average, and it is capped by that leg's deepest counter-move, so one badly chopped leg can no longer hide behind three tidy ones. The per-leg breakdown is shown alongside the score so you can see which leg set the number
  • Reversal Area Mode is honoured everywhere — Time Based and Price Based now change the shape of the reversal area on custom patterns and the multi-point custom tools too. Those previously always drew the full price-based box no matter what the setting said, so switching the mode appeared to do nothing on them
  • Numeric settings fields validate as you type — characters that cannot belong in a number are rejected, values outside the allowed range are flagged, whole-number fields round, and a value that cannot be read snaps back to what is actually in effect instead of being silently discarded
  • Generating a Market Analyzer template now saves your XABCD Properties at the same time, so the template and the settings it was built from stay in step without a second, separate click
  • The scanner now keeps every confirmed alert live rather than only the most recent one, and the alerts board is fed from the Market Analyzer so the two stay in agreement
⚠ Bug Fixes
  • Fixed the "Market Analyzer template is out of date" notice staying on screen permanently, including immediately after regenerating the template. It stopped tracking its own state the moment the tab was first drawn, so nothing you did could clear it. The Sync Checker below it was reporting correctly throughout
  • Fixed that same notice returning after a restart even though the template was current, because the record of what the template had been generated from was only ever held in memory
  • Fixed the properties window asking whether to restore the XABCD Properties to their default values every time NinjaTrader started
  • Fixed a crash when choosing Restore Defaults from the properties window
  • Fixed toolbar labels overlapping at the top of the XABCD Properties window on narrower screens, where "Changed only" and "Zoom" ran into each other. The toolbar now wraps to a second line instead
  • Fixed a pattern drawn from an alert stacking on top of the same pattern the chart had already drawn. The check that spots a duplicate only recognised five-point patterns, so three, four and six point patterns were drawn twice
  • Fixed "Show Last Pattern Only" leaving three, four and six point patterns on the chart alongside a pattern drawn from an alert
  • Fixed a pattern drawn from an alert filling in grey instead of the colour assigned to that pattern
  • Fixed a pattern drawn from an alert showing "No Pattern" instead of its real pattern name
  • Fixed a pattern drawn from an alert showing a square reversal area that ignored the time projection — the box now angles in against the target ribbon like every other pattern
  • Fixed "Show Last Pattern Only" running its sweep before the chart had finished redrawing, which could leave two patterns on screen
  • Fixed six controls across the suite that were unreadable on NinjaTrader's light skin
v1.7.0.60 July 2026

A confirmation-quality and analysis update: new indicator-based confirmation checks at point D (Moving Average, MACD, ADX and RSI level, each with direction-aware modes), an on-board AI pattern analysis with its own AI Reports tab, and an opt-in Community Pattern Database that surfaces similar historical setups and stop/target guidance — plus stability fixes.

✦ New Features
  • Confirmation conditions at D — four new optional quality checks you can require when a pattern confirms: Moving Average at D (EMA or SMA, price or slope), MACD at D (histogram or signal cross), ADX at D (trend-strength threshold), and RSI Level at D. Each condition offers direction-aware modes that flip automatically for bullish versus bearish patterns, so you set it once for both
  • Conditions feed the meter — every enabled confirmation condition is scored into the Pattern Meter on the chart and in the Market Analyzer, and a new "Require filters to pass" option holds back alerts for confirmed patterns that fail one of your checks
  • AI pattern analysis — analyze any pattern straight from the XABCD Alerts board and get a written breakdown in a new "AI Reports" tab, with a per-tile AI badge, cleanly formatted text, and your remaining credit balance shown on the board. Analysis runs in the background and can be cancelled
⬆ Improvements
  • Non-blocking analysis — the AI analysis and report windows now open modeless, so opening a report never freezes the alerts board while you keep working
  • Resilient AI requests — AI analysis now parses responses defensively and fails gracefully with a clear message instead of erroring out on an unexpected reply
⚠ Bug Fixes
  • Fixed an alerts-board hang that could occur when opening the AI or report windows
  • Fixed an unhandled clipboard crash (CLIPBRD_E_CANT_OPEN) when using the board's copy actions
v1.7.0.58 July 2026

A pattern-quality and alerting update: a new Quality section that filters out choppy patterns and flags weak legs, a redesigned Scanner & Alerts tab with per-pattern spoken and popup alerts on the XABCD Alerts board, one-click copying of any pattern into your own custom set, and a smarter Market Analyzer scanner that surfaces forming patterns in real time.

✦ New Features
  • Quality section — a new "Require Clean Legs" filter drops patterns whose legs wander sideways instead of driving to each point, with tunable Min Leg Quality %, Weak-Leg Min Bars and Weak-Leg Min Slope (ATR). On by default at a gentle threshold
  • Spoken pattern alerts — the XABCD Alerts board can read new patterns aloud (text-to-speech), on by default, alongside per-pattern bell and popup alerts you configure in the Scanner & Alerts tab, plus a Test Alert button to preview them
  • Copy to a custom pattern — copy any built-in pattern (or an existing custom one) into a new Additional Custom Pattern with one click, carrying its ratios and type; built-in patterns show a read-only View of their ratios, while your own patterns keep full Edit
  • Show All Potential Patterns — draw every forming candidate on the chart, and send companion "potential" alerts so the board still shows a forming pattern that is hidden behind a confirmed one
  • Alerts board Live mode — show only alerts whose pattern is still live on the chart, with the selected tile highlighted
⬆ Improvements
  • Wider detection window — the pattern search now looks back 200 bars instead of 100, so more setups are found
  • Chart and scanner in lockstep — Max Bar Count defaults to 10 on both the chart and the Market Analyzer scanner, the scanner auto-aligns its detection settings to the chart, and a built-in sync check flags any remaining differences
  • Near-flat legs flagged — a weak leg is now highlighted in white when it barely moves relative to ATR, not only when it is cramped in bars
  • Cleaner audio — all alert sounds are serialized through one shared queue so they no longer talk over each other, and sounds are kept alive so they do not cut off mid-playback
  • Smarter forming patterns — the scanner drops a forming pattern the moment price closes through its reversal area, or the scan stops finding it
  • Scanner tick alignment — Tick, Volume and Range charts load day-based history, with a warning when bar overlap is too low to compare reliably
  • RTP-2 reversal — the final leg is now a true min/max range (default 0.886–0.99) for more accurate detection
⚠ Bug Fixes
  • Fixed a crash (AccessViolation) caused by leaked drawing resources when rendering the XD time extension
v1.7.0 series Earlier builds

The 1.7 line consolidated every setting into one XABCD Properties window, unified how patterns are detected in real time and on confirmation, added your own custom pattern definitions, and grew the Market Analyzer scanner and the alerts board.

✦ New Features
  • Centralized XABCD Properties window — one place for General, Detection, Validation and Display settings, replacing the old per-drawing property panels
  • Selectable detection engines — choose the RealTime engine for live forming patterns or the Confirmation engine, with Show Potential Patterns, Use Price for Potential D, and Require Price in Reversal Area controls
  • Custom and Additional Custom Patterns — define your own XABCD ratio sets, each with its own bull and bear colors, alongside the built-in pattern types
  • Reversal area projection — time-based or price-based, with configurable box fill, outline and opacity
  • Targets and extensions — fib targets, retrace targets, pattern targets, AB fib extensions, and XD time extensions with time ratios, each with its own display toggle and price, tick or percent format
  • Time Extensions — three configurable ratio lines (default 113, 127.2, 141.4) with individual colors, plus gap percent and fib text alignment
  • Pattern info panel — an on-chart panel with the pattern meter (block or inline layout) that can open automatically when a pattern loads
  • Validation controls — Use Bars Before X and Bars Between Points to constrain how a valid pattern may form
  • Companion indicators — XT Hurst, XT Sonar, XT ZigZag and XT Price Line ship alongside the pattern engine
⬆ Improvements
  • Weak-leg anchor cue — legs that are too cramped in bars are drawn in a distinct color so poorly-formed patterns stand out at a glance
  • Theme-aware colors — indicator colors follow your NinjaTrader light or dark skin, with a Custom option when you want your own palette
  • Templates — save and load complete settings, including generated Market Analyzer column templates
Foundation Earlier releases

The core XABCD Pattern Suite for NinjaTrader 8 — automatic pattern detection on any chart, drawing the full structure with its ratios, projecting the reversal area and targets, and scanning the market for new setups.

✦ Foundation
  • Automatic XABCD pattern detection — the engine finds bullish and bearish XABCD Patterns on any instrument and timeframe and draws the full X-A-B-C-D structure with ratio labels
  • Reversal area — the zone where each pattern completes is projected ahead of price
  • Targets — fib and pattern targets projected from the completion point
  • Detection controls — Deviation, Minimum Pattern Size and Max Bars Back tune how sensitive the search is
  • Market Analyzer column — scan many instruments and timeframes at once for XABCD Patterns
  • Built for NinjaTrader 8 — 64-bit, .NET Framework 4.8, with a licensing system and in-app update notifications
v1.7.0.61 July 2026

A pattern-building and analysis update: custom patterns can now be built at three, four, five or six points with a plain-language rule builder, the AI pattern analysis opens as a full visual report you can grade, share and apply to the Position Tool — plus alerts-board additions and stability fixes.

✦ New Features
  • Custom patterns at more point counts — build three, four, five or six point custom patterns, each with its own drawing tool ("XT Custom N Point") and its own bull and bear colours, instead of only the classic five-point shape
  • Rule-based pattern builder — the custom pattern builder is now a list of plain-language rules (one leg within a range of another) you add and remove freely, replacing the old fixed four-ratio editor. Opening a classic pattern seeds the list from its existing definition, and the on-chart ratio pills now show only the ratios your own rules actually measure
  • Export and import custom patterns — move your custom pattern definitions between machines or share them with other traders
  • Visual AI report — pattern analysis now opens as a full visual report with a structure-score gauge, scorecard, history histogram and written breakdown side by side (with a draggable splitter), an A/B/C/D grade and verdict stamp, a one-click shareable branded card plus PNG export, and a button to apply the analysed levels straight to the Position Tool. Framed as educational structure analysis, not a guarantee of results
  • Alerts board timeframe filter — a multi-select timeframe filter on the XABCD Alerts board so you can narrow the board to just the periods you trade
  • Pushover remote alerts — a new Pushover push channel for remote alerts, so new patterns can reach your phone
⬆ Improvements
  • Pattern Database naming and edge scoring — the shared-corpus feature is now consistently called the Pattern Database, the "high-edge" verdict is judged on expectancy rather than a flat win-rate, and low-sample historical slices are shrunk so a handful of noisy matches can no longer drive a confident verdict. Board badges are clearer ("PAST HITS", "HISTORY") and the gauge reads "structure score"
  • Credit clarity — the alerts board marks the one tile action that spends a credit, offers a manual re-check of your credit balance, and the Buy Credits button now opens the shop product directly
  • Cleaner leg-quality grading — a weak leg is now judged on how straight its connector line runs rather than on candle-by-candle chop, so genuinely clean legs stop being flagged
  • Custom tool identification — custom drawing tools can show an optional tool-number badge and highlight on hover, making it easy to tell several tools apart on one chart
  • Market Analyzer template builder — adds a "Default" preset and resolves preview-refresh and theming issues in the generated workspace
⚠ Bug Fixes
  • Fixed a cross-thread crash when adding a custom pattern, and a colour-related crash when drawing custom patterns
  • Fixed the settings wrench that could become unclickable (it is now hit-tested in chart space) and stopped the Properties window silently failing to open
  • Fixed custom pattern rules being corrupted when a saved pattern was reloaded, and a remove button that was invisible in the pattern builder
  • Blocked a second Pattern Builder window from being opened at the same time
  • Fixed the confidence gauge sometimes not filling
v1.7.0.60 July 2026

A confirmation-quality and analysis update: new indicator-based confirmation checks at point D (Moving Average, MACD, ADX and RSI level, each with direction-aware modes), an on-board AI pattern analysis with its own AI Reports tab, and an opt-in Community Pattern Database that surfaces similar historical setups and stop/target guidance — plus stability fixes.

✦ New Features
  • Confirmation conditions at D — four new optional quality checks you can require when a pattern confirms: Moving Average at D (EMA or SMA, price or slope), MACD at D (histogram or signal cross), ADX at D (trend-strength threshold), and RSI Level at D. Each condition offers direction-aware modes that flip automatically for bullish versus bearish patterns, so you set it once for both
  • Conditions feed the meter — every enabled confirmation condition is scored into the Pattern Meter on the chart and in the Market Analyzer, and a new "Require filters to pass" option holds back alerts for confirmed patterns that fail one of your checks
  • AI pattern analysis — analyze any pattern straight from the XABCD Alerts board and get a written breakdown in a new "AI Reports" tab, with a per-tile AI badge, cleanly formatted text, and your remaining credit balance shown on the board. Analysis runs in the background and can be cancelled
⬆ Improvements
  • Non-blocking analysis — the AI analysis and report windows now open modeless, so opening a report never freezes the alerts board while you keep working
  • Resilient AI requests — AI analysis now parses responses defensively and fails gracefully with a clear message instead of erroring out on an unexpected reply
⚠ Bug Fixes
  • Fixed an alerts-board hang that could occur when opening the AI or report windows
  • Fixed an unhandled clipboard crash (CLIPBRD_E_CANT_OPEN) when using the board's copy actions
v1.7.0.58 July 2026

A pattern-quality and alerting update: a new Quality section that filters out choppy patterns and flags weak legs, a redesigned Scanner & Alerts tab with per-pattern spoken and popup alerts on the XABCD Alerts board, one-click copying of any pattern into your own custom set, and a smarter Market Analyzer scanner that surfaces forming patterns in real time.

✦ New Features
  • Quality section — a new "Require Clean Legs" filter drops patterns whose legs wander sideways instead of driving to each point, with tunable Min Leg Quality %, Weak-Leg Min Bars and Weak-Leg Min Slope (ATR). On by default at a gentle threshold
  • Spoken pattern alerts — the XABCD Alerts board can read new patterns aloud (text-to-speech), on by default, alongside per-pattern bell and popup alerts you configure in the Scanner & Alerts tab, plus a Test Alert button to preview them
  • Copy to a custom pattern — copy any built-in pattern (or an existing custom one) into a new Additional Custom Pattern with one click, carrying its ratios and type; built-in patterns show a read-only View of their ratios, while your own patterns keep full Edit
  • Show All Potential Patterns — draw every forming candidate on the chart, and send companion "potential" alerts so the board still shows a forming pattern that is hidden behind a confirmed one
  • Alerts board Live mode — show only alerts whose pattern is still live on the chart, with the selected tile highlighted
⬆ Improvements
  • Wider detection window — the pattern search now looks back 200 bars instead of 100, so more setups are found
  • Chart and scanner in lockstep — Max Bar Count defaults to 10 on both the chart and the Market Analyzer scanner, the scanner auto-aligns its detection settings to the chart, and a built-in sync check flags any remaining differences
  • Near-flat legs flagged — a weak leg is now highlighted in white when it barely moves relative to ATR, not only when it is cramped in bars
  • Cleaner audio — all alert sounds are serialized through one shared queue so they no longer talk over each other, and sounds are kept alive so they do not cut off mid-playback
  • Smarter forming patterns — the scanner drops a forming pattern the moment price closes through its reversal area, or the scan stops finding it
  • Scanner tick alignment — Tick, Volume and Range charts load day-based history, with a warning when bar overlap is too low to compare reliably
  • RTP-2 reversal — the final leg is now a true min/max range (default 0.886–0.99) for more accurate detection
⚠ Bug Fixes
  • Fixed a crash (AccessViolation) caused by leaked drawing resources when rendering the XD time extension
v1.7.0 series Earlier builds

The 1.7 line consolidated every setting into one XABCD Properties window, unified how patterns are detected in real time and on confirmation, added your own custom pattern definitions, and grew the Market Analyzer scanner and the alerts board.

✦ New Features
  • Centralized XABCD Properties window — one place for General, Detection, Validation and Display settings, replacing the old per-drawing property panels
  • Selectable detection engines — choose the RealTime engine for live forming patterns or the Confirmation engine, with Show Potential Patterns, Use Price for Potential D, and Require Price in Reversal Area controls
  • Custom and Additional Custom Patterns — define your own XABCD ratio sets, each with its own bull and bear colors, alongside the built-in pattern types
  • Reversal area projection — time-based or price-based, with configurable box fill, outline and opacity
  • Targets and extensions — fib targets, retrace targets, pattern targets, AB fib extensions, and XD time extensions with time ratios, each with its own display toggle and price, tick or percent format
  • Time Extensions — three configurable ratio lines (default 113, 127.2, 141.4) with individual colors, plus gap percent and fib text alignment
  • Pattern info panel — an on-chart panel with the pattern meter (block or inline layout) that can open automatically when a pattern loads
  • Validation controls — Use Bars Before X and Bars Between Points to constrain how a valid pattern may form
  • Companion indicators — XT Hurst, XT Sonar, XT ZigZag and XT Price Line ship alongside the pattern engine
⬆ Improvements
  • Weak-leg anchor cue — legs that are too cramped in bars are drawn in a distinct color so poorly-formed patterns stand out at a glance
  • Theme-aware colors — indicator colors follow your NinjaTrader light or dark skin, with a Custom option when you want your own palette
  • Templates — save and load complete settings, including generated Market Analyzer column templates
Foundation Earlier releases

The core XABCD Pattern Suite for NinjaTrader 8 — automatic pattern detection on any chart, drawing the full structure with its ratios, projecting the reversal area and targets, and scanning the market for new setups.

✦ Foundation
  • Automatic XABCD pattern detection — the engine finds bullish and bearish XABCD Patterns on any instrument and timeframe and draws the full X-A-B-C-D structure with ratio labels
  • Reversal area — the zone where each pattern completes is projected ahead of price
  • Targets — fib and pattern targets projected from the completion point
  • Detection controls — Deviation, Minimum Pattern Size and Max Bars Back tune how sensitive the search is
  • Market Analyzer column — scan many instruments and timeframes at once for XABCD Patterns
  • Built for NinjaTrader 8 — 64-bit, .NET Framework 4.8, with a licensing system and in-app update notifications