conductor-oss 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +1 -1
- package/node_modules/@conductor-oss/core/dist/__tests__/board-watcher-support-files.test.js +20 -2
- package/node_modules/@conductor-oss/core/dist/__tests__/board-watcher-support-files.test.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/__tests__/project-paths.test.d.ts +2 -0
- package/node_modules/@conductor-oss/core/dist/__tests__/project-paths.test.d.ts.map +1 -0
- package/node_modules/@conductor-oss/core/dist/__tests__/project-paths.test.js +48 -0
- package/node_modules/@conductor-oss/core/dist/__tests__/project-paths.test.js.map +1 -0
- package/node_modules/@conductor-oss/core/dist/board-diagnostics.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/board-diagnostics.js +12 -2
- package/node_modules/@conductor-oss/core/dist/board-diagnostics.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/board-watcher.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/board-watcher.js +18 -5
- package/node_modules/@conductor-oss/core/dist/board-watcher.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/config.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/config.js +2 -1
- package/node_modules/@conductor-oss/core/dist/config.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/index.d.ts +1 -0
- package/node_modules/@conductor-oss/core/dist/index.d.ts.map +1 -1
- package/node_modules/@conductor-oss/core/dist/index.js +1 -0
- package/node_modules/@conductor-oss/core/dist/index.js.map +1 -1
- package/node_modules/@conductor-oss/core/dist/project-paths.d.ts +2 -0
- package/node_modules/@conductor-oss/core/dist/project-paths.d.ts.map +1 -0
- package/node_modules/@conductor-oss/core/dist/project-paths.js +67 -0
- package/node_modules/@conductor-oss/core/dist/project-paths.js.map +1 -0
- package/node_modules/@conductor-oss/core/package.json +1 -1
- package/node_modules/@conductor-oss/plugin-agent-amp/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-amp/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-ccr/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-ccr/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-claude-code/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-claude-code/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-codex/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-codex/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-cursor-cli/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-cursor-cli/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-droid/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-droid/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-gemini/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-gemini/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-github-copilot/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-github-copilot/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-opencode/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-opencode/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-agent-qwen-code/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-agent-qwen-code/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-mcp-server/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-mcp-server/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-notifier-desktop/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-desktop/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-notifier-discord/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-notifier-discord/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-runtime-tmux/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-runtime-tmux/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-scm-github/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-scm-github/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-terminal-web/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-terminal-web/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-tracker-github/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-tracker-github/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-webhook/package.json +2 -2
- package/node_modules/@conductor-oss/plugin-workspace-worktree/dist/index.js +1 -1
- package/node_modules/@conductor-oss/plugin-workspace-worktree/package.json +2 -2
- package/package.json +21 -21
- package/web/.next/standalone/packages/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/packages/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_not-found.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/_not-found.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/boards/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/preferences/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js +2 -2
- package/web/.next/standalone/packages/web/.next/server/app/api/repositories/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/spawn/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/api/workspaces/route.js.nft.json +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/app/index.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/1bc17_next_dist_esm_build_templates_app-route_34b04c2b.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/1bc17_next_dist_esm_build_templates_app-route_b41c4976.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__005aa909._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__03ff76ee._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__07ec6d5c._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0a0f0f01._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0ad3545b._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__0e59a166._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__13ad088c._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__14b1d4a3._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__6b396859._.js → [root-of-the-server]__1bc4f8f5._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__1f626a16._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2062aaab._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__206c3d8a._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__2556a816._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__3fde7043._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__44606e04._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__48875cbb._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4ac9d639._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4c3fb752._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__4dab6a6a._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__8ca91fef._.js → [root-of-the-server]__53970b23._.js} +2 -2
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__544326ac._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54a218f0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__54a76cd2._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5661ca72._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5cd49624._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5d124f64._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__5e0533de._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__62608541._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6d62709d._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6f6826fa._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__749331b0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__778e46a1._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__3319a78c._.js → [root-of-the-server]__7e505454._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__7e6ea46e._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__84362910._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__848eb266._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8596d782._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__881858fa._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__885e3a00._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__8c519453._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__96633022._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__98697e45._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__49d4f276._.js → [root-of-the-server]__9b62b450._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__9f36b7ec._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__a44f91a4._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__afa79f55._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b057f7b2._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b091b8bc._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/{[root-of-the-server]__53306f53._.js → [root-of-the-server]__b3f4ff98._.js} +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__b59abfbd._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__bea07e07._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c8618cb1._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__caf8e7cb._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cb112606._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cc74ea40._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cd3692a0._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__cf3cdecd._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d09e7a99._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d538c110._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__d93447b9._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__dda8eac1._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e113f6df._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e2573a77._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e308bb89._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__e4976f6d._.js +3 -0
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ef773ea6._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f0d15920._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f47a2a9e._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f48eb2d4._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__f6a8bbd9._.js +12 -12
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__faceea9b._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__fb6ab669._.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_core_dist_index_cdd30418.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-amp_dist_index_bf3d8239.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-ccr_dist_index_69cbf726.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-claude-code_dist_index_31314e43.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-cursor-cli_dist_index_8d5cc426.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-droid_dist_index_f731227a.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-gemini_dist_index_b2d219e8.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-github-copilot_dist_index_9f80cb45.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-opencode_dist_index_7c7015da.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_agent-qwen-code_dist_index_46dd8653.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-desktop_dist_index_ef3473f0.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_notifier-discord_dist_index_34257226.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_scm-github_dist_index_3b5a621e.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_terminal-web_dist_index_1e0706d3.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/packages_plugins_tracker-github_dist_index_2d7af62f.js +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/404.html +1 -1
- package/web/.next/standalone/packages/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/packages/web/src/app/api/preferences/route.ts +2 -1
- package/web/.next/standalone/packages/web/src/app/api/repositories/route.ts +2 -1
- package/web/.next/standalone/packages/web/src/app/api/spawn/route.ts +2 -1
- package/web/.next/standalone/packages/web/src/app/api/workspaces/route.ts +2 -1
- package/web/.next/standalone/packages/web/src/lib/projectConfigSync.ts +57 -9
- package/web/.next/standalone/packages/web/tsconfig.tsbuildinfo +1 -1
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__22609b55._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__6bc94363._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__acd4519a._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__c8e31ad0._.js +0 -3
- package/web/.next/standalone/packages/web/.next/server/chunks/[root-of-the-server]__ee0dea96._.js +0 -3
- /package/web/.next/standalone/packages/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_buildManifest.js +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/standalone/packages/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_ssgManifest.js +0 -0
- /package/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_buildManifest.js +0 -0
- /package/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{D95FTb8SiR6uFzjCQiKtd → 2lp61OU9Asm88Hx_JCL5e}/_ssgManifest.js +0 -0
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import test from "node:test";
|
|
2
2
|
import assert from "node:assert/strict";
|
|
3
|
-
import { existsSync, mkdtempSync, readFileSync, rmSync } from "node:fs";
|
|
3
|
+
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, symlinkSync, writeFileSync } from "node:fs";
|
|
4
4
|
import { tmpdir } from "node:os";
|
|
5
5
|
import { join } from "node:path";
|
|
6
|
-
import { syncWorkspaceSupportFiles } from "../board-watcher.js";
|
|
6
|
+
import { discoverBoards, syncWorkspaceSupportFiles } from "../board-watcher.js";
|
|
7
7
|
function createTempDir(prefix) {
|
|
8
8
|
return mkdtempSync(join(tmpdir(), prefix));
|
|
9
9
|
}
|
|
@@ -101,4 +101,22 @@ test("syncWorkspaceSupportFiles writes placeholder project tags before first pro
|
|
|
101
101
|
rmSync(workspacePath, { recursive: true, force: true });
|
|
102
102
|
}
|
|
103
103
|
});
|
|
104
|
+
test("discoverBoards deduplicates canonical and symlinked board paths", () => {
|
|
105
|
+
const workspacePath = createTempDir("conductor-board-dedupe-workspace-");
|
|
106
|
+
const aliasRoot = createTempDir("conductor-board-dedupe-alias-");
|
|
107
|
+
const aliasWorkspacePath = join(aliasRoot, "workspace-link");
|
|
108
|
+
const projectPath = join(workspacePath, "projects", "demo");
|
|
109
|
+
try {
|
|
110
|
+
symlinkSync(workspacePath, aliasWorkspacePath);
|
|
111
|
+
mkdirSync(projectPath, { recursive: true });
|
|
112
|
+
writeFileSync(join(projectPath, "CONDUCTOR.md"), "# Demo Board\n\n## Inbox\n", { encoding: "utf8", flag: "w" });
|
|
113
|
+
const config = createConfig(workspacePath, projectPath);
|
|
114
|
+
const boards = discoverBoards(aliasWorkspacePath, config);
|
|
115
|
+
assert.equal(boards.length, 1);
|
|
116
|
+
}
|
|
117
|
+
finally {
|
|
118
|
+
rmSync(aliasRoot, { recursive: true, force: true });
|
|
119
|
+
rmSync(workspacePath, { recursive: true, force: true });
|
|
120
|
+
}
|
|
121
|
+
});
|
|
104
122
|
//# sourceMappingURL=board-watcher-support-files.test.js.map
|
package/node_modules/@conductor-oss/core/dist/__tests__/board-watcher-support-files.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-watcher-support-files.test.js","sourceRoot":"","sources":["../../src/__tests__/board-watcher-support-files.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"board-watcher-support-files.test.js","sourceRoot":"","sources":["../../src/__tests__/board-watcher-support-files.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-paths.test.d.ts","sourceRoot":"","sources":["../../src/__tests__/project-paths.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import test from "node:test";
|
|
2
|
+
import assert from "node:assert/strict";
|
|
3
|
+
import { mkdirSync, mkdtempSync, realpathSync, rmSync, writeFileSync } from "node:fs";
|
|
4
|
+
import { tmpdir } from "node:os";
|
|
5
|
+
import { join } from "node:path";
|
|
6
|
+
import { validateConfig } from "../config.js";
|
|
7
|
+
import { resolveConfiguredProjectPath } from "../project-paths.js";
|
|
8
|
+
function createTempDir(prefix) {
|
|
9
|
+
return mkdtempSync(join(tmpdir(), prefix));
|
|
10
|
+
}
|
|
11
|
+
test("resolveConfiguredProjectPath heals legacy markdown-file project paths", () => {
|
|
12
|
+
const sandbox = createTempDir("conductor-project-paths-");
|
|
13
|
+
try {
|
|
14
|
+
const projectsDir = join(sandbox, "projects");
|
|
15
|
+
const repoDir = join(projectsDir, "aba-copilot");
|
|
16
|
+
const markdownPath = join(projectsDir, "ABA-Copilot.md");
|
|
17
|
+
mkdirSync(repoDir, { recursive: true });
|
|
18
|
+
writeFileSync(markdownPath, "# legacy board pointer\n", "utf8");
|
|
19
|
+
const resolved = resolveConfiguredProjectPath(markdownPath, "your-org/aba-copilot");
|
|
20
|
+
assert.equal(resolved, realpathSync.native(repoDir));
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
rmSync(sandbox, { recursive: true, force: true });
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
test("validateConfig normalizes project paths to the actual repository directory", () => {
|
|
27
|
+
const sandbox = createTempDir("conductor-config-paths-");
|
|
28
|
+
try {
|
|
29
|
+
const projectsDir = join(sandbox, "projects");
|
|
30
|
+
const repoDir = join(projectsDir, "aba-copilot");
|
|
31
|
+
const markdownPath = join(projectsDir, "ABA-Copilot.md");
|
|
32
|
+
mkdirSync(repoDir, { recursive: true });
|
|
33
|
+
writeFileSync(markdownPath, "# legacy board pointer\n", "utf8");
|
|
34
|
+
const config = validateConfig({
|
|
35
|
+
projects: {
|
|
36
|
+
"aba-copilot": {
|
|
37
|
+
repo: "your-org/aba-copilot",
|
|
38
|
+
path: markdownPath,
|
|
39
|
+
},
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
assert.equal(config.projects["aba-copilot"]?.path, realpathSync.native(repoDir));
|
|
43
|
+
}
|
|
44
|
+
finally {
|
|
45
|
+
rmSync(sandbox, { recursive: true, force: true });
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
//# sourceMappingURL=project-paths.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"project-paths.test.js","sourceRoot":"","sources":["../../src/__tests__/project-paths.test.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACtF,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC;AAEnE,SAAS,aAAa,CAAC,MAAc;IACnC,OAAO,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7C,CAAC;AAED,IAAI,CAAC,uEAAuE,EAAE,GAAG,EAAE;IACjF,MAAM,OAAO,GAAG,aAAa,CAAC,0BAA0B,CAAC,CAAC;IAE1D,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAEzD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,YAAY,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAEhE,MAAM,QAAQ,GAAG,4BAA4B,CAAC,YAAY,EAAE,sBAAsB,CAAC,CAAC;QACpF,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACvD,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC,CAAC;AAEH,IAAI,CAAC,4EAA4E,EAAE,GAAG,EAAE;IACtF,MAAM,OAAO,GAAG,aAAa,CAAC,yBAAyB,CAAC,CAAC;IAEzD,IAAI,CAAC;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACjD,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,EAAE,gBAAgB,CAAC,CAAC;QAEzD,SAAS,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,aAAa,CAAC,YAAY,EAAE,0BAA0B,EAAE,MAAM,CAAC,CAAC;QAEhE,MAAM,MAAM,GAAG,cAAc,CAAC;YAC5B,QAAQ,EAAE;gBACR,aAAa,EAAE;oBACb,IAAI,EAAE,sBAAsB;oBAC5B,IAAI,EAAE,YAAY;iBACnB;aACF;SACF,CAAC,CAAC;QAEH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,IAAI,EAAE,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IACnF,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACpD,CAAC;AACH,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-diagnostics.d.ts","sourceRoot":"","sources":["../src/board-diagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQ5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,qBAAqB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;
|
|
1
|
+
{"version":3,"file":"board-diagnostics.d.ts","sourceRoot":"","sources":["../src/board-diagnostics.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAQ5F,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,OAAO,GAAG,OAAO,CAAC;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAChC,UAAU,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,YAAY;IAC3B,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC5D,WAAW,EAAE,gBAAgB,EAAE,CAAC;IAChC,qBAAqB,EAAE,KAAK,CAAC;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,aAAa,EAAE,aAAa,EAAE,CAAC;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAuFD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,MAAM,GAChB,QAAQ,CAAC,mBAAmB,CAAC,CAW/B;AAYD,wBAAgB,gBAAgB,CAC9B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,QAAQ,CAAC,mBAAmB,CAAC,EACtC,UAAU,EAAE,GAAG,CAAC,MAAM,CAAC,GACtB,gBAAgB,CAkClB;AAMD,wBAAgB,mBAAmB,CACjC,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,GAChC,IAAI,CAuBN;AAED,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,aAAa,EAAE,CAuB3F;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,gBAAgB,EAAE,GAAG,SAAS,GAAG,MAAM,EAAE,CAOrF;AAED,wBAAgB,mBAAmB,IAAI,QAAQ,CAAC,mBAAmB,CAAC,CAEnE"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { appendFileSync, existsSync, mkdirSync, readFileSync, renameSync, statSync } from "node:fs";
|
|
1
|
+
import { appendFileSync, existsSync, mkdirSync, readFileSync, realpathSync, renameSync, statSync } from "node:fs";
|
|
2
2
|
import { dirname, join } from "node:path";
|
|
3
3
|
import { DEFAULT_COLUMN_ALIASES, parseBoardSections, resolveColumnAliases, resolveColumnsFromBoard, } from "./board-parser.js";
|
|
4
4
|
const LOG_DIR_REL = join("orchestrator", "logs");
|
|
@@ -7,7 +7,17 @@ const DEBUG_LOG = "watcher-debug.log";
|
|
|
7
7
|
const MAX_LOG_BYTES = 1_000_000;
|
|
8
8
|
const LOG_ROTATIONS = 3;
|
|
9
9
|
function normalizePath(pathname) {
|
|
10
|
-
return pathname.replace(/\\/g, "/");
|
|
10
|
+
return canonicalizeExistingPath(pathname).replace(/\\/g, "/");
|
|
11
|
+
}
|
|
12
|
+
function canonicalizeExistingPath(pathname) {
|
|
13
|
+
if (!existsSync(pathname))
|
|
14
|
+
return pathname;
|
|
15
|
+
try {
|
|
16
|
+
return realpathSync.native(pathname);
|
|
17
|
+
}
|
|
18
|
+
catch {
|
|
19
|
+
return pathname;
|
|
20
|
+
}
|
|
11
21
|
}
|
|
12
22
|
function ensureParent(pathname) {
|
|
13
23
|
mkdirSync(dirname(pathname), { recursive: true });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-diagnostics.js","sourceRoot":"","sources":["../src/board-diagnostics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"board-diagnostics.js","sourceRoot":"","sources":["../src/board-diagnostics.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"board-watcher.d.ts","sourceRoot":"","sources":["../src/board-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAIf,MAAM,YAAY,CAAC;AAqBpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAsyCD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,4CAA4C;IAC5C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,+FAA+F;IAC/F,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAgLD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,gCAAqC,GAC7C,IAAI,CAkCN;AAGD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,GAAG,YAAY,CA0iBlF;AAMD,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,kBAAkB,GACpE,MAAM,EAAE,CAuCV;
|
|
1
|
+
{"version":3,"file":"board-watcher.d.ts","sourceRoot":"","sources":["../src/board-watcher.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAOH,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EAIf,MAAM,YAAY,CAAC;AAqBpB,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,kBAAkB,CAAC;IAC3B,cAAc,EAAE,cAAc,CAAC;IAC/B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,sEAAsE;IACtE,eAAe,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,yGAAyG;IACzG,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,kEAAkE;IAClE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4DAA4D;IAC5D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,yDAAyD;IACzD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC1E,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAsyCD,MAAM,WAAW,YAAY;IAC3B,KAAK,IAAI,IAAI,CAAC;IACd,IAAI,IAAI,IAAI,CAAC;IACb,4CAA4C;IAC5C,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7C,+FAA+F;IAC/F,SAAS,IAAI,IAAI,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;CAC/B;AAgLD;;;GAGG;AACH,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,kBAAkB,EAC1B,OAAO,GAAE,gCAAqC,GAC7C,IAAI,CAkCN;AAGD,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,kBAAkB,GAAG,YAAY,CA0iBlF;AAMD,qDAAqD;AACrD,wBAAgB,cAAc,CAC5B,aAAa,EAAE,MAAM,EACrB,kBAAkB,CAAC,EAAE,SAAS,gBAAgB,EAAE,GAAG,kBAAkB,GACpE,MAAM,EAAE,CAuCV;AA4QD,uDAAuD;AACvD,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,MAAM,EAAE,EAChB,MAAM,EAAE,kBAAkB,GACzB,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASrB"}
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
*
|
|
15
15
|
* Board columns: Inbox → Ready to Dispatch → Dispatching → In Progress → Review → Done → Blocked
|
|
16
16
|
*/
|
|
17
|
-
import { readFileSync, writeFileSync, appendFileSync, existsSync, statSync, readdirSync, mkdirSync, watch as fsWatch } from "node:fs";
|
|
17
|
+
import { readFileSync, writeFileSync, appendFileSync, existsSync, realpathSync, statSync, readdirSync, mkdirSync, watch as fsWatch } from "node:fs";
|
|
18
18
|
import { basename, dirname, join, resolve } from "node:path";
|
|
19
19
|
import { createHash, randomBytes } from "node:crypto";
|
|
20
20
|
import { execFile } from "node:child_process";
|
|
@@ -1893,7 +1893,7 @@ export function discoverBoards(workspacePath, boardPathsOrConfig) {
|
|
|
1893
1893
|
const resolvedPattern = resolveBoardPattern(boardPattern);
|
|
1894
1894
|
const matches = resolveBoardPatternToFiles(resolvedPattern, workspacePath, isAbsolutePath(resolvedPattern));
|
|
1895
1895
|
for (const match of matches) {
|
|
1896
|
-
boards.add(match);
|
|
1896
|
+
boards.add(canonicalizeExistingPath(match));
|
|
1897
1897
|
}
|
|
1898
1898
|
}
|
|
1899
1899
|
return [...boards];
|
|
@@ -1911,10 +1911,11 @@ function discoverBoardsLegacy(workspacePath, config) {
|
|
|
1911
1911
|
const addBoard = (path) => {
|
|
1912
1912
|
if (!existsSync(path))
|
|
1913
1913
|
return;
|
|
1914
|
-
|
|
1914
|
+
const canonicalPath = canonicalizeExistingPath(path);
|
|
1915
|
+
if (seen.has(canonicalPath))
|
|
1915
1916
|
return;
|
|
1916
|
-
seen.add(
|
|
1917
|
-
boards.push(
|
|
1917
|
+
seen.add(canonicalPath);
|
|
1918
|
+
boards.push(canonicalPath);
|
|
1918
1919
|
};
|
|
1919
1920
|
// Workspace-level board
|
|
1920
1921
|
addBoard(join(workspacePath, "CONDUCTOR.md"));
|
|
@@ -2000,6 +2001,18 @@ function discoverBoardsLegacy(workspacePath, config) {
|
|
|
2000
2001
|
}
|
|
2001
2002
|
return boards;
|
|
2002
2003
|
}
|
|
2004
|
+
function canonicalizeExistingPath(pathname) {
|
|
2005
|
+
const resolvedPath = resolve(pathname);
|
|
2006
|
+
if (!existsSync(resolvedPath)) {
|
|
2007
|
+
return resolvedPath;
|
|
2008
|
+
}
|
|
2009
|
+
try {
|
|
2010
|
+
return realpathSync.native(resolvedPath);
|
|
2011
|
+
}
|
|
2012
|
+
catch {
|
|
2013
|
+
return resolvedPath;
|
|
2014
|
+
}
|
|
2015
|
+
}
|
|
2003
2016
|
/** Expand ~ to home directory. */
|
|
2004
2017
|
function expandHome(filepath) {
|
|
2005
2018
|
if (!filepath.startsWith("~/")) {
|