From d35a6a0ef366f86aeba28c06f40e44cd29cf1f07 Mon Sep 17 00:00:00 2001 From: haoyuren <13851610112@163.com> Date: Tue, 28 Jul 2026 06:29:04 +0800 Subject: Codex/agent-neutral setup, terminal IME fix, hide own overlay cursor MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Write AGENTS.md (the cross-tool agent-instructions standard) at the project root alongside .claude/CLAUDE.md, generated from one guide; includes an Agent Setup section with the project-specific Codex MCP registration command. AGENTS.md is excluded from Overleaf sync. - MCP server resolves the project directory from its own script location when cwd doesn't contain the state file, so clients that launch MCP servers from a global config (Codex) work without special setup - Terminal: swallow the duplicate compositionend commit when switching input sources mid-composition (xterm finalizes on the keydown and then again on compositionend, sending pinyin text twice) - Don't render our own colored overlay cursor — the native caret already marks our position; overlay cursors are collaborators-only (web parity) Co-Authored-By: Claude Fable 5 --- src/main/fileSyncBridge.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src/main/fileSyncBridge.ts') diff --git a/src/main/fileSyncBridge.ts b/src/main/fileSyncBridge.ts index b7e1979..3072ae6 100644 --- a/src/main/fileSyncBridge.ts +++ b/src/main/fileSyncBridge.ts @@ -207,7 +207,7 @@ export class FileSyncBridge { ignored: [ /(^|[/\\])\../, // dotfiles (also covers .build/ and .claude/) JUNK_EXT_RE, // pure build noise (aux/log/synctex/…) — never project content - /(?:^|[/\\])(?:CLAUDE\.md|\.mcp\.json)$/, // App-generated config files + /(?:^|[/\\])(?:CLAUDE\.md|AGENTS\.md|\.mcp\.json)$/, // App-generated config files /(?:^|[/\\])(?:claude-workspace|__MACOSX)(?:[/\\]|$)/ // scratch space + zip junk ] }) @@ -752,7 +752,7 @@ export class FileSyncBridge { // Skip app-generated config files and scratch space that should not be synced const basename = relPath.split('/').pop() || relPath - if (basename === 'CLAUDE.md' || basename === '.mcp.json') return + if (basename === 'CLAUDE.md' || basename === 'AGENTS.md' || basename === '.mcp.json') return if (relPath.startsWith('claude-workspace/') || relPath === 'claude-workspace') return // Layer 1: Skip if bridge is currently writing this file @@ -1412,7 +1412,7 @@ export class FileSyncBridge { // Skip LaTeX build artifacts, dotfiles, app config files, and scratch space if (this.isCompileArtifact(relPath)) continue if (/(^|[/\\])\./.test(relPath)) continue - if (/(?:^|[/\\])(?:CLAUDE\.md|\.mcp\.json)$/.test(relPath)) continue + if (/(?:^|[/\\])(?:CLAUDE\.md|AGENTS\.md|\.mcp\.json)$/.test(relPath)) continue if (relPath.startsWith('claude-workspace/') || relPath === 'claude-workspace') continue bridgeLog(`[FileSyncBridge] orphaned file found: ${relPath}`) @@ -1433,7 +1433,7 @@ export class FileSyncBridge { // Skip LaTeX build artifacts, dotfiles, app config files, and scratch space if (this.isCompileArtifact(relPath)) return if (/(^|[/\\])\./.test(relPath)) return - if (/(?:^|[/\\])(?:CLAUDE\.md|\.mcp\.json)$/.test(relPath)) return + if (/(?:^|[/\\])(?:CLAUDE\.md|AGENTS\.md|\.mcp\.json)$/.test(relPath)) return if (relPath.startsWith('claude-workspace/') || relPath === 'claude-workspace') return // Debounce 1s to let the tool finish writing -- cgit v1.2.3