@mrpatronz/nexusflow 2.8.0 → 2.8.1
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/README.md +15 -12
- package/dist/agent/orchestrator.d.ts.map +1 -1
- package/dist/agent/orchestrator.js +8 -0
- package/dist/agent/orchestrator.js.map +1 -1
- package/dist/commands/commands.test.js +3 -0
- package/dist/commands/commands.test.js.map +1 -1
- package/dist/commands/doctor.d.ts.map +1 -1
- package/dist/commands/doctor.js +2 -0
- package/dist/commands/doctor.js.map +1 -1
- package/dist/commands/init.d.ts +3 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +9 -1
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/knowledge.d.ts +9 -0
- package/dist/commands/knowledge.d.ts.map +1 -1
- package/dist/commands/knowledge.js +59 -2
- package/dist/commands/knowledge.js.map +1 -1
- package/dist/commands/knowledge.test.js +14 -1
- package/dist/commands/knowledge.test.js.map +1 -1
- package/dist/commands/progress.d.ts +4 -0
- package/dist/commands/progress.d.ts.map +1 -0
- package/dist/commands/progress.js +33 -0
- package/dist/commands/progress.js.map +1 -0
- package/dist/commands/refresh.d.ts +1 -0
- package/dist/commands/refresh.d.ts.map +1 -1
- package/dist/commands/refresh.js +17 -2
- package/dist/commands/refresh.js.map +1 -1
- package/dist/commands/remote.d.ts +4 -0
- package/dist/commands/remote.d.ts.map +1 -0
- package/dist/commands/remote.js +28 -0
- package/dist/commands/remote.js.map +1 -0
- package/dist/commands/status.d.ts.map +1 -1
- package/dist/commands/status.js +14 -1
- package/dist/commands/status.js.map +1 -1
- package/dist/commands/status.test.d.ts +2 -0
- package/dist/commands/status.test.d.ts.map +1 -0
- package/dist/commands/status.test.js +31 -0
- package/dist/commands/status.test.js.map +1 -0
- package/dist/core/analysis-cache.d.ts +13 -3
- package/dist/core/analysis-cache.d.ts.map +1 -1
- package/dist/core/analysis-cache.js +41 -31
- package/dist/core/analysis-cache.js.map +1 -1
- package/dist/core/analysis-cache.test.js +50 -8
- package/dist/core/analysis-cache.test.js.map +1 -1
- package/dist/core/doctor.d.ts.map +1 -1
- package/dist/core/doctor.js +61 -0
- package/dist/core/doctor.js.map +1 -1
- package/dist/core/generation-lock.d.ts +58 -0
- package/dist/core/generation-lock.d.ts.map +1 -0
- package/dist/core/generation-lock.js +233 -0
- package/dist/core/generation-lock.js.map +1 -0
- package/dist/core/generation-lock.test.d.ts +2 -0
- package/dist/core/generation-lock.test.d.ts.map +1 -0
- package/dist/core/generation-lock.test.js +134 -0
- package/dist/core/generation-lock.test.js.map +1 -0
- package/dist/core/isolate.test.js +30 -0
- package/dist/core/isolate.test.js.map +1 -1
- package/dist/core/knowledge.d.ts +20 -0
- package/dist/core/knowledge.d.ts.map +1 -1
- package/dist/core/knowledge.js +184 -36
- package/dist/core/knowledge.js.map +1 -1
- package/dist/core/knowledge.test.js +93 -15
- package/dist/core/knowledge.test.js.map +1 -1
- package/dist/core/progress.d.ts +21 -0
- package/dist/core/progress.d.ts.map +1 -0
- package/dist/core/progress.js +40 -0
- package/dist/core/progress.js.map +1 -0
- package/dist/core/progress.test.d.ts +2 -0
- package/dist/core/progress.test.d.ts.map +1 -0
- package/dist/core/progress.test.js +52 -0
- package/dist/core/progress.test.js.map +1 -0
- package/dist/core/refresh.d.ts +5 -0
- package/dist/core/refresh.d.ts.map +1 -1
- package/dist/core/refresh.js +25 -0
- package/dist/core/refresh.js.map +1 -1
- package/dist/core/refresh.test.js +20 -0
- package/dist/core/refresh.test.js.map +1 -1
- package/dist/core/status.d.ts +2 -0
- package/dist/core/status.d.ts.map +1 -1
- package/dist/core/status.js +6 -1
- package/dist/core/status.js.map +1 -1
- package/dist/core/sync.d.ts.map +1 -1
- package/dist/core/sync.js +22 -1
- package/dist/core/sync.js.map +1 -1
- package/dist/core/sync.test.js +27 -0
- package/dist/core/sync.test.js.map +1 -1
- package/dist/core/workspace-git.d.ts +15 -0
- package/dist/core/workspace-git.d.ts.map +1 -0
- package/dist/core/workspace-git.js +131 -0
- package/dist/core/workspace-git.js.map +1 -0
- package/dist/core/workspace-git.test.d.ts +2 -0
- package/dist/core/workspace-git.test.d.ts.map +1 -0
- package/dist/core/workspace-git.test.js +52 -0
- package/dist/core/workspace-git.test.js.map +1 -0
- package/dist/core/workspace-skills-workflow.integration.test.js +15 -0
- package/dist/core/workspace-skills-workflow.integration.test.js.map +1 -1
- package/dist/core/workspace.create.test.js +5 -2
- package/dist/core/workspace.create.test.js.map +1 -1
- package/dist/core/workspace.d.ts.map +1 -1
- package/dist/core/workspace.js +11 -6
- package/dist/core/workspace.js.map +1 -1
- package/dist/generators/antigravity.d.ts.map +1 -1
- package/dist/generators/antigravity.js +2 -1
- package/dist/generators/antigravity.js.map +1 -1
- package/dist/generators/base.d.ts.map +1 -1
- package/dist/generators/base.js +5 -3
- package/dist/generators/base.js.map +1 -1
- package/dist/generators/claude.d.ts.map +1 -1
- package/dist/generators/claude.js +4 -1
- package/dist/generators/claude.js.map +1 -1
- package/dist/generators/codex.d.ts.map +1 -1
- package/dist/generators/codex.js +2 -1
- package/dist/generators/codex.js.map +1 -1
- package/dist/generators/copilot.d.ts.map +1 -1
- package/dist/generators/copilot.js +4 -3
- package/dist/generators/copilot.js.map +1 -1
- package/dist/generators/cursor.d.ts.map +1 -1
- package/dist/generators/cursor.js +6 -3
- package/dist/generators/cursor.js.map +1 -1
- package/dist/generators/index.d.ts +2 -0
- package/dist/generators/index.d.ts.map +1 -1
- package/dist/generators/index.js +79 -45
- package/dist/generators/index.js.map +1 -1
- package/dist/generators/knowledge-migration.test.d.ts +2 -0
- package/dist/generators/knowledge-migration.test.d.ts.map +1 -0
- package/dist/generators/knowledge-migration.test.js +22 -0
- package/dist/generators/knowledge-migration.test.js.map +1 -0
- package/dist/generators/plan-generator.d.ts.map +1 -1
- package/dist/generators/plan-generator.js +18 -9
- package/dist/generators/plan-generator.js.map +1 -1
- package/dist/generators/plan-generator.test.js +4 -1
- package/dist/generators/plan-generator.test.js.map +1 -1
- package/dist/gui/assets/{AgentsPage-Bfyu13gc.js → AgentsPage-B4fx43rd.js} +1 -1
- package/dist/gui/assets/{DashboardPage-O5wj99kn.js → DashboardPage-DH52G8IG.js} +1 -1
- package/dist/gui/assets/{GettingStartedPage-DDWBueC7.js → GettingStartedPage-BlTrQhvi.js} +1 -1
- package/dist/gui/assets/{ProjectsPage-NHkXrDM2.js → ProjectsPage-BPVSLPXv.js} +1 -1
- package/dist/gui/assets/{ScaffoldRepoInline-Cmqg_s94.js → ScaffoldRepoInline-ywcpq9PX.js} +1 -1
- package/dist/gui/assets/{SettingsPage-Cc77HBp7.js → SettingsPage-RQr8SalV.js} +1 -1
- package/dist/gui/assets/{SkillsPage-D4CVxwrI.js → SkillsPage-CYoSRrwx.js} +1 -1
- package/dist/gui/assets/StartWorkPage-DBKK4lFi.js +1 -0
- package/dist/gui/assets/{StrategiesPage-Dn66xfZN.js → StrategiesPage-C36TZgDX.js} +1 -1
- package/dist/gui/assets/{WorkspacesPage-BgdoM5Hs.js → WorkspacesPage-DxEONvSq.js} +1 -1
- package/dist/gui/assets/{alert-dialog-BYZ7cgWA.js → alert-dialog-CQAX2yRx.js} +1 -1
- package/dist/gui/assets/index-BF6pre6G.css +2 -0
- package/dist/gui/assets/{index-CoNaATPd.js → index-C_rwnBzF.js} +2 -2
- package/dist/gui/assets/{vsc-BTST_4ex.js → vsc-DFh0-53h.js} +1 -1
- package/dist/gui/index.html +2 -2
- package/dist/index.js +48 -4
- package/dist/index.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +19 -8
- package/dist/mcp/tools.js.map +1 -1
- package/dist/mcp/tools.test.js +15 -0
- package/dist/mcp/tools.test.js.map +1 -1
- package/dist/resources/materializer.d.ts.map +1 -1
- package/dist/resources/materializer.js +11 -3
- package/dist/resources/materializer.js.map +1 -1
- package/dist/server.d.ts.map +1 -1
- package/dist/server.js +22 -3
- package/dist/server.js.map +1 -1
- package/dist/server.test.js +25 -0
- package/dist/server.test.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/gui/assets/StartWorkPage-RPZTN3Ui.js +0 -1
- package/dist/gui/assets/index-BmH7a-Qy.css +0 -2
package/dist/core/sync.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAUH,OAAO,KAAK,EAAE,UAAU,EAAoB,MAAM,aAAa,CAAC;AAIhE,sCAAsC;AACtC,MAAM,WAAW,cAAc;IAC7B,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,0BAA0B;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,8BAA8B;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,oEAAoE;IACpE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mFAAmF;IACnF,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC1B;AAED,wDAAwD;AACxD,MAAM,WAAW,UAAU;IACzB,sCAAsC;IACtC,aAAa,EAAE,MAAM,CAAC;IACtB,wCAAwC;IACxC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,mFAAmF;IACnF,WAAW,EAAE,MAAM,CAAC;IACpB,oDAAoD;IACpD,aAAa,EAAE,MAAM,CAAC;IACtB,gFAAgF;IAChF,UAAU,EAAE,MAAM,CAAC;IACnB,+EAA+E;IAC/E,gBAAgB,EAAE,OAAO,CAAC;CAC3B;AAOD;;;;;;;GAOG;AACH,wBAAsB,aAAa,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CA+H9E"}
|
package/dist/core/sync.js
CHANGED
|
@@ -12,6 +12,8 @@ import { recordRepoSync } from './workspace-state.js';
|
|
|
12
12
|
import { getWorkspaceRepos, rebaseRepo } from '../utils/multi-git.js';
|
|
13
13
|
import { analyzeAllReposCached } from '../analyzers/index.js';
|
|
14
14
|
import { generateContextFiles } from '../generators/index.js';
|
|
15
|
+
import { checkGenerationLock } from './generation-lock.js';
|
|
16
|
+
import { refreshWorkspace } from './refresh.js';
|
|
15
17
|
/** A sync status counts as "synced" when the rebase itself landed. */
|
|
16
18
|
function isSynced(status) {
|
|
17
19
|
return status === 'up-to-date' || status === 'rebased' || status === 'stash-conflict';
|
|
@@ -35,6 +37,12 @@ export async function syncWorkspace(workspacePath) {
|
|
|
35
37
|
// worktrees, only those isolated worktrees are synced against their base.
|
|
36
38
|
const hasIsolated = isInPlace(feature) && Boolean(feature.isolatedRepos && Object.keys(feature.isolatedRepos).length > 0);
|
|
37
39
|
if (isInPlace(feature) && !hasIsolated) {
|
|
40
|
+
const freshness = await checkGenerationLock(workspacePath);
|
|
41
|
+
let contextRefreshed = false;
|
|
42
|
+
if (!freshness.fresh) {
|
|
43
|
+
await refreshWorkspace(workspacePath);
|
|
44
|
+
contextRefreshed = true;
|
|
45
|
+
}
|
|
38
46
|
return {
|
|
39
47
|
workspacePath,
|
|
40
48
|
branchName: feature.branchName,
|
|
@@ -47,7 +55,7 @@ export async function syncWorkspace(workspacePath) {
|
|
|
47
55
|
syncedCount: 0,
|
|
48
56
|
conflictCount: 0,
|
|
49
57
|
errorCount: 0,
|
|
50
|
-
contextRefreshed
|
|
58
|
+
contextRefreshed,
|
|
51
59
|
};
|
|
52
60
|
}
|
|
53
61
|
const repos = await getWorkspaceRepos(workspacePath);
|
|
@@ -109,6 +117,19 @@ export async function syncWorkspace(workspacePath) {
|
|
|
109
117
|
// Best-effort regeneration; ignore failures.
|
|
110
118
|
}
|
|
111
119
|
}
|
|
120
|
+
if (!contextRefreshed) {
|
|
121
|
+
try {
|
|
122
|
+
const freshness = await checkGenerationLock(workspacePath);
|
|
123
|
+
if (!freshness.fresh) {
|
|
124
|
+
await refreshWorkspace(workspacePath);
|
|
125
|
+
contextRefreshed = true;
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
// Context reconciliation is best-effort too. A completed rebase must not
|
|
130
|
+
// be reported as a failed sync just because generation remains stale.
|
|
131
|
+
}
|
|
132
|
+
}
|
|
112
133
|
return {
|
|
113
134
|
workspacePath,
|
|
114
135
|
branchName: feature.branchName,
|
package/dist/core/sync.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAElC,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/core/sync.ts"],"names":[],"mappings":"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"}
|
package/dist/core/sync.test.js
CHANGED
|
@@ -5,11 +5,15 @@ import * as workspaceState from './workspace-state.js';
|
|
|
5
5
|
import * as multiGit from '../utils/multi-git.js';
|
|
6
6
|
import * as analyzers from '../analyzers/index.js';
|
|
7
7
|
import * as generators from '../generators/index.js';
|
|
8
|
+
import * as generationLock from './generation-lock.js';
|
|
9
|
+
import * as refresh from './refresh.js';
|
|
8
10
|
vi.mock('./workspace.js');
|
|
9
11
|
vi.mock('./workspace-state.js');
|
|
10
12
|
vi.mock('../utils/multi-git.js');
|
|
11
13
|
vi.mock('../analyzers/index.js');
|
|
12
14
|
vi.mock('../generators/index.js');
|
|
15
|
+
vi.mock('./generation-lock.js');
|
|
16
|
+
vi.mock('./refresh.js');
|
|
13
17
|
const feature = {
|
|
14
18
|
id: 'feat',
|
|
15
19
|
branchName: 'feat',
|
|
@@ -37,6 +41,8 @@ describe('syncWorkspace', () => {
|
|
|
37
41
|
vi.mocked(multiGit.getWorkspaceRepos).mockResolvedValue([wsRepo('a'), wsRepo('b')]);
|
|
38
42
|
vi.mocked(analyzers.analyzeAllReposCached).mockResolvedValue({ analysis: new Map(), analyzed: ['a'], reused: ['b'] });
|
|
39
43
|
vi.mocked(generators.generateContextFiles).mockResolvedValue(undefined);
|
|
44
|
+
vi.mocked(generationLock.checkGenerationLock).mockResolvedValue({ fresh: true, lock: null, drift: [] });
|
|
45
|
+
vi.mocked(refresh.refreshWorkspace).mockResolvedValue({ workspacePath: '/ws', analyzedRepos: [], reusedRepos: [], refreshedHandoff: false });
|
|
40
46
|
});
|
|
41
47
|
it('throws when the workspace manifest is missing', async () => {
|
|
42
48
|
vi.mocked(workspace.loadFeatureConfig).mockResolvedValue(null);
|
|
@@ -89,6 +95,13 @@ describe('syncWorkspace', () => {
|
|
|
89
95
|
expect(analyzers.analyzeAllReposCached).toHaveBeenCalled();
|
|
90
96
|
expect(generators.generateContextFiles).toHaveBeenCalled();
|
|
91
97
|
});
|
|
98
|
+
it('reconciles stale generated views even when repos are already current', async () => {
|
|
99
|
+
vi.mocked(multiGit.rebaseRepo).mockResolvedValue(rebase('up-to-date'));
|
|
100
|
+
vi.mocked(generationLock.checkGenerationLock).mockResolvedValue({ fresh: false, lock: null, drift: [{ kind: 'missing-lock', name: 'nexusflow.lock', message: 'missing' }] });
|
|
101
|
+
const report = await syncWorkspace('/ws');
|
|
102
|
+
expect(refresh.refreshWorkspace).toHaveBeenCalledWith('/ws');
|
|
103
|
+
expect(report.contextRefreshed).toBe(true);
|
|
104
|
+
});
|
|
92
105
|
it('tolerates a generator failure without failing the sync', async () => {
|
|
93
106
|
vi.mocked(multiGit.rebaseRepo).mockResolvedValue(rebase('rebased'));
|
|
94
107
|
vi.mocked(generators.generateContextFiles).mockRejectedValue(new Error('gen boom'));
|
|
@@ -97,5 +110,19 @@ describe('syncWorkspace', () => {
|
|
|
97
110
|
expect(report.contextRefreshed).toBe(false);
|
|
98
111
|
expect(report.syncedCount).toBe(2);
|
|
99
112
|
});
|
|
113
|
+
it('does not fail a completed rebase when stale-context reconciliation also fails', async () => {
|
|
114
|
+
vi.mocked(multiGit.rebaseRepo).mockResolvedValue(rebase('rebased'));
|
|
115
|
+
vi.mocked(generators.generateContextFiles).mockRejectedValue(new Error('gen boom'));
|
|
116
|
+
vi.mocked(generationLock.checkGenerationLock).mockResolvedValue({
|
|
117
|
+
fresh: false,
|
|
118
|
+
lock: null,
|
|
119
|
+
drift: [{ kind: 'missing-lock', name: 'nexusflow.lock', message: 'missing' }],
|
|
120
|
+
});
|
|
121
|
+
vi.mocked(refresh.refreshWorkspace).mockRejectedValue(new Error('refresh boom'));
|
|
122
|
+
const report = await syncWorkspace('/ws');
|
|
123
|
+
expect(report.contextRefreshed).toBe(false);
|
|
124
|
+
expect(report.syncedCount).toBe(2);
|
|
125
|
+
expect(refresh.refreshWorkspace).toHaveBeenCalledWith('/ws');
|
|
126
|
+
});
|
|
100
127
|
});
|
|
101
128
|
//# sourceMappingURL=sync.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/core/sync.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,KAAK,SAAS,MAAM,gBAAgB,CAAC;AAC5C,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,QAAQ,MAAM,uBAAuB,CAAC;AAClD,OAAO,KAAK,SAAS,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,UAAU,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"sync.test.js","sourceRoot":"","sources":["../../src/core/sync.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/** Git history and optional remote synchronization for the workspace artifact repo. */
|
|
2
|
+
export declare function ensureWorkspaceGitRepository(workspacePath: string): Promise<void>;
|
|
3
|
+
export declare function managedWorkspaceArtifacts(workspacePath: string, extra?: string[]): Promise<string[]>;
|
|
4
|
+
export declare function commitWorkspaceArtifacts(workspacePath: string, message: string, extra?: string[]): Promise<{
|
|
5
|
+
committed: boolean;
|
|
6
|
+
sha?: string;
|
|
7
|
+
}>;
|
|
8
|
+
export declare function commitExactWorkspaceArtifacts(workspacePath: string, message: string, relativePaths: string[]): Promise<{
|
|
9
|
+
committed: boolean;
|
|
10
|
+
sha?: string;
|
|
11
|
+
}>;
|
|
12
|
+
export declare function addWorkspaceRemote(workspacePath: string, url: string): Promise<void>;
|
|
13
|
+
export declare function pushWorkspaceArtifacts(workspacePath: string): Promise<void>;
|
|
14
|
+
export declare function pullWorkspaceArtifacts(workspacePath: string): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=workspace-git.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-git.d.ts","sourceRoot":"","sources":["../../src/core/workspace-git.ts"],"names":[],"mappings":"AAAA,uFAAuF;AAiCvF,wBAAsB,4BAA4B,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAavF;AAED,wBAAsB,yBAAyB,CAAC,aAAa,EAAE,MAAM,EAAE,KAAK,GAAE,MAAM,EAAO,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAU9G;AAED,wBAAsB,wBAAwB,CAC5C,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,KAAK,GAAE,MAAM,EAAO,GACnB,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAmB/C;AAED,wBAAsB,6BAA6B,CACjD,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,MAAM,EAAE,GACtB,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAC;IAAC,GAAG,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/C;AAED,wBAAsB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAK1F;AASD,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAIjF;AAED,wBAAsB,sBAAsB,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjF"}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
/** Git history and optional remote synchronization for the workspace artifact repo. */
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
3
|
+
import * as path from 'node:path';
|
|
4
|
+
import { execa } from 'execa';
|
|
5
|
+
import { readGenerationLock } from './generation-lock.js';
|
|
6
|
+
import { acquireLock } from './locks.js';
|
|
7
|
+
const CORE_ARTIFACTS = [
|
|
8
|
+
'.gitignore',
|
|
9
|
+
'AGENTS.md',
|
|
10
|
+
'CLAUDE.md',
|
|
11
|
+
'WORKSPACE.md',
|
|
12
|
+
'nexusflow.json',
|
|
13
|
+
'nexusflow.lock',
|
|
14
|
+
'nexusflow-knowledge.md',
|
|
15
|
+
'nexusflow-plan.md',
|
|
16
|
+
'.nexusflow/resources.json',
|
|
17
|
+
'.nexusflow/resources.lock.json',
|
|
18
|
+
'.vscode/settings.json',
|
|
19
|
+
'.cursor/mcp.json',
|
|
20
|
+
];
|
|
21
|
+
async function exists(workspacePath, relativePath) {
|
|
22
|
+
try {
|
|
23
|
+
await fs.access(path.join(workspacePath, relativePath));
|
|
24
|
+
return true;
|
|
25
|
+
}
|
|
26
|
+
catch {
|
|
27
|
+
return false;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function ensureWorkspaceGitRepository(workspacePath) {
|
|
31
|
+
const probe = await execa('git', ['rev-parse', '--show-toplevel'], { cwd: workspacePath, reject: false });
|
|
32
|
+
if (probe.exitCode !== 0 || path.resolve(probe.stdout.trim()) !== path.resolve(workspacePath)) {
|
|
33
|
+
await execa('git', ['init'], { cwd: workspacePath });
|
|
34
|
+
}
|
|
35
|
+
const name = await execa('git', ['config', '--local', 'user.name'], { cwd: workspacePath, reject: false });
|
|
36
|
+
if (name.exitCode !== 0 || !name.stdout.trim()) {
|
|
37
|
+
await execa('git', ['config', '--local', 'user.name', 'NexusFlow'], { cwd: workspacePath });
|
|
38
|
+
}
|
|
39
|
+
const email = await execa('git', ['config', '--local', 'user.email'], { cwd: workspacePath, reject: false });
|
|
40
|
+
if (email.exitCode !== 0 || !email.stdout.trim()) {
|
|
41
|
+
await execa('git', ['config', '--local', 'user.email', 'nexusflow@local'], { cwd: workspacePath });
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
export async function managedWorkspaceArtifacts(workspacePath, extra = []) {
|
|
45
|
+
const lock = await readGenerationLock(workspacePath);
|
|
46
|
+
const workspaceFile = `${path.basename(workspacePath)}.code-workspace`;
|
|
47
|
+
const candidates = new Set([...CORE_ARTIFACTS, workspaceFile, ...Object.keys(lock?.outputs ?? {}), ...extra]);
|
|
48
|
+
const safe = [...candidates].filter((item) => item && !path.isAbsolute(item) && !item.replace(/\\/g, '/').split('/').includes('..'));
|
|
49
|
+
const present = [];
|
|
50
|
+
for (const item of safe)
|
|
51
|
+
if (await exists(workspacePath, item))
|
|
52
|
+
present.push(item.replace(/\\/g, '/'));
|
|
53
|
+
return present.sort();
|
|
54
|
+
}
|
|
55
|
+
export async function commitWorkspaceArtifacts(workspacePath, message, extra = []) {
|
|
56
|
+
const release = await acquireLock(path.join(workspacePath, '.nexusflow', 'workspace-git.lock'), {
|
|
57
|
+
staleMs: 60_000, timeoutMs: 30_000,
|
|
58
|
+
timeoutMessage: 'Another NexusFlow operation is updating the workspace artifact repository.',
|
|
59
|
+
});
|
|
60
|
+
try {
|
|
61
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
62
|
+
const artifacts = await managedWorkspaceArtifacts(workspacePath, extra);
|
|
63
|
+
if (!artifacts.length)
|
|
64
|
+
return { committed: false };
|
|
65
|
+
await execa('git', ['add', '--', ...artifacts], { cwd: workspacePath });
|
|
66
|
+
const diff = await execa('git', ['diff', '--cached', '--quiet', '--', ...artifacts], { cwd: workspacePath, reject: false });
|
|
67
|
+
if (diff.exitCode === 0)
|
|
68
|
+
return { committed: false };
|
|
69
|
+
if (diff.exitCode !== 1)
|
|
70
|
+
throw new Error('Could not inspect staged workspace artifacts.');
|
|
71
|
+
await execa('git', ['commit', '-m', message, '--', ...artifacts], { cwd: workspacePath });
|
|
72
|
+
const { stdout } = await execa('git', ['rev-parse', 'HEAD'], { cwd: workspacePath });
|
|
73
|
+
return { committed: true, sha: stdout.trim() };
|
|
74
|
+
}
|
|
75
|
+
finally {
|
|
76
|
+
await release();
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
export async function commitExactWorkspaceArtifacts(workspacePath, message, relativePaths) {
|
|
80
|
+
const release = await acquireLock(path.join(workspacePath, '.nexusflow', 'workspace-git.lock'), {
|
|
81
|
+
staleMs: 60_000, timeoutMs: 30_000,
|
|
82
|
+
timeoutMessage: 'Another NexusFlow operation is updating the workspace artifact repository.',
|
|
83
|
+
});
|
|
84
|
+
try {
|
|
85
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
86
|
+
const artifacts = (await managedWorkspaceArtifacts(workspacePath, relativePaths))
|
|
87
|
+
.filter((item) => relativePaths.map((candidate) => candidate.replace(/\\/g, '/')).includes(item));
|
|
88
|
+
if (!artifacts.length)
|
|
89
|
+
return { committed: false };
|
|
90
|
+
await execa('git', ['add', '--', ...artifacts], { cwd: workspacePath });
|
|
91
|
+
const diff = await execa('git', ['diff', '--cached', '--quiet', '--', ...artifacts], { cwd: workspacePath, reject: false });
|
|
92
|
+
if (diff.exitCode === 0)
|
|
93
|
+
return { committed: false };
|
|
94
|
+
if (diff.exitCode !== 1)
|
|
95
|
+
throw new Error('Could not inspect staged workspace artifacts.');
|
|
96
|
+
await execa('git', ['commit', '-m', message, '--', ...artifacts], { cwd: workspacePath });
|
|
97
|
+
const { stdout } = await execa('git', ['rev-parse', 'HEAD'], { cwd: workspacePath });
|
|
98
|
+
return { committed: true, sha: stdout.trim() };
|
|
99
|
+
}
|
|
100
|
+
finally {
|
|
101
|
+
await release();
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
export async function addWorkspaceRemote(workspacePath, url) {
|
|
105
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
106
|
+
const existing = await execa('git', ['remote', 'get-url', 'origin'], { cwd: workspacePath, reject: false });
|
|
107
|
+
if (existing.exitCode === 0)
|
|
108
|
+
throw new Error(`Workspace remote "origin" already exists (${existing.stdout.trim()}).`);
|
|
109
|
+
await execa('git', ['remote', 'add', 'origin', url], { cwd: workspacePath });
|
|
110
|
+
}
|
|
111
|
+
async function currentBranch(workspacePath) {
|
|
112
|
+
const { stdout } = await execa('git', ['branch', '--show-current'], { cwd: workspacePath });
|
|
113
|
+
const branch = stdout.trim();
|
|
114
|
+
if (!branch)
|
|
115
|
+
throw new Error('Workspace artifact repository is in detached HEAD state.');
|
|
116
|
+
return branch;
|
|
117
|
+
}
|
|
118
|
+
export async function pushWorkspaceArtifacts(workspacePath) {
|
|
119
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
120
|
+
const branch = await currentBranch(workspacePath);
|
|
121
|
+
await execa('git', ['push', '-u', 'origin', branch], { cwd: workspacePath });
|
|
122
|
+
}
|
|
123
|
+
export async function pullWorkspaceArtifacts(workspacePath) {
|
|
124
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
125
|
+
const dirty = await execa('git', ['status', '--porcelain'], { cwd: workspacePath });
|
|
126
|
+
if (dirty.stdout.trim())
|
|
127
|
+
throw new Error('Workspace artifact repository has uncommitted changes; commit them before pulling.');
|
|
128
|
+
const branch = await currentBranch(workspacePath);
|
|
129
|
+
await execa('git', ['pull', '--rebase', 'origin', branch], { cwd: workspacePath });
|
|
130
|
+
}
|
|
131
|
+
//# sourceMappingURL=workspace-git.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-git.js","sourceRoot":"","sources":["../../src/core/workspace-git.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-git.test.d.ts","sourceRoot":"","sources":["../../src/core/workspace-git.test.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { afterEach, beforeEach, describe, expect, it } from 'vitest';
|
|
2
|
+
import * as fs from 'node:fs/promises';
|
|
3
|
+
import * as os from 'node:os';
|
|
4
|
+
import * as path from 'node:path';
|
|
5
|
+
import fse from 'fs-extra';
|
|
6
|
+
import { execa } from 'execa';
|
|
7
|
+
import { addWorkspaceRemote, commitWorkspaceArtifacts, commitExactWorkspaceArtifacts, ensureWorkspaceGitRepository, pullWorkspaceArtifacts, pushWorkspaceArtifacts, } from './workspace-git.js';
|
|
8
|
+
describe('workspace artifact git', () => {
|
|
9
|
+
let workspacePath;
|
|
10
|
+
let remotePath;
|
|
11
|
+
beforeEach(async () => {
|
|
12
|
+
workspacePath = await fs.mkdtemp(path.join(os.tmpdir(), 'nexusflow-artifacts-'));
|
|
13
|
+
remotePath = await fs.mkdtemp(path.join(os.tmpdir(), 'nexusflow-artifacts-remote-'));
|
|
14
|
+
await execa('git', ['init', '--bare'], { cwd: remotePath });
|
|
15
|
+
await ensureWorkspaceGitRepository(workspacePath);
|
|
16
|
+
});
|
|
17
|
+
afterEach(async () => {
|
|
18
|
+
await fse.remove(workspacePath);
|
|
19
|
+
await fse.remove(remotePath);
|
|
20
|
+
});
|
|
21
|
+
it('commits only the explicitly owned path', async () => {
|
|
22
|
+
await fs.writeFile(path.join(workspacePath, 'nexusflow-knowledge.md'), '# Knowledge\n');
|
|
23
|
+
await fs.writeFile(path.join(workspacePath, 'unrelated.txt'), 'mine\n');
|
|
24
|
+
const result = await commitExactWorkspaceArtifacts(workspacePath, 'remember', ['nexusflow-knowledge.md']);
|
|
25
|
+
expect(result.committed).toBe(true);
|
|
26
|
+
const tracked = await execa('git', ['ls-files'], { cwd: workspacePath });
|
|
27
|
+
expect(tracked.stdout).toContain('nexusflow-knowledge.md');
|
|
28
|
+
expect(tracked.stdout).not.toContain('unrelated.txt');
|
|
29
|
+
});
|
|
30
|
+
it('leaves unrelated pre-staged files out of automatic refresh commits', async () => {
|
|
31
|
+
await fs.writeFile(path.join(workspacePath, 'AGENTS.md'), '# Context\n');
|
|
32
|
+
await fs.writeFile(path.join(workspacePath, 'unrelated.txt'), 'mine\n');
|
|
33
|
+
await execa('git', ['add', 'unrelated.txt'], { cwd: workspacePath });
|
|
34
|
+
await commitWorkspaceArtifacts(workspacePath, 'refresh');
|
|
35
|
+
const committed = await execa('git', ['show', '--name-only', '--format='], { cwd: workspacePath });
|
|
36
|
+
expect(committed.stdout).toContain('AGENTS.md');
|
|
37
|
+
expect(committed.stdout).not.toContain('unrelated.txt');
|
|
38
|
+
const staged = await execa('git', ['diff', '--cached', '--name-only'], { cwd: workspacePath });
|
|
39
|
+
expect(staged.stdout).toContain('unrelated.txt');
|
|
40
|
+
});
|
|
41
|
+
it('pushes history and refuses to pull over dirty workspace artifacts', async () => {
|
|
42
|
+
await fs.writeFile(path.join(workspacePath, 'nexusflow-knowledge.md'), '# Knowledge\n');
|
|
43
|
+
await commitExactWorkspaceArtifacts(workspacePath, 'remember', ['nexusflow-knowledge.md']);
|
|
44
|
+
await addWorkspaceRemote(workspacePath, remotePath);
|
|
45
|
+
await pushWorkspaceArtifacts(workspacePath);
|
|
46
|
+
const refs = await execa('git', ['show-ref'], { cwd: remotePath });
|
|
47
|
+
expect(refs.stdout).toContain('refs/heads/');
|
|
48
|
+
await fs.appendFile(path.join(workspacePath, 'nexusflow-knowledge.md'), 'dirty\n');
|
|
49
|
+
await expect(pullWorkspaceArtifacts(workspacePath)).rejects.toThrow(/uncommitted changes/);
|
|
50
|
+
});
|
|
51
|
+
});
|
|
52
|
+
//# sourceMappingURL=workspace-git.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"workspace-git.test.js","sourceRoot":"","sources":["../../src/core/workspace-git.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,6 +3,7 @@ import * as fs from 'node:fs/promises';
|
|
|
3
3
|
import * as path from 'node:path';
|
|
4
4
|
import * as os from 'node:os';
|
|
5
5
|
import fse from 'fs-extra';
|
|
6
|
+
import { execa } from 'execa';
|
|
6
7
|
import { generateContextFiles } from '../generators/index.js';
|
|
7
8
|
import { saveSkill, saveWorkspaceSkillsConfig, getAllSkills, DEFAULT_SKILLS, } from '../utils/skills-catalog.js';
|
|
8
9
|
describe('End-to-End Skills & Tooling Workflow Integration', () => {
|
|
@@ -79,11 +80,25 @@ describe('End-to-End Skills & Tooling Workflow Integration', () => {
|
|
|
79
80
|
],
|
|
80
81
|
analysis: mockAnalysis,
|
|
81
82
|
};
|
|
83
|
+
for (const repo of ctx.repos) {
|
|
84
|
+
await fs.mkdir(repo.path, { recursive: true });
|
|
85
|
+
await execa('git', ['init'], { cwd: repo.path });
|
|
86
|
+
await execa('git', ['config', 'user.name', 'NexusFlow Test'], { cwd: repo.path });
|
|
87
|
+
await execa('git', ['config', 'user.email', 'nexusflow-test@local'], { cwd: repo.path });
|
|
88
|
+
await fs.writeFile(path.join(repo.path, 'README.md'), `# ${repo.name}\n`, 'utf-8');
|
|
89
|
+
await execa('git', ['add', 'README.md'], { cwd: repo.path });
|
|
90
|
+
await execa('git', ['commit', '-m', 'test fixture'], { cwd: repo.path });
|
|
91
|
+
}
|
|
82
92
|
await saveWorkspaceSkillsConfig(tempWorkspace, {
|
|
83
93
|
enabledSkills: DEFAULT_SKILLS.map((skill) => skill.id),
|
|
84
94
|
});
|
|
85
95
|
// 1. Run the workspace generation pipeline
|
|
86
96
|
await generateContextFiles(ctx, assistants, tempWorkspace);
|
|
97
|
+
const artifactCommit = await execa('git', ['log', '-1', '--format=%s'], { cwd: tempWorkspace });
|
|
98
|
+
expect(artifactCommit.stdout).toBe('chore(nexusflow): refresh workspace artifacts');
|
|
99
|
+
const generationLock = JSON.parse(await fs.readFile(path.join(tempWorkspace, 'nexusflow.lock'), 'utf-8'));
|
|
100
|
+
expect(generationLock.outputs).toHaveProperty('AGENTS.md');
|
|
101
|
+
expect(Object.keys(generationLock.outputs)).toContain('.agents/skills/pr-review-toolkit/SKILL.md');
|
|
87
102
|
// 2. Verify Google Antigravity tooling (.agents/skills/)
|
|
88
103
|
const agyPrSkill = path.join(tempWorkspace, '.agents', 'skills', 'pr-review-toolkit', 'SKILL.md');
|
|
89
104
|
expect(await fse.pathExists(agyPrSkill)).toBe(true);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-skills-workflow.integration.test.js","sourceRoot":"","sources":["../../src/core/workspace-skills-workflow.integration.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACrE,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAC9B,OAAO,GAAG,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"workspace-skills-workflow.integration.test.js","sourceRoot":"","sources":["../../src/core/workspace-skills-workflow.integration.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -112,9 +112,12 @@ describe('createWorkspace rollback', () => {
|
|
|
112
112
|
repos: repos.map((r) => r.path),
|
|
113
113
|
};
|
|
114
114
|
await createWorkspace(inPlaceFeature, repos);
|
|
115
|
-
// No git worktrees
|
|
115
|
+
// No git worktrees. The artifact repo still ignores ephemeral NexusFlow state,
|
|
116
|
+
// but it must not ignore source repos because in-place repos live elsewhere.
|
|
116
117
|
expect(worktree.createWorktree).not.toHaveBeenCalled();
|
|
117
|
-
await
|
|
118
|
+
const gitignore = await fs.readFile(path.join(workspacePath, '.gitignore'), 'utf-8');
|
|
119
|
+
expect(gitignore).toContain('/.nexusflow-analysis-cache.json');
|
|
120
|
+
expect(gitignore).not.toContain('/api/');
|
|
118
121
|
// The manifest records the mode and the source repo paths.
|
|
119
122
|
const manifest = JSON.parse(await fs.readFile(path.join(workspacePath, 'nexusflow.json'), 'utf-8'));
|
|
120
123
|
expect(manifest.mode).toBe('in-place');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.create.test.js","sourceRoot":"","sources":["../../src/core/workspace.create.test.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"workspace.create.test.js","sourceRoot":"","sources":["../../src/core/workspace.create.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAYtF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;
|
|
1
|
+
{"version":3,"file":"workspace.d.ts","sourceRoot":"","sources":["../../src/core/workspace.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAoB,MAAM,aAAa,CAAC;AAYtF;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,UAAU,EAAE,MAAM,GACjB,MAAM,CAER;AA8ND;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,OAAO,EAChB,KAAK,EAAE,aAAa,EAAE,EACtB,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,GACpE,OAAO,CAAC,MAAM,CAAC,CAkBjB;AAED;;;;;;;;GAQG;AACH,wBAAsB,cAAc,CAClC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,EAAE,CAAC,CAmCpB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,EACrB,OAAO,EAAE,OAAO,GACf,OAAO,CAAC,IAAI,CAAC,CAQf;AAED;;;;;;;GAOG;AACH,wBAAsB,iBAAiB,CACrC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAqBzB;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CACzC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC,CAiBzB;AAED;;;;;GAKG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAgBjF;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAOzE;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE/E;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA8Ff;AAED;;;;;GAKG;AACH,wBAAsB,kBAAkB,CACtC,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC,CAiIf;AAED;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA6DlG;AAED,OAAO,EAAE,oBAAoB,EAAE,KAAK,kBAAkB,EAAE,KAAK,iBAAiB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/core/workspace.js
CHANGED
|
@@ -102,12 +102,17 @@ async function scaffoldWorkspaceDir(feature, repos) {
|
|
|
102
102
|
// from climbing up to parent git repositories (main/master).
|
|
103
103
|
try {
|
|
104
104
|
await execa('git', ['init'], { cwd: workspacePath });
|
|
105
|
-
//
|
|
106
|
-
//
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
105
|
+
// Track durable artifacts while excluding nested worktrees and ephemeral
|
|
106
|
+
// analysis/runtime state from the workspace artifact repository.
|
|
107
|
+
const gitignoreLines = [
|
|
108
|
+
...(!inPlace ? repos.map((repo) => `/${repo.name}/`) : []),
|
|
109
|
+
'/.nexusflow-analysis-cache.json',
|
|
110
|
+
'/.nexusflow/workspace-state.json',
|
|
111
|
+
'/.nexusflow/*.lock',
|
|
112
|
+
'/.nexusflow/resource-staging-*',
|
|
113
|
+
'/.nexusflow/logs/',
|
|
114
|
+
];
|
|
115
|
+
await fs.writeFile(path.join(workspacePath, '.gitignore'), gitignoreLines.join('\n') + '\n', 'utf-8');
|
|
111
116
|
}
|
|
112
117
|
catch (error) {
|
|
113
118
|
// Silently ignore or log warning if git init fails
|