Home Roadmap
A live view. Updated as tools ship and priorities shift.
- Grow the relaunched Finance category with more file-aware, formula-precision tools
Show 4 more (0 planned, 4 shipped)
Shipped
- Chart Overlay Studio — paste any chart screenshot, calibrate the price axis, draw price-accurate TA
- Auto-detect & trace — line, candlestick, and OHLC bar charts reconstructed from the image (grayscale-contrast, any line colour, light or dark background)
- On-device OCR price-axis calibration (PaddleOCR), linear + logarithmic scales
- Quant readout — returns, volatility, max drawdown, regime, Monte Carlo cone, and KDE support/resistance on the traced series
- PCAP — Wireshark-parity program: IPv6 ext-headers, reassembly (HTTP/TLS bodies), ASN.1 + QUIC tiers
Show 3 more (0 planned, 3 shipped)
Shipped
All planned tasks shipped — see history below.
Show 18 more (0 planned, 18 shipped)
Shipped
All planned tasks shipped — see history below.
Show 5 more (0 planned, 5 shipped)
Shipped
All planned tasks shipped — see history below.
Show 4 more (0 planned, 4 shipped)
Shipped
All planned tasks shipped — see history below.
Show 3 more (0 planned, 3 shipped)
Shipped
- Light token palette (swap values, keep semantic names)
- System-preference auto-pick + per-user toggle
- Audit every tool surface in light mode
- v3.6 — move-pairing end-to-end visual confirm on a real relocated element (unit-verified; pending a non-contended browser)
- v3.5 — Wang abstract table model + per-cell diff for mismatched-row-count tables (Tier 0.5 currently handles same-row-count only)
- v3.5 — multilingual / CJK / RTL support (current whitespace-strip normalization breaks non-Latin)
- v3.5 — phase-correlation image registration for image-only PDFs (no text anchors → no RANSAC path today)
- v3.5 — confidence-% legend tooltip on chip count (UX clarity for tier debugging)
- v3.5 — ?debug=1 verbose tier-by-tier console logging for QA
- v3.5 — summary report PDF export (matched / changed / pages summary)
- v3.5 — form-field diff on pages ≥ 2 (currently page 1 only)
- v3.5 — tunable cross-page promote-similarity threshold slider in UI
Show 45 more (0 planned, 45 shipped)
Shipped
- v1 — visual + overlay + text-diff modes with smartCompare pixel engine
- v1 — dHash fast-reject + grayscale + pixelmatch + morph close + CCL + tone classifier
- v1 — focal-point zoom, drag-pan, sync scroll, fullscreen, overlay slider
- v2 — editor template port (chrome unification with PDF Editor family)
- v2 — featured-tool landing page + homepage placement
- v3 — lean rebuild on strategy substrate (one driver, three mode strategies)
- v3 — shared lib/ primitives (align.ts RANSAC TSR, pixel-engine.ts, header-footer.ts, text-cache.ts)
- v3 — right-pane ChangeList + filter chips + pulse-on-click + history panel
- v3 — IndexedDB result cache with build-SHA invalidation
- v3.1 — histogram-diff anchoring (Pearce / git xhistogram)
- v3.1 — hyphenation merge (geometric, language-agnostic)
- v3.1 — dmp linesToChars line-mode pre-pass
- v3.1 — Heckel neighbor extension + duplicate-bucket nearest-y fallback
- v3.1 — paragraph MOVE detection (consecutive-anchor consistent-dy clustering)
- v3.1 — cross-page MOVE promotion via FNV-1a hash
- v3.1 — row-level MODIFY with char-level sub-paint metadata
- v3.1 — post-promotion 5-stage add/remove → MODIFY pass (Jaccard + dmp similarity)
- v3.2 — per-side MODIFY emission (yellow lands at each panel's actual row position)
- v3.2 — word-level yellow MODIFY (paint only on differing chars, Adobe-style)
- v3.2 — fuzzy cross-page MODIFY promote (drifted paragraphs)
- v3.2 — paragraph MOVE jitter tolerance + gap≤2 consecutive relaxation
- v3.2 — hyphen unicode class (U+002D / U+00AD / U+2010 / U+2011 / U+2013)
- v3.2 — pixel-fallback chip count + status-bar alignment
- v3.2 — orphan page counting (13-pg vs 14-pg compare)
- v3.2 — tighter post-promotion thresholds (PROMOTE_SIMILARITY 0.65, token-Jaccard floor 0.35)
- v3.2 — pixel classifier threshold bumps (kills blueprint title-block flood)
- v3.2 — table-cell positional MODIFY (Tier 0.5, identical-cell-ratio ≥ 0.3 gate)
- v3.2 — histogram longest-run anchor pairing (Pearce HistogramDiff.java::tryLongestCommonSequence)
- v3.2 — filename labels on Original / Modified panels (restored from v2)
- v3.2 — additive pixel residual on mixed text+drawing pages (overlap-filter > 50% with text-tier)
- v3.3 — pre-blur 2-px canvases before smartCompare (sub-pixel jitter mask)
- v3.3 — drop oversize regions (> 15% canvas) prevents whole-drawing yellow blanket
- v3.3 — skip morphClose by default (no more mega-CCL components)
- v3.3 — RANSAC affine alignment via lib/align.ts (anchorPairs from document-mode → align B → smartCompare)
- v3.4 — adaptive pre-blur on alignment quality (0 px when near-identity affine for same-template forms; 2 px when drift)
- v3.4 — restored signature detection thresholds (CONTENT_CHANGE_THRESHOLD 50, MIN_REGION_AREA 12, morphClose default 1)
- v3.4 — synthesized Change records from pixel-residual highlights (ChangeList + chip count + pulse navigation all see them)
- v3.6 — re-adopted document-type selector (Document / AEC-Blueprint / Image-Scan) on splash + ?mode= hatch
- v3.6 — AEC / Blueprint hybrid: word-level text pass + masked geometry pixel pass + RANSAC pre-align
- v3.6 — in-place text revisions classify as MODIFY (overlapping leftover pair = same element edited; co-location beats similarity floor)
- v3.6 — change-location tags (sheet region + XY) in the AEC change list
- v3.6 — geometry MOVE detection (dHash + zero-mean NCC + high-freq interior gate, global mutual-best, square-pad blob crop)
- v3.6 — Fonts panel populated (commonObjs iteration) + Form Fields empty-state hardening
- v3.6 — per-panel ruler (independent A/B, px/in/mm) + toolbar Export (marked PDF) + plain-wheel scroll-zoom
- v3.6 — hang guard: bounded timeouts on every pdfjs worker call (render/getTextContent/getPage/getDocument) + adaptive wall-clock; graceful 'timed out' recovery, timeout-aware page status, no silent 'no changes'
- Gerber Viewer — editor mode (select / move / copy / delete / add primitives / save Gerber out)
- Gerber Viewer — netlist extract + IPC-D-356 compare
- Gerber Viewer — DRC expansion (silk / mask / paste / inter-layer / sliver checks)
- Gerber Viewer — ODB++ / IPC-2581 file format support
- Visio .vsdx viewer
- DICOM — medical imaging viewer
- IFC — BIM model viewer
- KiCad .kicad_pcb native viewer
- Shapefile / GeoTIFF — GIS viewers
- NIfTI / FITS — scientific image viewers
Show 22 more (3 planned, 19 shipped)
Planned
- Rhino .3dm viewer
- SPSS .sav viewer
- MATLAB .mat viewer
Shipped
- Gerber Viewer — open RS-274X / X2 / X3 + Excellon, archive auto-detect, layer auto-classify, realistic PCB palette
- Gerber Viewer — pan / zoom / fit / 1:1 / mirror / 90° rotation, URL viewport snapshot, status bar with cursor coords
- Gerber Viewer — measure tool with snap-to-pad, distance + angle + reference-pad-anchored mode
- Gerber Viewer — three-pane CAM350 layout: layer rail, canvas, inspector accordion (Job info, Apertures, Drill table, DRC, PnP, Test, Measurements, About)
- Gerber Viewer — World-View minimap with click-to-recenter
- Gerber Viewer — command palette (⌘/) + Find modal (⌘F: D-code / refdes / coords) + Print snapshot
- Gerber Viewer — DRC checks (trace width, drill, annular ring, copper-to-edge, trace clearance, shorts, pour-to-trace) with fab presets
- Gerber Viewer — diff mode: slider + XOR comparison of two archives
- Gerber Viewer — trace pick (click net → BFS highlight, cross-layer via drill correlation)
- Gerber Viewer — 3D board preview with CSG drill cuts + orbit controls
- Gerber Viewer — flex / rigid-flex detection, stackup pane with IPC-2223 bend radius, vertical bend slider in 3D
- Gerber Viewer — WebGL2 polygon-mesh GPU renderer (opt-in)
- Gerber Viewer — pick-and-place / CPL overlay (.pos / CSV)
- Gerber Viewer — Fab-readiness score + drill CSV + aperture CSV downloads
- Gerber Viewer — exports: PNG / SVG / DXF / Print
- STEP / DXF — CAD drawing viewer (engine v0.1: Rust→WASM monstertruck kernel, 6 mesh formats, section view, assembly tree, HOOPS Exchange compat)
- CAD viewers v0.2 — top-floating measure rail (4 modes + path toggle + cursor coach), per-snap-type glyphs, polygon ghost + close-ring, smooth camera tween, Pan / Zoom-Window / Home / Bookmarks / TreeSearch, face-flood-fill selection + right-click context menu, STEP explode, display + lighting + render-quality presets, canonical editor primitives extracted (useEditorHistory, ContextMenu, measure-math, edge-adjacency)
- CAD viewers v0.3 (engine) — STEP unit-context parsing (mixed INCH+MILLI/METRE), STEP PRODUCT NULL-description deser fix, STEP arc parametric surfacing for 1-click radius auto-detect
- CAD viewers v0.4 — canonical top-bar layout across the 8-viewer family: FILE | MODE | NAV | DISPLAY | ACTIONS | ⌘K group order with dividers + TopBarSpacer primitive, Dims→Bbox / PNG→Screenshot naming sweep
All planned tasks shipped — see history below.
Show 2 more (0 planned, 2 shipped)
Shipped
- v1.3 — font picker beyond Helvetica / Times / Courier (current toolbar exposes only those three; should expose every embedded NotoSans variant + family detection from the doc)
- v1.3 — paragraph reflow that actually works on real-world PDFs (the v1.2 wrap + push-down logic ships but doesn't trigger correctly when a paragraph's line count changes from a long edit — line detection or trigger heuristic needs a rebuild against a real-PDF corpus)
- v1.3 — digital signature (WebCrypto)
- v1.3 — faithful Word (.docx) export
- v1.3 — measure tool
- v1.3 — mid-word break on overflow wrap
- v1.3 — cross-page overflow (push content to new page instead of clipping)
Show 27 more (0 planned, 27 shipped)
Shipped
- v1 — eight modes wired (Select / Edit / Add / Sign / Redact / Annotate / Fill Forms / OCR)
- v1 — continuous-scroll virtualised canvas
- v1 — Photoshop-style history timeline
- v1 — find / search with scrollbar marker column
- v1 — Save via FS Access API + download fallback
- v1.1 — Watermark mode with live current-page preview
- v1.1 — Bates numbering
- v1.1 — Header / Footer with token resolve
- v1.1 — Numeric-precision page crop
- v1.1 — Bookmarks editor (read pdfjs / write pdf-lib)
- v1.1 — Metadata editor
- v1.1 — Excel export via pdf-table-detect
- v1.1 — Markdown export (headings + lists + tables)
- v1.1 — True byte-level redact (page rasterisation)
- v1.1 — PII auto-detect (SSN / email / phone / CC / IBAN)
- v1.1 — Move tool (Adobe Hand) + 8× zoom + edge-accessible pan
- v1.1 — Edit-text drag-select for substring edits
- v1.1 — Right pane single-active accordion + pinned history
- v1.2 — true in-place text edit (pdfium-wasm content-stream rewrite)
- v1.2 — click-to-edit with caret at click position (Acrobat-style)
- v1.2 — same-line sibling shift when edit width changes
- v1.2 — line wrap at right margin + push paragraphs down (reflow)
- v1.2 — preserve original font / color / matrix on edit
- v1.2 — base-14 font fallback for subset miss
- v1.2 — NotoSans embed for non-base-14 families (bold + italic variants)
- v1.2 — toast warning when reflow clips past page bottom
- v1.2 — smallest-text-object-containing-click matching
All planned tasks shipped — see history below.
Show 19 more (0 planned, 19 shipped)
Shipped
All planned tasks shipped — see history below.
Show 33 more (0 planned, 33 shipped)
Shipped
- audio-speed-changer — verify pitch-preserving DSP works end-to-end on long files; add export presets (podcast 1.5x / 1.7x / 2x)
- audio-pitch-changer — confirm pitch shift is independent of tempo; add musical-interval shortcuts (semitones, octaves) instead of raw cents
- uuid-generator — bulk mode (generate N uuids, copy as list) is the moat; verify the bulk path is one click, not buried
- hash-generator — surface the privacy story explicitly (file never uploaded); add file-drop input alongside text input so HIPAA / legal users can hash binary files
- qr-code-generator — logo embedding is the moat vs commodity QR generators; verify error-correction levels work with embedded logos at common sizes
- altitude-baking-calculator — niche but real chemistry stakes; add elevation lookup by ZIP / postal code so users don't have to know their elevation
- canning-calculator — botulism safety stakes; cross-check pressure / time tables against USDA Complete Guide to Home Canning (current source of truth?)
- photo-collage-maker — Canva-replacement competitor; needs template library (3x3, 2x4, polaroid, etc.) before it can compete; otherwise revisit cull
- compare-pdf — already a featured tool; needs annotated diff PDF export (currently only renders the diff visually) — Adobe Acrobat / Draftable both export annotated PDFs
- PDF Editor programmatic invoke() — decouple render-state extraction from the React shell so window.loft.tools.invoke('pdf-editor', { file, ops }) drives the editor headless
- Gerber Viewer programmatic invoke() — emit structured render-state JSON (layer count, outline, net summary) without mounting the React shell
- JSON-LD potentialAction per tool — EditAction / AnalyzeAction / ViewAction so AI crawlers see action targets
- Remove unsafe-inline from CSP script-src — requires Astro experimental.csp + per-island hash sweep
- Trusted Types policy — require-trusted-types-for 'script' + loft-default policy wrapping changelog body set:html
- Cloudflare Insights beacon SRI gate (PR #355 lands the env-gated path; weekly CI job to auto-PR fresh beacon hashes is still TBD)
- Spec-digest-vs-version drift warning in scripts/build-version-manifest.mjs
- Full WebMCP transport once the spec stabilizes (Chrome 146+ stable, Anthropic draft solidifies)
- Narrow CSP connect-src from https://*.cloudflare.com to https://static.cloudflareinsights.com (only origin we actually use)
- Clear verifiedWasmUrls cache on SW activate so a manifest update surfaces fresh hashes
Show 5 more (4 planned, 1 shipped)
Planned
- OCR download progress (percent / bytes) instead of just a spinner — meaningful for 25 MB Paddle models on slow connections
- OCR cache size: surface 'cache status unknown' instead of '—' when iOS Safari opaque response strips content-length
- OCR Remove button: add confirm dialog (easy misclick after a 100 MB download)
- Validate tool IDs in scripts/build-version-manifest.mjs against SAFE_TOOL_ID regex (defense in depth — SW already validates at the message boundary)
Shipped
- Locale routing under /{locale}/tools/{slug}
- hreflang tags on every page
- Spanish (es) translation pass — full tool catalog
- Portuguese (pt) translation pass — full tool catalog
- French (fr) — after es / pt prove out
- German (de) — after es / pt prove out
- Japanese (ja) — after es / pt prove out