שיתוף | GemMCP – הופךאת Gemini ב-Web לסוכן AI שפועל במחשב ובכלים שלכם
-
אולי שיזריק את הפרומוט הראשוני בהעדפות המשתמש כך אפשר מכל צ'אט לתת פקודה
ובגלל ההרשאות הרגישות אז שיכולו לכבות ולהדליק אותם מהממשק או\ו אוטומטי אחרי כמה דקות...אגב יש לזה איזה באג חסר סוגריים או משהו כזה
-
אולי שיזריק את הפרומוט הראשוני בהעדפות המשתמש כך אפשר מכל צ'אט לתת פקודה
ובגלל ההרשאות הרגישות אז שיכולו לכבות ולהדליק אותם מהממשק או\ו אוטומטי אחרי כמה דקות...אגב יש לזה איזה באג חסר סוגריים או משהו כזה
@בינארי-חכם איפה חסר סוגריים?
ולא כל כך הבנתי מההרעיון שלך -
@בינארי-חכם איפה חסר סוגריים?
ולא כל כך הבנתי מההרעיון שלךאיפה חסר סוגריים?
לא יודע
לא הצלחתי להתקין אז קלוד אמר שחסר ותיקן ליולא כל כך הבנתי מההרעיון שלך
שבמקום להגיד לו כל פעם שהוא יכול לעשות אז שמים את זה ב'מידע אישי' ואז הוא מלכתחילה יודע שהוא יכול ואז גם באמצע שיחה הוא יוכל לבדוק את המחשב בלי להספים את השיחה
וגם שההרשאות יתכבו אוטומטית לאחר זמן כי הן רגישות
-
איפה חסר סוגריים?
לא יודע
לא הצלחתי להתקין אז קלוד אמר שחסר ותיקן ליולא כל כך הבנתי מההרעיון שלך
שבמקום להגיד לו כל פעם שהוא יכול לעשות אז שמים את זה ב'מידע אישי' ואז הוא מלכתחילה יודע שהוא יכול ואז גם באמצע שיחה הוא יוכל לבדוק את המחשב בלי להספים את השיחה
וגם שההרשאות יתכבו אוטומטית לאחר זמן כי הן רגישות
@בינארי-חכם נסית להגדיר לו וזה עבד לך חלק?
-
הנה הבאגים שקלוד עלה עליהם
שלושת התיקונים
כל השלושה אומתו על התקנה חיה. אם תעדכן גרסה בעתיד דרך update.bat, התיקונים יידרסו ותצטרך להחיל אותם מחדש.popup/oauth-success.js
סוגר יתום
התסמין: הקובץ שבור תחבירית ולא נטען כלל, ולכן דף הסיום של התחברות OAuth לא עובד.סביב שורה 102 יש בלוק טיימר שמסתיים בסוגר } בלי פתיחה תואמת. הוסף מעליו את השורה החסרה:
if (!err) {
let timeLeft = 3;
const interval = setInterval(() => {
timeLeft -= 1;
if (timerSeconds) timerSeconds.textContent = timeLeft;
if (timeLeft <= 0) {
clearInterval(interval);
closeThisTab();
}
}, 1000);
}
זה גם משחזר את הכוונה המקורית — הטיימר לא אמור לרוץ בדף שגיאה.bridge-server/server.js
open_app מדווח הצלחה כוזבת ונתקע
התסמין: שם תוכנה שגוי מחזיר "הופעל בהצלחה" בלי שנפתח כלום — ובמקרים אחרים הבקשה לא חוזרת לעולם ומשאירה תהליך cmd תלוי לנצח.השורש: הקוד הסיק הצלחה מקוד היציאה של start, שמחזירה תמיד אפס. החלף את קריאת ה־exec שבתוך case 'open_app' בבדיקת קיום מראש:
const LAUNCH_TIMEOUT_MS = 5000;
const reportLaunched = () =>
res.json({ success: true, data: { message:היישום '${appTarget}' הופעל בהצלחה ב-Windows!} });const launchTarget = () => {
exec(targetCommand, { windowsHide: false, timeout: LAUNCH_TIMEOUT_MS, killSignal: 'SIGKILL' }, (cmdErr) => {
if (!cmdErr) return reportLaunched();if (cmdErr.killed) { return res.status(504).json({ success: false, error: `פתיחת '${appTarget}' לא הסתיימה בזמן ובוטלה.` }); } execFile('powershell.exe', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', `Start-Process "${targetToRun}"`], { timeout: LAUNCH_TIMEOUT_MS, killSignal: 'SIGKILL' }, (psErr) => { if (psErr) { const reason = psErr.killed ? 'היעד לא הגיב בזמן' : psErr.message; return res.status(500).json({ success: false, error: `שגיאה בפתיחת ${appTarget}: ${reason}` }); } return reportLaunched(); });});
};if (targetToRun.includes(':')) {
// פרוטוקול: קיים רק אם ה-scheme רשום ב-Registry
const scheme = targetToRun.split(':')[0];
execFile('reg.exe', ['query',HKCR\\${scheme}, '/ve'], { timeout: LAUNCH_TIMEOUT_MS }, (regErr) => {
if (regErr) {
return res.status(404).json({
success: false,
error:היישום '${appTarget}' אינו מותקן במחשב (הפרוטוקול '${scheme}:' אינו רשום).
});
}
launchTarget();
});
} else {
// קובץ הרצה: קיים רק אם where.exe מוצא אותו ב-PATH
execFile('where.exe', [targetToRun], { timeout: LAUNCH_TIMEOUT_MS }, (whereErr) => {
if (whereErr) {
return res.status(404).json({
success: false,
error:היישום '${appTarget}' לא נמצא במחשב ('${targetToRun}' אינו קיים ב-PATH).
});
}
launchTarget();
});
}
בקשה לפני אחרי
app_xyz123 (לא קיים) נתקע לנצח 404 תוך 0.5 שנייה
spotify (לא מותקן) "הופעל בהצלחה" 404 — הפרוטוקול לא רשום
notepad עובד עובד
content.js
התוצאה לא נשלחת חזרה
התסמין: הפקודה מתבצעת, אבל התוצאה נתקעת בתיבת הקלט ומופיעה השגיאה Something went wrong (1096). צריך ללחוץ Enter ידנית בכל פעם.השורש: תיבת הקלט של Gemini היא רכיב Angular. הפונקציה injectText כתבה ישירות ל־innerHTML, מה שמעדכן רק את מה שנראה על המסך בזמן שהמודל הפנימי — זה שנשלח בפועל — נשאר ריק. החלף את שורת ה־innerHTML בעריכה אמיתית ברמת הדפדפן:
const range = document.createRange();
range.selectNodeContents(target);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);let inserted = false;
try {
inserted = document.execCommand('insertText', false, text);
} catch (e) {
inserted = false;
}// גיבוי לשיטה הישנה אם execCommand אינו זמין
if (!inserted || !(target.innerText || target.textContent || '').trim()) {
const lines = text.split('\n');
target.innerHTML = lines.map(line =><p>${line.trim() === '' ? '<br>' : escapeHtml(line)}</p>).join('');
} -
הנה הבאגים שקלוד עלה עליהם
שלושת התיקונים
כל השלושה אומתו על התקנה חיה. אם תעדכן גרסה בעתיד דרך update.bat, התיקונים יידרסו ותצטרך להחיל אותם מחדש.popup/oauth-success.js
סוגר יתום
התסמין: הקובץ שבור תחבירית ולא נטען כלל, ולכן דף הסיום של התחברות OAuth לא עובד.סביב שורה 102 יש בלוק טיימר שמסתיים בסוגר } בלי פתיחה תואמת. הוסף מעליו את השורה החסרה:
if (!err) {
let timeLeft = 3;
const interval = setInterval(() => {
timeLeft -= 1;
if (timerSeconds) timerSeconds.textContent = timeLeft;
if (timeLeft <= 0) {
clearInterval(interval);
closeThisTab();
}
}, 1000);
}
זה גם משחזר את הכוונה המקורית — הטיימר לא אמור לרוץ בדף שגיאה.bridge-server/server.js
open_app מדווח הצלחה כוזבת ונתקע
התסמין: שם תוכנה שגוי מחזיר "הופעל בהצלחה" בלי שנפתח כלום — ובמקרים אחרים הבקשה לא חוזרת לעולם ומשאירה תהליך cmd תלוי לנצח.השורש: הקוד הסיק הצלחה מקוד היציאה של start, שמחזירה תמיד אפס. החלף את קריאת ה־exec שבתוך case 'open_app' בבדיקת קיום מראש:
const LAUNCH_TIMEOUT_MS = 5000;
const reportLaunched = () =>
res.json({ success: true, data: { message:היישום '${appTarget}' הופעל בהצלחה ב-Windows!} });const launchTarget = () => {
exec(targetCommand, { windowsHide: false, timeout: LAUNCH_TIMEOUT_MS, killSignal: 'SIGKILL' }, (cmdErr) => {
if (!cmdErr) return reportLaunched();if (cmdErr.killed) { return res.status(504).json({ success: false, error: `פתיחת '${appTarget}' לא הסתיימה בזמן ובוטלה.` }); } execFile('powershell.exe', ['-NoProfile', '-NonInteractive', '-ExecutionPolicy', 'Bypass', '-Command', `Start-Process "${targetToRun}"`], { timeout: LAUNCH_TIMEOUT_MS, killSignal: 'SIGKILL' }, (psErr) => { if (psErr) { const reason = psErr.killed ? 'היעד לא הגיב בזמן' : psErr.message; return res.status(500).json({ success: false, error: `שגיאה בפתיחת ${appTarget}: ${reason}` }); } return reportLaunched(); });});
};if (targetToRun.includes(':')) {
// פרוטוקול: קיים רק אם ה-scheme רשום ב-Registry
const scheme = targetToRun.split(':')[0];
execFile('reg.exe', ['query',HKCR\\${scheme}, '/ve'], { timeout: LAUNCH_TIMEOUT_MS }, (regErr) => {
if (regErr) {
return res.status(404).json({
success: false,
error:היישום '${appTarget}' אינו מותקן במחשב (הפרוטוקול '${scheme}:' אינו רשום).
});
}
launchTarget();
});
} else {
// קובץ הרצה: קיים רק אם where.exe מוצא אותו ב-PATH
execFile('where.exe', [targetToRun], { timeout: LAUNCH_TIMEOUT_MS }, (whereErr) => {
if (whereErr) {
return res.status(404).json({
success: false,
error:היישום '${appTarget}' לא נמצא במחשב ('${targetToRun}' אינו קיים ב-PATH).
});
}
launchTarget();
});
}
בקשה לפני אחרי
app_xyz123 (לא קיים) נתקע לנצח 404 תוך 0.5 שנייה
spotify (לא מותקן) "הופעל בהצלחה" 404 — הפרוטוקול לא רשום
notepad עובד עובד
content.js
התוצאה לא נשלחת חזרה
התסמין: הפקודה מתבצעת, אבל התוצאה נתקעת בתיבת הקלט ומופיעה השגיאה Something went wrong (1096). צריך ללחוץ Enter ידנית בכל פעם.השורש: תיבת הקלט של Gemini היא רכיב Angular. הפונקציה injectText כתבה ישירות ל־innerHTML, מה שמעדכן רק את מה שנראה על המסך בזמן שהמודל הפנימי — זה שנשלח בפועל — נשאר ריק. החלף את שורת ה־innerHTML בעריכה אמיתית ברמת הדפדפן:
const range = document.createRange();
range.selectNodeContents(target);
const selection = window.getSelection();
selection.removeAllRanges();
selection.addRange(range);let inserted = false;
try {
inserted = document.execCommand('insertText', false, text);
} catch (e) {
inserted = false;
}// גיבוי לשיטה הישנה אם execCommand אינו זמין
if (!inserted || !(target.innerText || target.textContent || '').trim()) {
const lines = text.split('\n');
target.innerHTML = lines.map(line =><p>${line.trim() === '' ? '<br>' : escapeHtml(line)}</p>).join('');
}@בינארי-חכם תגיד לו שיתקן
למצוא באגים זה החלק הקל -
@בינארי-חכם נסית להגדיר לו וזה עבד לך חלק?
-
@בינארי-חכם לא שאלתי אפם ניסת להגדיר בגימיני את הפרומט?
-
@בינארי-חכם לא שאלתי אפם ניסת להגדיר בגימיני את הפרומט?
לא ניסיתי ואני יכול להבין שזה לא יעבוד...
-
לא ניסיתי ואני יכול להבין שזה לא יעבוד...
-
הבעיה אצלך
כי אני שלחתי חלק...
-
@בינארי-חכם לא הבנתי על מה אנחנו מדברים על איזה בעיה
תעשה לי סדר? -
@בינארי-חכם הא אוקי סליחה לא הבנתי מה אתה מדבר איתי נכון אני עניתי לך וזה היה נראה מוזר בגלל תוסף שבניתי ללימוד אנגלית ואפילו לא שמתי לב לזה כי לא אחזתי שזה נשלח ככה ולא רק אצלי
שלום! נראה שהשיחה הזו מעניינת אותך, אבל עדיין אין לך חשבון.
נמאס לכם לגלול בין אותם הפוסטים בכל ביקור? כשנרשמים לחשבון, תמיד תחזרו בדיוק למקום שבו הייתם קודם, ותוכלו לבחור לקבל התראות על תגובות חדשות (בין אם במייל, ובין אם בהתראת פוש). תוכלו גם לשמור סימניות ולפרגן ב-upvote לפוסטים כדי להביע הערכה לחברי קהילה אחרים.
בעזרת התרומה שלך, הפוסט הזה יכול להיות אפילו טוב יותר 💗
הרשמה התחברות