חבר widgets: משטח אחד, משפט אחד וכפתור בדוק
כל מה ש-widget יכול להיות מחובר אליו חי עכשיו מאחורי תיבת חיפוש אחת — widgets אחרים, connections, bots ו-agents. תאר את החיווט בשפה פשוטה, ושלח אירוע אמיתי כדי לגלות איזה קצה שבור.
link מעביר events בין שני widgets: משנים סמל באחד והשני מגיב. מפעילים Two-way והם נשארים מסונכרנים בשני הכיוונים. ההבדל בין מסך מלא אריחים נפרדים למסך שמתנהג כמכשיר אחד.
הרעיון היה טוב. למצוא אותו לא, וגם לדעת אם זה עובד. שניהם מתוקנים בגרסה הזו.
משטח אחד, ו-«All» באמת אומר הכל
ה-picker היה מפוצל לשתי sub-tabs — Widgets ו-Sources — מה שאומר שחצי מה-inventory תמיד היה מוסתר מאחורי toggle שצריך לדעת ללחוץ. widget לבד על המסך שלו הראה grid ריק, בלי רמז ש-bots, agents ו-connections קיימים.
עכשיו יש תיבת חיפוש אחת ושורת filters סוג על הכל: widgets אחרים על המסך הזה, ב-workspace הזה או במקום אחר; data connections; bots; agents. All מציג את הכל.
גם הסדר השתנה. My wiring עכשיו מעל משטח הדפדוף. פעם היה מתחת grid picker שיכול להגיע לעשרות אריחים, אז הרשימה שחוזרים אליה לניהול — לבטל את זה, להסיר את זה — הייתה מה שצריך לגלול מעבר לכל השאר, בזמן שה-picker שצריך רק כשמוסיפים משהו חדש קיבל אתכם בכל פעם.
תיקון כנות קטן באותו אזור: empty state עכשיו ממתה ל-bots ו-agents stores לענות לפני שטוען שאין מה לחבר, מציג Looking… בינתיים, וכל filter chip נושא count משלו. grid ריק שאומר «עדיין loading» זו שקר שהממשק סיפר שגרתית.
שני מנגנונים, שאלה אחת
מאחורי ה-picker האחד יש שני דברים שונים באמת:
- widget אחר → glue link שנוצר ב-AI. קוד אמיתי, עם היסטוריית גרסאות משלו, רץ ב-runtime נסתר משלו, ממפה מה A משדר למה B מצפה.
- connection, bot או agent → attachment קל, רשומה של מה rebuild לימד את הקוד העצמי של widget זה לעשות. מדורג ולא אוטומטי, אז לדפדף חמישה sources ברצף עולה rebuild אחד, לא חמישה.
לדעת איזה רוצים, לפני שאפשר לומר מה באמת רוצים שיקרה, זו שאלה ראשונה גרועה. אז טאב Links נפתח עכשיו עם composer: תאר את החיווט.
«סנכרן את הסמל בשני הכיוונים עם הגרף.» «כשאני לוחץ על שורה כאן, סנן את ה-widget האחר.» «הצג את האותות של price-alert bot שלי ב-widget הזה.»
planner קורא את אותו inventory שה-picker מציג ומסיק גם את המנגנון וגם את הצד השני — «price bot» הופך ל-id. הוא מסיק בלבד; לעולם לא מייצר. codegen streaming היקר עדיין רץ איפה שתמיד, עם כפתור Stop משלו והיסטוריית גרסאות משלו.
אם מעדיפים להצביע בעצמכם, ה-picker עדיין עושה את זה — ועכשיו מסמן למה כבר מחוברים, אז pick שני נקרא «already linked» במקום לחזור על הראשון בשקט. pick שוב מעדכן את החיווט הקיים במקום להוסיף שורה כפולה, וה-badge אומר את זה לפני שמשלמים rebuild.
«בדוק»: איזה קצה באמת שבור?
עד הגרסה הזו link היה write-only. תיארתם, שילמתם codegen, יצאתם מה-editor ונגעתם ב-widgets האמיתיים כדי לראות אם קרה משהו. כשלא, לא הייתה דרך לדעת איזה חלק שגוי — widget שלא משדר, link שלא map, או widget אחר שלא מאזין.
ל-editor יש עכשיו שורת בדוק. בחרו topic
וערך, בחרו איזה קצה מתחזה ל-emit (מוצע רק
ב-link דו-כיווני, כי link חד-כיווני תמיד
ידווח nothing מהצד הרחוק), ושלחו. event
נכנס ל-runtime האמיתי של link ומריץ את
connect(ctx) שנוצר — לא simulation — והפסק
מבחין בכל דרך שזה יכול לצאת ריק:
- link הזה לא רץ. הפעילו — או שאין לו קוד עדיין.
- רץ אבל לא העביר כלום ל-topic הזה. mapping שגוי; טאב Logs יש את הפרטים.
- נשלח «symbol» ל-Chart. עובד.
- הועבר, אבל widget לא על המסך לקבל. לא bug — הקצה השני על מסך אחר.
testing נשאר ברשימה במקום לזרוק למקום אחר, ו-recorder מופעל רק כשהשורה על המסך, אז link שמעביר tick stream לעולם לא משלם instrumentation.
השקטים
links דו-כיווניים יהדהדו לנצח בלי עזרה, אז delivered value נזכר וה-bounce-back הזהה נזרק פעם — לולאת mirror A↔B הקנונית נשברת, בזמן ש-genuinely new value עדיין עובר. links ו-attachments replicate בין הטאבים והמכשירים שלכם במקום לחיות באחד, אז מחיקה במקום אחר מציגה עכשיו מצב gone ב-editor במקום לתת לשמור לתוך nothing. וכש-rebuild נכשל, זה אומר ומצביע על טאב Builder, במקום spinner איפה שצריכה להיות תשובה.
עוד שינוי בדרך: האפליקציה עוברת rename סביב המילה שאנשים כבר משתמשים בה. Link הופך ל-wire, ו-My wiring נשאר בדיוק איפה שהוא.
הפעל Nexow, פתח את טאב Links של כל widget, ותאר מה אמור לקרות כשלוחצים על משהו. ואז בדוק לפני שיוצאים.
בנו את הווידג׳ט הראשון שלכם בדקה הבאה
התצוגה המקדימה חיה וחופשית לנסיון. אין הרשמה, אין הגדרה — פשוט תארו מה אתם רוצים לראות.

