@thxgg/steward 0.1.17 → 0.1.19

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.
Files changed (124) hide show
  1. package/.env.example +0 -6
  2. package/.output/nitro.json +1 -1
  3. package/.output/public/_nuxt/{BlTKcjLJ.js → BCiXS3ZV.js} +2 -2
  4. package/.output/public/_nuxt/BfUfZSFp.js +60 -0
  5. package/.output/public/_nuxt/{BMdjSp24.js → BfV4oCiT.js} +1 -1
  6. package/.output/public/_nuxt/{BSZqAKg4.js → Bs6UO7IT.js} +1 -1
  7. package/.output/public/_nuxt/C9AsKFSQ.js +1 -0
  8. package/.output/public/_nuxt/{BdjPva1I.js → C9jB6HQI.js} +1 -1
  9. package/.output/public/_nuxt/CCruYste.js +3 -0
  10. package/.output/public/_nuxt/CIIE0-WR.js +1 -0
  11. package/.output/public/_nuxt/{By7gAVcL.js → Cg4hnDua.js} +1 -1
  12. package/.output/public/_nuxt/CwdD8083.js +30 -0
  13. package/.output/public/_nuxt/{4r0X30JV.js → D2RLSKEu.js} +1 -1
  14. package/.output/public/_nuxt/{CbkpNvIu.js → D30YtxUg.js} +1 -1
  15. package/.output/public/_nuxt/{Beeir9iR.js → DEekox9p.js} +1 -1
  16. package/.output/public/_nuxt/{nX8Sf7cz.js → DddVAa3N.js} +1 -1
  17. package/.output/public/_nuxt/{Bh3vsUvl.js → MO41rxll.js} +1 -1
  18. package/.output/public/_nuxt/builds/latest.json +1 -1
  19. package/.output/public/_nuxt/builds/meta/627332c0-2e14-4849-8cac-e350f64ed513.json +1 -0
  20. package/.output/public/_nuxt/entry.Dp3jx0Yw.css +1 -0
  21. package/.output/public/_nuxt/f7vKgp5U.js +1 -0
  22. package/.output/public/_nuxt/xc3v2JZH.js +1 -0
  23. package/.output/server/chunks/_/git-api.mjs +1 -1
  24. package/.output/server/chunks/_/prd-service.mjs +177 -12
  25. package/.output/server/chunks/_/prd-service.mjs.map +1 -1
  26. package/.output/server/chunks/_/repos.mjs +272 -0
  27. package/.output/server/chunks/_/repos.mjs.map +1 -0
  28. package/.output/server/chunks/_/task-graph.mjs +19 -16
  29. package/.output/server/chunks/_/task-graph.mjs.map +1 -1
  30. package/.output/server/chunks/_/watcher.mjs +11 -35
  31. package/.output/server/chunks/_/watcher.mjs.map +1 -1
  32. package/.output/server/chunks/build/{Detail-MGwP_u2d.mjs → Detail-BcQGdJY5.mjs} +112 -46
  33. package/.output/server/chunks/build/Detail-BcQGdJY5.mjs.map +1 -0
  34. package/.output/server/chunks/build/{_prd_-C-Aj4fVa.mjs → _prd_-CD_Bds_B.mjs} +80 -7
  35. package/.output/server/chunks/build/_prd_-CD_Bds_B.mjs.map +1 -0
  36. package/.output/server/chunks/build/client.precomputed.mjs +1 -1
  37. package/.output/server/chunks/build/{default-Cao5eO80.mjs → default-BKKgG7HJ.mjs} +220 -24
  38. package/.output/server/chunks/build/default-BKKgG7HJ.mjs.map +1 -0
  39. package/.output/server/chunks/build/error-404-Bf6kdO80.mjs +1 -1
  40. package/.output/server/chunks/build/error-500-D_bcARXN.mjs +1 -1
  41. package/.output/server/chunks/build/{index-ljj9uTXI.mjs → index-DE1tjHAd.mjs} +3 -4
  42. package/.output/server/chunks/build/index-DE1tjHAd.mjs.map +1 -0
  43. package/.output/server/chunks/build/nuxt-link-SvT1nf8Z.mjs +1 -1
  44. package/.output/server/chunks/build/{repo-graph-EuhMeFt7.mjs → repo-graph-CBfhpnd5.mjs} +25 -12
  45. package/.output/server/chunks/build/repo-graph-CBfhpnd5.mjs.map +1 -0
  46. package/.output/server/chunks/build/server.mjs +14 -14
  47. package/.output/server/chunks/build/styles.mjs +2 -2
  48. package/.output/server/chunks/build/{usePrd-f7ylhIqs.mjs → usePrd-hXZOmvAv.mjs} +113 -9
  49. package/.output/server/chunks/build/usePrd-hXZOmvAv.mjs.map +1 -0
  50. package/.output/server/chunks/nitro/nitro.mjs +1051 -1365
  51. package/.output/server/chunks/nitro/nitro.mjs.map +1 -1
  52. package/.output/server/chunks/routes/api/browse.get.mjs +24 -6
  53. package/.output/server/chunks/routes/api/browse.get.mjs.map +1 -1
  54. package/.output/server/chunks/routes/api/index.get.mjs +3 -2
  55. package/.output/server/chunks/routes/api/index.get.mjs.map +1 -1
  56. package/.output/server/chunks/routes/api/index.post.mjs +22 -8
  57. package/.output/server/chunks/routes/api/index.post.mjs.map +1 -1
  58. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs +20 -11
  59. package/.output/server/chunks/routes/api/repos/_repoId/git/commits.get.mjs.map +1 -1
  60. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs +3 -2
  61. package/.output/server/chunks/routes/api/repos/_repoId/git/diff.get.mjs.map +1 -1
  62. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs +3 -2
  63. package/.output/server/chunks/routes/api/repos/_repoId/git/file-content.get.mjs.map +1 -1
  64. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs +3 -2
  65. package/.output/server/chunks/routes/api/repos/_repoId/git/file-diff.get.mjs.map +1 -1
  66. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs +27 -3
  67. package/.output/server/chunks/routes/api/repos/_repoId/graph.get.mjs.map +1 -1
  68. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs +93 -0
  69. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/archive.post.mjs.map +1 -0
  70. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs +3 -2
  71. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/graph.get.mjs.map +1 -1
  72. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs +4 -3
  73. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/progress.get.mjs.map +1 -1
  74. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs +4 -3
  75. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks/_taskId/commits.get.mjs.map +1 -1
  76. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs +4 -3
  77. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug/tasks.get.mjs.map +1 -1
  78. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs +3 -2
  79. package/.output/server/chunks/routes/api/repos/_repoId/prd/_prdSlug_.get.mjs.map +1 -1
  80. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs +27 -3
  81. package/.output/server/chunks/routes/api/repos/_repoId/prds.get.mjs.map +1 -1
  82. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs +3 -2
  83. package/.output/server/chunks/routes/api/repos/_repoId/refresh-git-repos.post.mjs.map +1 -1
  84. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs +3 -2
  85. package/.output/server/chunks/routes/api/repos/_repoId_.delete.mjs.map +1 -1
  86. package/.output/server/chunks/routes/api/runtime.get.mjs +2 -2
  87. package/.output/server/chunks/routes/api/state-migration/status.get.mjs +21 -0
  88. package/.output/server/chunks/routes/api/state-migration/status.get.mjs.map +1 -0
  89. package/.output/server/chunks/routes/api/watch.get.mjs +3 -2
  90. package/.output/server/chunks/routes/api/watch.get.mjs.map +1 -1
  91. package/.output/server/chunks/routes/renderer.mjs +1 -1
  92. package/.output/server/index.mjs +2 -2
  93. package/.output/server/package.json +1 -1
  94. package/README.md +5 -7
  95. package/dist/host/src/api/repos.js +0 -2
  96. package/dist/host/src/api/state.js +1 -7
  97. package/dist/host/src/index.js +2 -7
  98. package/dist/host/src/ui.js +2 -7
  99. package/dist/server/utils/db.js +15 -0
  100. package/dist/server/utils/prd-archive.js +53 -0
  101. package/dist/server/utils/prd-service.js +27 -11
  102. package/dist/server/utils/prd-state.js +11 -122
  103. package/dist/server/utils/repos.js +14 -4
  104. package/dist/server/utils/state-migration.js +225 -0
  105. package/dist/server/utils/state-schema.js +181 -4
  106. package/dist/server/utils/task-graph.js +21 -14
  107. package/package.json +1 -1
  108. package/.output/public/_nuxt/CbJfCtEa.js +0 -1
  109. package/.output/public/_nuxt/CmhLcqDu.js +0 -1
  110. package/.output/public/_nuxt/DC6iPLz1.js +0 -30
  111. package/.output/public/_nuxt/DD--ojY9.js +0 -3
  112. package/.output/public/_nuxt/DhKWRjCh.js +0 -60
  113. package/.output/public/_nuxt/builds/meta/f3f42dbd-d501-442b-871c-3d06157e7aa1.json +0 -1
  114. package/.output/public/_nuxt/c1sXju8w.js +0 -1
  115. package/.output/public/_nuxt/eGCjCghR.js +0 -1
  116. package/.output/public/_nuxt/entry.LcDOtJnR.css +0 -1
  117. package/.output/server/chunks/build/Detail-MGwP_u2d.mjs.map +0 -1
  118. package/.output/server/chunks/build/_prd_-C-Aj4fVa.mjs.map +0 -1
  119. package/.output/server/chunks/build/default-Cao5eO80.mjs.map +0 -1
  120. package/.output/server/chunks/build/index-ByZO4Bvq.mjs +0 -76
  121. package/.output/server/chunks/build/index-ByZO4Bvq.mjs.map +0 -1
  122. package/.output/server/chunks/build/index-ljj9uTXI.mjs.map +0 -1
  123. package/.output/server/chunks/build/repo-graph-EuhMeFt7.mjs.map +0 -1
  124. package/.output/server/chunks/build/usePrd-f7ylhIqs.mjs.map +0 -1
@@ -0,0 +1,272 @@
1
+ import process from 'node:process';globalThis._importMeta_=globalThis._importMeta_||{url:"file:///_entry.js",env:process.env};import { promises, existsSync } from 'node:fs';
2
+ import { resolve, isAbsolute, join, basename, relative, dirname } from 'node:path';
3
+ import { randomUUID } from 'node:crypto';
4
+ import { fileURLToPath } from 'node:url';
5
+ import { b as dbRun, h as dbAll, e as dbGet } from '../nitro/nitro.mjs';
6
+
7
+ function findPackageRoot(startDir) {
8
+ let currentDir = startDir;
9
+ while (true) {
10
+ if (existsSync(join(currentDir, "package.json"))) {
11
+ return currentDir;
12
+ }
13
+ const parentDir = dirname(currentDir);
14
+ if (parentDir === currentDir) {
15
+ return startDir;
16
+ }
17
+ currentDir = parentDir;
18
+ }
19
+ }
20
+ function normalizePathSlashes(path) {
21
+ return path.replaceAll("\\", "/");
22
+ }
23
+ function isPathWithin(basePath, candidatePath) {
24
+ const relativePath = relative(resolve(basePath), resolve(candidatePath));
25
+ return relativePath === "" || !relativePath.startsWith("..") && !isAbsolute(relativePath);
26
+ }
27
+ const PACKAGE_ROOT = findPackageRoot(dirname(fileURLToPath(globalThis._importMeta_.url)));
28
+ const LEGACY_REPOS_FILE = join(PACKAGE_ROOT, "server", "data", "repos.json");
29
+ let legacyImportPromise = null;
30
+ function serializeGitRepos(gitRepos) {
31
+ return gitRepos && gitRepos.length > 0 ? JSON.stringify(gitRepos) : null;
32
+ }
33
+ function parseGitRepos(repoPath, gitReposJson) {
34
+ if (!gitReposJson) {
35
+ return void 0;
36
+ }
37
+ try {
38
+ const parsed = JSON.parse(gitReposJson);
39
+ if (!Array.isArray(parsed)) {
40
+ return void 0;
41
+ }
42
+ const repoRoot = resolve(repoPath);
43
+ const validRepos = /* @__PURE__ */ new Map();
44
+ for (const item of parsed) {
45
+ if (!item || typeof item !== "object") {
46
+ continue;
47
+ }
48
+ const relativePath = item.relativePath;
49
+ const name = item.name;
50
+ if (!relativePath || !name) {
51
+ continue;
52
+ }
53
+ const normalizedRelativePath = normalizePathSlashes(relativePath).replace(/^\.\//, "");
54
+ if (!normalizedRelativePath || normalizedRelativePath === ".") {
55
+ continue;
56
+ }
57
+ const absolutePath = resolve(repoRoot, normalizedRelativePath);
58
+ if (!isPathWithin(repoRoot, absolutePath)) {
59
+ continue;
60
+ }
61
+ validRepos.set(normalizedRelativePath, {
62
+ relativePath: normalizedRelativePath,
63
+ absolutePath,
64
+ name
65
+ });
66
+ }
67
+ return validRepos.size > 0 ? Array.from(validRepos.values()) : void 0;
68
+ } catch {
69
+ return void 0;
70
+ }
71
+ }
72
+ function rowToRepo(row) {
73
+ const gitRepos = parseGitRepos(row.path, row.git_repos_json);
74
+ return {
75
+ id: row.id,
76
+ name: row.name,
77
+ path: row.path,
78
+ addedAt: row.added_at,
79
+ ...gitRepos && { gitRepos }
80
+ };
81
+ }
82
+ function isLegacyRepoConfig(value) {
83
+ if (!value || typeof value !== "object") {
84
+ return false;
85
+ }
86
+ const repo = value;
87
+ return typeof repo.id === "string" && typeof repo.name === "string" && typeof repo.path === "string" && typeof repo.addedAt === "string";
88
+ }
89
+ async function importLegacyReposIfNeeded() {
90
+ if (legacyImportPromise) {
91
+ return legacyImportPromise;
92
+ }
93
+ legacyImportPromise = (async () => {
94
+ var _a;
95
+ const row = await dbGet("SELECT COUNT(*) as count FROM repos");
96
+ if (((_a = row == null ? void 0 : row.count) != null ? _a : 0) > 0) {
97
+ return;
98
+ }
99
+ let legacyRepos;
100
+ try {
101
+ const content = await promises.readFile(LEGACY_REPOS_FILE, "utf-8");
102
+ legacyRepos = JSON.parse(content);
103
+ } catch {
104
+ return;
105
+ }
106
+ if (!Array.isArray(legacyRepos) || legacyRepos.length === 0) {
107
+ return;
108
+ }
109
+ for (const candidate of legacyRepos) {
110
+ if (!isLegacyRepoConfig(candidate)) {
111
+ continue;
112
+ }
113
+ const repo = candidate;
114
+ await dbRun(
115
+ `
116
+ INSERT INTO repos (id, name, path, added_at, git_repos_json)
117
+ VALUES (?, ?, ?, ?, ?)
118
+ ON CONFLICT(id) DO UPDATE SET
119
+ name = excluded.name,
120
+ path = excluded.path,
121
+ added_at = excluded.added_at,
122
+ git_repos_json = excluded.git_repos_json
123
+ `,
124
+ [repo.id, repo.name, repo.path, repo.addedAt, serializeGitRepos(repo.gitRepos)]
125
+ );
126
+ }
127
+ try {
128
+ await promises.unlink(LEGACY_REPOS_FILE);
129
+ } catch {
130
+ }
131
+ })();
132
+ return legacyImportPromise;
133
+ }
134
+ async function getRepos() {
135
+ await importLegacyReposIfNeeded();
136
+ const rows = await dbAll("SELECT id, name, path, added_at, git_repos_json FROM repos ORDER BY added_at ASC");
137
+ return rows.map(rowToRepo);
138
+ }
139
+ async function addRepo(path, name) {
140
+ await importLegacyReposIfNeeded();
141
+ const resolvedPath = resolve(path);
142
+ const existing = await dbGet("SELECT id FROM repos WHERE path = ?", [resolvedPath]);
143
+ if (existing) {
144
+ throw new Error("Repository already added");
145
+ }
146
+ const gitRepos = await discoverGitRepos(resolvedPath);
147
+ const repo = {
148
+ id: randomUUID(),
149
+ name: name || basename(resolvedPath),
150
+ path: resolvedPath,
151
+ addedAt: (/* @__PURE__ */ new Date()).toISOString(),
152
+ ...gitRepos.length > 0 && { gitRepos }
153
+ };
154
+ await dbRun(
155
+ "INSERT INTO repos (id, name, path, added_at, git_repos_json) VALUES (?, ?, ?, ?, ?)",
156
+ [repo.id, repo.name, repo.path, repo.addedAt, serializeGitRepos(repo.gitRepos)]
157
+ );
158
+ return repo;
159
+ }
160
+ async function getRepoById(id) {
161
+ await importLegacyReposIfNeeded();
162
+ const row = await dbGet(
163
+ "SELECT id, name, path, added_at, git_repos_json FROM repos WHERE id = ?",
164
+ [id]
165
+ );
166
+ return row ? rowToRepo(row) : void 0;
167
+ }
168
+ async function updateRepoGitRepos(id, gitRepos) {
169
+ await importLegacyReposIfNeeded();
170
+ const result = await dbRun(
171
+ "UPDATE repos SET git_repos_json = ? WHERE id = ?",
172
+ [serializeGitRepos(gitRepos), id]
173
+ );
174
+ return result.changes > 0;
175
+ }
176
+ async function removeRepo(id) {
177
+ await importLegacyReposIfNeeded();
178
+ const result = await dbRun("DELETE FROM repos WHERE id = ?", [id]);
179
+ return result.changes > 0;
180
+ }
181
+ const IGNORED_DIRS = /* @__PURE__ */ new Set([
182
+ "node_modules",
183
+ ".git",
184
+ "vendor",
185
+ "dist",
186
+ "build",
187
+ ".next",
188
+ ".nuxt",
189
+ "__pycache__",
190
+ ".venv",
191
+ "venv",
192
+ "target",
193
+ // Rust
194
+ "Pods"
195
+ // iOS
196
+ ]);
197
+ async function isGitRepo(dirPath) {
198
+ try {
199
+ const gitPath = join(dirPath, ".git");
200
+ const stats = await promises.stat(gitPath);
201
+ return stats.isDirectory() || stats.isFile();
202
+ } catch {
203
+ return false;
204
+ }
205
+ }
206
+ async function discoverGitRepos(basePath, maxDepth = 4) {
207
+ const resolvedBase = resolve(basePath);
208
+ if (await isGitRepo(resolvedBase)) {
209
+ return [];
210
+ }
211
+ const discovered = [];
212
+ async function scanDirectory(dirPath, currentDepth) {
213
+ if (currentDepth > maxDepth) return;
214
+ try {
215
+ const entries = await promises.readdir(dirPath, { withFileTypes: true });
216
+ for (const entry of entries) {
217
+ if (!entry.isDirectory()) continue;
218
+ if (IGNORED_DIRS.has(entry.name)) continue;
219
+ const fullPath = join(dirPath, entry.name);
220
+ if (await isGitRepo(fullPath)) {
221
+ const relativePath = relative(resolvedBase, fullPath);
222
+ discovered.push({
223
+ relativePath,
224
+ absolutePath: fullPath,
225
+ name: entry.name
226
+ });
227
+ continue;
228
+ }
229
+ await scanDirectory(fullPath, currentDepth + 1);
230
+ }
231
+ } catch {
232
+ }
233
+ }
234
+ await scanDirectory(resolvedBase, 1);
235
+ return discovered;
236
+ }
237
+ async function validateRepoPath(path) {
238
+ const trimmedPath = path.trim();
239
+ if (trimmedPath.length === 0) {
240
+ return { valid: false, error: "Path is required" };
241
+ }
242
+ if (trimmedPath.length > 4096) {
243
+ return { valid: false, error: "Path is too long" };
244
+ }
245
+ if (trimmedPath.includes("\0")) {
246
+ return { valid: false, error: "Path contains invalid characters" };
247
+ }
248
+ const isWindowsAbsolutePath = /^[A-Za-z]:[\\/]/.test(trimmedPath);
249
+ if (!isAbsolute(trimmedPath) && !isWindowsAbsolutePath) {
250
+ return { valid: false, error: "Path must be absolute" };
251
+ }
252
+ const resolvedPath = resolve(trimmedPath);
253
+ try {
254
+ const stats = await promises.stat(resolvedPath);
255
+ if (!stats.isDirectory()) {
256
+ return { valid: false, error: "Path is not a directory" };
257
+ }
258
+ const hasPrdDir = await promises.stat(join(resolvedPath, "docs", "prd")).then(() => true).catch(() => false);
259
+ if (!hasPrdDir) {
260
+ return {
261
+ valid: false,
262
+ error: "Directory does not appear to be a valid PRD repository (missing docs/prd directory)"
263
+ };
264
+ }
265
+ return { valid: true };
266
+ } catch {
267
+ return { valid: false, error: "Directory does not exist" };
268
+ }
269
+ }
270
+
271
+ export { getRepoById as a, addRepo as b, discoverGitRepos as d, getRepos as g, removeRepo as r, updateRepoGitRepos as u, validateRepoPath as v };
272
+ //# sourceMappingURL=repos.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"repos.mjs","sources":["../../../../server/utils/repos.ts"],"names":["fs"],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { promises } from 'node:fs';
2
- import { m as migrateLegacyStateForRepo, h as getPrdStateSummaries, i as getPrdState } from '../nitro/nitro.mjs';
3
- import { b as resolvePrdMarkdownPath } from './prd-service.mjs';
2
+ import { g as getPrdStateSummaries, b as getPrdArchiveMap, c as getPrdState, d as resolvePrdMarkdownPath } from './prd-service.mjs';
4
3
 
5
4
  const NODE_SEPARATOR = "::";
6
5
  const MISSING_PREFIX = "missing";
@@ -141,7 +140,6 @@ function buildGraphFromInputs(inputs) {
141
140
  }
142
141
  async function buildPrdGraph(repo, prdSlug) {
143
142
  var _a;
144
- await migrateLegacyStateForRepo(repo);
145
143
  const [state, prdName] = await Promise.all([
146
144
  getPrdState(repo.id, prdSlug),
147
145
  resolvePrdName(repo, prdSlug)
@@ -163,24 +161,29 @@ async function buildPrdGraph(repo, prdSlug) {
163
161
  stats: graph.stats
164
162
  };
165
163
  }
166
- async function buildRepoGraph(repo) {
167
- var _a;
168
- await migrateLegacyStateForRepo(repo);
169
- const summaries = await getPrdStateSummaries(repo.id);
170
- const slugs = [...summaries.keys()].sort((a, b) => a.localeCompare(b));
171
- const inputs = [];
172
- for (const slug of slugs) {
173
- const state = await getPrdState(repo.id, slug);
164
+ async function buildRepoGraph(repo, options = {}) {
165
+ const includeArchived = options.includeArchived === true;
166
+ const [summaries, archiveMap] = await Promise.all([
167
+ getPrdStateSummaries(repo.id),
168
+ getPrdArchiveMap(repo.id)
169
+ ]);
170
+ const slugs = [...summaries.keys()].filter((slug) => includeArchived || !archiveMap.has(slug)).sort((a, b) => a.localeCompare(b));
171
+ const inputs = (await Promise.all(slugs.map(async (slug) => {
172
+ var _a;
173
+ const [state, prdName] = await Promise.all([
174
+ getPrdState(repo.id, slug),
175
+ resolvePrdName(repo, slug)
176
+ ]);
174
177
  const tasks = (_a = state == null ? void 0 : state.tasks) == null ? void 0 : _a.tasks;
175
178
  if (!Array.isArray(tasks)) {
176
- continue;
179
+ return null;
177
180
  }
178
- inputs.push({
181
+ return {
179
182
  prdSlug: slug,
180
- prdName: await resolvePrdName(repo, slug),
183
+ prdName,
181
184
  tasks
182
- });
183
- }
185
+ };
186
+ }))).filter((input) => input !== null);
184
187
  const graph = buildGraphFromInputs(inputs);
185
188
  return {
186
189
  scope: "repo",
@@ -1 +1 @@
1
- {"version":3,"file":"task-graph.mjs","sources":["../../../../server/utils/task-graph.ts"],"names":["fs"],"mappings":"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"}
1
+ {"version":3,"file":"task-graph.mjs","sources":["../../../../server/utils/task-graph.ts"],"names":["fs"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { join, basename, relative, resolve, isAbsolute } from 'node:path';
2
2
  import chokidar from 'chokidar';
3
- import { b as getRepos, m as migrateLegacyStateForRepo, o as emitChange } from '../nitro/nitro.mjs';
3
+ import { f as emitChange } from '../nitro/nitro.mjs';
4
+ import { g as getRepos } from './repos.mjs';
4
5
 
5
6
  let watcher = null;
6
7
  let watchedPaths = [];
@@ -12,24 +13,22 @@ function isPathWithin(basePath, candidatePath) {
12
13
  return relativePath === "" || !relativePath.startsWith("..") && !isAbsolute(relativePath);
13
14
  }
14
15
  function getRepoIdFromPath(filePath, repos) {
16
+ let matchedRepo = null;
15
17
  for (const repo of repos) {
16
- if (isPathWithin(repo.path, filePath)) {
17
- return repo.id;
18
+ if (!isPathWithin(repo.path, filePath)) {
19
+ continue;
20
+ }
21
+ if (!matchedRepo || resolve(repo.path).length > resolve(matchedRepo.path).length) {
22
+ matchedRepo = repo;
18
23
  }
19
24
  }
20
- return null;
25
+ return (matchedRepo == null ? void 0 : matchedRepo.id) || null;
21
26
  }
22
27
  function getCategoryFromPath(filePath) {
23
28
  const normalizedPath = toPosixPath(filePath);
24
29
  if (normalizedPath.includes("/docs/prd/") && normalizedPath.endsWith(".md")) {
25
30
  return "prd";
26
31
  }
27
- if (normalizedPath.includes("/.claude/state/") && normalizedPath.endsWith("tasks.json")) {
28
- return "tasks";
29
- }
30
- if (normalizedPath.includes("/.claude/state/") && normalizedPath.endsWith("progress.json")) {
31
- return "progress";
32
- }
33
32
  return null;
34
33
  }
35
34
  async function initWatcher() {
@@ -40,10 +39,7 @@ async function initWatcher() {
40
39
  if (repos.length === 0) {
41
40
  return;
42
41
  }
43
- watchedPaths = repos.flatMap((repo) => [
44
- join(repo.path, "docs", "prd"),
45
- join(repo.path, ".claude", "state")
46
- ]);
42
+ watchedPaths = repos.map((repo) => join(repo.path, "docs", "prd"));
47
43
  watcher = chokidar.watch(watchedPaths, {
48
44
  ignoreInitial: true,
49
45
  persistent: true,
@@ -52,14 +48,7 @@ async function initWatcher() {
52
48
  stabilityThreshold: 200,
53
49
  pollInterval: 100
54
50
  },
55
- // Allow legacy .claude directory (chokidar ignores dotfiles by default)
56
- ignored: (path) => {
57
- if (path.includes(".claude")) {
58
- return false;
59
- }
60
- const fileName = basename(path);
61
- return fileName.startsWith(".") && fileName !== ".claude";
62
- },
51
+ ignored: (path) => basename(path).startsWith("."),
63
52
  followSymlinks: true
64
53
  });
65
54
  watcher.on("error", (error) => {
@@ -75,19 +64,6 @@ async function initWatcher() {
75
64
  if (!repoId || !category) {
76
65
  return;
77
66
  }
78
- if (category === "tasks" || category === "progress") {
79
- const repo = repos2.find((candidate) => candidate.id === repoId);
80
- if (repo) {
81
- try {
82
- await migrateLegacyStateForRepo(repo, {
83
- cleanupLegacyFiles: false,
84
- minFileAgeMs: 0
85
- });
86
- } catch (error) {
87
- console.warn("[watcher] Failed to sync legacy state:", error);
88
- }
89
- }
90
- }
91
67
  emitChange({
92
68
  type: eventType,
93
69
  path: toPosixPath(filePath),
@@ -1 +1 @@
1
- {"version":3,"file":"watcher.mjs","sources":["../../../../server/utils/watcher.ts"],"names":["repos"],"mappings":"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"}
1
+ {"version":3,"file":"watcher.mjs","sources":["../../../../server/utils/watcher.ts"],"names":["repos"],"mappings":"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"}