Skip to content

Releases: NJ-Burrito/Business-Wrap

Business-Wrap 0.13.1

Choose a tag to compare

@github-actions github-actions released this 29 Oct 10:12

⚡ In 10 seconds / في عشر ثوان

  • 🗂️ Projects in «المستندات», and one bulk edit across a project or chosen documents. / مشاريع في «المستندات»، وتعديل جماعي واحد على مشروع أو وثائق تختارها.
  • 💾 Ctrl+S saves the document itself, in place: its own HTML file, no download. / Ctrl+S يحفظ الوثيقة نفسها في مكانها: ملف HTML الخاص بها، بلا تنزيل.
  • ⏻ The host runs with no window; a power-off button stops every Business-Wrap host. / الخادم يعمل بلا نافذة؛ وزر إيقاف يوقف كل خوادم Business-Wrap.
  • 🔏 Exports are logged, a renamed person stays one person, a stripped log is never "made before 0.13". / التصدير يُسجَّل، والشخص الذي غيّر اسمه يبقى شخصًا واحدًا، والسجل المنزوع لا يُعدّ «أُنشئ قبل 0.13».

🧰 Projects and bulk edits, a background host with a power-off button, Save in place, and the second review's fixes. / 🧰 مشاريع وتعديل جماعي، وخادم في الخلفية بزر إيقاف، وحفظ في المكان، وإصلاحات المراجعة الثانية.

Added / أضيف

  • 🗂️ Projects «المشاريع» in the documents list: group documents per project, many projects at once, rename, delete to the project trash and restore; kept in the browser and in HISTORY\projects.json. / المشاريع في قائمة «المستندات»: تجميع الوثائق لكل مشروع، ومشاريع كثيرة معًا، وإعادة تسمية، وحذف إلى سلة المشاريع واسترجاع؛ تُحفظ في المتصفح وفي HISTORY\projects.json.
  • ✏️ Bulk edit «تعديل جماعي»: add, delete or edit a field or a section across a whole project or hand-picked documents, with a preview before anything is applied. / التعديل الجماعي: إضافة حقل أو قسم أو حذفه أو تعديله في مشروع كامل أو وثائق تختارها، مع معاينة قبل التطبيق.
  • ⏻ Power off in the toolbar, with a confirm popup, and business-wrap stop --all: every Business-Wrap host and service stops (Claude's own MCP server is left to Claude). / زر الإيقاف في الشريط مع نافذة تأكيد، وbusiness-wrap stop --all: يتوقف كل خادم وخدمة لـ Business-Wrap (ويُترك خادم MCP الخاص بـ Claude له).
  • 📤 Share opens a popup (recipient, note, what travels) and a result card; «افتح موقع الملف» selects the saved HTML in Explorer. / المشاركة تفتح نافذة (المستلم والملاحظة وما ينتقل) وبطاقة نتيجة؛ و«افتح موقع الملف» يحدد ملف HTML المحفوظ في المستكشف.
  • 🎨 Icons on every panel button that had only words (palette import, profile picture, report, compare, checkpoint, template, check-panel jump, the documents list, page setup, find), each with its own hover, focus and press motion; every 0.13 icon animates like the 0.12 ones. / أيقونات على كل زر في اللوحات كان كلمات فقط (استيراد اللوحة، صورة الملف الشخصي، التقرير، المقارنة، نقطة الحفظ، القالب، الانتقال من لوحة الفحص، قائمة المستندات، إعداد الصفحة، البحث)، ولكل منها حركتها عند المرور والتركيز والضغط؛ وكل أيقونات 0.13 تتحرك كأيقونات 0.12.

Changed / تغير

  • 💾 Save in place: Ctrl+S and the yellow Save write the document's own <title>-<date>-<AR|ENG>.html in HTML\ (overwritten, history appended) and its list entry, and reset the change counter; one Save HTML at a time. / الحفظ في المكان: Ctrl+S وزر الحفظ الأصفر يكتبان ملف الوثيقة <العنوان>-<التاريخ>-<AR|ENG>.html في HTML\ (يُستبدل ويُلحق به السجل) وسطرها في القائمة، ويعيدان عدّاد التغييرات إلى صفر؛ وحفظ HTML واحد في كل مرة.
  • 📥 File › Import is the documents list's import: an HTML (a share too), DOCX, PDF or JSON opens as a document; an edits file still merges. / «ملف › استيراد» هو استيراد قائمة المستندات: ملف HTML (والمشارَك أيضًا) أو DOCX أو PDF أو JSON يُفتح وثيقةً؛ وملف التعديلات ما زال يُدمج.
  • 🖥️ Background host: launched from Claude it shows no console window; the profile (name, picture) is kept with the host, across relaunch and update. / الخادم في الخلفية: يعمل من Claude دون نافذة طرفية؛ والملف الشخصي (الاسم والصورة) يُحفظ مع الخادم عبر إعادة التشغيل والتحديث.
  • 🔤 One title: the cover title drives «عنوان الوثيقة», the list, share and saved file names, the report, the PDF title and the browser tab. / عنوان واحد: عنوان الغلاف يقود «عنوان الوثيقة» والقائمة وأسماء ملفات المشاركة والحفظ والتقرير وعنوان PDF وتبويب المتصفح.
  • 📐 Page setup on the canvas: the editor shows landscape and A3, A5, Letter or Legal pages as set, for the whole document or one section, as the PDF and DOCX print them. / إعداد الصفحة على اللوحة: يعرض المحرر الصفحات الأفقية وA3 وA5 وLetter وLegal كما ضُبطت، للوثيقة كلها أو لقسم، كما يطبعها PDF وDOCX.
  • 🧭 Side panels: buttons with borders, hover, motion and colours like the «عرض الصفحات» control; the header strip sits beside an open panel. / اللوحات الجانبية: أزرار بحدود وتأثير مرور وحركة وألوان كمفتاح «عرض الصفحات»؛ وشريط الترويسة يقف بجانب اللوحة المفتوحة.
  • 🔄 Updates come from the GitHub release, never npm, and never move to an older version; install 0.13.1 from the GitHub tag. / التحديثات من إصدار GitHub لا من npm، ولا تنتقل أبدًا إلى إصدار أقدم؛ وثبّت 0.13.1 من وسم GitHub.

Fixed / أصلح

  • 🔏 A served 0.13.0 file keeps its history: re-wrapping an older editor file carried only the documents and dropped the log, the bwlog mark, contributors, the lock and the head traces, so it opened «stripped». / ملف 0.13.0 المقدَّم يحتفظ بسجله: إعادة تغليف ملف المحرر الأقدم كانت تنقل الوثائق وحدها وتُسقط السجل وعلامة bwlog والمساهمين والقفل وآثار الرأس، فيُفتح «منزوعًا».
  • 🔏 Trust ledger (review 2): every PDF, DOCX and print export is logged, so the report counts them; a renamed profile is one person with its other names listed; removing the log and the mark shows «stripped», never «made before 0.13». / سجل الثقة (المراجعة الثانية): كل تصدير PDF وDOCX وطباعة يُسجَّل فيعدّه التقرير؛ والملف الشخصي المعاد تسميته شخص واحد مع أسمائه الأخرى؛ وإزالة السجل والعلامة تُظهر «منزوع» لا «أُنشئ قبل 0.13».
  • ✒️ Ctrl+A on a bullet with mixed formatting, then bold or a colour, formats the whole bullet (it coloured only the last word). / Ctrl+A على بند منقّط بتنسيق مختلط ثم الغامق أو اللون ينسّق البند كله (كان يلوّن الكلمة الأخيرة فقط).
  • 🔔 Toasts with buttons expire and never stack; the RTL/LTR choice is kept per edition; the toolbar folds groups into «…» at laptop widths instead of dropping them; small edit dialogs keep what was typed and use a colour swatch, a font list and a size stepper; text boxes get a move grip and stay inside the page; every wrap mode switches back. / الرسائل ذات الأزرار تنتهي ولا تتكدس؛ واتجاه RTL/LTR يُحفظ لكل نسخة؛ والشريط يطوي المجموعات في «…» على شاشات الحاسوب المحمول بدل إسقاطها؛ ونوافذ التعديل الصغيرة تحفظ ما كُتب وتستخدم منتقي ألوان وقائمة خطوط ومحدد حجم؛ ومربعات النص لها مقبض نقل وتبقى داخل الصفحة؛ وكل نمط التفاف يعود.
  • 🗂️ The save-folder dialog no longer freezes the server and opens in front; HISTORY\ is always hidden and never served; closing a tab keeps the last typed text and closed tabs stay closed; several harvest sources under one name no longer overwrite each other. / نافذة اختيار مجلد الحفظ لا تجمّد الخادم وتُفتح في المقدمة؛ وHISTORY\ مخفي دائمًا ولا يُقدَّم؛ وإغلاق التبويب يحفظ آخر نص مكتوب والتبويبات المغلقة تبقى مغلقة؛ ومصادر الحصاد المتعددة تحت اسم واحد لم يعد بعضها يستبدل بعضًا.
  • 🧾 SRS pipeline: seven defects found while adjudicating six real builds, fixed at the root. / مسار وثيقة المتطلبات: سبعة عيوب وُجدت عند فحص ست وثائق حقيقية، أُصلحت من جذرها.
  • 🧪 npm test runs every suite in tests/ (power, projects, bulk and the SRS suites were left out), and a check keeps it so; Save and Import hover help describe the new behaviour. / npm test يشغّل كل مجموعة في tests/ (كانت مجموعات الإيقاف والمشاريع والتعديل الجماعي ووثائق المتطلبات خارجه)، وفحص يُبقيه كذلك؛ وشرح «حفظ» و«استيراد» عند المرور يصف السلوك الجديد.

Migration notes / ملاحظات الترحيل

  • Nothing to do: 0.13.0 files, logs (bwlog v1, unchanged) and settings open as they are. Ctrl+S on the local server no longer downloads an edits file; Export › edits still does. / لا شيء يلزم: ملفات 0.13.0 وسجلاتها (bwlog الإصدار 1، دون تغيير) وإعداداتها تُفتح كما هي. وCtrl+S على الخادم المحلي لم يعد ينزّل ملف تعديلات؛ و«تصدير › التعديلات» ما زال يفعل.

Update / التحديث: node update/cli.mjs update --apply --yes in your install (keeps .local, design/custom, logos, fonts/custom, drafts) · Claude Code: /plugin marketplace update business-wrap then /plugin update business-wrap · MCP: npx -y -p github:NJ-Burrito/Business-Wrap#vv0.13.1 business-wrap-mcp

Business-Wrap 0.13.0

Choose a tag to compare

@github-actions github-actions released this 29 Oct 03:35

⚡ In 10 seconds / في عشر ثوان

  • 🗂️ «المستندات»: every Save is its own document; open, duplicate, delete, restore, import PDF, DOCX or HTML. / «المستندات»: كل حفظ وثيقة مستقلة؛ فتح ونسخ وحذف واسترجاع، واستيراد PDF أو DOCX أو HTML.
  • 🕘 «تغييرات»: a timeline with back, forward and checkpoints. / «تغييرات»: خط زمني مع رجوع وتقدّم ونقاط حفظ.
  • 🧾 Header and Footer: two toolbar sections, items per page, edited on every page. / الترويسة والتذييل: قسمان في شريط الأدوات، وعناصر لكل صفحة، وتحرير على كل صفحة.
  • 🔏 A signed, hash-chained history that shows any removed or edited entry. / سجل موقّع ومتسلسل بالتجزئة يكشف أي قيد محذوف أو معدَّل.
  • ⌨️ A business-wrap CLI and "/" commands that work offline, with no AI. / واجهة business-wrap السطرية وأوامر «/» تعمل دون شبكة ودون ذكاء اصطناعي.

🗂️ A document library, a change timeline, header and footer sections, Word-style objects and a tamper-evident history. / 🗂️ مكتبة وثائق، وخط زمني للتغييرات، وقسما الترويسة والتذييل، وعناصر كما في Word، وسجل كاشف للعبث.

Added / أضيف

  • 🗂️ Document library «المستندات» (Ctrl+O, and a File tool): Save creates a new entry from a template and updates a library document; open here or in a new tab, duplicate, trash and restore, import PDF, DOCX or a Save-HTML file; the lock state travels with the entry. / مكتبة الوثائق «المستندات» (Ctrl+O، وأداة في «ملف»): الحفظ ينشئ مدخلًا جديدًا من القالب ويحدّث وثيقة المكتبة؛ فتح هنا أو في تبويب جديد، ونسخ، وسلة محذوفات واسترجاع، واستيراد PDF أو DOCX أو ملف HTML محفوظ؛ وحالة القفل تنتقل مع المدخل.
  • 🕘 Changes timeline «تغييرات» (Ctrl+Shift+H, the counter, and a Document tool): step back and forward, checkpoints, the author of each change; the counter restarts at Save HTML only. / الخط الزمني «تغييرات» (Ctrl+Shift+H، والعداد، وأداة في «الوثيقة»): رجوع وتقدّم، ونقاط حفظ، ومؤلف كل تغيير؛ والعداد يبدأ من جديد عند حفظ HTML فقط.
  • 📁 Save folder <folder>\Business-Wrap\{PDF,DOCX,HTML,HISTORY} with <title>-<date>-<AR|ENG> names (a clash gets -2, never an overwrite), asked once on the first Save or export; the Export & Print centre writes there too. / مجلد الحفظ <المجلد>\Business-Wrap\{PDF,DOCX,HTML,HISTORY} بأسماء <العنوان>-<التاريخ>-<AR|ENG> (والتكرار يأخذ -2، دون استبدال أبدًا)، ويُسأل عنه مرة عند أول حفظ أو تصدير؛ ومركز التصدير والطباعة يكتب فيه أيضًا.
  • 🖥️ Background host: closing the last tab saves every tab and stops the server completely; the next launch offers to resume everything or start new work. / خادم في الخلفية: إغلاق آخر تبويب يحفظ كل التبويبات ويوقف الخادم تمامًا؛ والتشغيل التالي يعرض استئناف كل شيء أو بدء عمل جديد.
  • 🧾 Header «الترويسة» and Footer «التذييل», two toolbar sections: text, fields, logos, page numbers, alignment; each item for every page, this page only, or from this page on; in the page views each page carries its own header and footer, edited in place. / قسما الترويسة والتذييل في شريط الأدوات: نص وحقول وشعارات وأرقام صفحات ومحاذاة؛ ولكل عنصر نطاق؛ وفي عروض الصفحات تحمل كل صفحة ترويستها وتذييلها، وتُحرَّر في مكانها.
  • 📐 Page setup: A3, A4, A5, Letter, Legal; portrait or landscape for the whole document or one section; a page break at a chosen section, in PDF and DOCX. / إعداد الصفحة: A3 وA4 وA5 وLetter وLegal؛ عمودي أو أفقي للوثيقة أو لقسم؛ وفاصل صفحة عند قسم تختاره، في PDF وDOCX.
  • 🧱 Objects: tables, sections and chapters anywhere; copy and paste a whole block; free text boxes; images with Word's seven wrap modes (inline, square, tight, through, top and bottom, behind, in front). / العناصر: جداول وأقسام وفصول في أي مكان؛ نسخ كتلة ولصقها؛ مربعات نص حرة؛ وصور بأنماط الالتفاف السبعة كما في Word.
  • ✒️ Format bar for a selection: colour, size, font, alignment, vertical alignment, quote, link, code, bold, italic, underline, bullets and numbers to six levels. / شريط تنسيق للتحديد: اللون والحجم والخط والمحاذاة الأفقية والعمودية والاقتباس والرابط والشيفرة والغامق والمائل والتسطير والقوائم حتى ستة مستويات.
  • 🔏 Trust: a profile, provenance per change (who, what, exact diff, when), sign, share, lock and unlock (no password, a warning), a tamper-evident hash-chained signed history (bwlog v1, frozen) mirrored in HISTORY, and a work report as PDF; toolbar tools for Provenance, Sign, Lock and Share. / الثقة: ملف شخصي، ومصدر كل تغيير، وتوقيع، ومشاركة، وقفل وفتح (بلا كلمة مرور، مع تنبيه)، وسجل كاشف للعبث متسلسل وموقّع (bwlog الإصدار 1، مجمّد) له نسخة مرآة في HISTORY، وتقرير عمل PDF؛ وأدوات في الشريط للمصدر والتوقيع والقفل والمشاركة.
  • ⌨️ Tooling: the business-wrap CLI (every verb offline, no AI), Claude Code "/" commands, MCP harvest_sources, open_in_editor, close_editor, healers for locators and waits only (marked HEALED, never PASS) and per-stage gates. / الأدوات: الواجهة السطرية business-wrap (كل أمر دون شبكة ودون ذكاء اصطناعي)، وأوامر «/» في Claude Code، وأدوات MCP الجديدة، ومعالجة ذاتية للمحددات والانتظار فقط (تُوسم HEALED لا PASS)، وفحوص لكل مرحلة.
  • 🎨 Design: import a colour palette (hex lines, JSON, CSS variables, ASE, a swatch image) behind the contrast gate; logo motion with a stronger hover. / التصميم: استيراد لوحة ألوان خلف فحص التباين؛ وحركة للشعار مع تأثير أقوى عند المرور.

Changed / تغير

  • 🧭 Toolbar: mounted once and patched in place, so only the clicked control animates; hover explainers wait about 900 ms and do not repeat for a tool already seen or used. / شريط الأدوات يُبنى مرة ويُحدَّث في مكانه، فلا يتحرك إلا ما نُقر؛ وبطاقات الشرح تنتظر نحو 900 مللي ثانية ولا تتكرر لأداة رأيتها أو استخدمتها.
  • 🗃️ Side panels: every panel (Design, Process and local learning included) opens with its first group expanded and the rest collapsed, rows shaded alternately; a click outside closes it. / اللوحات الجانبية: كل لوحة (التصميم والإجراء والتعلم المحلي معها) تفتح بمجموعتها الأولى ظاهرة والباقي مطويًّا، بصفوف متناوبة التظليل؛ والنقر خارجها يغلقها.
  • 🔔 Toasts at the bottom: about 2.5 s, a click dismisses them. / الرسائل في الأسفل: نحو ثانيتين ونصف، والنقر يغلقها.
  • ↕️ Move up / down crosses into the next or previous section, moves a paragraph, a row or a whole section, and the selection follows. / النقل للأعلى والأسفل يعبر إلى القسم المجاور، وينقل فقرة أو صفًّا أو قسمًا كاملًا، والتحديد يتبعه.
  • ✏️ Everything editable: TOC entries (delete hides the entry, the section stays), the document-control table and revisions get the table tools. / كل شيء قابل للتعديل: مدخلات جدول المحتويات (الحذف يخفي المدخل ويبقى القسم)، وجدول ضبط الوثيقة والمراجعات لها أدوات الجدول.
  • 🔤 Thmanyah only in the editor chrome: the last monospace fallbacks (version badge, commands, update details) now use Thmanyah Sans. / خطوط ثمانية وحدها في واجهة المحرر: آخر الخطوط الاحتياطية أحادية المسافة صارت Thmanyah Sans.
  • ⚖️ Licence MIT everywhere it is stated, the About card included, which also states the history's honest limit. / رخصة MIT في كل موضع تُذكر فيه، ومنها بطاقة «حول» التي تذكر أيضًا حد السجل بصدق.

Fixed / أصلح

  • 🔁 Redo no longer freezes the tab with local learning on. / الإعادة لم تعد تجمّد التبويب مع التعلم المحلي.
  • ⌨️ Shortcuts work with the focus in the toolbar (Alt+↑ after a toolbar Move, Ctrl+Z, Ctrl+D, Delete). / الاختصارات تعمل والتركيز في شريط الأدوات.
  • ✅ Check panel: each problem has a button that jumps to and rings its place. / لوحة الفحص: لكل مشكلة زر يقفز إلى موضعها ويحدده.
  • 🧩 Extensions boot after they load: the first view already shows every extension's tools; the draft-recovery question and the first-open motion are no longer lost to a second build. / الإضافات تُشغَّل بعد تحميلها: يظهر كل شيء من أول عرض، ولا يضيع سؤال استعادة المسودة ولا حركة الفتح الأولى.
  • 🧪 Acceptance review (2026-10-29), every FAIL and PARTIAL line: / مراجعة القبول (2026-10-29)، كل بند «فشل» أو «جزئي»:
    • ↕️ Insert an image, then move a paragraph down twice: no crash; every structural change reaches both editions or is refused. / إدراج صورة ثم نقل فقرة للأسفل مرتين: لا انهيار؛ وكل تغيير بنيوي يصل إلى النسختين أو يُرفض.
    • 🖼️ «إدراج صورة» and paste give the image Word's seven wrap modes, like a dropped file. / «إدراج صورة» واللصق يعطيان الصورة أنماط الالتفاف السبعة، كالملف المسحوب.
    • 🗃️ Every side-panel group starts collapsed, rows alternate their shade, one chevron convention. / كل مجموعة في اللوحات الجانبية تبدأ مطويّة، والصفوف متناوبة التظليل، واتجاه واحد للأسهم.
    • 🧾 A header or footer item «هذه الصفحة فقط» applies to the page it was picked on; the toast shows only on success. / عنصر الترويسة أو التذييل «هذه الصفحة فقط» يُطبَّق على الصفحة التي اختير منها؛ والرسالة تظهر عند النجاح فقط.
    • ✅ «اذهب إليه» rings the place in the body, never the contents row, on every finding. / «اذهب إليه» يحدد الموضع في المتن لا سطر جدول المحتويات، في كل ملاحظة.
    • 🗂️ The list copy is always the latest; Open here sets #doc=<id> and closes the drawer; a reload reopens the document. / نسخة القائمة هي الأحدث دائمًا؛ و«افتح هنا» يضع #doc=<id> ويغلق اللوحة؛ وإعادة التحميل تعيد فتح الوثيقة.
    • 📁 Share, the work report and imports use <title>-<date>-<AR|ENG> with the spaces kept; no .manifest.json in DOCX\. / المشاركة وتقرير العمل والاستيراد تستخدم <العنوان>-<التاريخ>-<AR|ENG> مع إبقاء المسافات؛ ولا ملف .manifest.json في DOCX\.
    • 🔏 Every open path is logged: the documents list, New, import (the file's log kept as entry.prov), duplicate (copy.from names the source), a JSON document and the New wizard. / كل طريق فتح يُسجَّل: قائمة المستندات، وجديد، والاستيراد (يُحفظ سجل الملف في entry.prov)، والنسخ (copy.from يسمّي المصدر)، ووثيقة JSON، ومعالج الوثيقة الجديدة.
    • 🧷 verify-history and the ledger gate run one full check (state, tail, stripped, HISTORY head): a content-only edit and a cut tail fail. / verify-history وفحص ledger يشغّلان فحصًا كاملًا واحدًا (الحالة، والذيل، والحذف، ورأس HISTORY): التعديل في المحتوى وحده وقطع الذيل يفشلان.
    • 🕰️ A document made before 0.13 shows «بلا سجل (أُنشئت قبل 0.13)» in a neutral style and is logged from then on; a 0.13 document whose log was...
Read more

Business-Wrap 0.12.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 15:20

⚡ In 10 seconds / في عشر ثوان

  • 🎨 Brand v3 "Cover & Rule": navy and gold, light and dark from the same colour ramps. / الهوية الثالثة «الغلاف والمسطرة»: كحلي وذهبي، والوضعان الفاتح والداكن من سلالم الألوان نفسها.
  • 🌐 The website has an Arabic edition at /ar/. / للموقع نسخة عربية على /ar/.
  • 🖌️ The editor runs on brand tokens: 182 hard-coded colours down to 0. / المحرر يعمل على رموز الهوية: 182 لونا ثابتا صارت 0.
  • 🎞️ New hero, banner and logo animations, in English and Arabic. / رسوم متحركة جديدة للواجهة واللافتة والشعار، بالإنجليزية والعربية.
  • 🛡️ NOTICE, a security policy pair and issue forms. / ملف NOTICE، وسياسة أمان بلغتين، ونماذج للبلاغات.

🎨 A new brand, an Arabic website, and an editor with no hard-coded colour. / 🎨 هوية جديدة، وموقع بالعربية، ومحرر بلا ألوان ثابتة في الكود.

Added / أضيف

  • 🎨 Brand v3 in brand/v3/: tokens (tokens-v3.css, light and dark JSON, every contrast pair passes palette/check.py), the logo set (mark, EN and AR lockups and wordmarks outlined from Thmanyah Serif Display, an animated mark that stays still under reduced motion), favicons, social cards (og.png, og-ar.png), 22 redrawn icons, and a brand guide pair (BRAND.md, BRAND.ar.md). / الهوية الثالثة في brand/v3/: الرموز، ومجموعة الشعار، والأيقونات المفضلة، وصور المشاركة، و22 أيقونة معاد رسمها، ودليل الهوية بلغتين.
  • 🌐 Arabic website at /ar/, built from the same page sources as the English one, with its own canonical link, language links both ways and an Arabic social image; a 404 page. / موقع عربي على /ar/ من مصادر الصفحات نفسها، مع رابط أساسي خاص وروابط اللغة في الاتجاهين وصورة مشاركة عربية؛ وصفحة 404.
  • 🎞️ Motion: one motion system for the site, the editor and the animations; hero.gif and hero-ar.gif (9 s loops), hero.mp4, github-banner.gif (6 s), a logo loop. Reduced motion stops every animation. / نظام حركة واحد للموقع والمحرر والرسوم المتحركة، وحلقات الواجهة واللافتة والشعار؛ وتقليل الحركة يوقف كل حركة.
  • ⚖️ NOTICE.md (the Thmanyah font terms, EN and AR) and SECURITY.md / SECURITY.ar.md (report privately; only the latest release gets fixes). / ملف NOTICE لشروط خطوط ثمانية، وسياسة الأمان بلغتين.
  • 📝 Issue forms (bug, feature; blank issues off) and a pull request template. / نماذج البلاغات (خلل، ميزة) وقالب طلب الدمج.
  • 📚 Docs front page (docs/README.md pair). The MCP README pair now lists all 12 tools. / صفحة أولى للوثائق، وصفحة MCP تذكر الأدوات الـ12 كلها.

Changed / تغير

  • 🖌️ Editor chrome on brand v3 tokens: no hard-coded colour left (a test guards it), new panel motion, calm mode and reduced motion leave nothing running. PDF and DOCX colours are unchanged: documents never read the brand tokens. / واجهة المحرر على رموز الهوية الثالثة، مع اختبار يمنع الألوان الثابتة؛ وألوان PDF وDOCX لم تتغير.
  • 🔤 Site fonts self-hosted: three Thmanyah woff2 files ship with the site. / خطوط الموقع مستضافة معه: ثلاثة ملفات woff2 من ثمانية.
  • 🔢 The site takes its version from package.json, and update/version-sync.mjs fails when a page or its structured data says another one. / الموقع يأخذ رقم الإصدار من package.json، وأداة مزامنة الإصدار تفشل إن ذكرت صفحة رقما آخر.
  • 📖 README pair rewritten for brand v3: new badges, sections on safety, questions and help. / إعادة كتابة ملفي README على الهوية الثالثة: شارات جديدة، وأقسام للأمان والأسئلة والمساعدة.
  • 🚀 Release notes open with an "In 10 seconds" list, and their MCP line is npx -y -p business-wrap@latest business-wrap-mcp. / ملاحظات الإصدار تبدأ بقائمة «في عشر ثوان»، وسطر MCP فيها يستخدم business-wrap@latest.
  • 🧪 CONTRIBUTING pair: a "Run the checks" section with the same commands CI runs. / ملفا المساهمة: قسم «شغل الفحوص» بأوامر CI نفسها.

Removed / حذف

  • 🗂️ Brand v1 and v2 files (brand/logo, brand/png, brand/v2, brand/build.py); history keeps them. The npm package ships brand/v3 instead of brand/logo. / ملفات الهويتين الأولى والثانية، ويحفظها السجل؛ والحزمة تحمل brand/v3 بدل brand/logo.
  • 🧹 Internal working files are no longer tracked (session handoff, build receipts, the distribution checklist). / ملفات العمل الداخلية لم تعد في المستودع.

Fixed / أصلح

  • 📋 Site install commands: the copy button no longer covers the command, and the MCP line is the same in the README, the site and the release notes. / أوامر التثبيت في الموقع: زر النسخ لا يغطي الأمر، وسطر MCP واحد في كل مكان.
  • 🔗 Docs links: every relative link in docs/ resolves, and the MCP README pair uses the @latest install line. / كل الروابط النسبية في الوثائق تعمل.

Migration notes / ملاحظات الترحيل

  • No command or schema change. A tool that read brand/logo/ or brand/v2/ reads brand/v3/logo/ and brand/v3/tokens-v3.css now; the class .bw-highlight still works. / لا تغيير في الأوامر أو المخططات. ما كان يقرأ brand/logo/ أو brand/v2/ يقرأ الآن brand/v3/، والصنف .bw-highlight ما زال يعمل.

Update / التحديث: npx business-wrap update --apply --yes (keeps .local, design/custom, logos, fonts/custom, drafts) · Claude Code: /plugin marketplace update business-wrap then /plugin update business-wrap · MCP: npx -y -p business-wrap@latest business-wrap-mcp

Business-Wrap 0.11.1

Choose a tag to compare

@github-actions github-actions released this 28 Oct 12:33

🔓 Public repo, and a plugin that works on a fresh machine. / 🔓 مستودع عام، وإضافة تعمل على جهاز جديد.

In 10 seconds / في عشر ثوانٍ

  • ⚖️ MIT licence; the repo is public. / رخصة MIT، والمستودع عام.
  • 🔌 The Claude Code plugin's MCP server now starts on a fresh machine. / خادم MCP في الإضافة يعمل الآن على جهاز جديد.
  • 🔤 Thmanyah ships as a fallback, so PDFs print with the right fonts out of the box. / خطوط ثمانية مضمنة احتياطيًا، فتطبع ملفات PDF بالخط الصحيح مباشرة.
  • 📖 README pair rewritten for visitors. / إعادة كتابة ملفي README للزوار.
  • 🐍 Fresh machine needs only Node, uv and Chrome or Edge: no pip installs. / الجهاز الجديد يحتاج Node وuv وChrome أو Edge فقط، دون pip.
  • ▶️ npm run serve is the way in: it builds the sample the first time; open the editor through it. / npm run serve هو المدخل: يبني المثال في المرة الأولى، وافتح المحرر عبره.

Added / أضيف

  • 🔤 Bundled fallback fonts in fonts/nj-fonts/thmanyah/ (Serif Text, Serif Display: otf, ttf, woff2; Sans: otf, woff2). Used only when no other copy is found: BW_FONT_DIR, .local/config.json and the system font folder still win. These files are under the Thmanyah licence, not MIT. / خطوط احتياطية مضمنة في fonts/nj-fonts/thmanyah/، تُستخدم فقط إن لم توجد نسخة أخرى؛ ومجلد المستخدم وإعداداته وخطوط النظام لها الأولوية. هذه الملفات تحت رخصة ثمانية، لا MIT.
  • ⚖️ MIT licence (LICENSE) and licence fields in the package, plugin and marketplace. / رخصة MIT وحقول الرخصة في الحزمة والإضافة والسوق.

Changed / تغيّر

  • 📖 README pair rewritten for the public repo: an answer in 10 seconds, prerequisites with check commands, jump links, long detail folded. The same pass on the CONTRIBUTING, fonts, MCP and guide pairs; private-repo wording removed from the docs. / إعادة كتابة ملفي README للمستودع العام: الجواب في عشر ثوانٍ، والمتطلبات مع أوامر التحقق، وروابط القفز، والتفاصيل الطويلة مطوية. والمعالجة نفسها لأزواج المساهمة والخطوط وMCP والدليل، وحذف صياغات المستودع الخاص من الوثائق.
  • 🐍 Python steps run through uv with the packages each step needs (engine/py.mjs: pymupdf for PDF finishing and thumbnails, python-docx and lxml for DOCX). Without uv, plain python runs and one message names the missing tool. / خطوات Python تعمل عبر uv مع حزم كل خطوة؛ ودون uv يعمل python العادي مع رسالة واحدة توضح الناقص.
  • 🔓 Updater for the public repo: no token, no sign-in, the gh login is no longer read; an optional read-only token only lifts GitHub's rate limit. Downloads are checked hop by hop; the update notice names /plugin marketplace update. release.yml actions pinned by SHA. / المحدّث للمستودع العام: دون رمز ولا تسجيل دخول، وتحقق من كل قفزة في التنزيل، والإشعار يذكر /plugin marketplace update.
  • 🔐 security/check.py and security/gitleaks.toml allow font binaries at exactly one path, fonts/nj-fonts/thmanyah/<family>/<otf|ttf|woff2>/; the rule still fails everywhere else, in the tree and in history. / بوابة الأمان تسمح بملفات الخط في مسار واحد فقط، وتبقى القاعدة سارية في كل مكان آخر.
  • 🧩 fonts/manifest.json gains ${BW_ROOT} (the repo or plugin root) and lists fonts/nj-fonts last. / ملف الخطوط يضيف ${BW_ROOT} ويضع fonts/nj-fonts في آخر القائمة.

Fixed / أصلح

  • ▶️ npm run serve on a fresh clone: it served out/sample/... that did not exist yet. With no editor given it now builds the sample first, then serves it, and prints that the editor must be used through the server (export, print, printers, updates). npm run serve -- <editor.html> serves your own file. The editor's "can't reach the server" message says how to start it (EN+AR). / npm run serve على نسخة جديدة يبني المثال أولاً ثم يقدّمه، ويذكّر بفتح المحرر عبر الخادم؛ ورسالة تعذّر الوصول إلى الخادم تشرح طريقة تشغيله.
  • 🔌 Plugin MCP launch: business-wrap is not on npm, so npx -p business-wrap@0.11.0 failed on a fresh machine. From 0.11.1 the package is published to npm (no longer private), and the plugin and Smithery run npx -y -p business-wrap@0.11.1 business-wrap-mcp. Without npm, npx -y -p github:NJ-Burrito/Business-Wrap#v0.11.1 business-wrap-mcp installs from the release tag. update/version-sync.mjs keeps either pinned ref in step with package.json. The package ships what the server, the editor build, export and the updater need (engine, editor, mcp, update, templates, design theme, palette, typography, fonts, samples). / إصلاح تشغيل خادم MCP في الإضافة: الحزمة تُنشر الآن على npm ويشغّلها الأمر npx -y -p business-wrap@0.11.1 business-wrap-mcp، ومن دون npm يعمل التثبيت من وسم الإصدار على GitHub، وأداة مزامنة الإصدار تتحقق من الرقم.

Migration notes / ملاحظات الترحيل

  • Nothing to do. A machine with its own Thmanyah copy keeps using it. / لا شيء مطلوب؛ الجهاز الذي لديه نسخته من ثمانية يبقى عليها.

Update / التحديث: npx business-wrap update --apply --yes (keeps .local, design/custom, logos, fonts/custom, drafts) · Claude Code: /plugin marketplace update business-wrap then /plugin update business-wrap · MCP: npx -y business-wrap@latest

v0.11.0

Choose a tag to compare

@NJ-Burrito NJ-Burrito released this 28 Oct 11:34

Update from inside the editor, and a Settings page. / التحديث من داخل المحرر، وصفحة الإعدادات.

Added / أضيف

  • Export & Print centre: one Export menu (PDF/DOCX per language or both, HTML, print HTML, edits, design pack, diagram Mermaid/SVG/PNG), page range, cover option, printers list through the local server. / مركز التصدير والطباعة.
  • Labels, one command registry, View menu: the toolbar and Ctrl+K read the same registry (palette ⊆ toolbar, tested); View holds zoom reset/fit, both editions, page views and Settings. / سجل أوامر واحد وقائمة العرض.
  • Local learning (hidden): edits, notes and exports (including every Export-centre action) become redacted events in .local/learning/; npm run learn distils rules; MCP learning_* tools; reached only from Settings → «التعلّم المحلي»; updates never touch .local/learning. / التعلّم المحلي.
  • Template packs for any business: a neutral service model, six packs (e-service, e-commerce, call-centre, approval, SaaS, generic IEEE 29148) plus custom packs, an evidence stage with a ledger, organisation profiles (bible/09-template-packs.md). / حزم القوالب والنموذج المحايد ومرحلة الأدلة.
  • Settings page (toolbar View section, or Ctrl+K → Settings): About (name, logo, version, release date, repository, licence, credits), Update (installed and latest version, last check, Check now, check automatically at launch, on by default) and Preferences (interface language, word direction, page view, reduce motion, explainer cards). / صفحة الإعدادات: حول البرنامج، والتحديث، والتفضيلات.
  • Update check at launch: when the editor is opened through the local server (npm run serve), it asks the server whether a newer release exists, without blocking anything and at most once a day unless you press Check now; offline or on any error it stays silent and Settings shows why. / فحص التحديث عند الفتح، مرة في اليوم على الأكثر.
  • Update popup: a newer release shows its version and what is new (Added, Changed, Fixed), with Update now, Later and Skip this version. / نافذة التحديث مع ما الجديد.
  • One-click update: Update now runs the updater on the server and shows its steps (download and fingerprint check, backup, replace, verify, done); the server restarts on the new version and the editor reopens your document where you were, with no other step. / تحديث بنقرة واحدة، ويعود المحرر إلى موضعك.
  • Old work keeps working: an editor or a Save-HTML file from 0.9.x or 0.10.0 opened through the server opens in the new editor with its edits, history, comments and snapshots; the stored draft is migrated to the new schema after a byte-for-byte backup. / الأعمال القديمة تفتح في المحرر الجديد كما هي.

Changed / تغيّر

  • The updater replaces program files only: a file the release dropped is removed only inside the program folders; documents, edits files, design packs, uploaded fonts, logos, out/, exports/, harvest/ and .local/ are never written; one full backup first; any failure in the replace or the verify restores the previous version and the data exactly. A Git checkout fast-forwards and resets to the old commit if the new one does not load. / المحدّث يستبدل ملفات البرنامج فقط.
  • npm run serve supervises the server so an in-editor update can restart it on the new code. / الخادم المحلي يعيد تشغيل نفسه بعد التحديث.

Fixed / أصلح

  • Unpacking a release zip on Linux (GNU tar cannot read zips: unzip is used) and on Windows from Git Bash (Windows' own tar is used). / فك ضغط الإصدار على لينكس وويندوز.

Tests / الاختبارات

  • tests/updater.test.mjs (new): server endpoints with a mocked release feed; a fake newer release applied with every user file byte-identical; forced failures and a broken release roll back to the exact previous tree; checksum refusal; the state migration (forward-only, idempotent); 0.9.1 and 0.10.0 Save-HTML files re-wrapped with their edits.
  • tests/settings.test.mjs (new): Settings in Arabic and English, the popup on a newer release only, skip remembered, the 24 h throttle and the toggle, file:// makes no update request, the progress steps and the reload back to the same place with the edits, 0.9.1 and 0.10.0 Save-HTML files opened and edited, axe.

Migration notes / ملاحظات الترحيل

  • The editor's stored draft (localStorage bw:draft:<set>) moves from schema 1 to 2 on first open (engine/edits.mjs migrateState); the original is kept under bw:draft-backup:<set>:v1. Edits files (*.edits.json) are unchanged (version 1).
  • New server endpoints: GET /api/version, GET /api/update/check[?force=1], POST /api/update/apply {confirm:true} (202, runs on), GET /api/update/progress; GET /api/update still answers as before.
  • applyUpdate accepts onStage; swapInstall is now async and removes dropped files only inside CODE_ROOTS.

Business-Wrap 0.10.0

Choose a tag to compare

@github-actions github-actions released this 28 Oct 09:39

The editor's shell, reworked from the owner's field notes, and any font as real text. / هيكل المحرر من ملاحظات المالك الميدانية، وأي خط نصاً حقيقياً.

Owner decision 2026-10-28: every chosen font is embedded as real text in PDF and DOCX; the font's licence is the user's responsibility.

Added / أضيف

  • Hover explainers (A5): rest on any tool, picker or Design-panel control for about 700 ms, or reach it with the keyboard, and a card shows its name, shortcut, one sentence and a looping illustration of what it does. Arabic and English (editor/ux-i18n.json, 145 tools and controls); the next tool's card shows at once; Esc, leaving, pressing or scrolling hides it; reduced motion shows a still frame. / بطاقات شارحة عند التوقف على أي أداة.
  • Page views (A6): View → Pages: Continuous, Single (one page at a time), Book (the cover alone, then two pages side by side in the edition's reading direction). Page Up/Down, the arrow keys, the wheel and a page pill turn pages; editing works in every view; remembered per browser; print, PDF, DOCX and the edits file never see it. / عرض الصفحات: متصل، صفحة، كتاب.
  • Any font (B1): the font picker lists the project's fonts, this computer's installed fonts (Local Font Access, asked once; A→Z, searchable, with a preview) and fonts you upload (TTF, OTF, WOFF); Thmanyah stays the default; the choice is saved in the document and reaches the PDF and the DOCX. / منتقي الخطوط: خطوط المشروع والجهاز والمرفوعة.
  • Slider + number + unit (B3) for every size and spacing: decimals allowed, letters refused, a unit picker (pt, px, mm, cm, %, em where they make sense) that converts the value so the size stays; colours as a swatch plus a hex code. / منزلق ورقم ووحدة.

Changed / تغيّر

  • The layout never flips (A1): «ع» / «E» changes the interface language and the edition, RTL / LTR changes only the direction of the words; the toolbar, panels, page and watermark keep the default right-to-left arrangement in both languages (the watermark stays bottom right). / التخطيط لا ينقلب.
  • Arabic/English parity (A2): every toolbar word reserves the width of the longer of its two languages, so «ع» and «E» fold the bar the same way and each tool keeps its icon, its label and its place. / تطابق العربية والإنجليزية.
  • Whole-field toggles (A3): click anywhere on the «ع» / «E», RTL / LTR or Pages field (not just the letters); a gold thumb slides from where it is to the new choice, critically damped; no motion under reduced motion or Calm mode. / النقر في أي مكان من الحقل.
  • Sticky selection tools (A4): the selection's tools stay while you work in menus, panels, pickers, colour inputs and inline editors; only a click on empty space or Esc brings the general tools back (Esc peels one layer at a time). / أدوات التحديد تبقى.
  • Plain-language Design panel (B2): every label rewritten in Arabic and English (no raw tokens such as primary-deep, h1, rule-w, zebra), grouped, with short hints. / لوحة تصميم بلغة واضحة.
  • Every chosen font is real text (B4, owner override): each face is normalised in memory before printing or embedding (TrueType outlines, OS/2 fsType 0); licence warnings and the "left out" export note are gone. A family with no bold face gets a synthetic Bold at export (engine/font_normalise.py --embolden), so bold text stays bold and stays real text instead of Chrome's faked bold (Type 3). / كل خط مختار نص حقيقي، والعريض المركّب.

Fixed / أصلح

  • Logos and images lost their tools on click (the 0.9.1 "hold" behaviour): a click on a free-placed logo selected it on press and then counted as an empty-space click; any toolbar rebuild (View, Dark …) also hid the selection's tools. / اختفاء أدوات الشعار عند النقر.
  • Toolbar menus were clipped inside the toolbar (owner test 2026-10-28): «More» menus were position: fixed inside the toolbar, whose blur makes it their containing block, so they opened inside it and needed scrolling. They now open in the top layer (popover API), anchored to their button and shifted or flipped to stay in the window; the toolbar never scrolls; Esc returns focus to the button; an outside click closes the menu and keeps the selection's tools. / قوائم الشريط كانت تُقصّ داخله.
  • Moving logos and images (owner test 2026-10-28): a click on a logo now focuses it, so the arrow keys nudge it at once (pressing it did not take focus, and a selected diagram kept the arrow keys); a drag is tracked on the window and ends cleanly on a cancelled pointer; the logo follows the pointer 1:1 when the page is zoomed or in Single / Book view (the move was scaled by the zoom); an anchored image dropped in a paged view lands in its page's column. Logos, free-placed images, diagram shapes and free text move by a real drag in Continuous, Single and Book view, Arabic and English; the position is saved, survives a reopen and prints where it was dropped. / نقل الشعارات والصور.
  • Printing from a paged view gave a different page count: the print pass measured the paged layout; it now measures the plain sheet (9 pages in every view for the sample). / عدد صفحات الطباعة من العرض المقسّم.
  • The DOCX follows the chosen font: a chosen heading family other than the house pair now reaches the Word file's headings and cover (it fell back to the house face). / ملف Word يتبع الخط المختار.
  • The page no longer jumps down after the toolbar's entry animation (the bar's height is measured on its layout box). / قفزة الصفحة بعد ظهور الشريط.

Tests / الاختبارات

  • tests/ux.test.mjs (new, 88 checks; menus and moves added after the owner test): boxes identical across «ع»/«E» × RTL/LTR at 1366 and 1920; same controls, icons, names and fold state in both languages; padding clicks toggle, thumb under the pressed option, spring curve, mid-flight slide, reduced motion; shape and logo tools stay through menus, pickers, the Design panel and the popover, desk click and Esc clear; explainer at ~700 ms not at 300 ms, Esc, leave, keyboard focus, every tool has AR+EN text, still frame under reduced motion; Book view cover alone and RTL/LTR pairing, Single page, remembered, editing, print CSS unaffected, same printed page count in every view; every toolbar menu fully visible in the top layer at 1366 and 1920 with its last item reachable and no toolbar scroll; logo, image, shape and free text follow a 120 px drag within 2 px in all three views, AR and EN, nudge, reopen, print position.
  • tests/design.test.mjs (new, B1–B4, plus the faux-bold gate): a font with no bold face prints a synthetic Bold, no Type 3 in pdffonts, the bold headings extract with pdftotext.
  • tests/editor.test.mjs: the shell stays right-to-left and the words follow; the watermark keeps its corner in both languages.

v0.9.1

Choose a tag to compare

@NJ-Burrito NJ-Burrito released this 28 Oct 07:08

Diagram: draggable bend points, in-place label editing, single-row legend, diagram zoom; toolbar section titles always visible (1280-1920).

v0.9.0

Choose a tag to compare

@NJ-Burrito NJ-Burrito released this 28 Oct 04:41

Editable house-style workflow diagrams (shapes + text, drawing tools, Mermaid import/export, native DOCX shapes); contextual categorised toolbar.

Business-Wrap 0.8.4

Choose a tag to compare

@github-actions github-actions released this 27 Oct 21:40

From the final live run with 0.8.3 (10 of 11 checks, 0 filed, 0 workarounds). / من التشغيل الحي الأخير.

Fixed / أصلح

  • A textarea's inline «هذا الحقل مطلوب» was not captured: the field's message is now looked for in its own box, in the element its aria-describedby names, and just after its box; each field also gets an explicit blur after the Tab, and aria-invalid counts like ng-invalid once touched. / رسالة الحقل النصي متعدد الأسطر.

Tests / الاختبارات

  • An Angular-like textarea with a touched-only validator whose message sits after the field box. / اختبار جديد.

Update / التحديث: npx business-wrap update --apply --yes (keeps .local, design/custom, logos, fonts/custom, drafts) · Claude Code: /plugin update business-wrap

Business-Wrap 0.8.3

Choose a tag to compare

@github-actions github-actions released this 27 Oct 21:22

From the fourth live run with 0.8.2 (0 requests filed, 0 workarounds, 8 of 11 checks). / من التشغيل الحي الرابع.

Fixed / أصلح

  • Card channels (and every card list: recipients, fees, required documents) were harvested but dropped by the mapper; they are now rows of the service-card table, so they reach the PDF and DOCX. / قنوات تقديم الخدمة في الوثيقة.
  • An attachment is one row: the file input paired with its «attachment name» select (names, required, accepted types); the card's statement on required documents wins over the select's star, and a disagreement becomes an open question; the paired select leaves the inputs table. / صف مرفق واحد.
  • Required in a dry run: every field is blurred first (Tab through), each inline message is kept with its field and listed with it under Validation messages; a non-final Next may be pressed, a final action never. / الإلزامي دون ضغط «إرسال».

Tests / الاختبارات

  • The fixture's card lists its documents; an «attachment name» select sits beside the file; the card's channels are checked in the PDF text; inline messages carry their field. / اختبارات جديدة.

Update / التحديث: npx business-wrap update --apply --yes (keeps .local, design/custom, logos, fonts/custom, drafts) · Claude Code: /plugin update business-wrap