spiracha 1.1.1 → 1.1.2
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.
|
@@ -1631,6 +1631,15 @@ var buildBatchExportBaseName = (threads) => {
|
|
|
1631
1631
|
var buildUniqueArchivePath = (exportDir, exportBaseName) => {
|
|
1632
1632
|
return path.join(exportDir, `${exportBaseName}-${randomUUID()}.zip`);
|
|
1633
1633
|
};
|
|
1634
|
+
var buildUniqueBatchEntryBaseName = (baseName, threadId, usedBaseNames) => {
|
|
1635
|
+
if (!usedBaseNames.has(baseName)) {
|
|
1636
|
+
usedBaseNames.add(baseName);
|
|
1637
|
+
return baseName;
|
|
1638
|
+
}
|
|
1639
|
+
const collisionSafeBaseName = `${baseName}-${threadId}`;
|
|
1640
|
+
usedBaseNames.add(collisionSafeBaseName);
|
|
1641
|
+
return collisionSafeBaseName;
|
|
1642
|
+
};
|
|
1634
1643
|
var toDownloadOptions = (input) => {
|
|
1635
1644
|
return {
|
|
1636
1645
|
cwdFilter: null,
|
|
@@ -1829,6 +1838,7 @@ var renderCodexThreadsDownload = async (input) => {
|
|
|
1829
1838
|
const exportBaseName = buildBatchExportBaseName(threads);
|
|
1830
1839
|
const bundleDirectory = await createExportWorkspace(exportDir, exportBaseName);
|
|
1831
1840
|
const zipPath = buildUniqueArchivePath(exportDir, exportBaseName);
|
|
1841
|
+
const usedBatchEntryBaseNames = /* @__PURE__ */ new Set();
|
|
1832
1842
|
logExportEvent("info", "batch_start", {
|
|
1833
1843
|
exportBaseName,
|
|
1834
1844
|
selectedThreadCount: threadIds.length,
|
|
@@ -1838,12 +1848,19 @@ var renderCodexThreadsDownload = async (input) => {
|
|
|
1838
1848
|
try {
|
|
1839
1849
|
for (const entry of browseEntries) {
|
|
1840
1850
|
const rolloutSnapshotBefore = await getRolloutSnapshot(entry.thread.rollout_path);
|
|
1841
|
-
const
|
|
1851
|
+
const singleBaseName = buildExportBaseName(entry.thread);
|
|
1852
|
+
const uniqueBaseName = buildUniqueBatchEntryBaseName(singleBaseName, entry.thread.id, usedBatchEntryBaseNames);
|
|
1853
|
+
const relativeFileName = `${uniqueBaseName}.${input.outputFormat === "md" ? "md" : "txt"}`;
|
|
1842
1854
|
const savedPath = path.join(bundleDirectory, relativeFileName);
|
|
1843
1855
|
const transform = (text) => input.pathDisplaySettings ? applyPathTransforms(text, {
|
|
1844
1856
|
...input.pathDisplaySettings,
|
|
1845
1857
|
projectPath: entry.thread.cwd
|
|
1846
1858
|
}) : text;
|
|
1859
|
+
if (uniqueBaseName !== singleBaseName) logExportEvent("warn", "batch_entry_name_collision", {
|
|
1860
|
+
resolvedFileName: relativeFileName,
|
|
1861
|
+
singleBaseName,
|
|
1862
|
+
threadId: entry.thread.id
|
|
1863
|
+
});
|
|
1847
1864
|
if (!await writeSessionFileExport({
|
|
1848
1865
|
fallbackReason: null,
|
|
1849
1866
|
outputRelativePath: relativeFileName,
|
|
@@ -3498,47 +3498,47 @@ async function getStartManifest(matchedRoutes) {
|
|
|
3498
3498
|
var manifest = {
|
|
3499
3499
|
"0814663c3bdc58135f97d210d145ef0be5ca54ef9a5f1e3030be9b1bfc901e30": {
|
|
3500
3500
|
functionName: "exportThreadFn_createServerFn_handler",
|
|
3501
|
-
importer: () => import("./assets/codex-server-
|
|
3501
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3502
3502
|
},
|
|
3503
3503
|
"164ee82cdd565ed96591a64312f0f7bd961040baf066a89d9f5636330d11360b": {
|
|
3504
3504
|
functionName: "deleteProjectFn_createServerFn_handler",
|
|
3505
|
-
importer: () => import("./assets/codex-server-
|
|
3505
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3506
3506
|
},
|
|
3507
3507
|
"29727b7ad5b8fe42e83817376653e064d9fe8888799f056b2e59296b3396568b": {
|
|
3508
3508
|
functionName: "deleteThreadFn_createServerFn_handler",
|
|
3509
|
-
importer: () => import("./assets/codex-server-
|
|
3509
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3510
3510
|
},
|
|
3511
3511
|
"4712520da0f07bbd1f0907e5a162fe518516ff4caca3fd23876cc65539d87d7a": {
|
|
3512
3512
|
functionName: "getAnalyticsFn_createServerFn_handler",
|
|
3513
|
-
importer: () => import("./assets/codex-server-
|
|
3513
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3514
3514
|
},
|
|
3515
3515
|
"59fb2cb4d60c8e7d47e0afcc914ee6f9d9f4bf076c8e66eab1693066753655b3": {
|
|
3516
3516
|
functionName: "listProjectThreadsFn_createServerFn_handler",
|
|
3517
|
-
importer: () => import("./assets/codex-server-
|
|
3517
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3518
3518
|
},
|
|
3519
3519
|
"5da27045f7e28ded6353bc16aace284af7ef1b4010ef04d0186a6feadb466497": {
|
|
3520
3520
|
functionName: "getThreadTranscriptFn_createServerFn_handler",
|
|
3521
|
-
importer: () => import("./assets/codex-server-
|
|
3521
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3522
3522
|
},
|
|
3523
3523
|
"72991e2b6e0adbf8d63bb8b139dad88a00b77b7030ec28ceac36c3cce7846b4c": {
|
|
3524
3524
|
functionName: "getThreadSnapshotFn_createServerFn_handler",
|
|
3525
|
-
importer: () => import("./assets/codex-server-
|
|
3525
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3526
3526
|
},
|
|
3527
3527
|
"792690638a3b10035a5b7368c3d98bdc70cbfe1e36a4aa5f45b1c49b8b1025b0": {
|
|
3528
3528
|
functionName: "getDashboardSummaryFn_createServerFn_handler",
|
|
3529
|
-
importer: () => import("./assets/codex-server-
|
|
3529
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3530
3530
|
},
|
|
3531
3531
|
"96aa60bf7dd9b5bde415bcf3ad6f6955a975eecd9aa0516cf401cc39bebebe6c": {
|
|
3532
3532
|
functionName: "deleteThreadsFn_createServerFn_handler",
|
|
3533
|
-
importer: () => import("./assets/codex-server-
|
|
3533
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3534
3534
|
},
|
|
3535
3535
|
"b4e15c006e9a277470958bb008f89b5b0acc7256109581de44cf17d587d174a5": {
|
|
3536
3536
|
functionName: "exportThreadsFn_createServerFn_handler",
|
|
3537
|
-
importer: () => import("./assets/codex-server-
|
|
3537
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3538
3538
|
},
|
|
3539
3539
|
"ccefccb816ba13508f23db4e31067b3403e750225257592d3ae11071ffc3fd6f": {
|
|
3540
3540
|
functionName: "listProjectsFn_createServerFn_handler",
|
|
3541
|
-
importer: () => import("./assets/codex-server-
|
|
3541
|
+
importer: () => import("./assets/codex-server-C01sv0JJ.js")
|
|
3542
3542
|
}
|
|
3543
3543
|
};
|
|
3544
3544
|
async function getServerFnById(id, access) {
|
package/package.json
CHANGED
|
@@ -79,6 +79,17 @@ const buildUniqueArchivePath = (exportDir: string, exportBaseName: string) => {
|
|
|
79
79
|
return path.join(exportDir, `${exportBaseName}-${randomUUID()}.zip`);
|
|
80
80
|
};
|
|
81
81
|
|
|
82
|
+
const buildUniqueBatchEntryBaseName = (baseName: string, threadId: string, usedBaseNames: Set<string>): string => {
|
|
83
|
+
if (!usedBaseNames.has(baseName)) {
|
|
84
|
+
usedBaseNames.add(baseName);
|
|
85
|
+
return baseName;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
const collisionSafeBaseName = `${baseName}-${threadId}`;
|
|
89
|
+
usedBaseNames.add(collisionSafeBaseName);
|
|
90
|
+
return collisionSafeBaseName;
|
|
91
|
+
};
|
|
92
|
+
|
|
82
93
|
type RolloutSnapshot = {
|
|
83
94
|
mtimeMs: number;
|
|
84
95
|
sizeBytes: number;
|
|
@@ -340,6 +351,7 @@ export const renderCodexThreadsDownload = async (
|
|
|
340
351
|
const exportBaseName = buildBatchExportBaseName(threads);
|
|
341
352
|
const bundleDirectory = await createExportWorkspace(exportDir, exportBaseName);
|
|
342
353
|
const zipPath = buildUniqueArchivePath(exportDir, exportBaseName);
|
|
354
|
+
const usedBatchEntryBaseNames = new Set<string>();
|
|
343
355
|
|
|
344
356
|
logExportEvent('info', 'batch_start', {
|
|
345
357
|
exportBaseName,
|
|
@@ -352,8 +364,13 @@ export const renderCodexThreadsDownload = async (
|
|
|
352
364
|
for (const entry of browseEntries) {
|
|
353
365
|
const rolloutSnapshotBefore = await getRolloutSnapshot(entry.thread.rollout_path);
|
|
354
366
|
const singleBaseName = buildExportBaseName(entry.thread);
|
|
367
|
+
const uniqueBaseName = buildUniqueBatchEntryBaseName(
|
|
368
|
+
singleBaseName,
|
|
369
|
+
entry.thread.id,
|
|
370
|
+
usedBatchEntryBaseNames,
|
|
371
|
+
);
|
|
355
372
|
const extension = input.outputFormat === 'md' ? 'md' : 'txt';
|
|
356
|
-
const relativeFileName = `${
|
|
373
|
+
const relativeFileName = `${uniqueBaseName}.${extension}`;
|
|
357
374
|
const savedPath = path.join(bundleDirectory, relativeFileName);
|
|
358
375
|
const transform = (text: string) =>
|
|
359
376
|
input.pathDisplaySettings
|
|
@@ -363,6 +380,14 @@ export const renderCodexThreadsDownload = async (
|
|
|
363
380
|
})
|
|
364
381
|
: text;
|
|
365
382
|
|
|
383
|
+
if (uniqueBaseName !== singleBaseName) {
|
|
384
|
+
logExportEvent('warn', 'batch_entry_name_collision', {
|
|
385
|
+
resolvedFileName: relativeFileName,
|
|
386
|
+
singleBaseName,
|
|
387
|
+
threadId: entry.thread.id,
|
|
388
|
+
});
|
|
389
|
+
}
|
|
390
|
+
|
|
366
391
|
const saved = await writeSessionFileExport(
|
|
367
392
|
{
|
|
368
393
|
fallbackReason: null,
|