Where Photo Forge stands after EFFECTS1: an honest audit
A full repository audit classified every Photo Forge capability as verified, partial, placeholder, or missing. Here is the short version.

Illustrative photograph. It does not show Forge software.
After EFFECTS1 landed, we stopped to take inventory. The audit read the code, ran the test suites, measured performance on large documents, and classified every capability. Its summary was direct: Photo Forge is a working, tested raster, text, and vector editor in development, not yet a professional replacement for anything.
Strengths
- A disciplined document model. The document is the source of truth, and the interface is a view of it.
- Safe native documents. Atomic saves, protection against malicious archive paths, and recovery with warnings when a file is damaged.
- A mature text system. Point and area text, in-canvas editing, selection, and range typography.
- Masks and persisted layer effects.
- A small, well-tested Rust engine with a Python reference fallback.
- A large regression suite. All 296 regression test leaves passed during the audit.
Weaknesses
- Structure. Too much of the application lives in one very large module, which slows development and review.
- Performance. History keeps full document snapshots, and some heavy work still runs on the interface thread.
- Missing fundamentals. Tablet pressure, selection tools beyond rectangles, adjustment layers, preferences, autosave, color management, and higher bit depths.
Bugs found
The audit found that brush strokes inside a selection did not paint on every tile, the eraser painted white, crop misaligned vector layers, and lock state was not saved for some layers. Fixes for most of these are now underway; see the latest update.
What changed as a result
The roadmap was reordered around a simple rule: correctness and data safety come before new features, and performance work is measured before and after every change. That is why a benchmark harness and lower-memory History are in progress ahead of adjustment layers.


