Skip to content

feat: Phase 6 - Performance Budgets - #16

Merged
suradet-ps merged 5 commits into
mainfrom
feat/phase6-performance-budgets
Aug 3, 2026
Merged

feat: Phase 6 - Performance Budgets#16
suradet-ps merged 5 commits into
mainfrom
feat/phase6-performance-budgets

Conversation

@suradet-ps

Copy link
Copy Markdown
Owner

Summary

Complete Phase 6: Performance Budgets as defined in ROADMAP.md.

Changes

  1. CI Performance Budgets (.github/workflows/ci.yml)

    • Install binaryen (wasm-opt) in build job for WASM optimization
    • Add verification step to confirm wasm-opt ran successfully
    • Add perf-budget job with WASM gzipped size budget (1200 KB)
    • Add total bundle size budget check (1350 KB gzipped)
    • Upload build artifacts for budget verification
  2. Over-Render Audit (crates/app/src/preview.rs)

    • Document that Effect tracks only image-affecting signals
    • Explain generation counter prevents stale async draws
    • Confirm non-visual signals (filename_template, ui_theme) are not tracked
  3. PNG Optimization Exploration (docs/perf-baseline.md)

    • Document oxipng WASM integration options
    • Analyze integration challenges (WASM-in-WASM, async boundary)
    • Recommend deferring to post-v1 due to complexity vs. marginal gains
  4. Version Bump

    • Bump version to v0.7.0

Acceptance Criteria (from ROADMAP.md)

  • Budgets enforced in CI (WASM gzipped 1200 KB, total bundle 1350 KB)
  • Baseline doc updated with before/after
  • Over-render audit completed
  • wasm-opt verified in CI builds
  • PNG optimization explored and documented

CI Jobs

All existing jobs pass:

  • ✅ Check (WASM)
  • ✅ Clippy
  • ✅ Format
  • ✅ Test
  • ✅ Audit
  • ✅ Deny
  • ✅ Hex Audit
  • ✅ Build
  • ✅ Performance Budget (new)

Part of Phase 6 in ROADMAP.md.

- Install binaryen (wasm-opt) in the build job for WASM optimization
- Add verification step to confirm wasm-opt ran successfully
- Add perf-budget job with WASM gzipped size budget (1200 KB)
- Add total bundle size budget check (1350 KB gzipped)
- Upload build artifacts for budget verification
Add audit notes explaining:
- Effect tracks only image-affecting signals (code, language, theme, split_*)
- Non-visual signals (filename_template, ui_theme) are not tracked
- Generation counter prevents stale async draws from wasting canvas work
Document oxipng WASM integration options:
- @jsquash/oxipng npm package for browser use
- Integration challenges (WASM-in-WASM, async boundary, perf trade-off)
- Recommendation: defer to post-v1 due to complexity vs. marginal gains
- Alternative: optional 'Optimize PNG' toggle with oxipng as Rust library
- Mark Phase 6 (Performance Budgets) as complete
- Update current status section with Phase 6 details
- Add v0.8 milestone to milestones table
- Document CI budgets, wasm-opt, over-render audit, PNG optimization
@vercel

vercel Bot commented Aug 3, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
codeshot Ready Ready Preview Aug 3, 2026 2:53am

@suradet-ps
suradet-ps merged commit b0a64c6 into main Aug 3, 2026
12 checks passed
@suradet-ps
suradet-ps deleted the feat/phase6-performance-budgets branch August 3, 2026 02:54
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