Skip to content

chore(release): merge develop into main for v0.1.2 - #52

Merged
ajianaz merged 6 commits into
mainfrom
develop
Oct 15, 2026
Merged

ajianaz merged 6 commits into
mainfrom
develop

Conversation

@ajianaz

@ajianaz ajianaz commented Oct 15, 2026

Copy link
Copy Markdown
Contributor

Description

Release merge develop → main for v0.1.2. Tag v0.1.2 will be pushed to main immediately after this PR merges, triggering the release workflow (build artifacts + crates.io publish).

Brings develop (7 commits ahead of main) current: streaming SVG optimization fix (#43), lockfile hygiene (#46, #50), parity test infrastructure + PixelExact streaming metadata fix (#47, #49), release prep (#51).

Type

  • chore — Maintenance, CI, etc.

Changes

  • develop → main sync, no code changes beyond what is already merged and CI-green on develop

Testing

Related Issues

Closes out the 2026-10-15 audit session (#42–#48 all resolved).

Checklist

  • Conventional commits
  • No secrets or credentials

ajianaz and others added 6 commits October 15, 2026 13:05
Fixes #42

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
…le (#46)

Cargo.lock still recorded 0.1.0 while the workspace Cargo.toml moved to
0.1.1 in the v0.1.1 release; any cargo invocation on a fresh clone dirtied
the tree. Sync the lockfile and add --locked to CI check/clippy/test/build
so this class of drift fails CI instead of accumulating.

Fixes #44

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
…ming metadata (#47)

* test(core): parity test between vectorize() and vectorize_to()

Same request through both entry points must produce identical SVG bytes
and equal metadata (ignoring processing_time_ms), across both engines x
optimize on/off, including a translucent region. Locks the divergence
class that produced #42.

Reveals an existing metadata bug on the PixelExact streaming path:
svg_byte_size is off by one per emission of the closing tag.

Ref #45

* fix(core): correct PixelExact streaming metadata (svg_byte_size, path_count)

The parity test from the previous commit caught two real metadata bugs on
the streaming path:
- svg_byte_size under-counted by 1 per run: byte_count += 6 for the
  7-byte closing tag "</svg>\\n"
- path_count double-counted translucent paths: incremented in the
  classification loop AND again when emitting the grouped <g> block,
  so every translucent path was counted twice

Both counters now reflect the actual written bytes/paths, matching the
buffered vectorize() path and the API.

Fixes #45

---------

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Ref #48

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Ref #48

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
Fixed:
- Streaming path (vectorize_to) now applies SVG optimization when
  optimize=true; it was silently skipped (#43)
- PixelExact streaming metadata: svg_byte_size off-by-one and
  path_count double-counting translucent paths (#47)

Changed:
- CI, release workflow and Dockerfile build with --locked; Cargo.lock
  synced with the workspace version (#46, #50)
- Parity test vectorize()/vectorize_to() hardened: 58 cases, config
  matrix, ground-truth counter assertions (#47, #49)

Co-authored-by: ajianaz <ajianaz@users.noreply.github.com>
Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com>
@ajianaz
ajianaz merged commit 7fba8a7 into main Oct 15, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant