Repository navigation
Releases: fderuiter/QRCraftly-web
Releases · fderuiter/QRCraftly-web
Release list
v0.14.0
Features
- feat(generator): shape the finder eyes' frame and ball apart from the pattern (#1488) (
e18953e) - feat(seo): QR code size calculator, no-subscription guide and schema fixes (#1483) (
dbc06c2) - feat(vcard): add X, LinkedIn, Instagram, Facebook and GitHub profile fields (#1484) (
6fe4dcf) - feat(payment): add a UPI preset that builds static upi://pay codes (#1479) (
9231a45) - feat: land reviewed Stitch batch 5 (email validation, WhatsApp message, frame fonts, bulk EPS/PDF, Wi-Fi card, WPA3) (#1477) (
21ded9a)
Bug Fixes
- fix: tidy the Stitch quality-pass leftovers (vCard and social round trips, bulk preflight, scan chime) (#1487) (
34c7ad2) - fix: polish what Stitch landed (frames, transparent codes, typing errors, focus, bulk cancel, PDF/EPS text) (#1485) (
ec02662) - fix: land reviewed Stitch batch 4 (gradient stops, Wi-Fi password warning, location retry, privacy grid, scan chime, SEPA refusal) (#1476) (
2ccf7fb) - fix: land reviewed Stitch batch 3 (vCard checks, toast Escape, export width, canvas, wallet fillRect) (#1473) (
473eebc) - fix(ui): add blur validation and state reset to ColorInput (#1434) (
016be5e) - fix(ui): restrict className prop to outer field wrapper containers (#1433) (
78adea0)
Maintenance
- test(optical-transfer): wait for the manifest before showing the wallet code (#1489) (
1273ab3) - refactor(utils): consolidate byte concatenation into shared bytes utility module (#1457) (
13101de) - test(optical-modem): give the image-simulation tests room under coverage (#1475) (
adb0d7d) - ci: shard unit tests, run quick checks on unreviewed Stitch PRs, trust only maintainer approvals (#1474) (
c20230f) - ci: refresh visual baselines on CI and stop superseded runs queueing (#1443) (
326ca51) - ci: keep unreviewed Stitch PRs pending instead of failing (#1472) (
9d12fa3)
v0.13.0
What's Changed
- fix(generator): current scan verdict, faithful EPS/PDF export, MECARD address and Stitch UI lapses by @fderuiter in #1390
- refactor: replace six test, CI and lint packages with our own code by @fderuiter in #1393
- feat(content): honest About and Security copy, guide links, sitemap dates and share image sizes by @fderuiter in #1392
- refactor: own git hooks, Markdown parser and Node type stripping by @fderuiter in #1395
- fix(test): run the sitemap lastmod check on Node type stripping, not tsx by @fderuiter in #1398
- refactor: own duplicate checker, package-boundary checker and Tailwind class rule by @fderuiter in #1396
- ci(release): weekly release preview, uncached version.json and explained deploy timeouts by @fderuiter in #1399
- fix(generator): draw the Grunge eyes the same way every time by @fderuiter in #1400
- chore(deps): bump CI tooling (artifact actions, codeql upload-sarif, semgrep) by @fderuiter in #1405
- fix(content): plain template blurbs, clearer messages and screen-reader names, US spelling by @fderuiter in #1407
- perf(optical-modem): tracked fiducial search, 1080p and 4K profiles and a ceiling bench by @fderuiter in #1414
- feat(generator): Wallet card image for phone wallets by @fderuiter in #1415
- feat(generator): sign Apple Wallet passes in the browser with your own certificate by @fderuiter in #1416
- feat(generator): Google Wallet passes signed in the browser with your own issuer by @fderuiter in #1417
- feat(generator): move signed wallet passes into a developer section by @fderuiter in #1418
- feat(optical-modem): torn-capture recovery, a robust large-grid finder and phone camera effects in the simulator by @fderuiter in #1419
- feat(copy): closed-source wording, a contact address and search fixes by @fderuiter in #1420
- ci: tiered CI for the private repository by @fderuiter in #1421
- feat(optical-modem): Ultra Mono, a black-and-white 4K profile for phones that smear colour by @fderuiter in #1422
- feat(optical-modem): cut torn captures on a slant for a phone held upright by @fderuiter in #1423
- feat(ui): UI/UX overhaul: clearer generator, fixes with every warning, one consistent visual system by @fderuiter in #1425
- feat(seo): static and SVG QR code pages, install button and guide links by @fderuiter in #1424
- feat(bulk-csv): add pre-flight logo asset validation and error isolation by @google-labs-stitch[bot] in #1429
- docs(foundry): list every kept dependency with its decision and effort by @fderuiter in #1430
- ci: hold Stitch PRs for review and prepare main for a merge queue by @fderuiter in #1461
- docs(agents): add rules from Stitch PR reviews by @fderuiter in #1468
Full Changelog: v0.12.0...v0.13.0
v0.12.0
Features
- feat(optical-transfer): measure the colour layer honestly on the camera's clock (#1385) (
084c107) - feat(content): move generator background reading into the FAQ and rewrite it plainly (#1379) (
4b40ef5) - feat: land reviewed Stitch batch (IBAN check, never-expires note, render perf) (#1358) (
2753fff) - feat(bulk-csv): implement CSV preflight summary card and row categorization engine (#1348) (
f6c6030) - feat(event): add timezone selector control and payload handling (#1331) (
4e4cb14) - feat: add CC and BCC recipient fields to email QR codes (#1345) (
31aa1b4) - feat(style): add linear and radial gradient fill color controls (#1325) (
3c77a74) - feat: add transparent background toggle and renderer background guard (#1337) (
c03e415) - feat: add preset logo gallery with category filters for brand icons (#1321) (
a43de3f) - feat(bcur): implement inverted index map and ripple queue for peeling decoder (#1347) (
8904bb1) - feat(ui): implement custom frame shapes and call-to-action badges (#1328) (
ba8fb6d) - feat(bulk-csv): add bulk PNG export resolution dropdown selector (#1318) (
d873d39) - feat(qr): add independent eye frame and eye ball color controls (#1326) (
ef8ecea) - feat: expand SocialPlatform enum and presets for extended social networks (#1320) (
1e2c67f) - feat: add EPC SEPA QR and fiat payment presets (#1327) (
08cbb6b) - feat(vcard): add contact format selector for vCard 2.1, 3.0, 4.0, and MECard (#1323) (
aad682b) - feat(event): add web calendar provider options for Google, Outlook, and Yahoo (#1315) (
7d682e6) - feat(bulk-csv): add downloadable sample CSV template button to upload drop zone (#1319) (
97dc8ac) - feat(export): add native client-side EPS and PDF vector export support (#1316) (
191c1bf) - feat(transfer): send wallet-compatible BC-UR animated QR codes (#1149) (#1236) (
420b57a) - feat(transfer): let the receiver steer the sender through a webcam back channel (#1146) (#1234) (
e4d3fc8) - feat(transfer): add beacon frames and speed profiles to the multi-code preview (#1143) (#1233) (
271a27c) - feat(transfer): send several QR codes per frame behind preview switches (#1142) (#1232) (
bc65ce5)
Bug Fixes
- fix(generator): show the sample for empty forms and gate mockup and refused-content exports (#1388) (
01c6f24) - fix: harden template import and storage, fix Cyber Circuit finders, and make logo backings distinct (#1387) (
706de75) - fix(docs): build the /security docs manifest at load time instead of committing it (#1386) (
37fef4e) - fix: export the current code at full size with readable errors (#1383) (
9f91076) - fix(payment): check payment amounts and require the SEPA beneficiary (#1382) (
2594d29) - fix(bulk-csv): encode what the preview shows, read more files, and skip bad rows one at a time (#1381) (
17951c9) - fix(optical-transfer): keep transfers, keys and the webcam safe in receiver and sender edge cases (#1378) (
888d596) - fix(ci): close CI test gaps in workflow hardening, sitemap, git and branch cleanup (#1357) (
1b39e53) - fix(optical-modem): bind an identity checksum to every modem block (#1372) (
a2da5e6) - fix(scanner): confirm codes on slow phones, read SVG files and close six other scanner gaps (#1380) (
1a16d0e) - fix(sw): precache the generator's workers and wasm, and hash the final HTML and headers (#1377) (
acfe530) - fix(qr-payload): keep text line breaks and stop refusing valid text, e-mail and links (#1370) (
27a2def) - fix(logos): replace brand lookalike presets with generic icons (#1376) (
b61810d) - fix(qr-payload): read structured payloads faithfully and stop silent data loss (#1373) (
4e258d0) - fix(sw): load the current build after an update and draw the QR when a worker file is gone (#1369) (
31f17ec) - fix: keep the quiet zone inside borders and publish only the newest scan verdict (#1375) (
5ce1dc2) - fix(qr-matrix): keep frames visible and transparent codes scannable (#1371) (
b7363fd) - fix: land reviewed Stitch batch 2 (vector path parser, release tagging, Playwright cache) (#1374) (
f2555c7) - fix(qr-payload): conditionally emit vcard and mecard property tags (#1333) (
6150065) - fix(export): flatten JPEG transparent background to solid white before scannability check (#1322) (
b088829) - fix(arcade): propagate matrix fallback state to target settings and scanner HUD (#1317) (
55bf4c0) - fix(file-transfer): keep transfer frames one size and harden scan warnings (#1308) (
1e55138) - fix(scannability): give a print fix when only the print simulation fails (#1310) (
99caf7b) - fix(scannability): make the print simulation judge the code, not the canvas (#1275) (
d8cd1c7)
Performance
- perf(viewing-conditions): implement canvas pool and streamline condition evaluation (#1314) (
534a0f0) - perf(modem): run the modem and colour kernels in Rust (#1198) (#1237) (
d473ddf)
Maintenance
- test(edge): check production headers and deployment integrity (#1353) (#1384) (
221efb2) - refactor(link-safety): restrict uncalled utility functions to module scope (#1334) (
b5bcd1e) - refactor(compliance): implement TypeScript AST parsing in dependency audit (#1340) (
9433f11) - docs: document the issue label convention (#1247) (
5971255) - docs: refresh stale documentation across the repository (#1242) (
035f8c4) - docs: add the Optical Transfer design pages and rewrite the README (#1239) (
63f68bf) - chore(deps): freeze the BC-UR test vectors, drop @ngraveio/bc-ur and adopt "In-house first" (#1181) (#1235) (
2c2f965) - ci: run the @prod E2E flows against production after each deploy (#1228) (#1231) (
0e7fc52)
v0.11.0
v0.10.0
What's Changed
- refactor: relocate maze controls to arcade and streamline advanced mode panel by @google-labs-stitch[bot] in #1068
- fix(inputs): retain uncommitted form state across generator routes in volatile cache by @google-labs-stitch[bot] in #1073
- feat: implement type-aware sample fallback payload preview engine by @google-labs-stitch[bot] in #1075
- feat(navigation): unify transfer navigation slot and add workspace mode switcher by @google-labs-stitch[bot] in #1071
- feat(seo): keyword-led headings, per-type FAQs, canonical-safe routing and honest structured data by @fderuiter in #1083
- fix(sw): precache pages by canonical URL so reloads work by @fderuiter in #1087
- fix(scannability): let a busy worker answer before terminating it on unmount by @fderuiter in #1085
- feat: add scannability recovery action buttons and wire parent handlers by @google-labs-stitch[bot] in #1076
- feat(style-controls): implement client-side brand template gallery and persistent storage by @google-labs-stitch[bot] in #1070
- docs(agents): add steward skill for driving PRs to merged by @fderuiter in #1089
- test(qrtool): wait long enough for the failing scannability check by @fderuiter in #1090
- feat(bulk-csv): implement client-side bulk CSV QR batch generation and zip export by @google-labs-stitch[bot] in #1082
- refactor: remove dynamic QR codes and keep QRCraftly entirely client-side by @fderuiter in #1093
- feat: remove the Audio QR page by @fderuiter in #1092
- fix(generator): keep the type grid at three rows on small phones by @fderuiter in #1111
- test(generator): expect twelve type links in the a11y sweep by @fderuiter in #1118
- feat(ui): design tokens, one app shell and a hero QR preview by @fderuiter in #1091
- fix(ci): remove the flaky checks, one CSP rule and merged test files by @fderuiter in #1119
- chore(deploy): reconcile Cloudflare config, wizards and stale doc references by @fderuiter in #1120
- feat(generator): one scannability verdict and a one-row Bulk CSV preview by @fderuiter in #1122
- feat(ui): shared UI kit, readable type and motion tokens by @fderuiter in #1123
- fix(a11y): one screen-reader announcement per scannability change by @fderuiter in #1125
- feat(ui): split Download button, helpful empty states and summary-first Security and About by @fderuiter in #1124
- fix(scanner): reliable camera session, bounded decoding and an image-only scanner with a test harness by @fderuiter in #1127
- feat: open-source acknowledgements page with build-verified package licenses by @fderuiter in #1129
- feat(scanner): zxing-wasm decoder chain, multi-frame confirmation and camera controls by @fderuiter in #1130
- feat(scanner): scanner dialog, safe result sheet, paste and drop, and a /qr-code-scanner page by @fderuiter in #1131
- perf: smaller first load, Appearance controls in static HTML, leaner precache, per-page budget by @fderuiter in #1132
- feat(seo): per-page share images, breadcrumbs, related types and example QR pictures by @fderuiter in #1133
- feat(seo): rewrite the eleven QR type pages to the on-page template by @fderuiter in #1134
- feat(seo): add image, logo and use-case landing pages and a QR code checker by @fderuiter in #1135
- feat(guides): add /guides hub with two sourced guides by @fderuiter in #1136
- feat(guides): add printing, error correction and quishing guides by @fderuiter in #1157
- feat(generator): style gallery, undo/redo, command palette, shortcuts and style files by @fderuiter in #1167
- refactor: move page copy out of the shared content registry chunk by @fderuiter in #1168
- feat(ui): in-the-wild mockups and a calmer file transfer by @fderuiter in #1169
- feat: abuse protections, photosensitivity safeguards, Prism and Optical link by @fderuiter in #1170
- ci: replace tj-actions/changed-files and the SMTP audit email with our own scripts by @fderuiter in #1199
- feat(wasm): plain Rust WebAssembly foundation with committed reproducible builds by @fderuiter in #1204
- feat: privacy policy and support pages for the iPhone, iPad and Mac app by @fderuiter in #1202
- feat(wasm): Foundry budgets, bench, differential and cross-engine tests, canary switch by @fderuiter in #1205
- feat(wasm): QR encoder in Rust replaces qrcode by @fderuiter in #1206
- perf(generator): show an edit in the preview without waiting a frame by @fderuiter in #1207
- perf: paint pages before hydrating and hold Lighthouse at 0.85 by @fderuiter in #1208
- perf: ship each page only its own content and start scripts after first paint by @fderuiter in #1209
- ci: raise the Lighthouse performance floor to 0.9 by @fderuiter in #1210
- feat(scanner): add the Rust QR decoder module by @fderuiter in #1211
- feat(scanner): add the qr-decode package and shadow it against jsQR by @fderuiter in #1212
- feat(scanner): replace jsQR with our Rust QR decoder by @fderuiter in #1213
- feat(scanner): add the Prism fast path to our QR decoder by @fderuiter in #1214
- feat(scanner): reach zxing parity on the hard corpus (#1178 stage 3) by @fderuiter in #1215
- feat(scanner): replace zxing-wasm with our QR decoder (#1178) by @fderuiter in #1216
New Contributors
- @google-labs-stitch[bot] made their first contribution in #1068
Full Changelog: v0.9.0...v0.10.0
v0.9.0
What's Changed
- dev -> main pr check by @fderuiter in #964
- fix(e2e): target the logo file input by label now that Mosaic adds a second one by @fderuiter in #1042
- ci(release): move the release process to trunk-based delivery on main by @fderuiter in #1023
- feat: no-ads pledge at /free-forever, remove Ko-fi and the diagnostics ping by @fderuiter in #1043
- feat: fix open issues across edge redirect, layout, docs, packages, tests, lint and file transfer by @fderuiter in #1063
- ci: gate CI on the dependency audit and document auto-merge into main by @fderuiter in #1066
Full Changelog: v0.8.0...v0.9.0
Release v0.8.0
[0.8.0] - 2026-09-03
Features
- feat(docs): add rateless fountain codes and multi-tier scanning for air-gapped optical transfer (
b88086f)
Maintenance
- chore(release): adopt SemVer 2.0.0 baseline, automated release engine, and fast-forward promotion model
v0.7.0.3
What's Changed
- feat(scannability): harden scannability worker protocol with ACK, watchdog, and graceful degradation (#918) by @fderuiter in #939
Full Changelog: v0.7.0.2...v0.7.0.3
v0.7.0.2
What's Changed
- feat: enforce zero-transit direct redirection counter-only logging by @fderuiter in #889
- fix(docs): implement targeted case-safety patches for markdown auditing and compiler by @fderuiter in #890
- feat(audio-qr): Custom Audio Hooks and Unified DSP Engine by @fderuiter in #892
- feat: implement style-adaptive maze clearance, canvas halo masking, and path width slider by @fderuiter in #891
- feat(security): implement pre-build storage privacy AST auditor by @fderuiter in #903
- build(deps): bump github/codeql-action/upload-sarif from 4.37.6 to 4.37.9 by @dependabot[bot] in #900
- fix(security): map inline workflow context values to step-level environment variables by @fderuiter in #905
- fix(vcard): Targeted RFC Compliance Patch & UTF-8 Octet Folding by @fderuiter in #909
- ci: extract multi-line shell steps into modular scripts with strict failure flags and shellcheck analysis by @fderuiter in #914
- fix(worker): slice reassembled ArrayBuffer to exact target file size by @fderuiter in #907
- fix(scanner): targeted listener detachment and shared worker singleton safeguards by @fderuiter in #908
- feat: offload FSK demodulation to dedicated Web Worker with zero-copy memory transfers by @fderuiter in #911
- fix(arcade): main-thread optimistic token management and buffer replenishment by @fderuiter in #906
Full Changelog: v0.7.0.1...v0.7.0.2
v0.7.0.1
What's Changed
- feat(rulesets): remove bypass privileges for standard write role by @fderuiter in #721
- feat: decouple scheduling loop from render lifecycle via ref-sync delay lookup by @fderuiter in #723
- feat: Canonical URL Alignment via Unified TypeScript Sharing by @fderuiter in #726
- feat(demuxer): solve JSDOM testing bugs and add WebAssembly WebM & MKV demuxer scanning worker by @fderuiter in #725
- feat: robust context-level network interception and ast bundle compliance scanner by @fderuiter in #727
- security: Migrate Git Lineage and UI Catalog scripts to secure subprocess execution by @fderuiter in #722
- feat: implement Ephemeral Worker with Canvas-based Offloading and mock test support by @fderuiter in #728
- feat: implement automated offline precaching SW and offline-readiness E2E tests by @fderuiter in #732
- feat: Dual-Scale Background QR Scanning with Camera Clamping by @fderuiter in #731
- fix(scanner): clear file input value to allow immediate same-file re-upload by @fderuiter in #729
- Unified Shared-Worker Image & Video Scanner by @fderuiter in #730
- feat: implement worker lifecycle watchdog with auto-restart, starvation detection, and retry limits by @fderuiter in #724
- feat: implement section-aware central UI catalog validation by @fderuiter in #733
- Refactor: Move breadcrumb compilation to metadataEngine utility and suppress on homepage root path by @fderuiter in #734
- feat: make About page FAQ schema generation conditional by @fderuiter in #737
- Refactor SvgContext to use centralized private path helper and unify corner clamping by @fderuiter in #738
- feat: Implement dynamic root-level HowTo schema image mapping by @fderuiter in #740
- feat(seo): consolidate head schemas into single JSON-LD block and prevent subpage duplicate WebSite entities by @fderuiter in #739
- chore: prune dependencies, pre-compile docs, and optimize bundle size to <600KB by @fderuiter in #746
- feat(ci): Consolidate validation runners and decouple build from prebuild validations by @fderuiter in #742
- feat: Implement Semantic Canvas Mock and Pixel Grid with resilient cell assertions by @fderuiter in #744
- feat: Implement Configurable Stream Mode Switch (Binary vs Text) by @fderuiter in #745
- fix: replace permissive substring false-positive checks with exact normalized equality and expand SMTP and Cloudflare regex matching by @fderuiter in #743
- fix: terminate active background scanner worker on unmount to prevent thread leaks by @fderuiter in #748
- Refactor Animated QR Stream Processing into Centralized Hooks by @fderuiter in #741
- feat: implement synchronous page-level QR frame deduplication by @fderuiter in #749
- feat: implement throttled 250ms state synchronization for scanner telemetry by @fderuiter in #752
- feat: Off-thread QR Scanning with Worker-side OffscreenCanvas and ImageBitmap Transfer by @fderuiter in #754
- feat(file-transfer): implement inline complete panel and manual download verification by @fderuiter in #751
- feat: implement dedicated off-thread Web Worker reassembly and live compilation status by @fderuiter in #755
- feat: implement hook-level optimization bypass for stale frames by @fderuiter in #753
- Fix GHA schema validation error in main.yml deploy job by @fderuiter in #758
- fix: remove invalid repository_ruleset trigger from scorecard workflow by @fderuiter in #763
- feat: adaptive off-thread WebP image resizer by @fderuiter in #760
- feat: high-performance destroy the QR mini-game route with layout bypass and sync validation by @fderuiter in #762
- feat(game): implement interactive QR analytical module damage simulator by @fderuiter in #765
- feat: consolidate QR scanner workers, implement unified sharing, and resolve verification suite failures by @fderuiter in #764
- feat: maze overlay controls and pre-download simulated optical validation by @fderuiter in #761
- feat(ci): enforce deep clones and fail-closed behaviors for validation guardrails by @fderuiter in #766
- perf: Optimize real-time QR scannability with async ImageBitmap and backpressure tracking by @fderuiter in #767
- feat: dual-layer URL normalization and unified security validation by @fderuiter in #770
- feat: implement high-performance Worker-Locked Offscreen Downscaling Pipeline by @fderuiter in #771
- feat: Implement strict opt-in publish schema and internal folder quarantine by @fderuiter in #774
- Refactor sitemap generation to native TypeScript with modular testing by @fderuiter in #772
- feat: integrate native BarcodeDetector with Web Worker fallback for high-performance QR destruction game by @fderuiter in #776
- feat: off-thread maze solver thread isolation and recovery verification by @fderuiter in #782
- feat: registry-driven centralized metadata integration by @fderuiter in #783
- perf: global pure-JS utility caches and metadata performance optimization by @fderuiter in #777
- feat: Opt-In Cloudflare Pages Edge Redirector by @fderuiter in #788
- feat: Unified Adaptive Frame Scheduler for QR Scanning with Zero-Allocation Double-Buffering by @fderuiter in #789
- Refine QR tool UI and add coverage for product pages and inputs by @fderuiter in #792
- fix: robust video memory disposal for local QR scanning by @fderuiter in #808
- feat: Secure Dynamic Redirection, Middleware Protection and Lazy Analytics by @fderuiter in #820
- feat: implement real-time safety reversion and fallback for scannability-audited finder pattern bridges by @fderuiter in #818
- feat: consolidated staging integration branch (PRs #804–#851) by @fderuiter in #852
- refactor: remove redundant prebuild verification hook by @fderuiter in #853
- feat: Fixed-Window KV Rate Limiter for Redirect Registration by @fderuiter in #854
- feat: Unconditional input reset and internal Web Worker session guard for animated QR transfers by @fderuiter in #855
- feat: implement incremental worker preallocated buffer streaming for file transfers by @fderuiter in #856
- feat(ci): implement same-repo gate with local mock fallback for preview workflow by @fderuiter in #857
- feat: implement proportional step-down recovery and median latency filtering in frame scheduler by @fderuiter in #860
- refactor(ci): move workspace state restoration to workflow steps and remove postbuild git reset by @fderuiter in #861
- feat: centralize scannability fallback store state and enforce off-thread maze execution by @fderuiter in #863
- feat: bound secondary fallback image canvas allocation to 2048px maximum dimension by @fderuiter in #865
- feat: implement zero-knowledge client-encrypted edge dynamic links by @fderuiter in #868
- feat(file-transfer): automated stream style sanitization & handshake scannability gate by @fderuiter in #869
- feat: updates + refactor by @fderuiter in #881
- docs: Edge Architecture and Zero-Knowledge Privacy Specification by @fderuiter in #885
- fix(pwa): serve static PNG brand icons and complete Web App Manifest metadata by @fderuiter in #884
- fi...