What stays on your Mac#
Every step of dictation happens on-device:
- Audio. When you hold the hotkey, Evoglyph captures microphone audio into memory on your Mac. It is never written to disk and never transmitted off your machine.
- Transcription. Speech-to-text runs on the Apple Neural Engine via FluidAudio's Parakeet TDT model. The model file lives on your Mac after the one-time first-run download. Audio goes in; text comes out; nothing crosses the network.
- Cleanup. When AI cleanup is on, Evoglyph runs an MLX-powered LFM2-2.6B language model inside the Evoglyph process. The raw transcript, the cleanup prompt, and the cleaned output stay in process memory. They are not sent anywhere.
- History. Your dictation history is stored in a local SQLite database on your Mac. macOS does not protect this file at rest unless you enable FileVault (a system-wide setting that encrypts your whole disk). Evoglyph cannot read the database from anywhere else, and we cannot recover it for you if you delete it.
- Vocabulary and settings. Custom vocabulary, hotkey choice, cleanup preferences: all in local app storage. None of it is synced to a server.
- Text injection. Evoglyph types the final text into your focused app via macOS Accessibility APIs. The text does not leave your Mac. Evoglyph skips native macOS password fields and recommends against dictating into any password field; see Password and secure fields.
Every network call Evoglyph makes#
Evoglyph is local-first, but it is not network-free. Here is every outbound connection the app makes, and why:
-
License activation. When you enter your license key, Evoglyph contacts
its licensing service at evoglyph.com to confirm the key is valid and claim a device
slot. The request includes your license key, a per-install, pseudonymous instance name
and id (an opaque
EvoGlyph-identifier — not your hostname), and the same pseudonymous device hash used for the free trial — so a device that has held a license is never granted a fresh trial (see Trial counter and license activation). What that writes depends on whether your device already has a trial record. If it does, the only thing written to it is that one-way flag. If it does not, because you bought Evoglyph without trialing it first, the server creates a record to carry the flag, holding the fields listed there and marked as created by an activation rather than by a trial start. On either path, your license key and instance id are never stored on it. The request does not include your Evoglyph version or any dictation content. -
License re-validation. Evoglyph periodically re-checks your license
against its licensing service to keep your subscription state in sync (active, past-due,
canceled, etc.). It sends your license key, the stored instance id, and three small
housekeeping fields: your Evoglyph version, your macOS version, and a coarse
activity bucket — how many dictations since the last check,
reported only as
0,1–5,6–20, or20+. The server stamps these onto your device’s activation record (latest version, last-seen and last-active times, latest bucket — each new check overwrites the last; no history is kept) so we can spot a broken update and tell live devices from abandoned slots. Never any dictation content, text, or app names. -
Free-trial check. While Evoglyph runs without a license, it verifies
your free trial against its own trial service at
evoglyph.com. The request contains a one-way salted SHA-256 hash of your Mac’s hardware UUID (never the raw UUID) and, after dictations, the running count of trial words you have used. No dictation content, and no trial calls at all once you activate a license. The full exchange is spelled out in Trial counter and license activation below. - Auto-update check. The Sparkle framework checks evoglyph.com’s update feed (appcast) on a schedule for new releases. The check transmits only your Evoglyph version (in the request user-agent) and your IP address, not your macOS version. We count these checks in aggregate to estimate how many installs are active. Each check is recorded as a date, a country, and an Evoglyph version; no IP address, no device identifier, and no cookie is stored, so no two checks can be linked back to the same Mac.
-
First-run model download. The Parakeet transcription model and the
optional MLX cleanup model are downloaded once, on first use, from
Hugging Face (
huggingface.co), a third-party public model host. The small NLI “edit-check” model used by cleanup is downloaded fromdownloads.evoglyph.com(Evoglyph’s own Cloudflare storage). These are hash-verified model files, not telemetry; after the download, they run from your local disk. - Trial start (trial only). On first launch, Evoglyph registers your free trial with Evoglyph’s licensing service so the 3,000-word limit can be enforced. The request contains a single pseudonymous device hash (an opaque identifier — not your name, email, or any dictation content); the server records the trial start time against it. See Trial counter and license activation below for exactly what the trial ledger stores.
- Trial usage sync (trial only). During the trial, Evoglyph periodically syncs your running trial word total — a single cumulative number — to the licensing service, keyed by the same device hash, so the word limit cannot be reset by deleting local data. The payload is the device hash and that one number. No audio, no transcripts, no app names — ever.
First-party crash and error reporting is not in this list because it is
off by default. If you opt in (Settings → Diagnostics), it adds one
more outbound channel to Evoglyph’s own server at diag.evoglyph.com.
See What you can turn off below.
What Evoglyph never does#
Evoglyph does not:
- Send your microphone audio to a server.
- Send your transcripts to a server.
- Send your cleanup prompts or cleaned text to a server.
- Send your custom vocabulary or settings to a server.
- Track which apps you dictate into, or log window titles.
- Use your dictations to train any model: ours, FluidAudio's, MLX's, or anyone else's.
- Use tracking cookies on the website. Analytics is cookieless and does not build a per-visitor profile.
- Sell, rent, or share user data with third parties for advertising.
What you can turn off#
You control every optional channel from Settings → Diagnostics:
- Crash and error reporting (off by default). When on, Evoglyph sends crash reports (unsymbolicated stack traces; hang reports too if macOS provides them for menu-bar apps), error events such as a failed transcription or paste, app version, macOS version, speech-model variant, cleanup-engine state, the pipeline state at the time of the event, and recent app-event categories (never message text) — to Evoglyph’s own servers, with no third-party analytics vendor. Never your audio, transcriptions, vocabulary, clipboard, or the apps you dictate into. Anonymous: no account, device, or user identifier. Reports are deleted after 90 days.
- Auto-update check. Evoglyph asks on an early launch whether to enable automatic update checks, and you can turn them on or off at any time in Settings (or run a manual check whenever you like). We recommend allowing automatic checks: Evoglyph ships outside the Mac App Store, and auto-updates are how you get security fixes.
License activation and re-validation cannot be disabled; Evoglyph must verify your license to enable dictation. The re-validation cadence is conservative and the payload contains no dictation content. The free-trial check works the same way while you are unlicensed: it cannot be turned off, because it is what enforces the trial. See Trial counter and license activation.
Trial counter and license activation#
The trial gives you up to 3,000 words of successful dictation — with no time limit — before you need an active license. The counter increments only when text is successfully injected into your focused app; silent dictations and failed injections do not count.
The trial is enforced server-side. A counter that lived only on your Mac could be reset by deleting the app’s data, so Evoglyph checks the trial against its own trial service. Here is the entire exchange:
-
What is sent. A one-way device hash: the SHA-256
digest of your Mac’s hardware UUID (
IOPlatformUUID) mixed with a fixed salt. The raw UUID never leaves your Mac, and the hash cannot be reversed into it. The sync call also carries one number: the running count of words you have dictated during the trial. Never your audio, transcripts, vocabulary, name, email, or any raw device identifier. -
When. Once, the first time you launch Evoglyph without a license
(
evoglyph.com/api/trial/claim), and then as a debounced sync shortly after you dictate while unlicensed (evoglyph.com/api/trial/sync). Activating a license stops these calls entirely. - Why. Trial enforcement, nothing else. The server keeps one small record per device hash, listed field by field further down this section. Among its fields are when the trial started, the words used, whether (and when) the word limit was reached, and a one-way flag noting whether this device has ever activated a license. That record is what stops a trial from being restarted by clearing local data, reinstalling, or letting a license lapse. It stores only that boolean flag — never your license key or instance id — so it stays pseudonymous, is not joined to your name, email, or license, and is not used for analytics or marketing.
Each response comes back cryptographically signed and Evoglyph caches it locally, so the trial keeps working offline rather than phoning home on every dictation.
The trial limit is enforced server-side. At first launch Evoglyph registers the trial with its licensing service, and during the trial it syncs your running word total (network calls 6 and 7 above). The server keeps one trial record per device, keyed by a pseudonymous device hash, containing: the trial start time, the cumulative word count, the word limit, an active/exhausted flag, the time the word limit was reached (if it has been), a one-way “has held a license” flag (a single boolean, set when this device activates a license, that stops it from ever being granted a fresh trial), the times the row was created and last updated, and a label recording whether the row was opened by a trial start or created when a license was activated on that device. That is the entire record — it holds no audio, no transcripts, no app names, no name or email (the trial requires no account), and no license key or instance id: the licensed flag is a bare boolean, never joined to which license it was. Its only purpose is making the trial limit stick across reinstalls; it is not usage analytics. Outside of this single trial total and the coarse per-device activity bucket described under license re-validation (a bucketed count, overwritten on each check), we keep no record of your dictation usage — and never, anywhere, any dictation content.
Activating your license calls Evoglyph's licensing service with your license key. It does not transmit any dictation content. After activation, your license state is stored locally and the trial service is no longer contacted.
The trial endpoints are also protected by a short-lived, per-IP anti-abuse rate limit that briefly processes the IP address the request arrives from. It is described in full in Abuse protection, directly below.
Abuse protection: a short-lived IP rate limit#
Like every service on the internet, our servers can see the IP address each request arrives from — that is how the internet routes traffic. Almost everywhere, we simply do not use or keep it, and the analytics and download records described on this page deliberately store no IP address. There is one narrow exception, and here it is in full.
Four of our API endpoints are protected against request flooding and abuse by a per-IP rate limiter: the trial-start and trial-sync endpoints described above, the endpoint the Mac app’s Account tab uses to open the Stripe billing portal, and the endpoint that records the “Was this helpful?” votes on our docs pages. For each request to one of these endpoints, the server increments a small counter whose storage key includes the connecting IP address. Requests over the limit are refused with a “try again shortly” response until the current window is up. That window is one minute on the trial and billing-portal endpoints, which are guarding against a request flood, and one hour on the docs-feedback endpoint, where the point is to stop a single visitor from manufacturing an article’s helpfulness score rather than to stop a burst.
- What is stored. A counter: a storage key naming the IP address and the current window, and the number of requests seen in that window. Nothing else — no URL, no payload, no device hash, no license key. On the docs-feedback endpoint the key names only the IP address and the window: never which article you voted on, and never how you voted.
- Where and for how long. In Cloudflare Workers KV storage on Eluketronic’s own Cloudflare account. Each counter expires automatically twice its window after it is written: about two minutes for the trial and billing-portal counters, and about two hours for the docs-feedback counter. It is not logged, archived, backed up, or exported anywhere.
- What it is never used for. The counter is never joined to your trial record, license, download counts, docs-feedback votes, analytics, or any other data; it is not used to identify, track, or profile anyone; and it is not shared with any third party.
We process the IP address this way under our legitimate interest in keeping the service secure and preventing abuse (GDPR Art. 6(1)(f); Recital 49 recognizes network and information security as such an interest), documented in our internal Legitimate Interest Assessment. A per-source counter is the standard, minimal way to stop request floods, and twice the window is the shortest retention that makes each limit enforceable. Because the counter auto-expires and is joined to nothing, there is no per-person record behind it for us to look up, hand over, or delete on request. It expires on its own, within minutes on three of the four endpoints and within about two hours on the fourth.
How to audit Evoglyph yourself#
You do not have to take our word for any of this. To verify Evoglyph's network behavior:
-
Little Snitch or LuLu will show you every outbound connection Evoglyph
attempts. You should see calls only to
evoglyph.com(license activation, the free-trial check while unlicensed, and the Sparkle update check),huggingface.coanddownloads.evoglyph.comfor the one-time model downloads, and — only with crash reporting opted in —diag.evoglyph.com. -
Console.app filtered to
process:Evoglyphshows the local debug log Evoglyph writes to~/Library/Logs/evoglyph/. That file is what you would attach to a support email.
A note on the landing site#
Everything above describes the macOS app. The marketing site at
evoglyph.com is a separate surface, and how we measure it is deliberately
minimal.
How we count visits. evoglyph.com loads no analytics beacon and no client-side analytics script — open your browser’s developer tools and you will see the site make no request to any analytics vendor. Instead, Cloudflare (which already serves the site) counts page visits in aggregate at its edge, the same place it routes the request. That edge-side count gives us totals, referring sites, and the country a request came from. It uses no cookie, sets no client-side storage, builds no per-visitor profile, and Evoglyph stores no IP address. It counts page visits — not which buttons you click. It does not see your dictation content, your trial record, or your license. (The one place our servers do briefly hold an IP address — a short-lived, auto-expiring anti-abuse counter on four API endpoints, none of which serve pages — is spelled out in Abuse protection above.)
How we count downloads (and where a click came from). When you click a
“Download for macOS” button, the site routes through a /download
endpoint that redirects you to the installer and records one
anonymous, aggregate download event in our Cloudflare D1 database. That
event contains: the date; the country and a coarse
region your request came from (derived at Cloudflare’s edge); the
app version; and an aggregate attribution tag — the
host name of the page that referred you (e.g. news.ycombinator.com,
host only) plus any campaign tags in the link (the utm_source,
utm_medium, and utm_campaign values, each truncated and
allowlisted to plain campaign labels); and our own
automated-request verdict: a yes/no flag for whether the request looked
automated rather than human, plus, when it did, one label from a short fixed list naming
which rule decided that. We record the verdict so scraper fetches can be kept out of our
published download numbers. The verdict is worked out from two things: the browser
identifier (User-Agent), which is never stored, and the referring host
already listed above. The label itself is chosen from our own short fixed list, never
copied from either of them. The download event sets no cookie, stores
no IP address, keeps
no full referring URL and no query string, and writes
no per-visitor identifier — two downloads can never be tied back to
the same person. The data exists only in aggregate.
How we measure the docs. Each docs article has a “Was this
helpful?” Yes/No control at the bottom. Clicking it records one
anonymous event in our Cloudflare D1 database: the article slug, the
yes/no verdict, the country derived at Cloudflare’s edge, and the date. A
“No” also triggers a notification email to [email protected],
carrying no reader data beyond the slug, the verdict, and the country. The recorded event
sets no cookie, stores no IP address, and carries
no identifier of any kind; two clicks can never be tied to the same
person, and there is no reader to reply to. (Submitting a vote does pass through the same
anti-abuse rate limiter as our other rate-limited endpoints, and its counter briefly holds
the connecting IP address. That counter is separate from the recorded vote, is never
joined to it, knows nothing about which article you voted on, and is spelled out in
Abuse protection above.)
Why there is no cookie banner. A consent banner is required when a site
stores information on, or reads information from, your device for purposes that are not
strictly necessary (the EU ePrivacy rule, Art. 5(3)). The public marketing and docs pages
at evoglyph.com do neither: they set no cookie, write nothing to your browser, and load no
client-side script that reads your device. Two strictly-necessary cookies
exist behind explicit actions: signing in at /account sets an HttpOnly
session cookie whose only job is keeping you signed in (it expires after 30 days and is
deleted on sign-out), and the private, access-controlled admin area sets a CSRF-protection
cookie. Both are functional, are never used for tracking or analytics, and fall under the
Art. 5(3) strictly-necessary exemption — so no consent banner is required for them
either. The aggregate analytics above are processed under our
legitimate interest in understanding our audience and running the
business (GDPR Art. 6(1)(f)), documented in an internal Legitimate Interest Assessment.
The coarse, edge-derived country and region are not used to identify you and are not
treated as personal data tied to an individual. We mention all of this here so you see
both surfaces — the app and the site — in one place.
This site sets no cookies on visitors’ devices and runs no tracking of any kind. The sole exception: when our own team tests the site, we set a single functional cookie on our own devices so our test downloads don’t inflate our public download counts. It is never set on a visitor’s device, holds no personal data, and is never used to identify, track, or profile anyone.
Your rights, retention, and processors#
This page is the Evoglyph privacy policy. Below is who processes your data, how long it sticks around, and how to make a privacy request.
Who controls your data
Evoglyph is operated by Eluketronic LLC, a New York limited liability company, 447 Broadway, 2nd Floor #1266, New York, NY 10013, USA. Eluketronic LLC is the controller of the personal data described in this policy. To exercise any of your rights or ask a privacy question, email [email protected].
Third-party processors
Evoglyph is local-first, so the list of services we share data with is short. Each one is named above with the exact payload it receives:
- Stripe, Inc. — processes payments at purchase. Stripe receives the payment details you enter at checkout (Stripe holds your card data; we never do) and holds your order and subscription record. See Stripe’s privacy policy.
- Resend — delivers transactional email. When you purchase, Resend sends your license-key email; when you sign in to your account on the web, it sends your magic sign-in link. In both cases it receives your email address and the contents of that message. (It also delivers the docs-feedback notification described above to our own support address — that message contains no reader data beyond the article slug, verdict, and edge country.) See Resend’s privacy policy.
-
Cloudflare, Inc. — hosts evoglyph.com and the licensing service
that activates and re-validates your key (it receives your license key and a per-install
pseudonymous instance name/id; your license, entitlement, and device-activation records
— including the device label tied to each activation — are stored in
Cloudflare D1), hosts the trial service that enforces the free trial (it receives the
one-way salted device hash and trial word count described above; the trial record is
stored in Cloudflare D1), holds the auto-expiring per-IP rate-limit counters described
in Abuse protection (stored ~2 minutes, or ~2 hours for the
docs-feedback counter, in Cloudflare Workers KV on Eluketronic’s account), records
per-article docs-feedback counts (slug, yes/no verdict, edge country, date — no
identifier) in Cloudflare D1, counts page visits on the marketing site in aggregate at
its edge (server-side, with no analytics beacon or client-side script, cookieless, no
per-visitor profile, and no IP stored by Evoglyph), serves the model and installer
downloads from Cloudflare storage, records anonymous download counts (date, country,
coarse region, app version, the referring page’s host name, allowlisted
utm_*campaign tags, and our own automated-request verdict — no IP, no cookie, no full referring URL, no browser identifier, no per-visitor identifier) in Cloudflare D1, and — only if you opt in to crash reporting — receives opted-in diagnostic reports atdiag.evoglyph.com(a Cloudflare Worker on Eluketronic’s own account; data stored in Cloudflare D1 and R2). No diagnostic data is shared with any other party. See Cloudflare’s privacy policy.
We do not use ad networks, retargeting pixels, or session-replay tools. The list above is exhaustive.
International data transfers
Eluketronic LLC is based in the United States, and our processors — Stripe, Cloudflare, and Resend — are US companies that process this billing-side data in the United States. If you are in the EU, the UK, or another region with data-transfer rules, your personal data is transferred to and processed in the United States. Where the law requires it, those transfers rely on appropriate safeguards, such as the Standard Contractual Clauses (and each processor’s own transfer mechanism, e.g. the EU–US Data Privacy Framework where applicable). Your dictation never leaves your Mac, so it is never transferred to any of these processors.
Retention
- Your Mac. Evoglyph stores transcription history, custom vocabulary, and settings locally on your device until you delete them. We have no copy.
- Stripe. Order and subscription records persist for as long as your subscription exists, plus whatever Stripe retains for tax and accounting compliance after deletion. Your license and entitlement records live in our Cloudflare D1 database; we can delete your account-side records on request.
- Billing event records. To reconcile and back up orders and to recover from processing failures, we store the raw event records our payment processor (Stripe) sends us in our Cloudflare D1 database, along with an archive of the equivalent records from our former payment processor for orders placed before the switch. These records can include your name, email, and billing address. We keep them for as long as we need them for billing, accounting, fraud-prevention, and legal-compliance purposes, after which we delete or anonymize them.
- Device activation records. Each activated device’s record holds its pseudonymous instance name and id and the re-validation housekeeping fields described under license re-validation (latest app and macOS version, last-seen and last-active times, latest coarse activity bucket — current values only, no history). It is kept while the activation exists; we can delete it on request along with your other account-side records.
- Administrative audit log. Actions our own team takes on customer records — for example issuing a refund or viewing an account to provide support — are recorded in an internal audit log for security and accountability. An entry names the record acted on and can include your email address and license key. These logs are internal-only, are never shared, and are automatically deleted after 24 months (a window that keeps payment-dispute trails intact for as long as they can arise).
- Free-trial records. One row per one-way device hash, holding the trial-enforcement fields set out in full under Trial counter and license activation (trial progress against the word limit, the exhausted state, the one-way licensed flag, and row bookkeeping). It contains no name, email, IP address, or content, and the hash cannot be reversed into a device identifier. We retain it for as long as we offer the free trial; deleting a row is exactly what would let that device’s trial restart.
- Rate-limit counters. The per-IP anti-abuse counters described in Abuse protection expire automatically about two minutes after they are written, or about two hours for the docs-feedback counter, which uses a one-hour window. Nothing about them is logged, archived, or retained beyond that.
- Crash and error reports (if opted in). Reports are stored on Evoglyph’s own Cloudflare infrastructure and deleted after 90 days via an automated daily purge and a storage lifecycle rule.
- Cloudflare page-visit counts. Page visits are counted in aggregate at Cloudflare’s edge; there is no per-visitor record we can access or export.
-
Download counts. Each macOS download records an anonymous event (date,
country, coarse region, app version, the referring page’s host name, any
allowlisted
utm_*campaign tags, and our own automated-request verdict) in our Cloudflare D1 database. There is no IP, cookie, full referring URL, browser identifier, or per-visitor identifier, so there is no per-visitor record to access or export — the data exists only in aggregate.
Legal bases for processing (GDPR)
If the GDPR (EU/UK) applies to you, we rely on the following legal bases for the billing-side data we process:
- Performance of a contract — to issue, activate, re-validate, and manage your license and to process your purchase, subscription, and order email.
- Legitimate interests — to prevent fraud and abuse (including enforcing the free trial's one-trial-per-device limit and the short-lived per-IP rate-limit counters described in Abuse protection), to keep the service and our systems secure, and to keep aggregate, non-identifying download and docs-feedback counts.
- Consent — for opt-in crash and error diagnostics, which are off by default and which you can turn off again at any time.
- Legal obligation — to keep billing and accounting records the law requires us to retain.
Your rights
Under the GDPR (EU/UK) and similar privacy laws, you have the right to:
- Access — know what personal data we hold about you.
- Rectification — correct inaccurate or incomplete data.
- Erasure — delete your data, subject to legal retention requirements.
- Restriction — ask us to restrict processing in certain cases.
- Objection — object to processing based on our legitimate interests.
- Portability — request a copy of your data in a portable form.
- Withdraw consent — where we rely on consent (e.g. diagnostics), withdraw it at any time without affecting prior processing.
You also have the right to lodge a complaint with your local data protection or supervisory authority. We do not engage in automated decision-making or profiling that produces legal or similarly significant effects.
Because Evoglyph is local-first, the personal data we hold is limited to your billing-side records: your Stripe order record, your license and entitlement record, the device activation records tied to your license (device labels plus the re-validation housekeeping fields described above), the pseudonymous free-trial record keyed by a one-way device hash, the administrative audit entries described under Retention, and the raw billing event records described under Retention. (The transient per-IP rate-limit counters in Abuse protection auto-expire within about two hours at the outside and cannot be looked up per person, so there is no lasting record of them to produce.) Email [email protected] with the subject "Privacy request" and we will respond within 30 days.
California privacy rights (CCPA/CPRA)
If you are a California resident, the CCPA/CPRA gives you specific rights. The categories of personal information we collect, where they come from, and why:
- Identifiers (your email address, license key) — collected from you and from Stripe when you purchase — to issue and manage your license and to contact you about your order.
- Commercial information (purchase, subscription, and order records) — collected from Stripe — to process and reconcile your purchase and provide support.
- Internet or other electronic activity (coarse, edge-derived country and region for download counting; cookieless analytics events; the automated-request verdict described under download counting, worked out from the referring host listed there and from a browser identifier that is never stored; and, transiently, the IP address of requests to four rate-limited API endpoints, held about two minutes, or about two hours on the docs-feedback endpoint, for abuse prevention and then auto-deleted — see Abuse protection) — collected at Cloudflare’s edge and by our API endpoints — to count downloads and page visits in aggregate and to prevent abuse.
- Device information (a per-install pseudonymous device label tied to each license activation, with its latest app version, macOS version, last-seen and last-active times, and coarse activity bucket from re-validation; and a one-way salted hash of your Mac’s hardware UUID collected while unlicensed) — collected from your device — to enforce the two-device activation limit and the one-trial-per-device free trial and to support and secure the service.
We do not sell or share your personal information as those terms are defined under the CCPA/CPRA (“share” meaning cross-context behavioral advertising). Because no sale or sharing occurs, no “Do Not Sell or Share My Personal Information” link is required. We provide notice of collection through this policy. California residents may exercise the right to know, delete, and correct their personal information, and the right to opt out of any sale or sharing — and we will not discriminate against you for exercising any of these rights. To make a request, email [email protected].
Data-breach notification
If a data breach affects your personal data, we will notify affected users without undue delay and the relevant supervisory authority where the law requires.
Children’s data
Evoglyph is not directed to children, and we do not knowingly collect personal data from children.
Changes to this policy
Material changes will be noted at the top of this page with a new "Last updated" date and, if substantive, a note in the Evoglyph changelog. The most recent revision date is at the top of this article.