MASHQMASHQ STUDIO Open the Studio · افتح الستوديو

What shipped · ما الذي صدر

Every version below is a real commit — this page is generated from the repository's own history by tools/changelog.mjs, not written by hand. 108 released versions.

كل إصدار هنا مأخوذ من سجل المستودع مباشرة، لا مكتوب يدويًا. نصوص الإصدارات بالإنجليزية كما كُتبت وقت التنفيذ — ولم نترجمها آليًا، لأن ترجمة لم يكتبها إنسان ليست سجلًا صادقًا.

VersionDateWhat changed
v3.22.12026-08-29the tag could add a product we do not make
v3.22.02026-08-29a paint card opened the mashrabiya
v3.21.92026-08-29SEVENTH-100 #88 — one honest reminder, and only one
v3.21.82026-08-29a batch name could escape the zip, and the suite fought a prod rate limit
v3.21.72026-08-29repin the shell — index.html was still asking for 3.21.5
v3.21.62026-08-29the tissue box gets its slot back, and the guide stops posing as product
v3.21.52026-08-28SEVENTH-100 #95 — the stylus gets a qalam
v3.21.42026-08-28SEVENTH-100 #47 — measured first, memoised instead
v3.21.32026-08-28SEVENTH-100 #48 — the render path stops queueing behind thumbnails
v3.21.12026-08-28SEVENTH-100 #48 — under three seconds, by bytes, not tricks
v3.21.22026-08-28SEVENTH-100 #22 — square Kufi laid like bricks, checked like proofs
v3.21.02026-08-28SEVENTH-100 #40 — the fit check that measures millimetres
v3.20.92026-08-28SEVENTH-100 #37 — a balance critic that knows when to stay quiet
v3.20.82026-08-28SEVENTH-100 #38 — kashida proposals, approved one by one
v3.20.72026-08-28SEVENTH-100 #10 — text on a path, and the convention that keeps letters upright
v3.20.32026-08-28SEVENTH-100 #97 — Arabic-first onboarding, and the tour that was fighting its own successor
v3.20.62026-08-28SEVENTH-100 #9 — detach to path, one-way, undo brings the text back
v3.20.52026-08-28SEVENTH-100 #3 — a diacritic drags off its anchor, alone
v3.20.42026-08-28SEVENTH-100 #4 — justify to a measure, and the jalala stays whole
v3.20.22026-08-28SEVENTH-100 #12 — boolean ops, measured against arithmetic
v3.20.12026-08-28SEVENTH-100 #16 — image import traces to vectors, 0.38% measured
v3.20.02026-08-28SEVENTH-100 #13 — masks, held through every export
v3.19.12026-08-28SEVENTH-100 #17 + #27 + #29 — guides pinned, exports remembered, batches shipped
v3.18.22026-08-28SEVENTH-100 #23 — engraving hatch as real segments
v3.18.12026-08-28SEVENTH-100 #21 — double-stroke as real inset geometry
v3.18.02026-08-28SEVENTH-100 #20 — shadow and glow, without touching an outline
v3.17.32026-08-28SEVENTH-100 #24 — EPS export, proven in Ghostscript
v3.17.22026-08-28SEVENTH-100 #26 — the DXF names its cut and engrave layers
v3.17.12026-08-28SEVENTH-100 #49 — m3d.js typechecked to zero, and five wrong contracts
v3.16.202026-08-28SEVENTH-100 #31 — tags for projects, and the ratchet refused the first version
v3.16.192026-08-28the first-keystroke crash came back, because I fixed the route and not the class
v3.16.182026-08-27SEVENTH-100 #25 — every "print-ready" PDF was a plain page
v3.16.172026-08-27law 3 on the product cards, and one honest 404
v3.16.162026-08-27bump the pin #34 owed, and stop two specs depending on whichever product the store returns first
v3.16.152026-08-27SEVENTH-100 #28 — the missing Post shape, and safe areas
v3.16.142026-08-27SEVENTH-100 #78 — a status page with a constant, and a probe that had never once succeeded
v3.16.132026-08-27SEVENTH-100 #43 — contrast on every page, and the token that was documented but never existed
v3.16.122026-08-26bump the pins the previous commit owed
v3.16.112026-08-26the alarm that could never stop ringing, and the two crashes it was hiding (#81)
v3.16.102026-08-26the first keystroke crashed the editor (#81)
v3.16.92026-08-26CLS to ~0 — three root attributes were being set by JS
v3.16.12026-08-26international sells UNFRAMED only, and the artist tier is fenced off
v3.16.02026-08-26PAINT LAW v4 — the merchant's price table, delivery separate
v3.15.62026-08-25typecheck slice 15 (482 → 441)
v3.15.52026-08-25typecheck slice 14 (516 → 482) — two real crashes fixed
v3.15.42026-08-25typecheck slice 13 (533 → 516)
v3.15.32026-08-25the locked-layer flake was a real race, not the infra flake
v3.15.22026-08-25the price curve ran backwards — tell the customer
v3.15.12026-08-25two more dead controls from the same split
v3.15.02026-08-25fix the dead "Get your Custom Piece NOW!" button
v3.14.92026-08-25SIXTH-100 #26 slice 11 — 554 to 549, and where to stop
v3.14.82026-08-25SIXTH-100 #26 slice 10 — 585 to 554
v3.14.72026-08-25law 21 + #26 slice 9 — 651 to 585
v3.14.62026-08-25repo-wide cast audit — a third wrong one, pre-existing
v3.14.52026-08-25audit every cast against the real DOM element
v3.14.42026-08-25SIXTH-100 #26 slice 7 — 751 to 651
v3.14.32026-08-25pin starter-shaped.json like every other asset
v3.14.22026-08-25the baked paint no longer covers a returning designer's work
v3.14.12026-08-25SIXTH-100 #26 slice 6 — implicit anys 205 to 122
v3.14.02026-08-25SIXTH-100 #23 — calligraphy paints before HarfBuzz loads
v3.13.92026-08-25SIXTH-100 #26 slice 5 — 783 to 750, and one batch reverted
v3.13.82026-08-25SIXTH-100 #27 — a stale tab stops loading fresh chunks
v3.13.62026-08-25SIXTH-100 #26 slice 4 — the chunk's contract is typed
v3.13.42026-08-25SIXTH-100 #40 — the reed learns to press
v3.13.32026-08-25SIXTH-100 #48 — the compositions gallery
v3.13.22026-08-25SIXTH-100 #47 — the hilya gains its four roundels
v3.12.92026-08-25SIXTH-100 #65 — the logo teaches the canvas its colours
v3.12.82026-08-25SIXTH-100 #50 — the checker sees across layers
v3.12.52026-08-25SIXTH-100 #44 — the practice mode grades the hand
v3.12.42026-08-25SIXTH-100 #46 — the couplet learns muqaffa and tarsi
v3.12.32026-08-25deploy law — the pin check catches its first real miss
v3.12.22026-08-25SIXTH-100 #49 — the letters name their own parts
v3.12.12026-08-25SIXTH-100 #43 — ten more names learn their ductus
v3.12.02026-08-25SIXTH-100 #18 — the starter renders before the font arrives
v3.11.92026-08-25SIXTH-100 #45 closed by evidence + #26 slices 2-3
v3.11.82026-08-25SIXTH-100 #26 slice 1 — m3d typecheck debt 1006→904
v3.11.72026-08-25SIXTH-100 #39 — the qalam lab shares and exports
v3.11.62026-08-25SIXTH-100 #94 — honesty as policy at /privacy
v3.11.52026-08-25SIXTH-100 #36 — the qalam letters learn to join
v3.11.42026-08-25SIXTH-100 #56 — the abandoned quote resumes itself
v3.11.32026-08-25FIFTH post-close audit (app + split rounds) — 12 fixes
v3.11.22026-08-24FIFTH-100 #23 + #25 — relief preview · render-API premise
v3.11.12026-08-24FIFTH-100 #22 — multi-page documents
v3.11.02026-08-24FIFTH-100 #17 — the codec unified in lib/doc.js
v3.10.222026-08-24FIFTH-100 #18 + #28 — slice-4 truth · copilot type-checked
v3.10.212026-08-24FIFTH-100 #62 — corporate logo-beside-calligraphy flow
v3.10.202026-08-24FIFTH-100 #38 — guided practice tracing
v3.10.192026-08-24FIFTH-100 #43 — the mushaf page preset
v3.10.182026-08-24FIFTH-100 #45 — star-map letter scatter
v3.10.172026-08-24FIFTH-100 #40 — marble/linen + per-letter textures
v3.10.162026-08-24FIFTH-100 #39 — one-tap bayt balance from the checker
v3.10.152026-08-24FIFTH-100 #46 — the hilya composition preset
v3.10.142026-08-24FIFTH-100 #35 — full-word ductus for the write-on ten
v3.10.132026-08-24FIFTH-100 #63 — abandoned-set nudge, once and done
v3.10.122026-08-24FIFTH-100 #64 — per-user referral links with counters
v3.10.112026-08-24FIFTH-100 #49 — Persian digit forms
v3.10.102026-08-24FIFTH-100 #44 — checker v2: kashida overuse + gap anomalies
v3.10.92026-08-24FIFTH-100 #42 — nib-ruled baseline grid printable
v3.10.82026-08-24FIFTH-100 #41 — ligature explorer
v3.10.72026-08-24FIFTH-100 #51 — undo labels name the word
v3.10.62026-08-24FIFTH-100 #52 — glyph metrics in the letter panel
v3.10.52026-08-24FIFTH-100 #53 — print bleed + safe-area guides
v3.10.42026-08-24FIFTH-100 #54 — one-click export packs
v3.10.32026-08-24FIFTH-100 #50 — tashkeel palettes + idle-race spec fixes
v3.10.22026-08-24FIFTH-100 #31 — all preview faces off the critical path
v3.10.12026-08-24FIFTH-100 #16 — export libs off the boot parse
v3.10.02026-08-24FIFTH-100 #15 — the m3d chunk. Boot parse −174KB
v3.9.72026-08-24FIFTH-100 #30 — first §B slices: copilot + strokes off boot