amigo-labs

amigo-labs

Release Notes

Atom feed

Auf GitHub ansehen

Features

  • tauri: add Edit > Settings... (Cmd+,) to the native macOS menu (bf94c4c)
  • tauri: add files_exist to tell which recent paths still hold a file (3a93b29)
  • ui: add the Settings dialog and move app settings out of View (84b71c6)
  • ui: remove recent files whose file was deleted (AC-30, AC-31) (33a7f50)
  • ui: settings dialog and a tidy View menu (8f879b3)
  • ui: show the clipboard card in the start screen between the New cards and the clipboard row (361f592)

Bug Fixes

  • pincel-image-core: mark OpenRaster entries as made on Unix on every platform (ee89225)
  • ui: accept today's release wasm in the perf setup (175aa5c)
  • ui: drop deleted recent files and place the clipboard card in the start screen (416bf7c)
  • ui: find the bundle's wasm at its root path in the perf setup (8da8218)

Performance Improvements

  • faster convolutions, job digest pins and a working pnpm perf (3302708)
  • pincel-effects: convolve rows without per-tap clamping (b8f85ad)
  • pincel-effects: skip edge clamping inside the 3x3 convolution (275c3c5)
  • pincel-image-core: flatten over a background through lookup tables (caf9f64)
  • pincel-image-core: Image-mode quick wins for export, selection, open, thumbnails and redraw (1cbb72c)
  • pincel-image-core: move decoded RGBA8 pixels instead of copying (6e88011)
  • pincel-image-core: run selection modifiers in O(1) per pixel (b4316d3)
  • pincel-image-core: track a selection generation on the command bus (8f5c475)
  • pincel-image-wasm: compose group thumbnails at thumbnail size (03b51f9)
  • pincel-image-wasm: report the selection generation in DocumentInfo (692788d)
  • ui: present each Image-mode canvas change once per frame (2a5f98e)
  • ui: rebuild the selection outline only when the selection changes (4ab193a)

Auf GitHub ansehen

Features

  • pincel-agent: describe font.list and font matching in pincel://guide (AC-12) (4ca9462)
  • pincel-agent: font.list and a font argument for draw.text (AC-01..AC-08, AC-10, AC-13) (7f061a2)
  • pincel-agent: run the tools on a document an editor owns (AC-07) (19c43c6)
  • pincel-core: draw text with a face of a font collection (AC-08) (6d28c9c)
  • pincel-image-core: text faces with a collection index and a live font edit (AC-07, AC-08) (4f21b53)
  • pincel-image-wasm: agent_call on the open document (AC-07) (a5a595e)
  • pincel-image-wasm: OCR session over a snapshot's source area (AC-03, AC-10, AC-11, AC-17) (bccc6b1)
  • pincel-image-wasm: read and write palette files (AC-03, AC-04, AC-07, AC-08) (421d265)
  • pincel-image-wasm: register_font takes an optional face index (AC-08) (fb90e5b)
  • pincel-mcp: offer the system's fonts to draw.text and font.list (AC-09) (7426000)
  • pincel-ocr: read whole pages in reading order (4c96d9f)
  • pincel-ocr: read whole pages in reading order (AC-01, AC-02, AC-03, AC-04, AC-05, AC-14) (4ddfcd2)
  • pincel-palette: add shared palette file codec crate (AC-21) (87539fa)
  • pincel-wasm: agentCall on the open document (AC-07) (00efee8)
  • pincel-wasm: registerFont takes an optional face index (AC-08) (9223b09)
  • tauri: find, start and connect a ComfyUI server (8fc7fca)
  • tauri: find, start and end ComfyUI servers (AC-02 – AC-13) (9a8678c)
  • tauri: let the desktop app download the OCR models from pincel.amigo-labs.dev (f3a96e4)
  • tauri: list system fonts with fontdb and read a listed font file (AC-15, AC-16) (8829edd)
  • tauri: live MCP endpoint for agents on the open documents (85127e2)
  • tauri: live MCP endpoint on 127.0.0.1 (AC-05, AC-06, AC-08, AC-22, AC-23) (2bb23a5)
  • tauri: reach ComfyUI over HTTPS through reqwest and rustls (AC-08) (3ba039b)
  • ui: font family list in the Pixel and Image Text tools (AC-01, AC-03, AC-04, AC-06, AC-07, AC-08, AC-09, AC-10, AC-12 – AC-14, AC-18, AC-22) (9b55740)
  • ui: font sources, face choice and added fonts for the Text tools (AC-02, AC-05, AC-07, AC-11, AC-20, AC-21, AC-23, AC-24) (5c108be)
  • ui: installed fonts in both Text tools (f42ecab)
  • ui: load, save and reset Image mode's palette (f851ecf)
  • ui: load, save, extend and reset Image mode's palette (AC-01..AC-20, AC-22..AC-25) (5cd3e20)
  • ui: open the clipboard from the start screen as a pixel sprite or an image (AC-34, AC-35, AC-36, AC-37, AC-38) (9dd8793)
  • ui: run live agent calls on the open documents (AC-07, AC-09, AC-10, AC-11, AC-15, AC-16, AC-17, AC-18, AC-19) (d6ff138)
  • ui: Tools > Recognize Text dialog with the model download on first use (AC-01, AC-02, AC-03, AC-04, AC-07, AC-16, AC-17) (653b05b)
  • ui: Tools ▸ Recognize Text with the OCR model download on first use (1eabaa8)
  • ui: View ▸ AI Agents… and the AI connected indicator (AC-01, AC-02, AC-03, AC-04, AC-12, AC-13, AC-14, AC-20, AC-21) (16532b4)
  • ui: View ▸ Image generation… dialog for the ComfyUI connection (AC-01 – AC-08, AC-11 – AC-14) (f4c170a)

Bug Fixes

  • tauri: a chat that cannot store the port leaves nothing listening (AC-03) (f8af412)
  • tauri: end stale sessions on a new token and stay off when the config cannot be written (e7ffbd8)
  • ui: create the OCR model store in profiles already at schema 3 (8e7e8a4)
  • ui: read background Pixel tabs for doc.list without switching them (18d63b7)
  • ui: render an added family from its added faces, never a system face (AC-05) (974a186)

Auf GitHub ansehen

⚠ BREAKING CHANGES

  • the workspace package names and the SDK's CLI name changed.
  • the database, config, temp and container paths are renamed (migrated automatically on start, except custom bind mounts onto /etc/amigo/plugins, which must now target /etc/krake/plugins).
  • the build-time keys are read only as KRAKE_REGISTRY_PUBKEY_HEX and KRAKE_UPDATE_PUBKEY_HEX, and the signing script only takes KRAKE_UPDATE_SIGNING_KEY. The workflows map them from the unchanged AMIGO_* repository variables and secret.
  • the crates and their library paths are renamed.
  • name the desktop executable Krake
  • the desktop app has a new bundle identifier.
  • the container image has a new name.
  • the binaries and release archives have new names.

Features

  • /spec-verify updates spec status and acceptance criteria (3e7c924)
  • 10 UX features — tab badge, relative time, sort, delete confirm, system theme, compact view, bandwidth limit, context menu, notifications, progress ring (a347048)
  • add /spec-fix skill + update CLAUDE.md with all 5 skills (97c13c6)
  • add automated release management with release-please (fcbe87f)
  • add automated release management with release-please (ce29bd6)
  • add captcha UI, webhook settings, and notification frontend (8fa6a38)
  • add chunk persistence and resumable chunked downloads (8ef2ca5)
  • add crypto, captcha manager, notifications, and webhook system (ee40ee1)
  • add Docker support with container management script and update docker-compose configuration (ecc0a58)
  • add integration tests and wire Extractor crate as URL resolver (b92e40b)
  • add ProtocolBackend trait and activate HLS/DASH backends (4f42a39)
  • add retry config UI in Settings page (7567d85)
  • add skip() to test harness for network-dependent tests (67b3148)
  • add spec-driven development skills (/spec, /verify, /feature) (78aa88d)
  • add spec-driven development skills (/spec, /verify, /feature) (6c84cc7)
  • add title and duration fields to DownloadInfo (fb236c1)
  • add URL resolver middleware for plugins and extractors (66b3987)
  • add Usenet UI — server management + NZB downloads pages (0916355)
  • add YouTube integration tests and fix plugin test runner (55e7739)
  • add YouTube integration tests and fix plugin test runner (ea6ea43)
  • cache bandwidth limit and add config validation (2732062)
  • cli: amigo-dl login / remote subcommands for device pairing (82aaa56)
  • complete visual redesign of amigo-downloader web-ui with Cyberpunk Arcade theme and integrated audit fixes (63824eb)
  • confirm plugin network access on install and update (2563fad)
  • convert all plugins to TypeScript, smart generic-http link finder (80233fc)
  • core/config: extend ServerConfig for setup-wizard flow (037c32c)
  • core/storage: sessions, api_tokens, pairing_requests tables (5bdf810)
  • cut initial v0.1.0 release (4ac4bdb)
  • cut initial v0.1.0 release (236c2a0)
  • cyberpunk arcade redesign with 60:30:10 neon balance (83dc68c)
  • docker, docs: opt-in Docker defaults + reverse-proxy / Tailscale guide (659f47f)
  • ETA, copy URL, keyboard nav, search, batch ops, speed graph (8a3a684)
  • extend plugin Host API + activate post-processing pipeline (1c2a927)
  • feature toggles for RSS feeds and server stats (261ccdb)
  • file icons, connection status, collapsible sidebar, i18n, DnD, favicon badge, aria-live, retry (ecd607b)
  • harden Docker deployment (docker-security spec) (0e0bfa2)
  • i18n system with JSON locale files and auto language detection (906bcd8)
  • implement real light mode theme (e69e7aa)
  • implement Usenet feature with server management and UI updates (4e160a2)
  • implement Usenet feature with server management and UI updates (b7c442e)
  • integrate bandwidth limiting and extract retry utility (d2675f9)
  • integrate Tauri into workspace (tauri-workspace-integration spec) (07f89da)
  • library-based extraction, selective PAR2, NZB metadata wiring (5c55ade)
  • local index cache, category folders, plugin suggestion API (0e6f96d)
  • make /spec skill collaborative and interactive (4fe55ca)
  • make retry options configurable via config.toml (a34e02b)
  • nightly CI pipeline — CLI binaries, Docker multi-arch, Tauri installers (35923a2)
  • nightly versioning with date-stamped tags and releases (fc1bd84)
  • NZBGet API credentials + fix 6 more bugs (6aa486b)
  • NZBGet-compatible JSON-RPC API for Sonarr/Radarr integration (5b01cbd)
  • PAR2/unrar config toggles, RSS background poller, NZB watch folder (52b94cd)
  • plugin spec test runner with test/assert/assertEqual/assertNotNull (5cac74c)
  • plugin strategy foundation — generic extractor, multi-hoster priority, protocol hints (ff71b5f)
  • plugin strategy foundation — generic extractor, multi-hoster priority, protocol hints (78d57da)
  • plugin-runtime: Ed25519-signed plugin registry index (audit #31) (300cfd5)
  • plugin-runtime: expose the plugin host API as krake (302ed27)
  • plugin-runtime: QuickJS as a WebAssembly guest module (AC-01) (48ce491)
  • plugin-runtime: run every plugin in a Wasm instance (AC-01 to AC-06, AC-08) (eea66fe)
  • plugin-runtime: run every plugin in a WebAssembly instance; #99 leftovers (4c9de86)
  • plugin-runtime: run plugin JavaScript in an out-of-process host (331b413)
  • plugin-runtime: run plugin JavaScript in an out-of-process host (0bd109c)
  • plugin-runtime: SSRF blocklist on plugin HTTP calls (2e7acf9)
  • plugin-runtime: Wasm executor for plugin JavaScript (AC-02 to AC-13, AC-15 to AC-17) (82955de)
  • plugin-sdk/account: AccountConfig, Session, AccountStatus plumbed through definePlugin (d9b2e54)
  • plugin-sdk/browser: Browser with redirects, cookies, referer, clone (d6bb96a)
  • plugin-sdk/browser: case-insensitive Headers (f043f0a)
  • plugin-sdk/browser: CookieJar with RFC-6265-style domain matching (dc39b4b)
  • plugin-sdk/captcha: captcha namespace with auto-detection and host bridge (51f9637)
  • plugin-sdk/cli: amigo-plugin CLI with new/validate/test subcommands (4048ee4)
  • plugin-sdk/container: RSDF, CCF, DLC parsers + detect() (16fadc8)
  • plugin-sdk/errors: PluginError, ErrorCode, factories with never-return typing (652aa55)
  • plugin-sdk/extraction: regex, json, encoding, html helpers (76f4dbe)
  • plugin-sdk/form: Form extraction + Page.getForm + Browser.submitForm (413ebab)
  • plugin-sdk/host: define host-api request/response types (b831ccb)
  • plugin-sdk/host: HostApi interface + injection hooks (16e52fe)
  • plugin-sdk/host: MockHostApi with request recording and error injection (1e30a5b)
  • plugin-sdk/host: Phase 1 tests + drop node-only deps from mock (17b15fc)
  • plugin-sdk/javascript: run/unpack wrappers with permission gate (a9b8e9d)
  • plugin-sdk/media: HLS master+media, DASH, variant selection helpers (829f0dc)
  • plugin-sdk/plugin: shared types, PluginContext, definePlugin, defineDecrypter (65220e8)
  • plugin-sdk/utility: parseSize, parseDuration, parseDate, formatFilename (629b5dd)
  • plugin-sdk: introduce @amigo/plugin-sdk (plan + implementation) (12fb9fc)
  • plugins test always enables verbose/debug logging (4713026)
  • plugins: declare apiVersion and permissions.domains (5b2489f)
  • rename CLI binary to amigo-dl and enhance direct download functionality (74a8088)
  • resolve() returns DownloadPackage with grouped downloads (d8e257e)
  • server statistics UI behind feature toggle (ca53033)
  • server/auth: cookie + api-token auth, setup-guard, proxy-aware IP (d2db4d4)
  • server: add bulk download endpoints and fix the retry action (c4cb317)
  • server: add POST /api/v1/downloads/container for DLC import (b7c4c7d)
  • server: background plugin auto-update task (opt-in) (2f0fa57)
  • server: bind to loopback by default, add bearer-token auth, tighten CORS (a09d19c)
  • server: bind to loopback by default, add bearer-token auth, tighten CORS (e8ded1c)
  • server: device-pairing endpoints + headless setup from env vars (05e427b)
  • server: live setup_complete + end-to-end auth flow tests (fc37062)
  • server: name the session cookie krake_session (e3d6980)
  • server: send X-Krake-* webhook headers (8e578ce)
  • server: setup wizard + login/logout/me endpoints (ef137fa)
  • site: add marketing site skeleton + pnpm workspace refactor (b60f139)
  • stream progress over WebSocket and add URL-based routing (f4a8199)
  • suggest plugin installation when URL matches registry (f116473)
  • tauri: register the krake:// deep-link scheme (18bb697)
  • tauri: use the Kr pixel monogram as the app icon (ad0a94d)
  • TUI output modes, multi-hoster plugins, XFS plugin, host-API extensions (4cdc898)
  • ui: add accessible primitives to @amigo/ui (ee41e07)
  • ui: one accent, the brand lime, instead of six palettes (519a2a4)
  • ui: split accent tokens by role and self-host Inter (4d7d8c8)
  • ui: use the Kr pixel monogram as favicon, PWA and in-app logo (0547a9e)
  • Usenet protocol dispatch, categories, duplicates, queue reorder (d106dc2)
  • VS Code dark mode, unified side panel, plus button in header (361e4b8)
  • VS Code dark mode, unified side panel, plus button in header (6f3871b)
  • web-ui: "Command Deck" UI/UX redesign — palette, mobile nav, motion, i18n & a11y (d46b593)
  • web-ui: bring the off-system screens into the design system (5ec52bf)
  • web-ui: command palette, mobile nav, header status bar, motion system (9579b07)
  • web-ui: download rows lay out by their own width, denser phone list (b5a0ab7)
  • web-ui: drop the colour palette setting (41e284f)
  • web-ui: i18n completion, focus traps, undo, settings a11y (148f82a)
  • web-ui: make the history page usable (4df456d)
  • web-ui: offline empty state, plugin enable/disable toggle (46fbea3)
  • web-ui: setup wizard, login page, pairing modal, auth gate (271b9ed)
  • web-ui: show a download's host instead of its full URL (4ea25aa)
  • web-ui: unify the download list and make it keyboard-operable (ea86852)
  • web-ui: wire up the plugin marketplace (39924fd)
  • wire captcha, webhook, and notification endpoints end-to-end (3008952)

Bug Fixes

  • /spec-fix updates affected specs when fix changes spec'd behavior (c8374a9)
  • adapt to rand 0.10 API changes (232fc7a)
  • add libclang-dev to Docker build for rquickjs bindgen (396ba06)
  • add protobuf-compiler and Cargo.lock for CI builds (fd22ab0)
  • add protobuf-compiler and Cargo.lock for CI builds (b3f3104)
  • address all Copilot review comments on PR #15 (655ef30)
  • address Copilot review — bound login RL map, persist full reorder set (11080c8)
  • address Copilot review comments on PR #14 (46a2342)
  • address Copilot review comments on PR #19 (a0d2095)
  • address Copilot review comments on PR #19 (250e874)
  • address Copilot review comments on PR #21 (af1016f)
  • address HIGH-severity security tickets (#29, #30, #32) (65da865)
  • address PR #72 review — .sig asset, owner cache bound, blank secret (d84fa17)
  • bugs, dead code, misleading stubs, and UX gaps across backend and web-ui (db7525f)
  • bugs, dead code, misleading stubs, and UX gaps across backend and web-ui (c3215d6)
  • change default port from 8080 to 1516 to avoid servarr conflicts (c82a140)
  • CI failures — suppress lib dead_code warnings, fix Docker image tags (4785154)
  • CI pipeline failures from Tauri workspace integration (2428a39)
  • ci: build cleanly on the current stable toolchain; clarify signer naming (66af253)
  • ci: bump versions without release-please's rust strategy (3bf9f35)
  • ci: bump versions without release-please's rust strategy (0ea62c7)
  • ci: grant packages:write to release-please caller workflow (b8288e6)
  • ci: grant packages:write to release-please caller workflow (0939968)
  • ci: green main again: rustix 1.1.6 for cargo audit, release PR auto-merge without squash (cb5d890)
  • ci: migrate web-ui, plugin-sdk, and docker build to pnpm (b2402e9)
  • cli: drop unused cancel sender in direct download path (528fb44)
  • cli: satisfy clippy::manual_checked_ops for download progress (0568acc)
  • code review audit — bugs, dead code, and missing integrations (0c51df1)
  • code review audit — bugs, dead code, and missing integrations (b879ce0)
  • code-review cleanup — security, download-engine correctness, plugins, web-ui (29fbb1c)
  • copy web-ui dist to correct path in Docker build (b82c2eb)
  • core,plugin-runtime: address PR review on segment streaming & cache (02ee1a8)
  • core/chunk: kill the underflow in ChunkPlan::split (6618743)
  • core/coordinator: bigger event buffer, share progress channel across retries (9e36ef8)
  • core/http: fsync downloaded files before declaring success (928e9cf)
  • core/nntp: hostname validation, IO timeouts, explicit TLS verify (f5c792b)
  • core/postprocess: block ZIP-Slip via symlink entries (aee87db)
  • core: a paused download keeps the progress it had reached (e4cf217)
  • core: address Copilot review on #58 (481149a)
  • core: allow cancellation during retry and harden speed calc (1aa2de1)
  • core: bound WAL growth with autocheckpoint (4e81121), closes #38
  • core: cancel the in-flight task before retrying a download (a47edfd)
  • core: close TOCTOU race in add_download_with_options (#53) (470f921)
  • core: close TOCTOU race in add_download_with_options (#53) (eb75821)
  • core: enforce retry base_delay floor to prevent hot-loop (2da7773), closes #37
  • core: log completed downloads in the history (0d1e692)
  • core: mark a download as retrying during the backoff, not during the retry (0ff59bf)
  • core: migrate rand usage to the 0.9 API (6fc5363)
  • core: record filename and size of plain HTTP downloads, fail fast on 4xx (4b08fd9)
  • core: repair Usenet binary path, bandwidth hang, chunk corruption, pause (fbb5c2b)
  • core: require checksum for self-update, guard 7z/RAR/tar against zip-slip (f82fbd8)
  • core: robustness fixes across NZB, DASH, config, chunking, NNTP, coordinator (402d46d)
  • core: tear down progress reporter and sibling chunk tasks on chunk failure (ca3df34)
  • core: upgrade rusqlite to 0.41 for the libsqlite3-sys advisory (f273800)
  • core: verify reassembled chunk size before rename (b2fe9fb), closes #34
  • correct addToast argument order across all pages (ad8b015)
  • critical security and logic bugs across codebase (9af9e16)
  • critical security and logic bugs across codebase (a8a0185)
  • deps: make rand 0.10 bump compile (openssl/tar cargo group update) (43c62ee)
  • deps: make tauri 2.11.1 + rand 0.9 bump (PR #61) build green (a1d14b1)
  • deps: override fast-uri to >=3.1.2 to clear pnpm audit (f949c25)
  • deps: override svelte/ws/devalue to clear pnpm audit (01b410f)
  • deps: pin vulnerable transitive npm deps via pnpm overrides (1645049)
  • deps: replace sevenz-rust with sevenz-rust2 and bump vulnerable crates (292bcda)
  • deps: resolve cargo and pnpm audit advisories (7270e69)
  • deps: resolve cargo and pnpm audit advisories (5ddf08a)
  • deps: resolve cargo-audit advisories (anyhow bump + quick-xml ignores) (fa990a8)
  • deps: update hyper and the Tauri updater for open advisories (f5c586c)
  • docker: add entrypoint with PUID/PGID and volume checks (3088a0d), closes #42
  • don't check off acceptance criteria in spec files (6d6b526)
  • extractors/youtube: TTL + LRU on player-JS cache, deadline on QuickJS (ee69510)
  • harden coordinator, resume, extraction, plugin updates, JSON parsing (2ec8b78)
  • make webhook signing mandatory (#29) (40844ff)
  • multiple bugs across core, plugins, web-ui, and docker (ae75e59)
  • multiple bugs across core, plugins, web-ui, and docker (f451bf9)
  • multiple bugs across core, plugins, web-ui, and docker (689eae8)
  • multiple bugs across core, plugins, web-ui, and docker (9d110d8)
  • nightly build missing server binary and broken artifact upload (51d09b5)
  • nightly build missing server binary and broken artifact upload (d6c920a)
  • path-traversal, resume corruption, zip-bomb, plugin updates, JSON parsing (88964a6)
  • plugin sandbox hardening (#78, #80–#85) + green dependency audits (supersedes #86) (351f9d8)
  • plugin-runtime: address review findings on the plugin host (f9ed787)
  • plugin-runtime: cap regex / HTML / base64 inputs (d8c0982)
  • plugin-runtime: collapse redirect match arm (clippy 1.96 collapsible_match) (f75868b)
  • plugin-runtime: enforce per-plugin storage quota (a9d6db8)
  • plugin-runtime: enforce resolve/postProcess timeouts via interrupt handler (f0bc0bb)
  • plugin-runtime: harden the plugin sandbox boundary (b528714)
  • plugin-runtime: inject registry Ed25519 pubkey at compile time (e2a2d48)
  • plugin-runtime: isolate plugin storage by declared id, harden HTTP (7157bcd)
  • plugin-runtime: per-plugin cookie jars (4aff9a2)
  • plugin-runtime: settle a Promise returned by resolve() (b329343)
  • plugin-runtime: show a thrown non-Error value as its string form (60f6e46)
  • plugin-runtime: validate registry candidates before they reach disk (10ffee3)
  • plugin-runtime: Wasm executor reports a missing return value like the native engine (AC-06, AC-07) (808d29c)
  • plugin-sdk: address Copilot review comments (b12dd32)
  • plugins: correct link pairing, honor XFS wait, validate keys before store (14d010e)
  • plugins: strip anchor tags to a fixed point (CodeQL: incomplete sanitization) (c38d71f)
  • prevent panic on malformed NZB with missing </file> closing tag (f6f62f2)
  • queue stall, non-atomic history, regex perf, test masking (e019ebe)
  • re-enable Click'n'Load in Tauri via amigo-server crate (d305615)
  • re-sync agent skills (acceptance-criteria headings in any case) (0801589)
  • re-sync agent skills (commit gate, spec-build completion) (634c469)
  • resolve all CI clippy warnings and unused import errors (e8d2026)
  • resolve all CI pipeline failures (clippy, svelte-check, warnings) (196c98f)
  • resolve clippy redundant_closure warning in ZIP extraction (53e8cbb)
  • resolve clippy redundant_closure warning in ZIP extraction (5037c1c)
  • resolve nightly build errors — missing icons, clippy warnings, and release-build stub (beb08a0)
  • resolve nightly build failures across all platforms (53e4461)
  • resolve nightly build failures across all platforms (804810a)
  • resolve nightly build failures across macOS, aarch64-linux, and … (93be711)
  • resolve nightly build failures across macOS, aarch64-linux, and Tauri installers (8be1cda)
  • resolve pre-existing clippy warnings in server crate (a4eb6b3)
  • restore libclang-dev in Docker for rquickjs (plugin-runtime) (f852009)
  • scope WebSocket download events per owner (#32) (d28e98b)
  • sdk,core: correct container detection ordering and DLC docs (F1/P4) (5eda1ea)
  • server: apply baseline security headers to every response (f2e6b5d)
  • server: avoid Instant underflow in feedback rate limiter (6179539)
  • server: cap upload body size for /downloads/nzb and /downloads/container (050481c)
  • server: close NZBGet JSON-RPC auth bypass (868d3c7)
  • server: mark session cookies Secure over HTTPS, clear both on logout (2fff42f)
  • server: mark session cookies Secure over HTTPS, clear both on logout (f213cfb)
  • server: no duplicate NZBGet history entries, history delete removes the archive entry (1d16e73)
  • server: persist webhooks to config and keep the dispatcher in sync (SV3) (c62ec08)
  • server: redact secrets in GET /api/v1/config (dc8113d)
  • server: report live progress of running downloads over REST (0d826e4)
  • server: scrub secrets from feedback before submitting (dfb6a5d), closes #36
  • server: SSRF guard for webhook + RSS outbound URLs (517f40d)
  • server: SSRF-guard download paths, rate-limit login, close IP-block gaps (2699954)
  • server: URL allowlist + body cap on Click'n'Load endpoints (96d5ac5)
  • site: make npx wrangler deploy work from workspace root (1ea6512)
  • site: make npx wrangler deploy work from workspace root (a72ec46)
  • site: move wrangler.jsonc into site/ for Workers Builds (bcad54d)
  • tests: address Copilot review on PR #60 (1623015)
  • UI polish — hover states, focus styling, empty states, dead code cleanup (3ace985)
  • ui: full-height pause icon, muted knob on a switched-off toggle (f4be71a)
  • updater: install release archives and sign them for self-update (8852168)
  • updater: install release archives and sign them for self-update (72bdffd)
  • URL decoding corruption, XML parser panics, timer leaks, DnD bug (c734193)
  • use cross tool for aarch64 in release-build + add Tauri signing pubkey (ed9a95a)
  • verify Ed25519 signature on core self-update (#30) (94be21f)
  • web-ui: add a layer manager and fix the broken drag and captcha trap (1fce7cd)
  • web-ui: address Copilot review on #65 (cc0d961)
  • web-ui: cleanup popstate listener via onMount lifecycle (9088dc7)
  • web-ui: correct byte formatting units and clamp magnitude index (d718b59)
  • web-ui: guard shortcuts in inputs, wire reorder + report, i18n, ws proxy (93ff487)
  • web-ui: keyboard-operable context menu (5e2efd8)
  • web-ui: name the saved file in the completion notification (115febb)
  • web-ui: read WebSocket events from the flat server payload (45d554a)
  • web-ui: readable download rows: file name, failure reason, phone layout (065d5a7)
  • web-ui: safe context-menu delete, in-flight action guards, i18n coverage (95a005d)
  • web-ui: shortcut hints as key caps, no doubled stats, dependent toggles (ea5497f)
  • web-ui: show download progress, names and failure reasons; one accent; denser Downloads screen (6b6a4fb)
  • wrap env var mutations in unsafe blocks for Rust 2024 edition (3463281)
  • Zip Slip path traversal + tar absolute path extraction (7f7c112)

Performance Improvements

  • build: add tuned release profile (fat LTO, codegen-units=1, strip) (ef5e3f3)
  • build: set panic = "abort" for the release profile (f71fb82)
  • core,server: buffer download writes and stream chunk reassembly (203bb3a)
  • core: stream HLS/DASH segments to disk instead of buffering in RAM (27e32e5)
  • core: tune SQLite pragmas, cache statements, batch chunk inserts (74446d7)
  • deps: trim tokio feature set and drop it from extractors (12291c5)
  • extractors,server: hoist hot-path regexes to LazyLock statics (5efda97)
  • extractors: store cached player JS as Arc<str> (f39f8d9)
  • plugin-runtime: cache compiled regexes; harden base64 and JS interop (3279558)
  • plugin-runtime: cache SWC transpilation and registry URL regexes (cc91feb)
  • web-ui: code-split pages and isolate the Svelte vendor chunk (ad02aad)
  • whole-repo performance optimization (build, core, extractors, plugins, web-ui) (bc95f03)

Code Refactoring

  • move amigo-named data paths to krake (1f67687)
  • name the desktop executable Krake (3f68392)
  • rename the AMIGO_* environment variables to KRAKE_* (98c4d19)
  • rename the app to Krake (5a7f26c)
  • rename the binaries to krake, krake-server and krake-plugin-host (b2d1b7b)
  • rename the workspace crates to krake-* (1aa1559)

Build System

  • move the npm workspace packages to the @amigo-labs scope (57646c3)
  • publish the container image as ghcr.io/amigo-labs/krake (3929364)

Auf GitHub ansehen

Bug Fixes

  • windows: show About in the viewer's own notice, not a system message box (38f55ec)
  • windows: show About in the viewer's own notice, not a system message box (4c78a31)

Auf GitHub ansehen

Bug Fixes

  • ui: check the stamp's target layer for the lock, not the active one (8e08736)
  • ui: close the polygonal lasso on its first vertex and on Enter (a9ee567)
  • ui: drop an open polygonal lasso when another tool is chosen (a24664a)
  • ui: keep the selection when the first vertex is double-clicked (3cc2ff3)
  • ui: polygonal lasso closing and three tool gaps found in a spec audit (6af1c66)
  • ui: refuse the newer shapes on a locked layer with the notice (6973cd2)

Auf GitHub ansehen

Features

  • ui: add a Button component with busy state and shortcut keycap (aad8bce)
  • ui: give buttons a pressed state, a danger variant and one on-state (b1e9e4e)
  • ui: one button language, themed tooltips, duotone icon set (e64a198)
  • ui: redraw the icon set in duotone (1e525e6)
  • ui: show themed tooltips with the shortcut as a keycap (db9c59c)

Bug Fixes

  • ui: keep control names and nested titles under the tooltip layer (e320368)
  • ui: make the Slice and Move Selection Outline icons readable (5d15c3d)

Auf GitHub ansehen

Features

  • ui: lay the start screen out as a weighted action grid (140c864)
  • ui: let the start screen layout follow the recent files (31e3376)
  • ui: say in the New dialog what Create will make (c489fff)

Bug Fixes

  • re-sync agent skills (acceptance-criteria headings in any case) (cbb40a5)
  • re-sync agent skills (commit gate, spec-build completion) (e6dc12e)
  • ui: keep the New dialog's notes, Tab and size honest (714987d)

Auf GitHub ansehen

Features

  • ui: batch dialog footer states what Start will do (61f692b)
  • ui: batch dialog header holds the title, count and Remove all (d933852)
  • ui: batch dialog on a label gutter with a measured height (21f0644)
  • ui: batch run sheet leads with its count as a headline (3091a8b)
  • ui: UI surfaces reworked in crumora tournaments (3f2e98a)

Bug Fixes

  • re-sync agent skills (acceptance-criteria headings in any case) (701db34)
  • re-sync agent skills (commit gate, spec-build completion) (2a038a3)
  • ui: batch dialog tests hold the language while comparing text (7c82792)

Auf GitHub ansehen

Features

  • Bl pixel monogram as app icon and site colour (bed526b)
  • race: benchmark file from blinzel-race, retire the website (1aee6a3)
  • race: blinzel-race site writes the amigo-labs.dev benchmark file (967eb0a), closes #50
  • the Bl pixel monogram as app icon (7229c7a)

Bug Fixes

  • race: check out the generated benchmark files with LF (bfc1c39), closes #50

Auf GitHub ansehen

Features

  • paint.net effects, docked effect panel, document tabs and unsaved-changes prompt (aba129c)
  • pincel-agent: colour parameter kind and the outline effect (AC-12) (bbfd2c2)
  • pincel-agent: expose Drop Shadow, Stylize Outline, Quantize and Reduce Noise's strength to agents (68ea4f1)
  • pincel-agent: expose the paint.net adjustments to agents (AC-10) (1043cc9)
  • pincel-agent: expose the paint.net Artistic and Photo effects to agents (ede3e97)
  • pincel-agent: expose the paint.net blurs to agents (AC-13) (a3b1bbc)
  • pincel-agent: expose the paint.net distortions to agents (2daf47b)
  • pincel-agent: expose the paint.net render effects to agents (72ee703)
  • pincel-core: add the DrawDitherGradient command (dithered-gradient AC-01, AC-02, AC-03, AC-04, AC-06, AC-07, AC-08, AC-14, AC-15) (719b1f4)
  • pincel-core: add the Shading ink to PencilStroke (shading-ink AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-11) (e9e93e7)
  • pincel-core: compose indexed and grayscale sprites (AC-01 … AC-12) (03233c8)
  • pincel-core: compose linked cels (AC-01 … AC-07) (a0b4463)
  • pincel-core: fold group opacity and blend mode in compose (AC-08 … AC-20) (6767bae)
  • pincel-core: integer-scaled PNG frame and sheet export (AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-09) (9e7933c)
  • pincel-core: mirror, wrap and cel growth in PencilStroke (AC-01, AC-02, AC-03, AC-05, AC-06, AC-07, AC-15, AC-16, AC-17, AC-19, AC-21) (09eab06)
  • pincel-core: read and write Lospec .hex, JASC .pal and PNG palette strips (palette-formats AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-10, AC-11, AC-12, AC-13, AC-15) (18cdce3)
  • pincel-core: undoable SetGrid command for the sprite grid (AC-08, AC-09, AC-10, AC-13) (d0ab686)
  • pincel-effects: add Drop Shadow, Stylize Outline, Quantize and paint.net Reduce Noise (AC-03 – AC-10) (ac5d299)
  • pincel-effects: add the Outline Object effect with a colour wire slot (AC-02, AC-03, AC-04, AC-05, AC-06, AC-12, AC-13) (c08b586)
  • pincel-effects: add the paint.net adjustments (AC-03 – AC-09, AC-11) (868d4d6)
  • pincel-effects: add the paint.net Artistic effects (AC-05, AC-06, AC-07) (3dafe15)
  • pincel-effects: add the paint.net blurs (AC-03 – AC-11, AC-13, AC-14) (6bb9973)
  • pincel-effects: add the paint.net distortions (AC-03 – AC-12) (cdfb309)
  • pincel-effects: add the paint.net Photo effects (AC-03, AC-04, AC-08 – AC-11) (32ad03b)
  • pincel-effects: add the paint.net render effects (AC-03 – AC-08) (1122d87)
  • pincel-effects: outline effect with a colour wire slot (AC-02, AC-03, AC-04, AC-05, AC-06, AC-12, AC-13) (c18400e)
  • pincel-image-core: commands report the composite rect they change (AC-01) (c2b0443)
  • pincel-image-core: composite layer groups in isolation (AC-07, AC-08, AC-09, AC-10) (e60c6d4)
  • pincel-image-core: group commands in the Image command format (AC-01, AC-02, AC-03, AC-14) (e63da69)
  • pincel-image-core: layer groups in the Image-mode layer tree (AC-01, AC-02, AC-04, AC-05, AC-20) (ee30c68)
  • pincel-image-core: merge rules for layer groups (AC-06, AC-13, AC-14, AC-15) (2deb168)
  • pincel-image-core: paste above a group and keep group buffers out of canvas ops (AC-19) (bdb2420)
  • pincel-image-core: read 8-bit RGB PSD layers, groups and composite (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-10, AC-14) (adb9e41)
  • pincel-image-core: read and write layer groups as nested OpenRaster stacks (AC-01, AC-02, AC-03, AC-04, AC-05, AC-07) (e6169bd)
  • pincel-image-core: refuse pixel edits on groups and move group content (AC-11, AC-12, AC-18) (8e35db5)
  • pincel-image-wasm: expose the open-document count for tests (AC-16) (570508e)
  • pincel-image-wasm: layer tree in the document info and group thumbnails (AC-11, AC-12, AC-17) (c395705)
  • pincel-image-wasm: open_psd returns the handle and the import notices (AC-06, AC-09) (3b3059e)
  • pincel-image-wasm: run effects on the selection as their target (AC-10) (7427dc3)
  • pincel-wasm: add beginShadingStroke for the Pencil's Shading ink (shading-ink AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-11, AC-13) (7fc8a37)
  • pincel-wasm: add composeFrame(frame, zoom, onion) for onion-free composites (animation-preview AC-09) (fbd01bb)
  • pincel-wasm: add importPalette / exportPalette for every palette format (palette-formats AC-06, AC-07, AC-08, AC-09, AC-14, AC-15) (cdca03c)
  • pincel-wasm: anchor Pixelate to the canvas grid for trimmed cels (AC-06, AC-13, AC-14) (e4365fc)
  • pincel-wasm: count live documents for tests (AC-16) (f177eb8)
  • pincel-wasm: expose applyGradient for the dithered Gradient tool (dithered-gradient AC-08, AC-12, AC-13) (a3bba13)
  • pincel-wasm: grid accessors and undoable setGrid (AC-08, AC-09, AC-10, AC-13) (2a3fdbc)
  • pincel-wasm: optional scale on exportPng and exportAtlas (AC-03, AC-04, AC-06, AC-07, AC-08, AC-09) (799207f)
  • pincel-wasm: run effects on the selection as their target (AC-10, AC-11, AC-13) (9c5b9b9)
  • pincel-wasm: setStrokeMirror and setStrokeWrap for the stroke gesture (AC-01, AC-02, AC-03, AC-15) (37164b1)
  • tauri: add File > Close with CmdOrCtrl+W to the native menu (AC-20) (b2fd942)
  • tauri: associate .psd files with Pincel as a viewer (AC-13) (7261633)
  • tauri: Help ▸ Keyboard Shortcuts in the native macOS menu (AC-03) (39426a5)
  • tauri: let the UI ask before the window closes (AC-09) (5a80305)
  • tauri: move the native Export Sprite Sheet accelerator to Cmd+Alt+E (power-user-shortcuts-coverage AC-19) (85c6702)
  • tauri: register the clipboard-manager plugin with read-image only (AC-27, AC-28, AC-33) (9691418)
  • tauri: set_menu_accelerators rebuilds the macOS menu with rebound chords (AC-14) (c890ece)
  • ui: add a Ctrl+K command palette over every menu command and tool (power-user-shortcuts-palette AC-01 – AC-17) (b445733)
  • ui: add a Preview panel that plays the animation while you draw (animation-preview AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-10, AC-11, AC-12, AC-13, AC-14, AC-15, AC-16) (14477e2)
  • ui: add the dithered Gradient tool to Pixel mode's Fill group (dithered-gradient AC-09, AC-10, AC-11, AC-12, AC-13) (4ed0364)
  • ui: add tool-rail flyout model helpers (AC-02, AC-04, AC-05, AC-08, AC-11) (e507fe3)
  • ui: ask about unsaved changes before the desktop app closes (AC-01, AC-08, AC-09, AC-10, AC-11) (924d878)
  • ui: ask Save / Don't Save / Cancel before replacing unsaved work (AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-12, AC-13) (0a2ac68)
  • ui: canvas only zooms and pans while an effect is open (AC-03) (a009345)
  • ui: default shortcuts for layers, frames, flips, rotation, opacity, the palette and Toggle UI (power-user-shortcuts-coverage AC-01 – AC-19) (85f381e)
  • ui: dock the effect panel in the sidebar, drawer or bottom sheet (AC-01, AC-02, AC-04 – AC-06, AC-12 – AC-15) (c2536b6)
  • ui: drop images onto an open editor to add them as layers or open them (file-access AC-20, AC-21, AC-22, AC-23, AC-24, AC-25, AC-26, AC-27, AC-28) (b75c1b7)
  • ui: Drop Shadow, Stylize Outline, Quantize and paint.net Reduce Noise in the Effects submenus (AC-01, AC-02, AC-12) (6560b2e)
  • ui: Effects > Object > Outline Object with a colour parameter in the effect panel (AC-01, AC-06, AC-08, AC-09, AC-11) (4650965)
  • ui: Effects ▸ Outline… with a colour parameter in both modes (AC-01, AC-08, AC-09, AC-11) (964845b)
  • ui: export and import the keymap as JSON (AC-07 – AC-11, AC-15 – AC-17) (fef54f3)
  • ui: failed effects keep the panel, prompts and document switches end it (AC-16, AC-17) (a7bcb71)
  • ui: Grid Settings dialog for the Pixel-mode grid (AC-07, AC-08, AC-09, AC-10, AC-13, AC-15, AC-17) (b9bf15c)
  • ui: import any palette file and export .gpl, .hex, .pal or PNG strips (palette-formats AC-01, AC-02, AC-03, AC-05, AC-06, AC-09, AC-10, AC-11, AC-12) (4670230)
  • ui: keep the native macOS menu in step with the keymap (AC-14) (c0a929b)
  • ui: keyboard shortcuts overview dialog (AC-01, AC-02, AC-04 – AC-18) (44ced13)
  • ui: layer groups in Image mode's layers panel and Layer menu (AC-01, AC-02, AC-03, AC-05, AC-07, AC-11, AC-12, AC-14, AC-16, AC-17, AC-20) (62340eb)
  • ui: mix both modes in one tab bar (AC-01 – AC-05, AC-07 – AC-11, AC-15 – AC-17, AC-19, AC-21 – AC-25) (35ab4fd)
  • ui: offer a clipboard image on the desktop start screen (AC-27 – AC-32) (593daba)
  • ui: open a variant flyout from tool-rail group buttons (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-09, AC-10, AC-11, AC-12, AC-13, AC-14) (6ffa0bd)
  • ui: open PSD files in Image mode (AC-01, AC-05, AC-06, AC-07, AC-08, AC-09, AC-10, AC-11, AC-12, AC-14) (ed992f8)
  • ui: open several documents as tabs in each editor (AC-01 – AC-20) (70cb8eb)
  • ui: open the shortcut overview from the native Help menu (AC-03) (31c5a7d)
  • ui: paint.net adjustments in both modes' Adjustments menu (AC-01, AC-02, AC-10, AC-12) (d4ea8a9)
  • ui: paint.net Artistic and Photo effects in Image mode's submenus (AC-01, AC-02, AC-13) (e5c8fdf)
  • ui: paint.net blurs in Image mode's Blurs submenu (AC-01, AC-02, AC-12, AC-15) (ec36c78)
  • ui: paint.net distortions in the Distort submenu (AC-01, AC-02, AC-15) (f49ed76)
  • ui: paint.net effect menus per mode with new parameter kinds (AC-01 – AC-07, AC-09 – AC-15) (a0b314e)
  • ui: paint.net render effects in the Render submenu (AC-01, AC-02, AC-12) (def5de7)
  • ui: Pencil Shading ink with a Shift+click palette ramp (shading-ink AC-01, AC-02, AC-07, AC-08, AC-09, AC-10, AC-11, AC-12, AC-14) (41a4804)
  • ui: pixel grid and custom grid in Pixel mode (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-11, AC-12, AC-14, AC-16) (00412da)
  • ui: rebind shortcuts in the Keyboard Shortcuts dialog (AC-01 – AC-06, AC-12, AC-13) (7c9373c)
  • ui: recognize a dropped file as the file of an open tab (AC-03, AC-19) (bd2cbbf)
  • ui: resizable docked sidebar with a splitter, width kept per mode (AC-07 – AC-11) (852277d)
  • ui: respect reduce motion and add View ▸ Reduce Motion (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-09, AC-10, AC-11, AC-12, AC-13) (1c894be)
  • ui: Scale choice for PNG frame and sprite-sheet export (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-09, AC-10, AC-11) (0c62d3c)
  • ui: symmetry and tiled mode for the Pixel-mode Pencil and Eraser (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-09, AC-10, AC-11, AC-12, AC-13, AC-14, AC-15, AC-16, AC-17, AC-18, AC-19, AC-20, AC-21, AC-22) (da8bbbc)
  • website: scroll the comparison inside its wrapper on phones with Pincel kept in view (website-comparison AC-09) (982bcaa)

Bug Fixes

  • pincel-agent: list the outline effect with a hex colour parameter (AC-12) (0120e3c)
  • pincel-core: keep slice center and pivot relative on canvas changes (57a2c6c)
  • pincel-core: stamping on a frame without a grid creates it (AC-21) (384f958)
  • pincel-effects: keep transparent pixels' colour out of distort and reduce noise (AC-18) (dc153ad)
  • pincel-effects: list outline once in EFFECT_NAMES after the PR #123 merge (428cac5)
  • pincel-effects: read the radial blur centre as a fraction of the image (3fe6b2c)
  • pincel-effects: read the radial blur centre as a fraction of the image (57b63a2)
  • pincel-effects: render Turbulence from gradient noise (7bf710e)
  • pincel-image-core: add_layer keeps the layer tree intact (2bc43a5)
  • pincel-image-core: PSD fill opacity scales the layer's opacity (AC-01) (e1ead8e)
  • pincel-wasm: a new tileset stores the transparent tile 0 (AC-01, AC-04) (734f76d)
  • reconcile effect-panel AC-17 after integrating feat/clipboard-offer (1d40a74)
  • reconcile the effect-menu loading test after integrating feat/clipboard-offer (9e0ef7d)
  • reconcile the tool flyout with document tabs after integrating feat/tool-variant-flyout (306922f)
  • tauri: drop the test-only labels_for so clippy passes (e9399f7)
  • tauri: route current_labels through labels_for (35c5fb1)
  • ui: a refused slice size snaps back to the stored value (AC-10) (4b0916f)
  • ui: apply Select ▸ Expand… / Contract… in Pixel mode (5dd2afe)
  • ui: clamp an out-of-range New size instead of blocking Create (app-shell AC-06) (0c3c7e0)
  • ui: count a Pixel inline layer rename as an undo step in the UI (pixel-layers-frames AC-08) (d832ddf)
  • ui: draw Image-mode selection ants on device pixel centres (08d3a76)
  • ui: drop the Image gesture in flight when a new tab opens (47aba67)
  • ui: Enter on a menu entry or panel button keeps its own meaning while an effect is open (AC-04, AC-05) (f61f898)
  • ui: find "…" effect entries by their English name in the command palette (c767961)
  • ui: fit a new Pixel document to the stage its panels leave (pen-input AC-11) (3626790)
  • ui: focus the inline layer rename field when it opens (AC-08) (0f33109)
  • ui: keep a focused size field selected when the clipboard prefill lands (92418b5)
  • ui: keep native-menu items from the editor while the unsaved prompt is open (AC-02, AC-07, AC-08) (439e7b2)
  • ui: keep the focus in the drop dialog when Add as layer is unavailable (0c5cd6d)
  • ui: keep the Pixel document unsaved when the save picker is cancelled (3c795a5)
  • ui: keep the shell starting when the window API throws under a Tauri 1 bridge (7b505ba)
  • ui: name an unknown file opened from the Pixel editor (AC-12) (638f441)
  • ui: Preview off hides the preview of a parameterless effect (AC-03) (3fffeb3)
  • ui: refuse a drop under the unsaved-changes prompt with a notice (b828d90)
  • ui: report an effect refused on a locked Image layer (AC-12) (59fbe35)
  • ui: route an Image-mode recent from the Pixel editor's Open Recent (app-shell AC-09) (b0317e3)
  • ui: show the kept duration after a rejected frame duration entry (pixel-layers-frames AC-31) (387fadd)
  • ui: show the shell notice when the Pixel editor cannot read a file (file-access AC-14, AC-16) (51ec205)
  • ui: slice 9-patch center and pivot relative to the bounds (AC-09, AC-12, AC-13) (f9abb31)
  • ui: the Add tileset form always opens with its defaults (AC-02) (685edba)
  • ui: the Add tileset form reports every bad tile size itself (AC-03) (ef9bea6)
  • ui: the Image editor keeps the native Open Recent submenu current (AC-19) (65c13c7)
  • ui: the Tilesets panel hides the empty tile 0 (AC-07) (83516eb)
  • ui: Tilesets panel edits refresh the undo state (AC-01, AC-04) (3f28ab2)
  • ui: Tilesets panel strings go through t() (AC-01, AC-04, AC-06) (0f15aa8)
  • ui: translate the Slices panel's field labels and row texts (AC-11) (0626569)
  • ui: translate the sprite sheet dialog's grid line (AC-16) (3830dde)
  • website: call Aseprite source-available and date Piskel's last release (website-comparison AC-06, AC-07) (973fdd2)
  • website: set <html lang> on a client-side language switch (website AC-01 – AC-05) (75bf1bf)

Performance Improvements

  • pincel-image-core: bench a 4K brush stroke presented from the cache (AC-02) (c656e67)
  • pincel-image-core: cached composite with a downscaled pyramid (AC-01, AC-05, AC-06, AC-07) (69ecefd)
  • pincel-image-core: compose without powf, byte for byte (AC-01, AC-02, AC-04) (ba53299)
  • pincel-image-core: division-free pyramid filter for equal alphas (AC-07) (018e2b7)
  • pincel-image-wasm: composite_region presents from the render cache (AC-01, AC-05, AC-06, AC-07) (b97a773)

Auf GitHub ansehen

Features

  • integrate the Vectorizer (pincel-trace + File ▸ Export ▸ SVG…) (9a6ed31)
  • pincel-image-wasm: vectorizer over the composite for SVG export (f2800ea)
  • pincel-trace: pixel-exact mode and the SVG document (AC-12 – AC-14, AC-16, AC-17, AC-20) (8c9286d)
  • pincel-trace: port the Vectorizer core (AC-02 – AC-11, AC-15, AC-18, AC-19) (4ae67ad)
  • pincel-trace: read trace options from a flat wire vector (22c7d62)
  • pincel-wasm: Vectorizer over a composed frame for SVG export (aeb4797)
  • tauri: Export as SVG… in the native File menu (AC-10) (0abc73a)
  • ui: File ▸ Export ▸ SVG… in both editors (AC-01 – AC-09, AC-11) (092dc60)
  • ui: paste the clipboard image as a new document (2350eca)
  • ui: paste the clipboard image as a new document (AC-22, AC-23, AC-24, AC-25, AC-26) (f323697)
  • ui: start image selections on the stage, deselect by click and Escape (AC-29, AC-30, AC-31, AC-32) (9b852d4)
  • ui: start pixel selections on the stage beside the canvas (AC-01, AC-04, AC-07, AC-09, AC-12, AC-17, AC-18, AC-21, AC-22, AC-23, AC-24) (a554af6)
  • ui: start selections on the stage beside the canvas (14991b4)

Bug Fixes

  • pincel-trace: reserve outline-sized buffers fallibly (AC-18) (87ecaa4)
  • pincel-trace: share cached quantizations instead of copying them (AC-18) (40498e5)
  • pincel-trace: use as_chunks for RGBA pixels (clippy 1.99) (cee3a28)
  • tauri: stop the PWA service worker from freezing the desktop UI (4c15c89)
  • tauri: stop the PWA service worker from freezing the desktop UI (a321a03)
  • ui: drop a pixel gesture on pointercancel instead of committing it (AC-09, AC-21, AC-22, AC-23, AC-24, AC-29, AC-30, AC-31, AC-32) (501fb42)
  • ui: keep the SVG export dialog modal for pointer and keyboard (866fe91)
  • ui: let a key right after a marquee release see the new selection (e756741)
  • ui: march Image-mode selection ants instead of blinking the outline (3bcb5ca)
  • ui: march Image-mode selection ants instead of blinking the outline (c8b134c)
  • ui: snap both image-mode marquee corners to the pixel grid (1819fda)
  • ui: tie the SVG tracer to the document it traces (7257535)

Auf GitHub ansehen

Features

  • macOS disk image download and self-signed app signature (e138f08)
  • macOS disk image download and self-signed app signature (5f6cd2f)
  • one signing certificate for amigo-labs, created by a script (661e436)
  • resident mode on macOS with a menu bar icon and login item (ceaa5fe)
  • resident mode on macOS with a menu bar icon and login item (5f3c5f6)
  • screenshots always go to the clipboard, then save/open/edit as set (57203f9)
  • screenshots always go to the clipboard, then save/open/edit as set (46b29f3)
  • screenshots on macOS with ScreenCaptureKit and a Cmd+Shift+1 hot key (3b023f0)
  • screenshots on macOS with ScreenCaptureKit and a Cmd+Shift+1 hot key (dedfd7c)
  • ui: decode a copied region in the shared UI crate (AC-08) (164def7)
  • ui: decode a copy on its own thread with copy_in_background (AC-10, AC-11) (546c242)
  • ui: save a cutout on a shared background thread (AC-20) (b7855a3)
  • ui: the batch dialog starts with the files marked in the grid (AC-23) (860e7cf)

Bug Fixes

  • app: the shells exit with the App's exit code (AC-09) (c2afca3)
  • bench: a tie with zune-jpeg no longer fails the JPEG gate (80d77b1)
  • benchmark gate ignores a noisy median when the minimum disagrees (258b798)
  • benchmark gate ignores a noisy median when the minimum disagrees (fbadcec)
  • bench: the CLI test points TMP and TEMP at its temp folder too, as Windows reads those (58a0e29)
  • core: a file's cache id folds case on Windows only (8cfbc30)
  • core: an animated GIF with a 0×0 screen plays at the first frame's extent (eade330)
  • core: an AVIF with major brand mif1 is detected as AVIF, not HEIF (7346c4f)
  • core: batch copies drop the source's TIFF tile tags (AC-09) (5d34a0c)
  • core: drop ram_budget_mb and read settings more strictly (AC-02, AC-04, AC-07, AC-09, AC-16) (f66b7c5)
  • core: Format::is_native names TIFF, AVIF and (with heic) HEIF (1261425)
  • core: gray + alpha TIFFs decode natively (d0e2932)
  • core: hex keys, seeds and checksums take hex digits only (release AC-10) (4bb233a)
  • core: read a HEIC's colour profile from the container past its essential hvcC (AC-03) (d9de6fa)
  • core: the GIF probe takes the first frame's extent for a 0×0 screen (a08be66)
  • core: the thumbnail cache key folds case on Windows only (e5f76a9)
  • core: write maximized only together with the window rect (AC-14) (c1d52c9)
  • linux: a drop of several files reaches the App as one drop (AC-23) (e837a06)
  • macos: a --resident start with the setting off removes the LaunchAgent (AC-19) (64b4557)
  • macos: files dropped onto the batch dialog fill its list (AC-23) (f293813)
  • macos: name the icon type for ImageIO, which does not sniff it from data (AC-23) (118476a)
  • macos: the batch drop handler compiles inside define_class (c5f3220)
  • release: sign refuses an all-zero seed instead of panicking (AC-09, AC-10) (a3c56f9)
  • signing certificate script refuses to be sourced (7d7fc93)
  • signing certificate script refuses to be sourced (e6d8156)
  • site: an unknown race chart kind fails the build before its report exists (AC-12) (5360caa)
  • site: the download button offers the Linux files only on Linux, not on a BSD desktop (AC-16, AC-17) (8c06691)
  • ui: a click on a pannable image clears the selection (AC-05..AC-08, AC-12..AC-14) (15ea3d4)
  • ui: a decode error midway keeps the animation's loop count (AC-11, AC-12) (4b229e6)
  • ui: a measurement without an image quits with exit code 1 (AC-09, AC-11) (63ceb52)
  • ui: animation decoding runs inside catch_unwind (AC-11) (8086406)
  • ui: Delete in the grid recycles the selected tile (386cd8c)
  • ui: keep browsing when the folder changes under the current image (AC-14) (3e66501)
  • ui: saving a cutout never replaces its source (AC-20..AC-22) (7721927)
  • ui: show the window at once when no image is coming (AC-03) (11b2f58)
  • windows: a Print key that comes free on the last retry shows no notice (AC-03) (bb6e0c8)
  • windows: clippy explicit_auto_deref in the clipboard window procedure (8c2ab01)
  • windows: import THREAD_PRIORITY for the scheduling helper (AC-18) (7b1c78f)
  • windows: the startup report's warp is true on the Basic Render Driver (5b82970)
  • windows: the tray menu opens leftwards while the UI language is right to left (AC-16) (1e4162a)
  • windows: uninstalling from the downloaded setup shows why it failed (39fa818)
  • windows: warp recognises the Basic Render Driver by its vendor and device id (8707b8b)

Auf GitHub ansehen

Features

  • add skills for feature specification and verification (6526967)
  • copy, cut and paste in both modes (copy-cut-paste) (28b8cc5)
  • perf: benchmarks, budgets and nightly performance workflow (4229ec7)
  • pincel-agent: add pincel://guide and pincel://effects resources (AC-17, AC-18) (a2649fc)
  • pincel-agent: add the Pixel agent tool layer (AC-02..AC-33, AC-43..AC-46) (132926b)
  • pincel-agent: Image documents over MCP (mcp-headless-image) (5b65b7d)
  • pincel-agent: open, edit, save and export Image documents (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-07, AC-08, AC-09, AC-10, AC-11, AC-12, AC-13, AC-14, AC-15, AC-16, AC-19, AC-20, AC-21) (a175f1a)
  • pincel-core: add CommandBatch and PutCel commands (AC-09) (f10b887)
  • pincel-core: add copy_pixels and the PasteLayer command (AC-02, AC-04, AC-05, AC-07, AC-11, AC-18, AC-19) (842fa4c)
  • pincel-core: add PatchCel and AddEmptyCel dirty-rect commands (AC-09) (05d67e8)
  • pincel-core: add PencilStroke command with brush sizes and pixel-perfect (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-08, AC-09, AC-10) (6a7e87e)
  • pincel-core: animated export as APNG and GIF (animated-export) (11545c5)
  • pincel-core: export animations as APNG with tag direction and scale (AC-03, AC-04, AC-05, AC-07, AC-08, AC-09) (74d5722)
  • pincel-core: export animations as GIF and describe them for the dialog (AC-12, AC-13, AC-16, AC-17) (ad1cd36)
  • pincel-core: scale PencilStroke stamps by pen pressure (AC-01, AC-02, AC-04, AC-05, AC-06, AC-09, AC-10) (3e205f0)
  • pincel-image-core: add copy_selection and PasteLayer::at (AC-02, AC-03, AC-04, AC-05, AC-09, AC-10) (a08d803)
  • pincel-image-wasm: add copy_selection, cut_selection, image_key and a paste position (AC-02, AC-03, AC-04, AC-05, AC-06, AC-09, AC-10, AC-21) (a4f8a7f)
  • pincel-mcp: add the stdio MCP server with workspace sandbox (AC-01, AC-34..AC-40) (c00ff71)
  • pincel-mcp: headless MCP server for Pixel documents (773b296)
  • pincel-mcp: serve resources with their MIME type and describe Image mode (AC-17, AC-18) (50acfa0)
  • pincel-wasm: add beginStroke / strokeTo gesture API for Pencil and Eraser (AC-01, AC-03, AC-04, AC-05, AC-06, AC-08, AC-14) (ec6b135)
  • pincel-wasm: add copySelection, cutSelection, pasteLayer and imageKey (AC-02, AC-04, AC-05, AC-06, AC-07, AC-11, AC-12, AC-18, AC-19, AC-20, AC-21) (3e4198d)
  • pincel-wasm: add optional pressure argument to strokeTo (AC-01, AC-04, AC-05, AC-09, AC-10) (f8f6a56)
  • pincel-wasm: expose exportAnimation and animationInfo (AC-18) (74d3e7f)
  • pixel: pen pressure scales the Pencil and Eraser (pixel-pressure) (4610e12)
  • pixel: pencil brush sizes 1-8, round shape, pixel-perfect and Shift constrain (1afe8df)
  • tauri: add Export Animation to the native File menu (44af9fb)
  • ui: add File > Export > Animation dialog for APNG and GIF (AC-01, AC-02, AC-06, AC-10, AC-11, AC-14, AC-15, AC-18, AC-19) (e7cee29)
  • ui: brush size, shape, pixel-perfect and Shift constrain for the Pixel pencil (AC-01, AC-03, AC-07, AC-08, AC-10, AC-11, AC-12, AC-13, AC-15, AC-16, AC-17) (f730687)
  • ui: Cut, Copy, Copy Merged and Paste in both modes (AC-01, AC-02, AC-03, AC-04, AC-05, AC-06, AC-08, AC-09, AC-10, AC-11, AC-12, AC-13, AC-14, AC-15, AC-18, AC-19, AC-20, AC-21) (ee56179)
  • ui: scale the Pixel-mode Pencil and Eraser with pen pressure (AC-03, AC-05, AC-07, AC-08, AC-09) (a8fc24e)

Bug Fixes

  • aseprite-writer: emit tileset chunks before the layers that reference them (dfd4fde)
  • pincel-agent: check every export.sheet output path before writing (AC-34) (1e0ae49)
  • pincel-agent: store only the changed rectangle per pixel edit (AC-09) (bd859a1)
  • pincel-core: read and write tile flip bits the way Aseprite does (353439e)
  • pincel-core: read and write tile flip bits the way Aseprite does (59b59af)
  • pincel-image-core: Soft Light follows W3C Compositing-1, not Pegtop (AC-02) (085b900)
  • pincel-image-core: Soft Light follows W3C; close image-editing evidence gaps (e57ab0d)
  • ui: lock the Shift pencil direction until Shift is released (AC-07, AC-17) (cddb39b)
  • ui: route every e2e path into an editor through waitForEditor (e282fe0)
  • ui: route every e2e path into an editor through waitForEditor (a5b71e4)
  • ui: skip off-canvas pixels of a pencil or eraser stroke silently (AC-04) (9e8930d)
  • ui: wait for editor readiness before e2e input (42c3e2b)
  • ui: wait for editor readiness before e2e input (8a6def7)

Auf GitHub ansehen

Features

  • i18n: add es, fr, it, ja, pt-BR, ru and zh-CN (0dcf877)
  • view: grow the window for images larger than it (c3864df)
  • website: one-page site with screenshots and batch tool comparison (730777e)
  • website: one-page site with screenshots and batch tool comparison (0ab9c76)

Auf GitHub ansehen

Bug Fixes

  • screenshot: retry the Print key at sign-in and say when Windows keeps it (bf453fa)
  • screenshot: retry the Print key at sign-in and say when Windows keeps it (03dc373)
  • screenshot: tell in the tray when Windows keeps the Print key (3c5610a)

Auf GitHub ansehen

Features

  • pincel-image-core: add PasteLayer command (acd8c72)
  • pincel-image-wasm: export paste_layer (87add73)
  • ui: open a new document on startup from a ticked New card (d603c0a)
  • ui: paste a clipboard image as a new layer in Image mode (3cc61cc)
  • ui: redraw the Smudge, Gradient and Stamp icons (3952751)
  • ui: separate the tool rail into sections (52562c9)
  • ui: size a new image from the image on the clipboard (5843050)
  • ui: startup document, clipboard image size and paste with canvas expand (bbbf685)

Bug Fixes

  • pincel-image-core: keep the paste's layer index across redo (bce05bc)
  • ui: never store a non-finite startup document size (4fefcf1)
  • ui: paste only into the document it was asked for (167d521)

Auf GitHub ansehen

Features

  • pincel-image-core: move the selected pixels, and the selection alone (5575dcf)
  • pincel-image-core: the Gradient tool (66ededd)
  • pincel-image-core: the Recolor and Smudge tools (7412859)
  • pincel-image-core: the selection outline travels with its pixels (5da1bcb)
  • tauri: updater commands for the in-app Help menu (3b48369)
  • ui: check for updates from the Help menu (78247ae)
  • ui: expand, contract and feather the selection by a radius (f57fc16)
  • ui: File ▸ Open Recent in Image mode (9e05daf)
  • ui: Help menu with About Pincel (785fa64)
  • ui: line, the four shapes, pan and zoom as Image-mode rail tools (abbe448)
  • ui: move the selected pixels, or the selection alone (a9ea6da)
  • ui: the Gradient tool (6036064)
  • ui: the Recolor and Smudge tools (53a2c0f)

Bug Fixes

  • pincel-image-core: carry Smudge and Recolor state across a drag (9a3dc0e)
  • tauri: install the native menu only on macOS (046b87c)
  • tauri: one menu bar per platform, and the Image-mode tools paint.net has (95b9b18)
  • ui: four defects from the review of the new tools (e1bed0e)
  • ui: the About dialog holds the keyboard while it is open (9574a2d)

Auf GitHub ansehen

Features

  • pincel-core: HSL blend modes; LF line endings from feat/blend-modes (32280da)
  • pincel-core: render the Hue, Saturation, Color and Luminosity blend modes (581218e)

Auf GitHub ansehen

Features

  • batch: drop zone, date formats and a name preview for resizing (922816c)
  • batch: drop zone, date formats and name preview; factual website with Windows measurement (e82aa18)
  • website: Windows measurement from blinzel-race (294fc10)

Bug Fixes

  • setup: don't abort when the setup window is re-entered (266d0de)

Auf GitHub ansehen

Features

  • screenshots on Windows, "Open with" and "Edit with" (e6f13be)
  • screenshots on Windows, "Open with"/"Edit with", automated releases (52dae81)
  • website: light-table redesign, SEO metadata and platform download (98d7658)
  • website: light-table redesign, SEO metadata, platform download (37bb4b5)

Bug Fixes

  • ci: release tags v<version> and no failing env without a release PR (f958528)
  • ci: release tags v<version>, no failing env without a release PR (876de52)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • typst: add WASM binding — 33/33 dual-target crates complete (381726e)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)
  • typst: commit Cargo.toml dep + README that were missed last commit (bbb875d)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • commonmark: add WASM binding + fix wasm-test failures (9de1610)
  • enhance WASM performance measurement and visibility (4c129a7)
  • graph-layout: add WASM binding via core split (b294905)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • zip: add WASM binding via core split (23d649c)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • file-type,pngjs,jpeg-js: add WASM bindings via core splits (7482180)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • force-layout: WASM binding + fix wasm-test serde_json dev-dep (d16f258)
  • fuse,bm25,minisearch: add WASM bindings (40b5103)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • svgo: add WASM binding + fix test signatures in turndown/svgo cores (a37b525)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)
  • svgo: adopt quick-xml 0.40 with GeneralRef event support (0f664f8)
  • svgo: handle Event::GeneralRef from quick-xml 0.40 (56dcffe)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • commonmark: add WASM binding + fix wasm-test failures (9de1610)
  • enhance WASM performance measurement and visibility (4c129a7)
  • force-layout: WASM binding + fix wasm-test serde_json dev-dep (d16f258)
  • fuse,bm25,minisearch: add WASM bindings (40b5103)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • encoding: add WASM binding via core split (61dc20e)
  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)

Auf GitHub ansehen

Features

  • commonmark: add WASM binding + fix wasm-test failures (9de1610)
  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • readmes: strip hardcoded benchmark numbers — dashboard is canonical (b61b1d6)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • xxhash: add WASM binding via core split (85c6166)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • readmes: restore qualitative perf taglines, keep tables removed (a7a2f8f)
  • readmes: strip hardcoded benchmark numbers — dashboard is canonical (b61b1d6)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • zstd: WASM via ruzstd fallback (decompress-only) (ba2b292)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • sanitize-html,force-layout: add WASM bindings (e503717)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • readmes: restore qualitative perf taglines, keep tables removed (a7a2f8f)
  • readmes: strip hardcoded benchmark numbers — dashboard is canonical (b61b1d6)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • csv,inflate,pixelmatch: add WASM bindings via core splits (cfa1a29)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • language-detect: add WASM binding via core split (67197a8)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • force-layout: WASM binding + fix wasm-test serde_json dev-dep (d16f258)
  • fuse,bm25,minisearch: add WASM bindings (40b5103)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)
  • fuse: switch sort_by → sort_by_key (clippy::unnecessary_sort_by) + revert CI lint split (5d5a5e3)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • pdf: add WASM binding via core split (1b84e4d)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • file-type,pngjs,jpeg-js: add WASM bindings via core splits (7482180)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • commonmark: add WASM binding + fix wasm-test failures (9de1610)
  • enhance WASM performance measurement and visibility (4c129a7)
  • force-layout: WASM binding + fix wasm-test serde_json dev-dep (d16f258)
  • sanitize-html,force-layout: add WASM bindings (e503717)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • tldts: add WASM binding via core split (ebcb89f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • crates: scaffold + implement 8 new crates from the perf-review batch (4fe1790)
  • linkify-it: add WASM binding via core split (e93152f)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: address CI failures from the 8-crate batch (bcb41dd)
  • crates: pixelmatch conformance + Copilot-flagged correctness bugs (d0c6174)

Documentation

  • perf-review: add 8 candidate decision docs (zstd, fuse, tldts, pngjs, linkify-it, jpeg-js, jimp, pixelmatch) (e87bb01)

Auf GitHub ansehen

Features

  • diff: add WASM binding via core split (cedb735)
  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • slugify: dual-target pilot — core/napi split + WASM binding (53a582c)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)
  • slugify: make bench tolerate missing WASM artifact (Copilot review) (bb5fc6f)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • csv,inflate,pixelmatch: add WASM bindings via core splits (cfa1a29)
  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • pdf-parse: add WASM binding + getrandom wasm_js workspace rustflag (10c8ff8)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • add WASM dual-target foundation + Node.js server-only tier (dd56e3d)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • crates: regenerate index.js with current versions across 26 crates (69116f5)
  • jose: drop direct rand_core dep, supersede #88 (200ac91)
  • jose: drop direct rand_core dep, use getrandom for key generation (9e001ea)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • readmes: strip hardcoded benchmark numbers — dashboard is canonical (b61b1d6)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • csv,inflate,pixelmatch: add WASM bindings via core splits (cfa1a29)
  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • deepmerge: add WASM binding via core split (b8a819d)
  • force-layout: WASM binding + fix wasm-test serde_json dev-dep (d16f258)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • text-splitters: add WASM binding with tiktoken excluded on wasm32 (d1253b6)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • turndown: add WASM binding via core split (b9dcb51)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)

Auf GitHub ansehen

Features

  • enhance WASM performance measurement and visibility (4c129a7)
  • ship WASM bindings for all eligible crates (Angular/React support) (792802f)
  • xlsx: add WASM binding via core split (4428ef8)

Bug Fixes

  • build: stop wasm-pack's pkg/.gitignore from emptying npm tarballs (6a70b18)
  • crates: regenerate index.js with current versions across 26 crates (69116f5)

Documentation

  • full UI/UX pass on the showcase site (4aea272)
  • source category from each crate's amigo block (cbea23f)
  • specs: expansion-2026 dual-target plan (draft) (b30274f)