Skip to content

תיקוני באגים ומגבלות עיצוב - #21

Merged
Amlaach merged 3 commits into
TypesetOK:mainfrom
YSmauas:main
Oct 27, 2026
Merged

Amlaach merged 3 commits into
TypesetOK:mainfrom
YSmauas:main

Conversation

@YSmauas

@YSmauas YSmauas commented Oct 27, 2026

Copy link
Copy Markdown
Contributor

זהו pr ראשוני וגולמי שהתיקונים בו יעלו בהדרגה, ובדיקות בכל שלב.

- Update CLI to parse document settings for engine configuration
- Integrate DOCX XML extraction utility in Electron main process
- Add IPC for startup file handling and update project scripts
Replace electron dev command with node server script and add assertion for tokCliPath in frontend tests.
@Amlaach
Amlaach self-requested a review October 27, 2026 20:07
…emplate cancel

- Restore Cargo.lock and package-lock.json
- Remove redundant root index.html
- Restore test/issue20_regression.test.mjs and clean frontend test suite
- Restore save cancellation guard in window close handler (Electron main)
- Fix ImportTemplateModal onCancel to cleanly abort instead of applying prose template
- Restore CSS shrink and overflow protections in action HUD and toolbar
- Preserve CLI document settings parsing, DOCX pre-extraction, and F2 rename

@Amlaach Amlaach left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

נקודות חיוביות ושיפורים מוצלחים
תמיכה מורחבת בהגדרות עמוד ב-Rust CLI (crates/tok-cli/src/main.rs):
קריאת document_settings ישירות מ-RawMultiFlowState והזנתם למודל המסמך.
פונקציית engine_config_from_root תומכת כעת גם במילימטרים וגם בנקודות (pt), וכן ב-camelCase וב-snake_case.
פקודות handle_incremental_typeset ו-handle_diagnose_recompute משתמשות כעת בהגדרות העמוד האמיתיות של המסמך במקום בברירת מחדל קשיחה.
חילוץ DOCX XML ב-Node.js (packages/tok-electron/src/main.ts):
חילוץ מוקדם של word/document.xml באמצעות zlib.inflateRawSync בעת קריאת הקובץ ב-IPC (tok:read-import-file), מה שמפשט ומייעל את שלב הייבוא ב-UI.
שיפור חוויית שינוי שם מסמך (TopSystemBar.ts):
הוספת קיצור מקשים ייעודי (F2), כפתור עריכה גרפי בשורת המערכת, ותמיכה ב-double-click לשינוי שם.
שיפור בבניית ה-UI (scripts/bundle-ui.mjs):
הגדרת aliases ב-esbuild עבור החבילות הפנימיות (tok-story-editor, tok-viewer, tok-canvas).
⚠️ ליקויים קריטיים וחסמים למיזוג (Blockers)

  1. מחיקת קובצי ה-Lockfile (Cargo.lock ו-package-lock.json)
    הבעיה: ה-PR מחק לחלוטין את package-lock.json (1,598 שורות) ואת Cargo.lock (1,162 שורות).
    ההשלכה: שובר בנייה דטרמיניסטית, עלול להכניס שבירות ב-CI ולגרום להתקנת גרסאות תלויות שונות אצל מפתחים שונים.
    תיקון נדרש: לשחזר את שני הקבצים באמצעות git checkout origin/main -- Cargo.lock package-lock.json.
  2. קובץ index.html מיותר בשורש המאגר
    הבעיה: נוסף קובץ index.html ענק (790 שורות) בתיקיית השורש של הפרויקט.
    ההשלכה: הקובץ כולל נתיבים יחסיים שגויים כגון href="../../../assets/icon.png" (שיוצאים מחוץ למאגר למחשב המשתמש). קובץ ה-HTML האמיתי של האפליקציה נמצא ומנוהל ב-packages/tok-ui/src/index.html.
    תיקון נדרש: למחוק את index.html משורש הפרויקט.
  3. שבירת סקריפט הריצה npm run dev
    הבעיה: ב-package.json שונה הסקריפט:
    json
    "dev": "node server.mjs"
    אך server.mjs הוכנס ל-.gitignore ואינו קיים במאגר!
    ההשלכה: הרצת npm run dev נכשלת מיידית עם שגיאת Cannot find module '.../server.mjs'.
    תיקון נדרש: להחזיר את סקריפט ה-dev המקורי או לכלול את שרת הפיתוח במאגר (אם נועד לשימוש כלל הפרויקט).
  4. באג איבוד נתונים ביציאה מהתוכנה (packages/tok-electron/src/main.ts)
    הבעיה: נמחקה הבדיקה האם המשתמש ביטל את השמירה בדיאלוג השמירה בעת סגירת החלון:
    diff
  • if (saveResult === false) {
  • logger.info('[MAIN] Save before exit was cancelled or failed; keeping window open');
  • isClosingPromptActive = false;
  • return;
  • }
    ההשלכה: אם למשתמש יש שינויים לא שמורים, הוא לוחץ על סגירת התוכנה, בוחר "שמור", אך בדיאלוג בחירת הקובץ לוחץ "ביטול" (Cancel) – האפליקציה ממשיכה ונסגרת בכל זאת, והתוכן הולך לאיבוד!
    תיקון נדרש: להחזיר את תנאי הביטול כך שביטול שמירה ישאיר את החלון פתוח.
  1. ביטול ייבוא תבנית מבצע ייבוא כפוי (packages/tok-ui/src/app.ts)
    הבעיה: ב-onCancel של הדיאלוג ImportTemplateModal, הקוד שונה ל:
    ts
    onCancel: () => {
    if (this.pendingImportResult) {
    this.applyImportedDocument(this.pendingImportResult.result, this.pendingImportResult.filePath, 'prose');
    this.pendingImportResult = null;
    }
    }
    ההשלכה: אם המשתמש פותח מסמך לייבוא ומתחרט (לוחץ Cancel / Esc / על הרקע) – המסמך מיובא בכפייה כתבנית 'prose' במקום שהייבוא יבוטל.
    תיקון נדרש: לאפס את pendingImportResult = null ללא הפעלת applyImportedDocument.
  2. רגרסיה בסנכרון עיצוב פסקאות (packages/tok-ui/src/app.ts)
    הבעיה: הוסרו שורות הסנכרון בעת החלת עיצוב פסקה:
    diff
  • if (this.activeFlowId) {
  • this.documentState.flows[this.activeFlowId] = this.storyEditor.getStory();
  • }
    ההשלכה: שינויי סגנון ופורמט המבוצעים דרך עורך הסיפור אינם מסתנכרנים מידית חזרה ל-documentState, מה שעלול לגרום לאיבוד שינויי עיצוב בשמירה או בעת רענון עימוד.
  1. רגרסיות עיצוב ו-CSS ב-packages/tok-ui/src/index.html
    הבעיה: בוטלו הגדרות למניעת התכווצות וגלישת טקסט ברכיבים צפופים:
    הוסר .tok-action-hud > * { flex-shrink: 0; }
    הוסר flex-shrink: 0 ו-min-width: 0 מ-.tok-chip-select ומשדות המפקח.
    ההשלכה: מחזיר באגים שנפתרו ב-PR #20 של כפתורים מעוכים וטקסטים נחתכים בתצוגת Split View ובמסכים צרים.

לסיכום: יש כמה חסמים ממיזוג, והם מטופלים בקומיטים הבאים.

@Amlaach
Amlaach merged commit 24f9138 into TypesetOK:main Oct 27, 2026
5 checks passed
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.

2 participants