Changelog

All notable changes to CodePrettify are documented here.

Browser Extension Microsoft Store App
v1.0.52 Latest August 2026

Fixed

  • The floating search toolbar now keeps the complete match counter and both previous/next navigation buttons visible, preserves a usable search-field width across compact resolutions, expands toward the viewport sides when space is constrained, and hides adaptive quick actions before they can crowd the search controls.
v1.0.51 July 2026

Added

  • Diagram Generator — Turn JSON, JSON Lines, YAML, TOML, and XML/RSS documents into bounded field-card diagrams directly from More Actions or the Command Palette. A near-full-window workspace moves controls, status, and downloads into a compact left sidebar, maximizing the live diagram area. The interactive preview uses semantic HTML cards and field rows with inline SVG connectors instead of a scaled image, keeping focused text crisp and preparing the scene for future editing. Primitive arrays such as regions remain readable inline, YAML and TOML timestamps render as ISO date values, and a multi-document YAML source becomes one card per document. Reference-row minus and plus buttons collapse and restore child branches, while clicking a more fields row reveals that card's remaining bounded fields; both preserve the card position and zoom. Top-to-bottom layouts align these controls along the card's bottom edge with their connector origins. Stable compositor layers keep rapid touchpad zoom clear without stale card fragments. Normal clicks select without zooming, field rows highlight on hover, and double-clicking a card heading focuses that element. Pastel record cards group properties into field rows, hexadecimal colors get swatches, and the dotted canvas is preserved in SVG and PNG exports. Choose either layout direction, show or hide compact values, pan with the arrow keys, and use the floating zoom and fit controls.
  • Diagram search — A sidebar search box rings matching cards, highlights their matching field rows, and dims everything else while a counter reports the match total. Enter and the previous/next controls step through the matches and center each hit, and Escape clears the query without closing the tool.
  • Diagram inspector, structure controls, and Mermaid export — Clicking a field row opens a sidebar Field details panel with the full untruncated value and its document path, each one click from the clipboard. Selecting any card highlights its complete ancestor chain of cards and connectors. A Levels control bounds the scene to two, three, or four card levels, Collapse All folds every branch behind re-expandable ports while Expand All restores them, and Copy Mermaid exports the same cards, fields, and connections as a Mermaid class diagram for documentation and issue trackers; the export includes every field of each card, even rows the bounded on-screen card keeps behind its more fields disclosure.

Fixed

  • TOML integers outside the signed 64-bit range now fail validation at their exact line instead of silently wrapping to a wrong value, as the TOML specification requires. This protects every TOML consumer, including formatting, validation, and the Diagram Generator.
v1.0.50 July 2026

Improved

  • New CodePrettify identity — The browser extension, Windows app, website, favicons, and store artwork now share one original raw-to-clean transformation mark. Every production size comes from the same vector master, including the compact 16px toolbar icon.
v1.0.49 July 2026

Added

  • JSON to Code Generator — Paste strict JSON, load the active JSON document, or start from an example and generate TypeScript, Zod, C#, Java/Jackson, Kotlin, Python/Pydantic, Go, Rust/Serde, Swift Codable, Dart/json_serializable, or JSON Schema. Multiple array records improve optional/nullable inference; nested models, source-key mappings, root naming, package/namespace controls, copy, export, and open-as-document actions are included. Everything runs locally.
  • Data Converter utilities — Data Converter now includes dedicated Convert, Hash & HMAC, Timestamp, and ID Generator tabs. Create SHA-256, SHA-384, or SHA-512 hashes and HMACs with hex and Base64 output; convert Unix seconds, Unix milliseconds, and timezone-explicit ISO 8601 values; or generate secure UUID v4, time-sortable UUID v7, and ULIDs without adding more entries to General Tools. Compare remains focused on comparing two sources. Processing stays local, and UUID v7/ULID batches remain monotonic.
  • JSON Repair & Transform — Paste JSON-like input or optionally load a compatible current document, normalize it into a local JSON model, then build a live ordered recipe with Filter, Select, Remove, Rename, Sort, Unique, Flatten, Group/Aggregate, and Limit/Offset. Recipes are retained locally, never alter the source document, and results can be copied, downloaded, or opened separately.
  • Repair & Salvage — Recover common copied, logged, or hand-edited structured-data damage with a reviewable report. It handles Markdown fences and surrounding prose, comments, single-quoted strings, unquoted keys, trailing commas, JavaScript/Python literals, raw string controls, and JSON Lines records. Excluding broken JSON Lines records is always an explicit opt-in and reports every discarded source line.

Improved

  • Cleaner compact toolbar — Narrow browser windows hide the three adaptive quick-action shortcuts and their divider, retain the intended side margins, and keep copy, search, go-to-line, and More uncluttered. Every hidden shortcut remains available from the More menu.
  • General-tool availability — Structured Data Workbench is renamed to JSON Repair & Transform and is now always available in More Actions, the Command Palette, and adaptive quick actions. Users can paste independent JSON-like input from any document type, while a compatible current document remains an optional starting point.
  • Two-column More Actions — The extension separates actions for the active document from reusable utilities. Export, table/navigation/schema tools, Statistics & Diagnostics, Security Scan, and Collapse/Expand stay in the primary left column; JavaScript keeps its lightweight Document Navigator and separate Inspect Runtime workflow there too. Compare, JSON to Code Generator, JSON Repair & Transform, JavaScript Playground, Data Converter, Regex Playground, and HTTP Client are always available in the visually quieter general-tools column. Share configuration URL stays with the active web document because it captures that document’s viewer state. On wider screens the primary column is centered above the More Actions button, while constrained layouts stay inside the viewport and very narrow windows stack both groups.
  • Paired folding controls — Collapse All and Expand All now share one equal-width row beneath the active-document tools, shortening the menu while preserving separate keyboard-accessible actions.
  • General-purpose Compare — Compare now opens as a two-source workbench. The left input starts with the current document, while both sides remain independently editable and can be cleared, restored from the document, or swapped before comparison. Semantic JSON/JSONC/JSON Lines/YAML/TOML mode is detected from the two inputs even when another file type is open, and a semantic result links back to the editor only while the matching source is still the current document. Identical Semantic and Text results show one horizontal, centered empty state across the result viewport.
  • Guided JSON Repair & Transform experience — Transform uses a focused recipe-and-result layout with one-click common actions, advanced actions tucked under More transformations, detected field suggestions with samples, plain-language conditions and step summaries, and direct recovery guidance when no rows match. Incomplete steps leave the last valid preview intact. Repair and Transform keep one stable dialog height, while their code textareas use compact type without collapsing the editor viewport.
  • Feature-focused update notes — Maintenance-only updates without a cataloged major feature are acknowledged silently instead of opening a generic What’s New card.

Fixed

  • Universal tab styling — Collections/History, request-composer tabs, and response tabs in HTTP Client now use the same shared compact tab component as Data Converter. The duplicated HTTP-only tab appearance has been removed.
  • HTTP Client startup after extension updates — An already-open page with a stale, invalidated extension storage context no longer aborts while opening HTTP Client. The modal opens from its in-memory state; reloading the page restores saved collections, environments, history, and request execution.
  • Unified interface controls — Settings and tools now share small, medium, and large scales for inputs, selects, textareas, buttons, and icon buttons. Every visible technical textarea in Compare, JSON to Code Generator, JSON Repair & Transform, Data Converter, Schema Validator, HTTP Client, Regex, JavaScript Playground fallback, and JSON decode uses the same compact 13px code-text scale and monospace stack. Modal titles, section headings, field labels, help text, and status messages use shared typography, while task-specific layout, state colors, and editor sizing remain specialized.
  • Nested-array filtering — Fields such as owners[].name now test every item in the nested array, while the forgiving owners.name form works too. The field picker describes this as “any item” instead of requiring users to discover wildcard syntax.
  • Responsive Security Scan — The scan now opens at its intended wide, viewport-responsive size instead of inheriting the generic 400px modal limit, and its height fits the findings instead of leaving a large empty area. Copy endpoints stays on one line, while compact windows and longer translated labels use a clean stacked header; long scans still grow to the viewport limit and scroll.
  • Exact finding navigation — Selecting a Security Scan result now reveals its folded parent blocks before centering and highlighting the exact source line. Unrelated folds stay collapsed, and other line-linked tools receive the same correction.

Security

  • Local, fail-closed processing — JSON Repair & Transform input and results never leave the device. Unsafe or lossy numbers, prototype-sensitive paths, excessive nesting, oversized input/output, excessive nodes or rows, and overlong recipes are rejected instead of being silently changed or allowed to consume unbounded resources.
v1.0.48 July 2026

Added

  • Permanent What’s New opt-out — The update modal now offers Never show again. The preference stays local to this browser installation, clears pending prompts immediately, and remains respected by future extension versions. It also saves correctly if the extension refreshes while an older update modal remains open; a genuine failed save keeps the modal open and reports the error.

Fixed

  • Compact Data Converter layout — Stacked input and output panels remain separate and the work area scrolls instead of allowing the editors to overlap in short or narrow browser windows.
  • Reliable update opt-outNever show again now saves from an already-open older update dialog after the extension refreshes, rather than mistaking the harmless version difference for a storage failure.
v1.0.47 July 2026

Added

  • Offline Data Converter — One dedicated tool now prettifies, minifies, stringifies, parses, escapes, and unescapes JSON; converts JSON to and from XML, CSV, YAML, and TSV; and encodes or decodes Base64 and URL-encoded text.
  • One-time What’s New — After an extension update, the first normal document view highlights recent changes once. The last-seen version stays local to each browser installation instead of syncing prompt state between devices.

Improved

  • One conversion workflow — Formatting, structured-data conversion, and text encoding now share a dedicated input/output experience instead of requiring separate tools or a download-only conversion path.
  • Focused release highlights — The viewer presents localized, accessible updates from the previously seen version through the current release, falls back safely for unknown releases, and links to the full changelog.
  • Consistent action feedback — Data Converter, Regex Playground, and Security Scan now confirm copy actions on the clicked button. Disabled controls, button order, live status messages, reduced-motion behavior, high-contrast styling, notification severity, and keyboard navigation for interactive tool rows and menus are consistent across tools.
  • Actions where they belong — Data Converter places Convert beside the operation selector and groups Copy and Download with the output they act on.
  • Guided operation choices — Only conversions proven incompatible with the current document are disabled, with an explanation. Unknown input and lazy-loaded YAML operations stay selectable until they can be validated.
  • Flexible regex input — Regex Playground switches between the displayed document and session-local custom text, and copies the complete /pattern/flags expression. Custom test text is never persisted to history or settings.

Fixed

  • Reliable conversion state — Empty CSV and TSV inputs now produce valid [] JSON, while closing, changing, or reopening a conversion during lazy YAML startup cleanly cancels the old work.
  • Lossless-number guardrails — JSON, YAML, and typed XML numbers that cannot be represented without changing value are rejected instead of rounded. YAML aliases, nesting, node count, and generated output are bounded against runaway expansion.
  • Reliable clipboard and failure feedback — Copying falls back when the Clipboard API is missing or rejects a request, restores repeated button feedback correctly, and always surfaces localized failures. HTTP Client export failures no longer report success, and selection drags cannot accidentally close dismissible tool modals.
  • Visible copied state — Copied-success buttons remain visibly green while hovered, focused, or pressed, including in dark theme.
  • Accurate JSON errors — Data Converter validates JSON syntax before lossless-number checks, so JavaScript and other invalid JSON report a syntax error instead of a misleading -0 or numeric-corruption warning.
  • Prominent conversion failures — Blocking conversion failures appear in an accessible in-modal alert with the detailed cause.
  • Reliable alert icons — Converter alert icons render in DEV/source and packaged runtime views, with regression coverage preventing the runtime icon subset from drifting out of sync.
  • Worker-safe regex highlights — Document highlighting paints match ranges precomputed by the timeout-controlled worker instead of executing the pattern again in the viewer, so hostile expressions cannot bypass the timeout and block the UI during decoration.
  • Stable Regex Playground layout — The guide remains in a right-hand panel at normal desktop widths, and hiding it immediately reclaims the panel's space instead of leaving an empty gap.
  • Reliable Command Palette focus — Closing the palette no longer leaves focus trapped in its hidden input, so Ctrl+Shift+P can reopen it immediately and other shortcuts remain responsive.
  • Stable modal geometry — Opening a dialog on a document with a classic scrollbar preserves its occupied gutter, so the editor, minimap, floating toolbar, and horizontal scrollbar stay in place while background scrolling is locked. The reserved rail now matches the light or dark modal backdrop instead of exposing a white canvas strip, while scrolling dialogs retain their native track color.
  • HTTP Client spacing — The HTTP Client includes its padding inside its declared width and keeps symmetric backdrop margins instead of being flex-shrunk into an edge-to-edge dialog.

Security

  • Local processing — Every Data Converter operation runs locally and offline; input and output are never uploaded or sent to a remote conversion service.
  • Safer spreadsheet export — CSV and TSV conversion neutralizes formula-leading text cells before they reach spreadsheet software.
v1.0.46 July 2026

Improved

  • Useful included scripts — The JavaScript Playground now defaults to Safe definitions, retaining top-level functions and passive values while skipping page startup that depends on window, document, the DOM, jQuery, or page-provided globals. Run entire file remains available explicitly.
  • Console-style results — A final expression such as fApiUrl('test') now displays its value automatically without requiring an explicit return.
  • Accurate environment guidance — The Playground now clearly identifies its Web Worker runtime and explains that DOM APIs, Node.js APIs, and local files are unavailable.

Security

  • Isolation preserved — Safe definitions use strict syntax analysis and preserve source lines for diagnostics. Code still runs only in the offline, terminable Worker; no page-DOM, iframe, network, or synthetic-page access was added.
v1.0.45 July 2026

Improved

  • Clear browser-only guidance — The JavaScript Playground now explains that it runs browser JavaScript in a sandboxed Web Worker. Node.js modules, require, fs, process, and local-file access remain unavailable even when the current document is included.

Fixed

  • Useful Playground errors — Unsupported Node.js/CommonJS modules now produce a clear SandboxCapabilityError. Runtime failures point to the correct Playground or included-document source line, and stack locations are sanitized instead of exposing internal Worker blob: URLs.

Security

  • Sandbox unchanged — The improved diagnostics do not add Node.js, filesystem, native, or network access; Playground code remains offline and isolated.
v1.0.44 July 2026

Added

  • Local JSON Schema Validator — Paste a schema to check the open JSON or JSONC document against common keywords and local $ref references. Nothing is fetched or uploaded, validation is cooperatively scheduled and capped, and every violation can jump to its JSON path and source line.

Security

  • Private Markdown previews — Remote and network images are now shown as explicit links instead of loading automatically, so opening an untrusted Markdown file cannot silently contact an external host. Safe embedded images can still render.
  • Hardened viewer boundary — Live HTML pages are rejected even when their URL ends in a supported source extension. Privileged HTTP actions require a verified top-level viewer and a trusted user gesture, and launcher tools return only to the exact verified source tab.
  • Offline, fail-closed sandboxes — JavaScript and regular-expression execution now validates its private bridge, stays in bounded workers, locks down network primitives, and uses a connection-denying sandbox policy. Syntax-aware module handling no longer rewrites import-like text inside literals, templates, comments, or regular expressions.
  • Local-only HTTP secrets — Saved requests, environments, secret variables, and replay history are migrated out of sync storage. Sensitive headers, query values, URL credentials, and bodies are omitted from history; encoded and inactive secrets remain masked.
  • Bounded hostile-input handling — Search and JSON Schema validation reject dangerous regular expressions before execution, while Security Scan remains responsive on large near-match-heavy documents and clearly labels partial scans.
  • Secure build dependency — The build-time esbuild dependency is updated to 0.28.1, containing the Windows development-server path-traversal fix.

Fixed

  • Launcher source context — Launching a tool from a .jsonc, .toml, or supported extensionless resource now keeps the current document as its source instead of losing the context.
  • No source-URL mutation — Tools focus the original verified viewer instead of reopening it with a control query parameter. Signed/API URLs are preserved, duplicate requests are avoided, and local uploaded or file:// viewers work correctly.
  • Reliable HTTP Client — A completed response is retained even if history storage fails. Concurrent history writes, timeout/cancel reporting, save errors, duplicate auth headers, URL credentials, and cURL -I/-G imports are handled correctly.
  • Lossless formatting — JSON Lines records, YAML block scalars, CSS strings and data URLs, XML mixed content/CDATA/xml:space, Markdown code blocks and hard breaks, and fractional TOML times no longer change during formatting or minification. Unterminated JSONC comments are rejected.
  • Correct structured-data tools — Large numeric literals, dates, semantic array identities, mixed tables, __proto__ keys, exact schema multiples, IPv6, -0, and quoted property paths now produce correct results. Unsupported unevaluatedProperties is reported instead of silently ignored.
  • Stable view state — Rapid Raw/Prettified switching cannot apply stale formatting. CodeMirror folds, deep scroll position, live Auto theme, multi-tab settings, and per-URL state restore reliably.
  • UI and accessibility fixes — Modal focus restoration and repeated shortcuts, debounced and one-character search, 10,000-result truncation, Markdown minimaps, hidden-toolbar palette actions, 320 px layouts, keyboard menus, local-viewer reloads, legacy settings, labels, and live status regions are corrected.
v1.0.43 July 2026

Added

  • Choose which file types to run on — A new File Types section in Settings lets you switch each supported type on or off. Turn one off and the extension no longer takes over those pages — the browser shows them as usual. You can also set each type to open Rendered or Raw by default.

Improved

  • Clearer view toggle — The Prettify/Raw button is now a two-state switch that shows both options with the current one highlighted, so it is obvious which view you are in. The wording adapts to the file — Rendered/Source for Markdown and XML/RSS, Prettified/Raw for code and data.

Fixed

  • Syntax warning could be missed — On pages with a heavy first render, the JavaScript syntax check could give up while its sandbox was still loading, and the invalid-code warning never appeared. The check now waits properly and re-runs in the background if needed, so the warning still shows a moment later.
v1.0.42 July 2026

Fixed

  • Inline code in the Markdown preview — Back-tick code spans now render inline the way they should, instead of stretching into full-width boxes on their own line.
v1.0.41 July 2026

Added

  • Security Scan — A one-keystroke recon pass over the open document, from the Command Palette, for code review and penetration testing. It flags hardcoded secrets — API keys and tokens from the major cloud and SaaS providers, JWTs, private keys, and database connection strings with embedded credentials — with the values masked and ranked by severity, and it pulls out the URLs, API routes, and endpoints hidden inside a script bundle. Every finding jumps to its line, endpoints copy in one click, and it all runs locally.

Improved

  • Better Markdown Preview — Task lists now render as real checkboxes, footnotes work properly with clickable references, :shortcode: emoji are converted, and every heading gets an anchor so in-page links work. Tables with column alignment, strikethrough, and nested lists keep working, and raw HTML stays safely escaped.
v1.0.40 June 2026

Added

  • Semantic Compare — The Compare tool now has a Semantic mode for structured files that diffs the data itself rather than the text. Reformatting, reordering keys, or minifying no longer shows up as thousands of phantom changes — you see only what genuinely changed, and reordered list items are matched by their id. The classic line-by-line Text mode is still one click away.
v1.0.39 June 2026

Improved & Fixed

  • Localization & Grammar — Fixed grammar issues and corrected language translations in the locale files.
v1.0.38 June 2026

Added

  • TOML Support — Open, format, and validate TOML files, now with full syntax highlighting.
  • Cross-Format Conversion — Convert the open document between JSON, YAML, and TOML and download the result, right from the Download dialog.
  • JSON with Comments (JSONC) — Files with comments and trailing commas (like tsconfig.json) now format and validate correctly instead of showing as raw text.
  • Command Palette — Press Ctrl+Shift+P to fuzzy-search and run any viewer action straight from the keyboard.
  • Open Local Files — Drag and drop or pick a file on the launcher or welcome page to view it instantly — no extra browser permission needed.
  • Rating & Feedback Prompt — A gentle, dismissible prompt invites long-time users to leave a review or share feedback, shown at most once.

Security

  • Safer Links & Requests — Links in CSS files and HTTP Client requests are now limited to safe http(s) URLs, blocking javascript:, file:, data:, and similar schemes.
  • Tighter Secret Handling — Saved secrets stay masked across every environment, and very large HTTP responses are capped so a huge reply can't overwhelm the extension.

Improved & Fixed

  • Launcher Opens Tools in a New Tab — Picking a tool from the launcher now opens it in a new tab and leaves the launcher open, so you can launch several in a row.
  • More Accurate Diagnostics — Corrected XML/RSS line numbering, several diagnostics edge cases (deep schemas, timestamps, Base64 detection), and a flickering JSON breadcrumb tooltip.
  • Smoother Editing — As-you-type search is debounced, the color picker is steadier, and CSV and table exports keep a consistent column order.
  • More Reliable Tools — Runtime Inspect now captures modern const/let/class code, Export JSON no longer stalls on a false secrets warning, and the document outline recognizes more declaration styles.
  • Faster & Steadier — Smoother scrolling with a sharper high-DPI minimap, quicker Statistics & Diagnostics and diff/compare, plus assorted rendering and stability fixes.
v1.0.37 June 2026

Security

  • Parser-Only Validation — Replaced the executor-based syntax validator with a secure parser-only check using Acorn to prevent code execution in the sandbox during document viewing.
  • Formula Injection Prevention — Neutralized formula injections in CSV exports by prefixing formula-triggering characters with a quote.
  • Credential Redaction — HTTP Client history now automatically redacts sensitive headers like Authorization and Cookie before saving.
  • View State Validation — Hardened shared settings URLs by strictly type-validating and range-clamping inputs.

Fixed

  • Catastrophic Backtracking Protection — Regex Playground now evaluates patterns inside a sandboxed worker with a 1.5-second timeout, preventing app freezes.
  • HTTP Client Replay Fix — Replaying POST/PUT requests from history now correctly restores the request body.
  • Formatting Safeguards — XML/RSS CDATA sections, comments, and CSS string literals are now preserved byte-for-byte during formatting.
  • Smarter JSON Queries — Bracket parsing in JSON Path is now escape-aware, correcting queries on keys containing special characters.
  • Diagnostics Depth Cap — Prevented UI freezes by capping diagnostics traversal depth on highly nested JSON.
  • General Fixes — Resolved NDJSON auto-detection, modal scroll locking, document-level event listener leaks, and duplicate injection bugs.

Changed

  • Excel-Friendly CSVs — CSV exports now use UTF-8 BOM and CRLF line endings to display correctly in Excel.
  • Improved Table Exports — HTML table exports now respect active filtering, search query, sorting, and column arrangements.
  • Optimized Theme Syncing — The welcome and launcher pages now fully align with user-configured light and dark themes.
v1.0.36 May 2026

Fixed

  • Search Paste Replacement — Pressing Ctrl+F in the floating search tool now selects the existing search text, so pasting a new query replaces it immediately.
v1.0.35 April 2026

Fixed

  • Clean XML Source — XML and RSS pages no longer show the loader's early-hide CSS as a visible node before the formatter starts.
v1.0.34 April 2026

Fixed

  • Search Result Navigation — Pressing Enter repeatedly in the floating search field now moves to the next result instead of getting stranded on the first match.
v1.0.33 April 2026

Changed

  • Search Without Losing Your Place — Typing or pasting in the floating search field now highlights every match and updates the result count without moving the editor viewport. Press Enter, click the new search button, or use the previous / next arrows to navigate explicitly from the current visible position.
  • Smarter Reload Recovery — Per-file view state now keeps only the 10 most recent files and expires entries after one hour, so accidental reload recovery stays useful without stale state piling up.

Fixed

  • Fixed restored search text re-running navigation during reload; saved queries now re-highlight passively so the remembered line position remains intact.
  • Fixed reload recovery storing only explicit highlighted lines; view state now saves and restores the actual viewport line and scroll position.
v1.0.32 April 2026

Fixed

  • Runtime Inspect Module Neutralization — Fixed Runtime Inspect falsely reporting SyntaxError: missing ) after argument list on valid JavaScript bundles that generate import and export module source inside template literals, including es-module-shims. The sandbox module neutralizer now skips strings, comments, and template-literal text before rewriting real module syntax for the classic worker harness.
v1.0.31 April 2026

New Features

  • Markdown Preview — CodePrettify now supports .md and .markdown pages plus Markdown HTTP responses, with a safe rendered preview that keeps embedded HTML visible without executing scripts.
  • Regex Playground Upgrade — The Regex Playground now includes replace mode, live replacement preview, named saved patterns, reusable test cases, and snippet export for JavaScript, C#, and PowerShell.
  • Table View Upgrade — Table View now adds per-column filters, drag-and-drop column reordering, column type summary chips, selected-row CSV / JSON export, and smoother large-table handling.
  • HTTP Client Upgrade — The HTTP Client now includes timeout and cancel controls, timing breakdowns, multipart/form-data and GraphQL body modes, and secret masking in previews, history, and Copy As snippets.
  • Smarter JSON Diagnostics — Statistics & Diagnostics for JSON now flags duplicate keys, suspicious timestamps, and likely OpenAPI / JSON Schema structure issues, with quick-fix guidance in the results.

Improvements

  • Clearer HTTP Error Guidance — HTTP Client failures now distinguish timeout, cancellation, and blocked-response cases with clearer guidance for CORS, mixed content, DNS, certificate, and offline issues.
  • More Accurate JS Runtime Tools — JavaScript Playground autocomplete and Runtime Inspect now understand modern JavaScript and TypeScript declarations more accurately, including destructuring, imports, exports, and code outside strings or comments.

Bug Fixes

  • Table View Filtering — Filtering large virtualized tables now stays stable after scrolling, and the filter inputs render directly inside the column headers.
  • Cleaner JS Suggestions and Inspect Results — Fixed false JavaScript Playground autocomplete and Runtime Inspect entries that were previously being created from JavaScript-looking text inside strings or comments.
v1.0.30 April 2026

New Features

  • Launcher Page and Install-only Welcome — Clicking the extension icon now opens a dedicated launcher with direct buttons for the prettify editor, HTTP Client, JavaScript Playground, and Regex Playground. The welcome page is now reserved for first install so regular use starts from actionable tools instead of onboarding.
  • HTTP Client — The old cURL / fetch generator is now a full request editor available on any HTTP page. Build and send requests from one modal with dedicated Params, Auth, Headers, and Body tabs, then inspect the response in Body, Headers, Cookies, and Raw tabs.
  • Saved Requests and Environments — Save named requests per environment, sync them across supported browsers, and use {{variable}} placeholders in URLs, headers, auth fields, and bodies with a live resolved-URL preview before you send.
  • Import and Copy-As Workflows — Import existing cURL commands, then copy the current request as cURL, fetch(), or PowerShell Invoke-RestMethod snippets after editing it.

Improvements

  • Localized Launcher and Welcome — The new launcher flow and the refreshed welcome page are now localized across all supported browser languages instead of only shipping complete copy in the initial rollout languages.
  • Playground Editor Polish — The JavaScript Playground editor now keeps the caret visible on blank new lines, and reopening saved Playground content places the cursor at the end of the restored code so you can keep typing immediately.

Bug Fixes

  • Performance and UI Stability — Fixed overlapping animation frame hook issues, scroll-position loss when toggling formatted views, and restored the "Copy" floating action on HTTP (non-secure) domains via a fallback copy mechanism.
v1.0.29 April 2026

New Features

  • Regex Playground — A new focused modal (Ctrl+Alt+R or floating toolbar “More actions”) for testing patterns against the currently displayed document. Enter a pattern without slashes, toggle gimsuy flags, and matches highlight live in the main CodeMirror viewer. A cursor-aware details panel shows capture groups and named groups for the active match. Includes a built-in guide with quick-reference examples you can load with one click, a show/hide toggle remembered in local storage, and a wide-screen layout that docks the guide as a full-height right sidebar. The last 10 patterns are saved to synced storage so recent expressions follow your browser profile.

Improvements

  • Copy Button Mode Memory — The floating Copy button now remembers the last copy mode selected from its dropdown (Original, Formatted, or Minified) in synced settings and reuses that mode on direct clicks. Its tooltip and accessible label reflect the active mode, and the copy confirmation toast names the exact mode that was used.

Bug Fixes

  • Bug Fix (Regex Playground Backdrop Dismiss) — Fixed the Regex Playground closing when clicking outside the modal, matching the safer behavior of the JavaScript Playground and protecting in-progress regex work from accidental dismissal.
  • Bug Fix (Regex Playground Layout) — Fixed the wide-screen Regex Playground layout so the lower match/details area stretches to fill the available modal height instead of leaving unused space.
  • Bug Fix (Regex Playground Localization) — Fixed localized Regex Playground strings across browser locales, including restoring broken non-ASCII characters in languages such as Norwegian, while keeping the help/examples section intentionally English-only.
v1.0.28 April 2026

New Features

  • Runtime Inspect Panel — On JavaScript files, a new More actions entry (Ctrl+Alt+I) runs the current document in the existing sandbox iframe through a blob Web Worker and reports every top-level declaration with its captured value. Variables show their final value, functions their parameter signature, classes are listed, and any runtime or syntax errors are surfaced at the top. Each row is a jump-to-line button and the panel also shows any console.* output emitted during load.
  • Inline Value Annotations — After Inspect runs, each top-level let, const, var, function, and class declaration gets a small muted arrow with a summary of its captured value at end-of-line (let total = price * 1.25; → 125). A “Show values inline in the viewer” checkbox in the Inspect modal toggles them live, and a dedicated “Clear inline values” entry is added to the More actions menu for quick dismissal.
  • Hover Tooltips in the Viewer — After Inspect runs, hovering any identifier reference in the main JavaScript viewer pops a tooltip showing the captured name → value for that symbol. Works on every usage, not just at the declaration. Tooltips flip around the cursor to stay inside the viewport and disappear when you leave the editor, scroll, or press “Clear inline values”.
  • Include JSON & JSON Lines in the Playground — The Playground's “Include {filename}” option now works on .json files — the parsed payload is prepended as const json = …; — and on .jsonl files, which become const json = [ …records ] with malformed lines skipped. The variable is always called json regardless of filename, autocomplete surfaces it, and an inline “Note — the document is available as the json variable in your code.” banner is shown above the output panel while the option is active.
  • Quick-Access Toolbar Buttons — CodePrettify now learns which “More actions” items you use most. Every time you open one of the modals from the ⋮ menu a per-action counter is saved to browser sync storage, and once you've used an action more than ten times it's promoted to a dedicated toolbar button immediately after the More button — up to three at a time. The list is filtered by the current file type, so “JSON path inspector” only surfaces on JSON documents and “Inspect Runtime” only on JavaScript. Counts persist across devices when sync storage is available, so your personal shortcuts follow you between profiles. Counts also tick up when the action is triggered by a keyboard shortcut, not just menu clicks.

Bug Fixes

  • Bug Fix (Playground Error Line Numbers) — Syntax errors in the Playground used to report line numbers from the worker's internal harness rather than your actual code — a typo on line 1 could surface as “line 184”. Error messages now use the line number in your combined buffer, label the location as “in your code” or “in included document” when the “Include {filename}” option is active, and echo the actual text of the offending line beneath the error so you can see at a glance what the parser tripped on.
  • Bug Fix (ES Modules with Block Comments) — Fixed the Playground / Inspect preprocessor occasionally corrupting files that contained import or export example lines inside multi-line /* … */ comments. The preprocessor now emits only comment-neutral replacements, so rewriting inside comments is a no-op and can no longer leak into executable code as phantom parse errors on lines the user never wrote.
  • Bug Fix (Sandbox Initialisation Warning) — Silenced a sporadic Unsafe attempt to load URL …/sandbox.html from frame with URL …/sandbox.html console warning by consolidating the JS validator and the Playground / Inspect harness onto a single shared sandbox iframe bridge. Each page now creates the iframe exactly once and routes all validation, execution, and inspection traffic through a single message listener with per-request timeouts.

Improvements

  • ES Module Syntax in the Sandbox — Both the Playground and Inspect harnesses now neutralize ES module syntax before the code reaches the classic Worker, so real-world module files no longer fail with Cannot use import statement outside a module. Static import statements are rewritten into local const stubs, re-exports and export lists are stripped, export keywords are dropped from declarations, dynamic import(…) resolves to {}, import.meta becomes an empty object, and a self.require stub is injected so CommonJS files also keep running.
  • Editable CodeMirror API — The bundled viewer gains two opt-in decoration channels: setInlineAnnotations / clearInlineAnnotations / hasInlineAnnotations for end-of-line widgets, and setHoverValues / clearHoverValues / hasHoverValues for cursor-driven identifier tooltips. Both fields map defensively through changes so stale ranges can never surface as uncaught errors during input.
  • Symbol Extraction with Line NumbersextractJsSymbolsFromCode now carries every captured symbol's 1-based source line, computed with a precomputed line-offset table and binary search. This powers the Inspect panel's jump-to-line buttons, the inline annotation placement, and refines the Playground's autocomplete ordering.
  • Refreshed Settings Shortcuts Overview — The settings modal's Keyboard Shortcuts section now includes Ctrl+Alt+P (JavaScript Playground) and, when viewing a JavaScript file, Ctrl+Alt+I (Inspect Runtime). Shortcuts that don't apply to the current file type stay out of sight.
  • Registered the fa-eraser and fa-magnifying-glass-chart Font Awesome solid icons used by the new toolbar entries.
v1.0.27 April 2026

New Features

  • JavaScript Playground — Added a sandboxed scratchpad accessible from the floating toolbar's More actions menu or with Ctrl+Alt+P. Runs your code inside a blob Web Worker with configurable 1 / 5 / 15 second timeouts and top-level await support. Captures console.log, info, warn, error, debug, and console.table (rendered as a real HTML table with sticky headers), and reports the return value, execution time, and full stack traces for syntax and runtime errors.
  • Include Current Document — When viewing a JavaScript file, an opt-in “Include filename” checkbox prepends the displayed source to your Playground code so top-level functions and variables from the page are in scope.
  • Autocomplete in the Playground — A floating suggestion list surfaces functions, methods, classes, and variables extracted from both the Playground buffer and the current document (when the include option is on). Parameter signatures are shown inline, and accepting a callable appends () with the caret placed between the parentheses. Auto-triggers after two characters or with Ctrl+Space, navigate with /, accept with Enter or Tab, dismiss with Esc.
  • Playground Persistence — Playground code, timeout, and “Include” preference autosave to chrome.storage.local five seconds after your last keystroke and immediately on every Run, so you can close the modal, switch tabs, and resume your scratchpad where you left off regardless of which file you open it from.

Improvements

  • Editable CodeMirror Viewer — Opt-in editable mode unlocks in the bundled CodeMirror wrapper so the Playground (and future editors) get history, indent-on-input, bracket matching, folding, and line numbers. Existing read-only viewers are unaffected.
  • Tab & Shift+Tab Indent — Tab and Shift+Tab indent and dedent inside the Playground editor (two-space unit, multi-line aware) instead of cycling focus to the surrounding modal buttons.
  • Safer Modal Close — The Playground modal closes only via Esc or the explicit close button. Backdrop clicks no longer dismiss it, so unsaved scratchpad work stays put.
  • Playground Scrollbar & Caret — Overrode the shared read-only CodeMirror theme inside the Playground so vertical scroll, sensible min-height, and a visible text caret all work correctly in the editable editor.
  • Textarea Fallback — Added a plain <textarea> fallback for the Playground editor if the CodeMirror editable viewer fails to initialize in degraded environments, keeping the feature usable.

Bug Fixes

  • Bug Fix (Decoration RangeError) — Hardened the shared decoration state field in the bundled CodeMirror viewer so a transient out-of-range range set cannot bubble up as an uncaught RangeError: Position X is out of range for changeset of length Y during editor input. Falls back to an empty decoration set instead of crashing.
v1.0.26 April 2026

Improvements

  • Go To Line Memory — The Go To Line modal now remembers the last line number you used during the session and pre-selects it when reopened, so repeated jumps near the same line require less retyping.

Bug Fixes

  • Bug Fix (parseInt Radix) — Fixed CSS rgb() and rgba() color parsing and the settings modal font size and indent size readers to pass an explicit decimal radix to parseInt, avoiding ambiguous numeric parsing on values with leading zeros.
v1.0.25 April 2026

Bug Fixes

  • Bug Fix (Loader Fallback) — Fixed the loader so normal HTML pages served on extension-like routes such as .json or .ts are no longer briefly hidden before CodePrettify decides not to activate.
  • Bug Fix (XML Source Round-trip) — Fixed XML source round-tripping in the browser viewer so downloading the original XML preserves legitimate source attributes instead of stripping values that happened to match CodePrettify loader markers.
  • Bug Fix (PNG Export Scope Selector) — Fixed PNG export options so the “As shown in browser” and “Full code” scope selector is now available across supported PNG-exportable document types, with the selected scope applied consistently.
  • Bug Fix (Download Modal CSV Details) — Fixed the download modal so CSV readiness details are hidden while the PNG export options panel is open.
v1.0.24 April 2026

Bug Fixes

  • Fixed multiple potential crashes from missing null checks, including in the settings modal, code folding handlers, and CSS color parser.
  • Hardened security by sanitizing ZIP export paths to prevent path traversal and by correctly escaping URLs for fetch command generation.
  • Improved performance by adding memoization to JSON path mapping, reducing the threshold for expensive diff operations, and adding a depth limit to recursive analysis.
  • Replaced all inline onclick event handlers with delegated listeners to improve security and maintainability.
  • Added a timeout to the UTF-8 recovery fetch to prevent indefinite hangs on unresponsive servers.
  • Prevented a potential crash on invalid color values in CSS and ensured the minimap redraws when font size changes.
  • Clarified the browser build and install guidance so manual unpacked installs use the generated build ZIP or source checkout instead of Chrome-managed extension folders that include reserved _metadata files.
v1.0.23 April 2026

Bug Fixes

  • Bug Fix (Export Filenames) — Fixed export filenames so downloads no longer repeat labels such as formatted, min, or table when the original filename already ends with the same label.
  • Bug Fix (PNG Export Fallback Feedback) — Improved image export fallback behavior so highlighted PNG exports keep their colored formatting when the primary DOM capture path is unavailable, and empty captures now show an error state instead of a success toast.
v1.0.22 April 2026

Bug Fixes

  • Bug Fix (Sandbox Validation Isolation) — Fixed sandboxed JavaScript validation leaking page-side security errors on some raw script documents by moving the classic-script syntax check into a worker-backed parse path that never runs top-level page code during validation.
v1.0.21 April 2026

Bug Fixes

  • Bug Fix (Search Navigation) — Fixed large-document search navigation so the active result now lands near the middle of the editor viewport when possible, making next and previous result jumps easier to follow.
v1.0.20 April 2026

Improvements

  • Settings Sync Storage — Persistent extension settings now move into browser sync storage so supported browsers can keep CodePrettify preferences aligned across profiles.
  • Legacy Storage Migration — Existing local codePrettifySettings and codePrettifyViewStates entries now migrate automatically to the shorter settings and viewStates keys, with cleanup of the old local settings key after migration.
v1.0.19 March 2026

Bug Fixes

  • Bug Fix (Minimap Viewport Alignment) — Fixed the minimap viewport drifting lower than the actual editor scrollbar on large CodeMirror-backed documents, including CSS files with word wrap disabled, by mapping the overlay to the real scrollable range.
v1.0.18 March 2026

Bug Fixes

  • Bug Fix (Classic JavaScript Validation) — Fixed the syntax checker falsely rejecting some valid minified classic JavaScript files, including real-world bundles such as moment.min.js, by validating standard scripts with the browser parser before falling back to module-aware parsing when needed.
  • Bug Fix (TypeScript Script Handling) — Fixed TypeScript documents being validated and linkified as plain JavaScript by preserving the actual script file type for syntax checks and extensionless relative imports.
  • Bug Fix (Validation Diagnostics) — Fixed sandbox startup and validation transport failures being reported as successful checks. Diagnostics now surface an unavailable-validation warning instead of silently marking the script as valid.
  • Bug Fix (Legacy Charset JS Source) — Fixed valid UTF-8 JavaScript bundles being read as mojibake on some raw browser pages that fell back to legacy document encodings, which could surface false syntax errors.
  • Bug Fix (Release Packaging) — Fixed the browser release build so the packaged extension keeps the shared CodeMirror validator bundle while excluding the unused browser js/html.js asset.
v1.0.17 March 2026

Fixed

  • Localization — Minor corrections to translated interface strings.
v1.0.16 March 2026

New Features

  • Copy Format Menu — Added a copy format context menu on the floating toolbar copy button with options to copy original, formatted, or minified code to the clipboard.

Bug Fixes

  • Bug Fix (XML Word Wrap) — Fixed prettified XML and RSS word wrap adding an extra blank continuation line for long values by removing the trailing rendered space from each XML line.
  • Bug Fix (JavaScript Navigator) — Fixed the Document Navigator showing an empty outline for JavaScript documents in the shared CodeMirror viewer by deriving navigator items from the displayed source text instead of legacy DOM fold markers.
  • Bug Fix (Centered Line Navigation) — Improved line navigation so both Document Navigator jumps and the Go To Line modal center the target line within the active editor viewport when possible.
  • Bug Fix (HTML Injection Boundary) — Stopped injecting the desktop-only HTML handler into browser pages so regular HTML documents remain untouched and the extension stays limited to supported raw-code formats.
  • Bug Fix (Build Packaging) — Fixed the browser release build so the generated ZIP now places the extension files at the archive root and removes stale Font Awesome SVG entries from the built manifest after asset inlining.
v1.0.15 March 2026

New Features

  • Welcome Page Sample Links — Replaced third-party "Try it now" example links on the localized welcome page with hosted sample files from https://prettify.cloud/testfiles/, including both basic and product-list JSON fixtures alongside JSONL, YAML, JavaScript, CSS, and XML samples.
  • RSS/XML JWT & Base64 Decoding — JWT tokens and Base64 encoded strings in XML and RSS text content are now detected inline with decode icons and hover tooltips, matching the existing JSON decode feature.
  • RSS/XML Unix Timestamp Formatting — Unix timestamps in seconds and milliseconds are now detected in XML/RSS text content and show human-readable date/time hover tooltips alongside ISO 8601 and RFC 822 dates.

Bug Fixes

  • Bug Fix (XML Decode Tooltip) — Fixed the decode hover tooltip crashing with Cannot set properties of undefined on XML pages. Element creation now uses the XHTML namespace so tooltips render correctly in XML document contexts.
  • Bug Fix (JSON Decode Hover) — Fixed JSON JWT and Base64 decode hover tooltips silently failing in the browser extension. The decode methods were moved to UiHelper but the container and codeBlock event handlers still referenced JsonHandler, causing the hover to be skipped.
  • Bug Fix (Raw View Toolbar Spacing) — Fixed the top-right toolbar button keeping minimap padding on raw CSS and other raw-code views when the minimap itself was hidden. The toolbar and content gutter now only reserve right-side space when the minimap is actually visible.
v1.0.14 March 2026

🐛 Bug Fixes

  • Bug Fix (Inline JWT & Base64 Decode) — Restored inline JWT and Base64 decode affordances across prettified CodeMirror-backed documents. HTML text nodes and JavaScript string values that render decode widgets now get the same hover tooltip and decode-icon click behavior as the existing JSON and RSS/XML viewers.
v1.0.13 March 2026

✨ New Features

  • Export Filenames — Downloads now use the source file's base name with a HHMMSS timestamp suffix so repeated exports are easier to distinguish. Formatted, minified, and table exports keep a short label before the timestamp, and image export follows the same naming pattern.
  • Welcome Page (Local Files Note) — Added a note on the welcome page informing users they must enable "Allow access to file URLs" in Chrome's extension management page (chrome://extensions) to use CodePrettify with local file:/// URLs. Localized in all 14 languages.
  • Code Viewer Migration — Replaced the in-page content viewer with a bundled CodeMirror 6 surface so raw-code documents now render inside a modern editor engine instead of the previous Prism-driven DOM renderer.
  • RSS/XML Timestamp Formatter — RSS and XML date values now show the same human-readable hover tooltip formatting for ISO 8601 and RSS-style publication dates in text nodes and attribute values.
  • VS Code Theme Pass — Tuned the shared light and dark editor palettes to track VS Code more closely, including gutter, selection, active-line, fold placeholder, and search-match colors.

🐛 Bug Fixes

  • Bug Fix (JSON Inspector & Breadcrumbs) — Fixed several JSON interaction regressions. Selected paths, copied paths, pasted queries, and autocomplete now normalize consistently to valid $-prefixed JSONPath; clicking a JSON property key maps the clicked editor line back to the correct path and opens the inspector again; value clicks plus gutter and fold clicks no longer trigger it accidentally; inspector result actions now resolve the correct destination line immediately, including top-level arrays; and JSON breadcrumb hover is visible again, stays stable on screen, omits the hover copy button, and still excludes gutter and fold controls.
  • Bug Fix (JSON Viewer Tools) — Fixed JSON-only viewer tools that regressed after the viewer migration. The Document Navigator now derives its outline from the parsed JSON structure and jumps to the correct formatted lines, and Unix timestamps plus ISO 8601 string values once again show human-readable date/time tooltips in prettified and raw JSON documents.
  • Bug Fix (CSS Color Picker) — Restored the CSS color picker. CSS swatches in read-only documents once again open the popup with live preview and copyable HEX, RGB, and HSL values, and the CSS color picker setting now properly enables or disables those swatches.
  • Bug Fix (Viewer Layout & Minimap) — Fixed several browser viewer layout issues. The theme class now updates before the minimap redraw so palette changes apply immediately, the pretty view resets the browser page's default body margin and repaints the minimap background with the active light or dark palette, and short documents now keep their padded content inside the viewport-sized minimum height instead of forcing a page-level vertical scrollbar.
  • Bug Fix (RSS/XML Browser Rendering) — Fixed the remaining RSS/XML browser-view regressions after the viewer migration. The minimap no longer crashes on Chromium XML viewer pages because the offscreen cache now uses an XHTML canvas element, and XML, RSS, and Atom documents are routed back through the stable legacy markup renderer after the viewer migration exposed a mount failure there.
v1.0.12 March 2026

✨ New Features

  • YAML Support — Added support for .yaml and .yml files plus common YAML response content types (application/yaml, application/x-yaml, text/yaml, text/x-yaml). YAML documents now load automatically in the extension with syntax highlighting, prettified indentation cleanup, line numbers, export support, search, diff, and the existing toolbar tools.
  • YAML Settings — Added a YAML file-type checkbox in settings so you can disable default prettified mode for YAML. When turned off, YAML documents open in raw view by default.

🔧 Improvements

  • Performance (Large Files) — Replaced DOM parsing with direct insertAdjacentHTML injection across all language handlers (JS, JSON, CSS, XML/RSS, HTML, YAML) eliminating major memory bottlenecks, exponential string concats, and GC thrashing. Files load significantly faster.
  • Performance (Minimap Render) — Offloaded code minimap rendering to an internal Canvas element, ending UI blocking main-thread pauses when calculating the preview map.
  • Performance (Bracket Matching) — Re-worked JS and JSON bracket hover matching to cache structural positions rather than doing repetitive N-depth DOM queries on every pointermove.

🐛 Bug Fixes

  • Bug Fix (Locale Encoding Repair) — Fixed corrupted localized UI strings in the Portuguese browser locale so the extension renders the intended text again.
  • Bug Fix (YAML Settings Selector) — Fixed the settings modal not selecting .YAML automatically for YAML files. The file-type dropdown now includes YAML so the active file type is shown correctly when opening settings on .yaml and .yml documents.
  • Bug Fix (Line Scroll Nudge) — Fixed a UI bug where clicking "Go To Line" or clicking a line number would cause the entire parent container to mysteriously nudge 1 pixel to the left on horizontally scrolled pages due to inconsistent inline behavior in browser scrollIntoView implementations. Replaced with strict Y-axis coordinate scrolling.
  • Bug Fix (YAML Error Detection) — The lightweight YAML validator now catches malformed flow collections such as unclosed [ / {, unexpected closing tokens, and mismatched flow delimiters so invalid YAML files surface an error toast instead of silently rendering as valid.
v1.0.11 March 2026

✨ New Features

  • Welcome Page — Added a localized welcome/onboarding page that opens automatically on first install and anytime the user clicks the extension toolbar icon. Explains how the extension works, lists supported formats with try-it-now links, highlights key features, keyboard shortcuts, and points users to the settings gear. Localized in all 14 languages.
  • UI Icons — Switched the extension UI icons to Font Awesome 7.2 Pro. Toolbar actions, menus, export actions, toasts, and decode affordances now use the bundled Font Awesome assets under css/fa/, and the build keeps only the CSS and WOFF2 files that are actually used.
  • TypeScript Support — Added support for .ts, .mts, and .cts files. TypeScript files are detected by file extension and text/typescript / application/typescript content types, and are formatted and highlighted using the JavaScript handler.
  • UI Language Override — Added a language dropdown to the settings modal that lets users override the automatic system locale with any of the 14 supported languages (English, Dansk, Deutsch, Español, Français, Italiano, 日本語, 한국어, Norsk, Português, Русский, Svenska, Tiếng Việt, 中文). Defaults to Auto (system). Changing the language saves the preference and reloads the page with the chosen locale applied to all UI strings.
  • Theme Setting — Added a theme dropdown to the settings modal allowing users to switch between Light, Dark, and Auto (system) themes directly from the settings panel.
  • CSS Validation Line Numbers — Rewrote the CSS syntax validator to use a stack-based approach that tracks the exact line and column of each unmatched brace, parenthesis, or bracket. The error toast now shows a clickable line number that jumps to the first error. Strings and comments are correctly skipped to avoid false positives.

🐛 Bug Fixes

  • Bug Fix (Language Setting Persistence) — Fixed the language setting not persisting across page reloads. The reload now waits for chrome.storage.local.set to complete before triggering, preventing a race condition where the old value was read back on reload.
  • Bug Fix (Line Number Gutter) — Increased the shared code gutter spacing so formatted code no longer sits cramped against the line-number column. The wider gutter applies to the browser extension and keeps fold toggles aligned.
  • Bug Fix (CSS Selector Spacing) — Fixed the shared CSS formatter adding an extra space before { when selectors already had spacing. CSS beautification now normalizes selector-to-brace spacing to a single space.
v1.0.10 March 2026

✨ New Features

  • JSONL / NDJSON Support — Added support for JSON Lines (.jsonl) files and application/x-ndjson / application/jsonl content types. JSONL files are parsed line-by-line and displayed as a JSON array, with full access to all existing JSON features including collapsible tree view, breadcrumb navigation, inspector, table view, CSV export, statistics, diagnostics, and code folding. Validation reports errors per-line. The raw view preserves the original JSONL format.
  • JSON Path Autocomplete — The JSON path query input now offers real-time autocomplete suggestions as you type, with keyboard navigation (Arrow keys, Tab/Enter to accept, Escape to dismiss). Suggestions are derived from the actual document structure.
  • JSON Path Validation — The query input highlights in red when the typed path is invalid (index out of range, non-existent key), while allowing partial input as the user is still typing.

🐛 Bug Fixes

  • Bug Fix (Inspector Modal Close) — Fixed the JSON path inspector modal closing when clicking inside it or selecting text. The modal now only closes when clicking outside it, pressing Escape, or clicking the close button.

🔧 Improvements

  • UX (Local File Menu) — Removed the HTTP context and cURL/fetch buttons from the More menu when viewing local files (file:// URLs), since there is no HTTP request data to display.
  • UX (Inspector Result Actions) — Added a copy-to-clipboard button on each JSON path query result and reduced the button size for a more compact layout.
v1.0.9 March 2026

🔧 Improvements

  • Privacy Update (Removed webRequest) — Removed the webRequest permission and background HTTP caching entirely to strictly adhere to Browser Plugin least-privilege guidelines. The application now exclusively relies on parsing directly readable DOM elements and fallback data, drastically improving compliance without compromising rendering functionality. The HTTP Context and cURL/Fetch generators have been cleanly stripped of unavailable header data.
  • Shareable View State — Disabled automatic URL hashing to prevent cluttering browser history. Replaced it with an explicit "Share configuration URL" button in the More actions menu (only visible on non-local web URLs).
  • UX (cURL/Fetch button visibility) — The cURL / fetch generator button is now only shown for JSON and RSS/XML files, where it is most relevant, and hidden for JavaScript and CSS views.

🐛 Bug Fixes

  • Bug Fix (Toolbar Position on Small Files) — Fixed the top toolbar buttons (settings, show raw) keeping unnecessary right-side spacing when the minimap is hidden because the file is too small to scroll. The toolbar now adjusts its position together with the minimap visibility.
  • Bug Fix (Image Export Content Corruption) — Fixed the PNG image export rendering UI-only elements such as fold toggles () and fold previews (Array(2), 20 keys) into the exported image. The export now strips these decorative elements so the image contains only the actual code.
  • Bug Fix (Sandbox PostMessage) — Fixed the sandbox validator reply using a reconstructed origin that could silently fail to deliver responses. The sandbox now always replies with window.parent.postMessage and a wildcard target origin, which is safe because the content script validates responses by unique random id.
v1.0.8 March 2026

✨ New Features

  • Compare with Clipboard (Diff View) — Added a full-screen split-view diff tool accessible from the More menu or via Ctrl+Alt+D. Paste or type code in the input area and click Compare to see a side-by-side highlighted diff against the current document. Features line-level diff using an LCS algorithm (with a fast fallback for documents over 20,000 lines), color-coded added/removed/unchanged lines, synchronized scrolling between panels, line statistics, and a swap-sides button. Close with the × button or press Escape. Available in all 14 locales.

🐛 Bug Fixes

  • Bug Fix (XML Declaration & Attributes) — Fixed the XML declaration (<?xml version="1.0" encoding="UTF-8"?>) being silently stripped from XML files after Chrome's DOM parser discarded it during serialization. The declaration is now reconstructed from document.xmlVersion and document.xmlEncoding. Also fixed extension-injected attributes (class="pretty-loader-active", data-code-prettify-injected) leaking into the captured original source for XML files.
v1.0.7 March 2026

✨ New Features

  • Table View — Added a Table View for JSON files containing arrays of objects and for XML/RSS files with repeating elements (e.g. RSS feeds, data catalogs). Accessible from the More menu, it renders the data as a sortable, scrollable HTML table with type-aware cell formatting (color-coded nulls, booleans, numbers, strings, and nested objects). Includes search/filter, truncated cells that expand on click, and large datasets load in 500-row chunks with "Load more" and "Load all" buttons. Close with the × button or press ESC. Available in all 14 locales.
  • HTML Table Export — New download option that exports table-viewable data (JSON arrays or XML repeating elements) as a plain .html file with a basic <table>. Works for both JSON and XML/RSS.
  • CSV Export for all XML structures — CSV export now works for any XML file whose data can be displayed as a table, not just RSS/Atom feeds with <item> or <entry> elements.

🐛 Bug Fixes

  • Bug Fix (Minified ES Module Validation) — Fixed false Invalid JS syntax detected warnings on valid minified or single-line JavaScript modules ending with top-level export statements. The sandbox validator now recognizes module syntax that appears after minified statement boundaries such as ; and } instead of only at the start of a new line.
v1.0.6 March 2026

✨ New Features

  • Settings Shortcuts — Added a direct Report Issues & Ideas button in the settings modal alongside the changelog link, pointing to https://support.prettify.cloud/.

🐛 Bug Fixes

  • Bug Fix (Localization — Simplified Chinese) — Completed the missing Simplified Chinese UI strings for RSS statistics/settings, HTTP context, and JSON path tools, and replaced English fallback text with native labels so the Chinese UI is no longer partially untranslated.
  • Bug Fix (Localization — Remaining Locales) — Added the missing RSS statistics and RSS settings strings to the remaining locale bundles so every shipped locale now has full message-key parity with English.
v1.0.5 March 2026

✨ New Features

  • Base64 & JWT Decode Modal — Clicking a JSON decode icon now opens a dedicated modal showing both the original encoded value and the decoded content in separate read-only textareas, making long payloads much easier to inspect and copy.
  • Regex Search — Added regex support to the floating search bar using /pattern/flags syntax, while keeping plain-text search as the default. Invalid regex input now shows an inline error instead of failing silently.
  • Persistent View State — Added capped per-URL state storage in extension local storage so fold state, search text, highlighted line, and display mode are restored automatically for recently viewed files, while keeping the existing shareable URL-hash state.
  • Document Navigator — Added a new outline navigator for JSON, JavaScript, and XML/RSS documents so large files can be browsed structurally and jumped to quickly from the More menu.
  • Diagnostics & Warnings — Added a diagnostics panel that combines syntax status, document warnings such as very long lines or mixed indentation, and file-type-specific insights for JSON, JS, CSS, and XML/RSS.

🔧 Improvements

  • CSV Export Guardrails — Tightened Download as CSV so it only enables for table-like data. JSON export now requires a top-level array of flat objects, while RSS export requires at least one item or entry with child fields. When the structure does not qualify, the CSV option is disabled and explains why.
  • CSV Explainability — Expanded CSV export feedback with readiness details such as detected rows, columns, root type, and unavailable-state reasons in both the download flow and diagnostics panel.
  • UX (Decode Tooltip Label) — Updated the hover tooltip for Base64/JWT values to clearly label the content as decoded output before showing the decoded value.

🐛 Bug Fixes

  • Bug Fix (JSON Folding State) — Fixed an intermittent issue where prettified JSON could appear stuck in a collapsed one-line state. JSON folding now uses structural line metadata instead of counting braces/brackets in rendered text, so string values containing {, }, [, or ] no longer corrupt expand/collapse behavior or restored fold state.
  • Bug Fix (cURL Generator on Windows) — Fixed generated cURL commands failing in Windows shells. The command generator now strips the extension's shareable view-state hash from copied URLs and emits Windows-safe curl.exe commands with compatible quoting for headers and URLs.
  • Bug Fix (Base64/JWT Decode Rendering) — Fixed JSON decode affordances not appearing reliably because the structured JSON renderer could fall back to plain Prism output when localized decode labels were not available inside the JSON handler.
  • Bug Fix (Decode Icon Click Conflict) — Fixed decode icon clicks also triggering the JSON path inspector. Decode icon interactions are now isolated from the JSON value click handler.
  • Bug Fix (Decode Modal Selection) — Fixed the decode modal closing while selecting text inside its textareas. The modal now closes only when clicking outside the modal surface.
  • Bug Fix (XML Loader Crash) — Fixed the lightweight page loader crashing on some raw XML and XHTML documents opened from file: URLs because the root element did not expose dataset. The loader now uses a plain root attribute marker instead of documentElement.dataset, so supported XML files can be detected and injected safely.
v1.0.4 March 2026

✨ New Features

  • cURL / fetch Generator — Generate copy-pasteable cURL and fetch() commands for the current URL directly from the More menu in the floating toolbar.
  • Timestamp Formatter — Detect Unix timestamps (seconds and milliseconds) and ISO 8601 date strings in JSON values and show human-readable date/time tooltips on hover.
  • Clickable URLs in JSON — URL string values in JSON are now detected and rendered as clickable links, including URLs embedded within longer string values, similar to the existing RSS/XML link feature.
  • Export to CSV — Convert structured JSON objects/arrays or RSS/Atom feed items into downloadable CSV tables directly from the page.
  • Code Minimap — A scrollable, syntax-aware minimap injected on the right edge of the screen for quick navigation through large document structures. Can be disabled in settings and automatically hides on short files.
  • Beautify to Image — Export a cropped PNG rendering of the currently visible formatted code natively via <canvas>.
  • Base64 & JWT Decoding — Inline tooltips that securely decode Base64 payloads and JWT tokens hovering directly over the JSON values.
  • HTTP Context Panel — Added a request details panel that shows the current resource URL, content type, encoding, response and transfer size hints, and timing information.
  • JSON Path Tools — Added a JSON path inspector for the selected breadcrumb path plus query support for quickly locating matching values in large JSON documents.
  • Shareable View State — Added URL-hash state sharing so search text, line navigation, fold state, and view settings can be restored from a copied link.

🔧 Improvements

  • Toolbar — Reduced the floating toolbar clutter by moving secondary actions into a compact More menu that opens on hover or keyboard focus.
  • JSON Interaction Settings — Split JSON hover breadcrumbs from click-to-open inspector behavior. Hover breadcrumbs are now disabled by default, while JSON inspector on click is enabled by default and configurable in settings.
  • Performance — Replaced global CSS/script content script injection with a lightweight detector plus on-demand background injection for supported raw-code pages.
  • Localization — Moved runtime UI strings into Chrome/Firefox locale bundles so the extension uses one i18n system instead of a separate lang.json file.
  • Accessibility — Improved modal keyboard handling with focus trapping, ESC-to-close behavior, button semantics, and better ARIA labels.
  • Security — Tightened the sandbox CSP and added stricter message validation in the syntax-checking sandbox.

🐛 Bug Fixes

  • Word Wrap Fix — Fixed word wrap so it now applies correctly to rendered JSON lines in pretty view instead of being overridden by per-line white-space rules.
  • Bug Fix (ES Module Validation) — Fixed false syntax error warnings on valid JavaScript files that use ES module import/export statements. The sandbox validator now detects module syntax and skips the classic-script wrapper check.
  • Bug Fix (Breadcrumb Localization) — Replaced hardcoded breadcrumb tooltip strings such as "Jump to root" and "Copy path" with localized messages from the locale bundles, and propagated the newer JSON settings labels across all locale bundles.
v1.0.3 March 2026

🐛 Bug Fixes

  • Prism.js Auto-Highlighting — Fixed Prism.js running highlightAll() on every website, which could break syntax highlighting on sites like GitHub, Stack Overflow, and MDN. Prism is now set to manual mode so it only highlights within the extension's own container.
  • CSS Leaking to Other Sites — Fixed unscoped .token CSS rules (syntax highlighting colors) being injected globally on all pages. All token styles are now scoped under #pretty-container to prevent interference with other websites.
  • View Source Interference — Added protocol guards to prevent the extension from activating on view-source:, chrome:, and about: pages.
v1.0.2 January 2026

✨ New Features

  • Content-Type Detection — The extension now detects file types using HTTP Content-Type headers in addition to URL file extensions. This enables proper formatting of API endpoints like https://api.github.com/users/github that serve JSON without a .json extension.

🐛 Bug Fixes

  • RSS Code Folding — Fixed collapse/expand functionality for RSS/XML files not working correctly. Rewrote the fold system to use data attributes and indexed line access, matching the JS handler approach.
  • Toolbar Buttons — Fixed collapse/expand buttons in the toolbar not appearing or disappearing dynamically when toggling the code folding setting. Buttons are now always created for supported file types and show/hide based on settings.
  • Page Rendering — Fixed an issue where normal websites could turn white when the extension loaded. Added a pre-check loader that only applies content hiding for supported file types.
v1.0.1 January 2026

✨ New Features

  • RSS/Atom Feed Support — New file format support for .rss and .atom files with syntax highlighting, auto-formatting, code folding for XML elements, clickable URLs (with entity decoding), and feed statistics (tags, attributes, namespaces, etc.).
  • Code Folding (JS) — Collapse/expand functions, classes, objects, and code blocks. Hover over a foldable line to see the fold toggle. Use Collapse All / Expand All buttons in the toolbar. Can be enabled/disabled in settings.
  • Bracket Matching (JS) — Hover over {, (, or [ to highlight its matching pair. Both brackets are highlighted with visual feedback. Can be enabled/disabled in settings.
  • Code Folding Setting (JSON) — Added a setting to enable/disable the collapsible JSON feature.
  • Code Statistics Panel — View file size, line count, and character count. Language-specific stats: JSON (object depth, key count, array sizes), JS (function count, variable count), CSS (selector count, rule count, media queries).
  • Hex/RGB Color Preview (CSS) — Color swatches appear next to color values. Click to copy color in different formats. Includes a color picker.
  • Breadcrumb Navigation (JSON) — Shows path like root › data › users[0] › name when hovering/clicking. Click any breadcrumb to jump to that level.
  • Clickable URLs & Imports — URLs in strings and import/require paths are now clickable links.

🔧 Improvements

  • Unified Layout — Adjusted all modal windows, toolbars, and UI elements to use CSS variables instead of hardcoded colors for consistent theming.
  • Enhanced Syntax Checker — Removed vanilla JavaScript validation and replaced it with a sandboxed environment for safer and more accurate syntax checking.

🐛 Bug Fixes

  • RSS Feed Rendering — Fixed issue where RSS feeds opened in a background tab (XHTML mode) failed to render correctly or caused high CPU usage. Now waits for tab visibility before rendering.
v1.0.0 Initial Release January 2026

🚀 Smart Automation

  • Auto-Format: Automatically detects messily formatted code and beautifies it with your preferred indentation
  • Intelligent Minification Detection: Analyzes code density—if a file is minified, it formats it automatically; if it's already clean, it adds syntax highlighting
  • Local File Support: Works seamlessly on web URLs and local files (file://) opened in the browser
  • Zero-Flash Loading: Engineered to prevent raw text from flashing before the beautifier loads

🛡️ Syntax Validation & Error Checking

Don't just read code—debug it. CodePrettify scans your files for common errors with instant feedback.

  • JSON: Detects syntax errors and provides the exact line number
  • JavaScript: Identifies mismatched braces, brackets, and common typos
  • CSS: Validates structural integrity
  • Instant Feedback: Invalid code triggers non-intrusive toast notifications with error details

📂 Interactive JSON Viewer

  • Collapsible Data: Fold arrays and objects to navigate large datasets easily
  • Smart Previews: See summary info (e.g., Array(5) or {3 keys}) when blocks are collapsed
  • Clickable Links: URLs inside JSON strings automatically become clickable hyperlinks
  • Expand/Collapse All: Dedicated buttons to manage massive JSON files instantly

🛠️ Powerful Toolkit

  • Advanced Search: Custom search bar (Ctrl+F) with result counting and navigation—works even on huge files
  • Go To Line: Jump straight to specific lines (Ctrl+G), perfect for debugging stack traces
  • Export Options: Download your file in three formats: Original, Formatted, or Minified
  • Copy to Clipboard: Quick one-click copy functionality

⚙️ Fully Customizable

  • Themes: Choose between Light, Dark, or Auto (syncs with system)
  • Format Settings: Adjustable font size (10-24px), indentation (2 or 4 spaces), and line numbers
  • Privacy First: 100% client-side—your code never leaves your browser

⌨️ Keyboard Shortcuts

  • Ctrl+B — Toggle Raw/Pretty view
  • Ctrl+Alt+C — Copy to Clipboard
  • Ctrl+F — Open Search Toolbar
  • Ctrl+G — Go to Line
  • Ctrl+Alt+T — Toggle Toolbar

🌐 Multi-Language Support

Supports 14 languages including English, Norwegian, German, Spanish, and Chinese.