- Added deduplication logic to prevent recent equivalent cross-team messages from being sent multiple times. - Introduced functions to normalize message content and build deduplication keys. - Updated CrossTeamService and CrossTeamOutbox to utilize deduplication during message sending. - Enhanced tests to verify deduplication behavior and ensure correct message handling in various scenarios.
105 lines
3.4 KiB
JavaScript
105 lines
3.4 KiB
JavaScript
// electron.vite.config.ts
|
|
import { defineConfig, externalizeDepsPlugin } from "electron-vite";
|
|
import react from "@vitejs/plugin-react";
|
|
import { readFileSync } from "fs";
|
|
import { resolve } from "path";
|
|
var __electron_vite_injected_dirname = "/Users/belief/dev/projects/claude/claude_team";
|
|
var pkg = JSON.parse(readFileSync(resolve(__electron_vite_injected_dirname, "package.json"), "utf-8"));
|
|
var prodDeps = Object.keys(pkg.dependencies || {});
|
|
var bundledDeps = prodDeps.filter((d) => d !== "node-pty" && d !== "agent-teams-controller");
|
|
function nativeModuleStub() {
|
|
const STUB_ID = "\0native-stub";
|
|
return {
|
|
name: "native-module-stub",
|
|
resolveId(source) {
|
|
if (source.endsWith(".node")) return STUB_ID;
|
|
return null;
|
|
},
|
|
load(id) {
|
|
if (id === STUB_ID) return "export default {}";
|
|
return null;
|
|
}
|
|
};
|
|
}
|
|
var electron_vite_config_default = defineConfig({
|
|
main: {
|
|
plugins: [
|
|
externalizeDepsPlugin({
|
|
exclude: bundledDeps
|
|
}),
|
|
nativeModuleStub()
|
|
],
|
|
resolve: {
|
|
alias: {
|
|
"@main": resolve(__electron_vite_injected_dirname, "src/main"),
|
|
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
|
|
"@preload": resolve(__electron_vite_injected_dirname, "src/preload")
|
|
}
|
|
},
|
|
build: {
|
|
outDir: "dist-electron/main",
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__electron_vite_injected_dirname, "src/main/index.ts"),
|
|
"team-fs-worker": resolve(__electron_vite_injected_dirname, "src/main/workers/team-fs-worker.ts")
|
|
},
|
|
output: {
|
|
// CJS format so bundled deps can use __dirname/require.
|
|
// Use .cjs extension since package.json has "type": "module".
|
|
format: "cjs",
|
|
entryFileNames: "[name].cjs",
|
|
// Set UV_THREADPOOL_SIZE before any module code runs.
|
|
// Must be in the banner because ESM→CJS hoists imports above top-level code.
|
|
// On Windows, fs.watch({recursive:true}) occupies a UV pool thread per watcher;
|
|
// with 3+ watchers + concurrent fs/DNS/spawn, the default 4 threads deadlock.
|
|
banner: `if(!process.env.UV_THREADPOOL_SIZE){process.env.UV_THREADPOOL_SIZE='24'}`
|
|
}
|
|
}
|
|
}
|
|
},
|
|
preload: {
|
|
plugins: [externalizeDepsPlugin()],
|
|
resolve: {
|
|
alias: {
|
|
"@preload": resolve(__electron_vite_injected_dirname, "src/preload"),
|
|
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
|
|
"@main": resolve(__electron_vite_injected_dirname, "src/main")
|
|
}
|
|
},
|
|
build: {
|
|
outDir: "dist-electron/preload",
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__electron_vite_injected_dirname, "src/preload/index.ts")
|
|
},
|
|
output: {
|
|
format: "cjs",
|
|
entryFileNames: "[name].js"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
renderer: {
|
|
optimizeDeps: {
|
|
include: ["@codemirror/language-data"]
|
|
},
|
|
resolve: {
|
|
alias: {
|
|
"@renderer": resolve(__electron_vite_injected_dirname, "src/renderer"),
|
|
"@shared": resolve(__electron_vite_injected_dirname, "src/shared"),
|
|
"@main": resolve(__electron_vite_injected_dirname, "src/main")
|
|
}
|
|
},
|
|
plugins: [react()],
|
|
build: {
|
|
rollupOptions: {
|
|
input: {
|
|
index: resolve(__electron_vite_injected_dirname, "src/renderer/index.html")
|
|
}
|
|
}
|
|
}
|
|
}
|
|
});
|
|
export {
|
|
electron_vite_config_default as default
|
|
};
|