Releases: ddv1982/json-analyzer
Release list
JSON Analyzer v0.1.16 - The Window Finds Its Color
JSON Analyzer v0.1.16 - The Window Finds Its Color
The Quest
The desktop shell had become cleaner and more native, but the shared palette still felt too gray for daily work. This release gives the app more color, depth, and contrast in both light and dark mode while keeping the analyzer and curl workflows unchanged.
What Awoke
- Light mode now uses cooler ink neutrals, a soft multi-stop page background, stronger panel separation, and more vivid primary actions.
- Dark mode now uses deeper ink surfaces, brighter text ramps, teal accents, and clearer control and panel boundaries.
- Shared semantic tokens now carry richer success, warning, danger, and info colors across JSON Analyzer and Curl Executor views.
- The fallback sRGB palette and the modern OKLCH/color-mix palette were updated together so older WebView engines keep the same visual direction.
- Focus rings, shadows, button hover colors, segment tracks, editor surfaces, and code backgrounds now align with the refreshed color system.
Runes of Assurance
pnpm run release:verifypassed, including baseline capture, Rust checks, frontend checks, Tauri checks, and the no-bundle release build.pnpm --dir frontend typecheckpassed.pnpm --dir frontend validate:csppassed.pnpm --dir frontend buildpassed.pnpm --dir frontend test App.shell-theme.test.tsxpassed.- Browser smoke on
http://127.0.0.1:5173/covered JSON Analyzer and Curl Executor in light and dark mode, including populated analysis results.
Known Boundaries
- This release is a visual polish release; analyzer, duplicate, values, curl, and packaging command contracts are unchanged.
- Manual packaged desktop smoke remains the final check for generated release artifacts.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.15 - The Window Learns Its Native Light
JSON Analyzer v0.1.15 - The Window Learns Its Native Light
The Quest
The app had the shape of the target workflow, but its surfaces still carried older weight: heavier buttons, sharper color seams, and popovers that depended too much on glass effects. This release gives the desktop window a quieter native rhythm while preserving the analyzer's existing command paths.
What Awoke
- The app shell, header, segmented controls, tabs, cards, and shared actions now use a macOS-inspired neutral palette and lighter typography.
- Light and dark themes now share updated system color tokens, shadows, focus rings, and font stacks.
- Primary actions now use dedicated accessible action colors instead of inheriting the brighter accent blue directly.
- Sticky desktop headers now use a translucent backdrop with an opaque fallback when blur is unavailable.
- Theme and dropdown popovers now get the same opaque fallback path when backdrop filtering is unsupported.
- JSON analysis, Values, Duplicates, and Curl styling now read from the refreshed shared token system without changing command behavior.
Runes of Assurance
pnpm run release:verifypassed, including baseline capture, Rust checks, frontend checks, Tauri checks, and the no-bundle release build.npm --prefix frontend run buildpassed.npm --prefix frontend run lint -- --max-warnings=0passed.git diff --checkpassed.- Primary action contrast was checked at
5.42:1for normal state and6.87:1for hover state against white text. - Browser smoke on
http://127.0.0.1:5173/covered the refreshed desktop shell, primary action styling, theme menu layering, and mobile stacked header behavior.
Known Boundaries
- This release is a visual polish release; analyzer, duplicate, values, curl, and packaging command contracts are unchanged.
- Manual packaged desktop smoke remains the final check for generated release artifacts.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.14 - The Release Bell Finds Its Rope
JSON Analyzer v0.1.14 - The Release Bell Finds Its Rope
The Quest
The forge could build a release when the right tag arrived, but a missed GitHub release had no clean path back. This release gives the release bell a visible rope: an existing tag can now be sent through the Release workflow from GitHub Actions, while the normal tag-push path remains unchanged.
What Awoke
- The Release workflow can now be run manually with an existing
vX.Y.Ztag. - Release jobs now resolve and reuse one
RELEASE_TAGvalue across validation, draft creation, asset uploads, and final publishing. - Manual recovery now checks that the requested tag exists and still has a successful
CIrun with the required release artifacts. - Existing releases are no longer forced back to draft when a recovery run updates notes or uploads missing assets.
- The release checklist now explicitly includes pushing the version tag and describes the CI artifact requirement for manual recovery.
Runes of Assurance
pnpm -C frontend run typecheckpassed.pnpm -C frontend run lintpassed.pnpm -C frontend run testpassed with 127 tests.ruby -e 'require "yaml"; YAML.load_file(".github/workflows/release.yml"); puts "release workflow YAML parsed"'passed.git diff --checkpassed.- The release workflow diff was reviewed after the draft-preservation fix.
Known Boundaries
- Manual release recovery still depends on non-expired CI artifacts for the tagged commit.
- If release artifacts have expired, a fresh release commit or CI artifact rebuild is still required.
actionlintwas not available on this workstation, so GitHub Actions semantic linting was not run locally.- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH.
JSON Analyzer v0.1.13 - The Empty Scroll Invites the Paste
JSON Analyzer v0.1.13 - The Empty Scroll Invites the Paste
The Quest
The Curl Executor had learned to suggest better batch values, but its command editor still arrived already filled. That made guidance look like user input. This release restores the expected rhythm: the editor starts empty, the placeholder shows the Postman-style cURL shape, and execution waits for the user to paste the request they actually want to run.
What Awoke
- Curl Executor now opens with an empty curl command field instead of preloaded sample text.
- The full Postman-style cURL example now lives in the curl command placeholder.
Executestays disabled until the user enters a real curl command.Clearno longer appears active in single-request mode only because hidden batch example values exist.- Curl workflow tests now assert the empty initial editor, placeholder guidance, and execution after pasting the sample.
Runes of Assurance
npm --prefix frontend run test -- App.curl.test.tsxpassed with 39 tests.npm --prefix frontend run typecheckpassed.npm --prefix frontend run lintpassed.npm --prefix frontend run buildpassed.git diff --checkpassed.
Known Boundaries
- Batch replacement remains intentionally raw and exact. Users should provide already-encoded values for URL paths or query strings.
- Example generation is shape-based only; it does not infer route semantics or API-specific entity names.
- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH. - Curl jobs remain in-memory only; durable job history is still deferred.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.12 - The Batch Compass Learns the Shape
JSON Analyzer v0.1.12 - The Batch Compass Learns the Shape
The Quest
Batch mode no longer needed only to be general-purpose; it needed to feel obvious before the first request was sent. The old 1 and 2 sample values were too vague for real REST work, especially when a pasted Postman curl already showed whether the selected target looked like a UUID, number, email, date, slug, or token.
What Awoke
- Curl Executor now starts with neutral UUID-style batch examples instead of ambiguous numeric placeholders.
- Batch setup now generates editable example values from the selected URL path segment or query parameter shape.
- Generated examples cover UUIDs, integers, email addresses, dates, timestamps, slugs, token-like values, encoded query values, empty values, and unknown strings.
- User-entered batch values are preserved when switching batch targets; generated examples update only while the field is still auto-managed.
- Clearing the form now resets the auto-example tracker so a newly pasted curl can repopulate smart examples correctly.
- Stale domain-specific wording was removed from touched docs so Curl Executor remains framed as a generic REST API tool.
Runes of Assurance
npm --prefix frontend run test -- App.curl.test.tsx src/components/curl-executor/utils.test.tspassed with 49 tests.npm --prefix frontend run typecheckpassed.npm --prefix frontend run lintpassed.npm --prefix frontend run testpassed with 127 tests.npm --prefix frontend run buildpassed.git diff --checkpassed.- Neutral-language scans found no blocked domain-specific wording in source, tests, docs, release notes, README, or package metadata touched by this release.
Known Boundaries
- Batch replacement remains intentionally raw and exact. Users should provide already-encoded values for URL paths or query strings.
- Example generation is shape-based only; it does not infer route semantics or API-specific entity names.
- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH. - Curl jobs remain in-memory only; durable job history is still deferred.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.11 - The Curl Lens Sharpens
JSON Analyzer v0.1.11 - The Curl Lens Sharpens
The Quest
Curl Executor had become general-purpose, but the last steps still needed a sharper eye. HTTP errors should be visible responses, and batch setup should make common path and query replacements easy without guessing domains or mutating the wrong URL.
What Awoke
- Single curl execution now shows non-2xx HTTP responses with status, headers, formatted body preview, copy response, and copy details instead of treating them as missing-url or parse failures.
- Batch setup can detect URL path segments and query parameters from the actual request URL and insert generic placeholders for selected targets.
- Query-parameter insertion now preserves raw URL text, duplicate parameter order, encoded names, fragments, empty values, and valueless parameters.
- Curl URL detection now follows a span-aware argument parser for supported curl options, including quoted and inline
--urlvalues, multiline Postman curl commands, and safe rejection of ambiguous unsupported URL options. - Batch result handling now counts HTTP 4xx and 5xx responses as failed items while preserving their response payloads and input value traceability.
- Curl response spacing, typography, status badges, and body previews were tightened for easier scanning.
Runes of Assurance
pnpm -C frontend run test -- App.curl.test.tsx --runInBandpassed with 114 tests.pnpm -C frontend run typecheckpassed.pnpm -C frontend run lintpassed.pnpm -C frontend run buildpassed.git diff --checkpassed.- Neutral-language scans found no domain-specific wording in curl-related implementation and tests.
Known Boundaries
- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH. - Batch replacement remains intentionally raw and exact. Users should provide already-encoded values for URL paths or query strings.
- Curl jobs remain in-memory only; durable job history is still deferred.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.10 - The Curl Path Widens
JSON Analyzer v0.1.10 - The Curl Path Widens
The Quest
Curl Executor could walk one known path, but batch runs still carried old assumptions in their pack. A pasted Postman curl should be enough: the user chooses the variable, provides values, and the app expands the run without guessing domains, identifiers, or private business language.
What Awoke
- Curl batch jobs now use one curl command plus an explicit placeholder and input values instead of a pre-expanded curl list.
- Batch expansion is owned by the Rust job service, including placeholder validation, generated-curl parsing, input value tracking, size limits, large-batch confirmation, and bounded concurrency.
- Batch mode now keeps the curl editor visible, detects generic
{name}placeholders, previews the first generated request, and explains exact raw replacement. - Single curl execution now renders the request method and URL alongside status, elapsed time, headers, body preview, and copy actions.
- Batch results now show generic input values, merged successful payload copying, and grouped errors tied to affected input values.
- Curl private-network policy is configurable and now defaults to allowing private/internal targets unless strict mode is enabled by environment.
- The default single-request sample is a normal executable-looking curl; batch examples opt into placeholders explicitly.
Runes of Assurance
pnpm -C frontend run typecheckpassed.pnpm -C frontend run lintpassed.pnpm -C frontend run test -- --runInBandpassed with 94 tests.pnpm -C frontend run buildpassed.git diff --checkpassed.- Neutral-language scans found no domain-specific wording in the implementation, tests, README, decision docs, or release notes touched by this release.
Known Boundaries
- Rust format, clippy, and test checks could not be run on this workstation because
cargoandrustfmtwere not available onPATH. - Curl jobs remain in-memory only; durable job history is still deferred.
- Batch replacement is intentionally raw and exact. Users should provide already-encoded values for URL paths or query strings.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.9 - The Quiet Path Opens
JSON Analyzer v0.1.9 - The Quiet Path Opens
The Quest
The repository gate was sound, but its footpath was too narrow. The installer verified the setup package correctly and enabled the APT source, yet APT could not let its _apt sandbox step through the private temporary directory that held the local setup package. The install completed, but the road ended with a warning that looked sharper than it was.
What Awoke
- The APT repository installer now keeps signature, checksum, keyring, and GnuPG work inside the private verification directory.
- The local repository setup
.debis now placed in a separate/tmpinstall directory that APT's_aptsandbox can traverse. - The setup package remains world-readable only for the short install window, and cleanup removes both temporary directories on exit.
- The README
latest/download/install-apt-repo.shpath will pick up this quieter installer once the release assets are published.
Runes of Assurance
sh -n scripts/install-apt-repo.shpassed.git diff --checkpassed.- A simulated release substitution with the live APT signing fingerprint kept the pinned fingerprint intact.
- Temporary directory permissions were sanity checked so verification files stay private while the local
.debpath is_apt-readable.
Known Boundaries
- The exact
_aptnotice could not be reproduced on the local macOS workstation; hosted Linux release validation remains the final build proof. - This release changes installer behavior only; application UI, parsing, PDF export, auto-update metadata, and Windows signing remain unchanged.
- The APT repository currently publishes Linux
amd64packages only.
JSON Analyzer v0.1.8 - The Pinned Key Holds
JSON Analyzer v0.1.8 - The Pinned Key Holds
The Quest
The release road found a quiet trap in its own warding. The installer carried the trusted APT signing key into the published asset, then mistook that same key for an unreplaced placeholder and erased it before verification could begin. This release reforges that check so the pinned key remains pinned.
What Awoke
- The APT repository installer template now keeps its placeholder sentinel separate from the release-injected signing fingerprint.
- The Linux release workflow now renders
install-apt-repo.shinto a dedicated release asset directory instead of mutating the source template in place. - Release validation now checks the generated installer asset directly, including shell syntax, absence of the raw placeholder, presence of the injected fingerprint, and protection against clearing that fingerprint.
- Linux release asset upload now publishes the generated installer from
release-assets/, matching the file that validation inspected.
Runes of Assurance
sh -n scripts/install-apt-repo.shpassed.- A simulated release substitution with the live APT signing fingerprint kept the default fingerprint and did not create a self-clearing sentinel check.
.github/workflows/release.ymlparsed as YAML.git diff --checkpassed for the installer and release workflow changes.
Known Boundaries
- The hosted release workflow remains the final proof that GitHub Pages, release assets, and package signing all converge.
- Existing broken installer assets from older releases still need to be replaced by publishing this release.
- The APT repository currently publishes Linux
amd64packages only. - PDF export UI, auto-update metadata, and Windows signing remain outside this release.
JSON Analyzer v0.1.7 - The Ledger Learns Its Shape
JSON Analyzer v0.1.7 - The Ledger Learns Its Shape
The Quest
The release road is no longer only about proving packages. This release turns inward and pays down the complexity that had gathered around the app: broad frontend files are split into clearer rooms, browser mocks become command-family ledgers, and the release gate gains a repeatable baseline before the next feature push.
What Awoke
- Values Explorer now lives as a stateful controller with focused panels, icons, types, and pure helpers instead of one broad component.
- Curl Executor now follows the same shape, with response, job, and error panels separated from execution state.
- The app stylesheet is split into ordered domain files under
frontend/src/styles/app/, whileapp.cssremains the cascade manifest. - Browser mocks are split into analysis, curl, config, and problem modules while preserving the public mock dispatcher.
- Release discipline now has
pnpm baseline,pnpm run release:verify, and a release-candidate checklist. - Values Explorer large-result pagination and curl relative same-origin redirect behavior both gained regression coverage.
- Tauri capability auditing now requires the allowed command list to exactly match the app command set.
Runes of Assurance
pnpm run release:verifypassed before the release cut, including baseline capture,pnpm check, and the no-bundle Tauri release build.- Browser smoke on
http://127.0.0.1:5173/covered Analyze, Values Explorer, Curl Executor, light theme, dark theme, console errors, and horizontal overflow. - Focused frontend, Rust, and capability checks passed during implementation before the final integrated gate.
Known Boundaries
- The packaged desktop light/dark manual smoke remains a release-candidate validation step for generated artifacts.
- The APT repository currently publishes Linux
amd64packages only. - Curl jobs remain in-memory only; durable job history is still deferred.
- PDF export UI, auto-update metadata, and Windows signing remain outside this release.