fix: skip echo relay for Discord-origin user messages
This commit is contained in:
@@ -82,6 +82,8 @@ function ensureBridgeDir() {
|
||||
// Module-level activeSessionId so writeChatSnapshot can register sessions lazily
|
||||
let activeSessionId = '';
|
||||
let activeTrajectoryId = '';
|
||||
// Track recently sent Discord→AG texts to avoid echo relay
|
||||
const recentDiscordSentTexts: Map<string, number> = new Map();
|
||||
|
||||
function writeChatSnapshot(text: string) {
|
||||
try {
|
||||
@@ -156,6 +158,7 @@ function processCommandFile(filePath: string) {
|
||||
console.log(`Gravity Bridge: auto-approve → ${mode}`);
|
||||
} else if (text) {
|
||||
// Send message to Antigravity — use VS Code command (most reliable)
|
||||
recentDiscordSentTexts.set(text.trim(), Date.now());
|
||||
vscode.commands.executeCommand('antigravity.sendPromptToAgentPanel', text)
|
||||
.then(() => console.log(`Gravity Bridge: ✅ sent "${text.substring(0, 50)}" via sendPromptToAgentPanel`),
|
||||
(e: any) => console.log(`Gravity Bridge: sendPrompt failed: ${e.message}`));
|
||||
@@ -1863,7 +1866,13 @@ function setupMonitor() {
|
||||
|
||||
logToFile(`[USER-MSG] step=${userInputIdx} type=${umStep?.type} client=${clientType} text=${umText.substring(0, 100)}`);
|
||||
|
||||
if (umText.length > 2) {
|
||||
// Skip echo: if this text was recently sent from Discord, don't relay back
|
||||
const trimmed = umText.trim();
|
||||
const sentAt = recentDiscordSentTexts.get(trimmed);
|
||||
if (sentAt && (Date.now() - sentAt) < 60_000) {
|
||||
recentDiscordSentTexts.delete(trimmed);
|
||||
logToFile(`[USER-MSG] skipped echo relay (Discord origin, ${Math.round((Date.now()-sentAt)/1000)}s ago)`);
|
||||
} else if (umText.length > 2) {
|
||||
const truncated = umText.length > 800
|
||||
? umText.substring(0, 800) + '\n\n_(이하 생략)_'
|
||||
: umText;
|
||||
|
||||
Reference in New Issue
Block a user