@planu/cli 0.96.2 → 0.96.3
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/engine/confluence-exporter.d.ts.map +1 -1
- package/dist/engine/confluence-exporter.js +3 -0
- package/dist/engine/confluence-exporter.js.map +1 -1
- package/dist/engine/ecosystem-absorber/platform-crawler.d.ts.map +1 -1
- package/dist/engine/ecosystem-absorber/platform-crawler.js +1 -0
- package/dist/engine/ecosystem-absorber/platform-crawler.js.map +1 -1
- package/dist/engine/email-sender.d.ts.map +1 -1
- package/dist/engine/email-sender.js +1 -0
- package/dist/engine/email-sender.js.map +1 -1
- package/dist/engine/paradigm-detector.js +1 -1
- package/dist/engine/paradigm-detector.js.map +1 -1
- package/dist/engine/pm-integrator.d.ts.map +1 -1
- package/dist/engine/pm-integrator.js +3 -0
- package/dist/engine/pm-integrator.js.map +1 -1
- package/dist/engine/pm-platform-creators.d.ts.map +1 -1
- package/dist/engine/pm-platform-creators.js +5 -0
- package/dist/engine/pm-platform-creators.js.map +1 -1
- package/dist/engine/slack-dispatcher.d.ts.map +1 -1
- package/dist/engine/slack-dispatcher.js +1 -0
- package/dist/engine/slack-dispatcher.js.map +1 -1
- package/dist/engine/tool-groups/group-manager.d.ts.map +1 -1
- package/dist/engine/tool-groups/group-manager.js +6 -2
- package/dist/engine/tool-groups/group-manager.js.map +1 -1
- package/dist/engine/validator/extractors.d.ts.map +1 -1
- package/dist/engine/validator/extractors.js +4 -1
- package/dist/engine/validator/extractors.js.map +1 -1
- package/dist/engine/velocity-calculator.d.ts.map +1 -1
- package/dist/engine/velocity-calculator.js +2 -2
- package/dist/engine/velocity-calculator.js.map +1 -1
- package/dist/storage/actuals-store.d.ts.map +1 -1
- package/dist/storage/actuals-store.js +22 -17
- package/dist/storage/actuals-store.js.map +1 -1
- package/dist/storage/approval-store.d.ts.map +1 -1
- package/dist/storage/approval-store.js +8 -4
- package/dist/storage/approval-store.js.map +1 -1
- package/dist/storage/base-store.d.ts +3 -0
- package/dist/storage/base-store.d.ts.map +1 -1
- package/dist/storage/base-store.js +9 -0
- package/dist/storage/base-store.js.map +1 -1
- package/dist/storage/confluence-store.d.ts.map +1 -1
- package/dist/storage/confluence-store.js +14 -7
- package/dist/storage/confluence-store.js.map +1 -1
- package/dist/storage/decision-store.d.ts.map +1 -1
- package/dist/storage/decision-store.js +18 -16
- package/dist/storage/decision-store.js.map +1 -1
- package/dist/storage/feedback-store.d.ts.map +1 -1
- package/dist/storage/feedback-store.js +2 -0
- package/dist/storage/feedback-store.js.map +1 -1
- package/dist/storage/global-projects-store.d.ts.map +1 -1
- package/dist/storage/global-projects-store.js +30 -25
- package/dist/storage/global-projects-store.js.map +1 -1
- package/dist/storage/knowledge-store/sessions.d.ts.map +1 -1
- package/dist/storage/knowledge-store/sessions.js +72 -60
- package/dist/storage/knowledge-store/sessions.js.map +1 -1
- package/dist/storage/outbound-webhook-store.d.ts.map +1 -1
- package/dist/storage/outbound-webhook-store.js +50 -43
- package/dist/storage/outbound-webhook-store.js.map +1 -1
- package/dist/storage/slack-store.d.ts.map +1 -1
- package/dist/storage/slack-store.js +7 -3
- package/dist/storage/slack-store.js.map +1 -1
- package/dist/tools/create-spec/post-creation.d.ts.map +1 -1
- package/dist/tools/create-spec/post-creation.js +6 -2
- package/dist/tools/create-spec/post-creation.js.map +1 -1
- package/dist/tools/create-spec.d.ts.map +1 -1
- package/dist/tools/create-spec.js +3 -1
- package/dist/tools/create-spec.js.map +1 -1
- package/dist/tools/detect-drift.js +3 -1
- package/dist/tools/detect-drift.js.map +1 -1
- package/dist/tools/git/github-issues-ops.d.ts.map +1 -1
- package/dist/tools/git/github-issues-ops.js +4 -0
- package/dist/tools/git/github-issues-ops.js.map +1 -1
- package/dist/tools/license-gate.d.ts.map +1 -1
- package/dist/tools/license-gate.js +5 -1
- package/dist/tools/license-gate.js.map +1 -1
- package/dist/tools/list-specs.d.ts.map +1 -1
- package/dist/tools/list-specs.js +3 -1
- package/dist/tools/list-specs.js.map +1 -1
- package/dist/tools/register-approval-tools.d.ts.map +1 -1
- package/dist/tools/register-approval-tools.js +11 -7
- package/dist/tools/register-approval-tools.js.map +1 -1
- package/dist/tools/register-changelog-tools.d.ts.map +1 -1
- package/dist/tools/register-changelog-tools.js +5 -1
- package/dist/tools/register-changelog-tools.js.map +1 -1
- package/dist/tools/register-checkpoint-tool.d.ts.map +1 -1
- package/dist/tools/register-checkpoint-tool.js +2 -1
- package/dist/tools/register-checkpoint-tool.js.map +1 -1
- package/dist/tools/register-coverage-tools.d.ts.map +1 -1
- package/dist/tools/register-coverage-tools.js +1 -0
- package/dist/tools/register-coverage-tools.js.map +1 -1
- package/dist/tools/register-domain-criteria-tools.d.ts.map +1 -1
- package/dist/tools/register-domain-criteria-tools.js +6 -2
- package/dist/tools/register-domain-criteria-tools.js.map +1 -1
- package/dist/tools/register-email-digest-tools.d.ts.map +1 -1
- package/dist/tools/register-email-digest-tools.js +7 -1
- package/dist/tools/register-email-digest-tools.js.map +1 -1
- package/dist/tools/register-event-tools.js +4 -4
- package/dist/tools/register-event-tools.js.map +1 -1
- package/dist/tools/register-export-tools.js +2 -2
- package/dist/tools/register-export-tools.js.map +1 -1
- package/dist/tools/register-federation-tools.d.ts.map +1 -1
- package/dist/tools/register-federation-tools.js +5 -1
- package/dist/tools/register-federation-tools.js.map +1 -1
- package/dist/tools/register-feedback-tools.js +1 -1
- package/dist/tools/register-feedback-tools.js.map +1 -1
- package/dist/tools/register-hooks-tools.d.ts.map +1 -1
- package/dist/tools/register-hooks-tools.js +5 -1
- package/dist/tools/register-hooks-tools.js.map +1 -1
- package/dist/tools/register-infrastructure-tools.d.ts.map +1 -1
- package/dist/tools/register-infrastructure-tools.js +1 -0
- package/dist/tools/register-infrastructure-tools.js.map +1 -1
- package/dist/tools/register-living-spec-advanced-tools.js +2 -2
- package/dist/tools/register-living-spec-advanced-tools.js.map +1 -1
- package/dist/tools/register-living-spec-tools.js +2 -2
- package/dist/tools/register-living-spec-tools.js.map +1 -1
- package/dist/tools/register-llm-provider-tools.js +2 -2
- package/dist/tools/register-llm-provider-tools.js.map +1 -1
- package/dist/tools/register-orchestrator-tools.js +2 -2
- package/dist/tools/register-orchestrator-tools.js.map +1 -1
- package/dist/tools/register-outbound-webhook-tools.d.ts.map +1 -1
- package/dist/tools/register-outbound-webhook-tools.js +7 -4
- package/dist/tools/register-outbound-webhook-tools.js.map +1 -1
- package/dist/tools/register-readiness-tools.js +2 -2
- package/dist/tools/register-readiness-tools.js.map +1 -1
- package/dist/tools/register-runtime-security-tools.js +1 -1
- package/dist/tools/register-runtime-security-tools.js.map +1 -1
- package/dist/tools/register-security-tools.js +1 -1
- package/dist/tools/register-security-tools.js.map +1 -1
- package/dist/tools/register-spec-export-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-export-tools.js +6 -3
- package/dist/tools/register-spec-export-tools.js.map +1 -1
- package/dist/tools/register-spec-lock-tools.d.ts.map +1 -1
- package/dist/tools/register-spec-lock-tools.js +14 -8
- package/dist/tools/register-spec-lock-tools.js.map +1 -1
- package/dist/tools/register-spec-split-tools.js +2 -2
- package/dist/tools/register-spec-split-tools.js.map +1 -1
- package/dist/tools/register-spec-tools/analysis-tools.js +4 -4
- package/dist/tools/register-spec-tools/analysis-tools.js.map +1 -1
- package/dist/tools/register-spec-tools/core-spec-tools.js +8 -8
- package/dist/tools/register-spec-tools/core-spec-tools.js.map +1 -1
- package/dist/tools/register-status-tool.js +1 -1
- package/dist/tools/register-status-tool.js.map +1 -1
- package/dist/tools/register-versioning-tools.d.ts.map +1 -1
- package/dist/tools/register-versioning-tools.js +5 -4
- package/dist/tools/register-versioning-tools.js.map +1 -1
- package/dist/tools/register-workspace-tools.d.ts.map +1 -1
- package/dist/tools/register-workspace-tools.js +6 -2
- package/dist/tools/register-workspace-tools.js.map +1 -1
- package/dist/tools/schemas/output-schemas.d.ts +2 -0
- package/dist/tools/schemas/output-schemas.d.ts.map +1 -1
- package/dist/tools/schemas/output-schemas.js +2 -0
- package/dist/tools/schemas/output-schemas.js.map +1 -1
- package/dist/tools/update-status/dod-gates.d.ts.map +1 -1
- package/dist/tools/update-status/dod-gates.js +2 -0
- package/dist/tools/update-status/dod-gates.js.map +1 -1
- package/dist/tools/update-status/file-sync.d.ts.map +1 -1
- package/dist/tools/update-status/file-sync.js +14 -17
- package/dist/tools/update-status/file-sync.js.map +1 -1
- package/dist/tools/update-status/side-effects.d.ts.map +1 -1
- package/dist/tools/update-status/side-effects.js +6 -2
- package/dist/tools/update-status/side-effects.js.map +1 -1
- package/dist/tools/update-status/transition-guard.d.ts.map +1 -1
- package/dist/tools/update-status/transition-guard.js +2 -0
- package/dist/tools/update-status/transition-guard.js.map +1 -1
- package/dist/tools/validate.d.ts.map +1 -1
- package/dist/tools/validate.js +4 -0
- package/dist/tools/validate.js.map +1 -1
- package/package.json +1 -1
- package/src/i18n/messages/en.json +6 -0
- package/src/i18n/messages/es.json +6 -0
- package/src/i18n/messages/pt.json +6 -0
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// storage/actuals-store.ts — SPEC-287: Persistence for ActualRecord and CalibrationFactors
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { readJson, writeJson, projectDataDir } from './base-store.js';
|
|
4
|
+
import { withFileLock } from './file-mutex.js';
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// Path helpers
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
@@ -22,26 +23,30 @@ export async function getActual(projectId, specId) {
|
|
|
22
23
|
}
|
|
23
24
|
export async function saveActual(projectId, record) {
|
|
24
25
|
const filePath = actualsPath(projectId);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
26
|
+
return withFileLock(filePath, async () => {
|
|
27
|
+
const records = await readJson(filePath, []);
|
|
28
|
+
const existingIdx = records.findIndex((r) => r.specId === record.specId);
|
|
29
|
+
if (existingIdx >= 0) {
|
|
30
|
+
records[existingIdx] = record;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
records.push(record);
|
|
34
|
+
}
|
|
35
|
+
await writeJson(filePath, records);
|
|
36
|
+
return record;
|
|
37
|
+
});
|
|
35
38
|
}
|
|
36
39
|
export async function deleteActual(projectId, specId) {
|
|
37
40
|
const filePath = actualsPath(projectId);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
return withFileLock(filePath, async () => {
|
|
42
|
+
const records = await readJson(filePath, []);
|
|
43
|
+
const filtered = records.filter((r) => r.specId !== specId);
|
|
44
|
+
if (filtered.length === records.length) {
|
|
45
|
+
return false;
|
|
46
|
+
}
|
|
47
|
+
await writeJson(filePath, filtered);
|
|
48
|
+
return true;
|
|
49
|
+
});
|
|
45
50
|
}
|
|
46
51
|
// ---------------------------------------------------------------------------
|
|
47
52
|
// CalibrationFactors CRUD
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actuals-store.js","sourceRoot":"","sources":["../../src/storage/actuals-store.ts"],"names":[],"mappings":"AAAA,2FAA2F;AAC3F,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"actuals-store.js","sourceRoot":"","sources":["../../src/storage/actuals-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-store.d.ts","sourceRoot":"","sources":["../../src/storage/approval-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"approval-store.d.ts","sourceRoot":"","sources":["../../src/storage/approval-store.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAkB3E,yEAAyE;AACzE,wBAAsB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAGjF;AAED,iDAAiD;AACjD,wBAAsB,UAAU,CAC9B,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,CAAC,CAGzB;AAMD,kDAAkD;AAClD,wBAAsB,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAE7F;AAED,mEAAmE;AACnE,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,cAAc,GACrB,OAAO,CAAC,cAAc,EAAE,CAAC,CAQ3B;AAED,gFAAgF;AAChF,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAEnF"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
// ApprovalPolicy stored in data/projects/{hash}/approval-policy.json
|
|
4
4
|
import { join } from 'node:path';
|
|
5
5
|
import { readJson, writeJson, projectDataDir } from './base-store.js';
|
|
6
|
+
import { withFileLock } from './file-mutex.js';
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
7
8
|
// Path helpers
|
|
8
9
|
// ---------------------------------------------------------------------------
|
|
@@ -34,10 +35,13 @@ export async function getRecords(projectId, specId) {
|
|
|
34
35
|
}
|
|
35
36
|
/** Append a new approval record. Returns the full updated list. */
|
|
36
37
|
export async function appendRecord(projectId, specId, record) {
|
|
37
|
-
const
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
const filePath = approvalRecordsPath(projectId, specId);
|
|
39
|
+
return withFileLock(filePath, async () => {
|
|
40
|
+
const existing = await readJson(filePath, []);
|
|
41
|
+
const updated = [...existing, record];
|
|
42
|
+
await writeJson(filePath, updated);
|
|
43
|
+
return updated;
|
|
44
|
+
});
|
|
41
45
|
}
|
|
42
46
|
/** Delete all approval records for a spec (e.g. when changes are requested). */
|
|
43
47
|
export async function clearRecords(projectId, specId) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"approval-store.js","sourceRoot":"","sources":["../../src/storage/approval-store.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,qEAAqE;AAErE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"approval-store.js","sourceRoot":"","sources":["../../src/storage/approval-store.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,0EAA0E;AAC1E,qEAAqE;AAErE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAG/C,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,SAAS,mBAAmB,CAAC,SAAiB,EAAE,MAAc;IAC5D,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,WAAW,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,kBAAkB,CAAC,SAAiB;IAC3C,OAAO,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,sBAAsB,CAAC,CAAC;AACjE,CAAC;AAED,8EAA8E;AAC9E,cAAc;AACd,8EAA8E;AAE9E,yEAAyE;AACzE,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,SAAiB;IAC/C,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAwB,kBAAkB,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;IACvF,OAAO,GAAG,CAAC;AACb,CAAC;AAED,iDAAiD;AACjD,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAiB,EACjB,MAAsB;IAEtB,MAAM,SAAS,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC;IACvD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,8EAA8E;AAC9E,eAAe;AACf,8EAA8E;AAE9E,kDAAkD;AAClD,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,SAAiB,EAAE,MAAc;IAChE,OAAO,QAAQ,CAAmB,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAChF,CAAC;AAED,mEAAmE;AACnE,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,SAAiB,EACjB,MAAc,EACd,MAAsB;IAEtB,MAAM,QAAQ,GAAG,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxD,OAAO,YAAY,CAAC,QAAQ,EAAE,KAAK,IAAI,EAAE;QACvC,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAmB,QAAQ,EAAE,EAAE,CAAC,CAAC;QAChE,MAAM,OAAO,GAAG,CAAC,GAAG,QAAQ,EAAE,MAAM,CAAC,CAAC;QACtC,MAAM,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QACnC,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,gFAAgF;AAChF,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,MAAc;IAClE,MAAM,SAAS,CAAC,mBAAmB,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;AAC9D,CAAC"}
|
|
@@ -14,6 +14,9 @@ export declare function writeJson(filePath: string, data: unknown): Promise<void
|
|
|
14
14
|
/**
|
|
15
15
|
* Resolve the data directory for a given project.
|
|
16
16
|
* Layout: data/projects/{projectId}/
|
|
17
|
+
*
|
|
18
|
+
* Validates that projectId is a safe hex hash (no path traversal).
|
|
19
|
+
* projectId is always produced by hashProjectPath(), which returns a 16-char hex string.
|
|
17
20
|
*/
|
|
18
21
|
export declare function projectDataDir(projectId: string): string;
|
|
19
22
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-store.d.ts","sourceRoot":"","sources":["../../src/storage/base-store.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AASD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAc/E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9E;AAED
|
|
1
|
+
{"version":3,"file":"base-store.d.ts","sourceRoot":"","sources":["../../src/storage/base-store.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM,CAE3D;AASD;;;GAGG;AACH,wBAAsB,QAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAc/E;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAe9E;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAUxD;AAED;;;GAGG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAEtC"}
|
|
@@ -55,8 +55,17 @@ export async function writeJson(filePath, data) {
|
|
|
55
55
|
/**
|
|
56
56
|
* Resolve the data directory for a given project.
|
|
57
57
|
* Layout: data/projects/{projectId}/
|
|
58
|
+
*
|
|
59
|
+
* Validates that projectId is a safe hex hash (no path traversal).
|
|
60
|
+
* projectId is always produced by hashProjectPath(), which returns a 16-char hex string.
|
|
58
61
|
*/
|
|
59
62
|
export function projectDataDir(projectId) {
|
|
63
|
+
if (!projectId ||
|
|
64
|
+
projectId.includes('..') ||
|
|
65
|
+
projectId.includes('/') ||
|
|
66
|
+
projectId.includes('\\')) {
|
|
67
|
+
throw new Error(`[Planu] Invalid projectId: "${projectId}"`);
|
|
68
|
+
}
|
|
60
69
|
return `data/projects/${projectId}`;
|
|
61
70
|
}
|
|
62
71
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-store.js","sourceRoot":"","sources":["../../src/storage/base-store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,QAAgB,EAAE,YAAe;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,iBAAiB,CAAC,CAAC;YACnE,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,+CAA+C;QAC/C,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,oBAAoB;QACpB,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1F,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED
|
|
1
|
+
{"version":3,"file":"base-store.js","sourceRoot":"","sources":["../../src/storage/base-store.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACnD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAElE;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB;IACjD,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AAC7E,CAAC;AAED;;GAEG;AACH,KAAK,UAAU,SAAS,CAAC,QAAgB;IACvC,MAAM,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACtD,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAI,QAAgB,EAAE,YAAe;IACjE,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAM,CAAC;IAC9B,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;YAC/B,OAAO,CAAC,IAAI,CAAC,2BAA2B,QAAQ,iBAAiB,CAAC,CAAC;YACnE,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC9C,OAAO,YAAY,CAAC;QACtB,CAAC;QACD,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,QAAgB,EAAE,IAAa;IAC7D,MAAM,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1B,IAAI,CAAC;QACH,MAAM,aAAa,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAAC,OAAO,GAAY,EAAE,CAAC;QACtB,+CAA+C;QAC/C,IAAI,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,KAAK,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,EAAE,CAAC;YACzE,OAAO,CAAC,IAAI,CAAC,wBAAwB,QAAQ,KAAK,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QAChE,CAAC;QACD,oBAAoB;QACpB,MAAM,IAAI,KAAK,CACb,2BAA2B,QAAQ,KAAK,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,EAC1F,EAAE,KAAK,EAAE,GAAG,EAAE,CACf,CAAC;IACJ,CAAC;AACH,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,SAAiB;IAC9C,IACE,CAAC,SAAS;QACV,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;QACxB,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC;QACvB,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EACxB,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,+BAA+B,SAAS,GAAG,CAAC,CAAC;IAC/D,CAAC;IACD,OAAO,iBAAiB,SAAS,EAAE,CAAC;AACtC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa;IAC3B,OAAO,aAAa,CAAC;AACvB,CAAC;AAMD,SAAS,WAAW,CAAC,GAAY;IAC/B,OAAO,GAAG,YAAY,KAAK,IAAI,MAAM,IAAI,GAAG,CAAC;AAC/C,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confluence-store.d.ts","sourceRoot":"","sources":["../../src/storage/confluence-store.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"confluence-store.d.ts","sourceRoot":"","sources":["../../src/storage/confluence-store.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AA6B1F;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAG/F;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/E;AAMD;;GAEG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAEnF;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,IAAI,CAAC,CAQf;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAE7F;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,WAAW,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC,CAEf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAO3F"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// storage/confluence-store.ts — Confluence Sync persistence (SPEC-294)
|
|
2
2
|
import { join } from 'node:path';
|
|
3
3
|
import { hashProjectPath, readJson, writeJson } from './base-store.js';
|
|
4
|
+
import { withFileLock } from './file-mutex.js';
|
|
4
5
|
const MAX_LOG_ENTRIES = 20;
|
|
5
6
|
// ---------------------------------------------------------------------------
|
|
6
7
|
// Path helpers
|
|
@@ -53,10 +54,13 @@ export async function getSyncLog(projectPath) {
|
|
|
53
54
|
* Append a sync entry to the log, keeping at most MAX_LOG_ENTRIES entries.
|
|
54
55
|
*/
|
|
55
56
|
export async function appendSyncEntry(projectPath, entry) {
|
|
56
|
-
const
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
const filePath = logPath(projectPath);
|
|
58
|
+
await withFileLock(filePath, async () => {
|
|
59
|
+
const entries = await readJson(filePath, []);
|
|
60
|
+
entries.push(entry);
|
|
61
|
+
const trimmed = entries.slice(-MAX_LOG_ENTRIES);
|
|
62
|
+
await writeJson(filePath, trimmed);
|
|
63
|
+
});
|
|
60
64
|
}
|
|
61
65
|
// ---------------------------------------------------------------------------
|
|
62
66
|
// Synced pages map (specId → pageId)
|
|
@@ -78,8 +82,11 @@ export async function saveSyncedPages(projectPath, pages) {
|
|
|
78
82
|
* Upsert a single synced page entry.
|
|
79
83
|
*/
|
|
80
84
|
export async function upsertSyncedPage(projectPath, page) {
|
|
81
|
-
const
|
|
82
|
-
|
|
83
|
-
|
|
85
|
+
const filePath = syncedPagesPath(projectPath);
|
|
86
|
+
await withFileLock(filePath, async () => {
|
|
87
|
+
const pages = await readJson(filePath, {});
|
|
88
|
+
pages[page.specId] = page;
|
|
89
|
+
await writeJson(filePath, pages);
|
|
90
|
+
});
|
|
84
91
|
}
|
|
85
92
|
//# sourceMappingURL=confluence-store.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"confluence-store.js","sourceRoot":"","sources":["../../src/storage/confluence-store.ts"],"names":[],"mappings":"AAAA,uEAAuE;AACvE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"confluence-store.js","sourceRoot":"","sources":["../../src/storage/confluence-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-store.d.ts","sourceRoot":"","sources":["../../src/storage/decision-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AA+BjE;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"decision-store.d.ts","sourceRoot":"","sources":["../../src/storage/decision-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAiB,MAAM,mBAAmB,CAAC;AA+BjE;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAGzE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAOvF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,EACV,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,GACzB,OAAO,CAAC,QAAQ,CAAC,CAmBnB;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAG/F;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAE5E"}
|
|
@@ -45,22 +45,24 @@ export async function saveDecision(projectId, decision) {
|
|
|
45
45
|
* Apply partial updates to an existing decision. Throws if not found.
|
|
46
46
|
*/
|
|
47
47
|
export async function updateDecision(projectId, id, updates) {
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
48
|
+
return withFileLock(decisionsFile(projectId), async () => {
|
|
49
|
+
const data = await loadData(projectId);
|
|
50
|
+
const idx = data.decisions.findIndex((d) => d.id === id);
|
|
51
|
+
if (idx === -1) {
|
|
52
|
+
throw new Error(`Decision "${id}" not found in project "${projectId}".`);
|
|
53
|
+
}
|
|
54
|
+
const existing = data.decisions[idx];
|
|
55
|
+
/* v8 ignore start */
|
|
56
|
+
if (!existing) {
|
|
57
|
+
throw new Error(`Decision "${id}" not found in project "${projectId}".`);
|
|
58
|
+
}
|
|
59
|
+
/* v8 ignore stop */
|
|
60
|
+
const updated = { ...existing, ...updates, id };
|
|
61
|
+
data.decisions[idx] = updated;
|
|
62
|
+
data.lastUpdated = new Date().toISOString();
|
|
63
|
+
await saveData(projectId, data);
|
|
64
|
+
return updated;
|
|
65
|
+
});
|
|
64
66
|
}
|
|
65
67
|
/**
|
|
66
68
|
* Get all decisions linked to a specific spec.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decision-store.js","sourceRoot":"","sources":["../../src/storage/decision-store.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,6DAA6D;AAG7D,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,GAAG,cAAc,CAAC,SAAS,CAAC,iBAAiB,CAAC;AACvD,CAAC;AAED,8EAA8E;AAC9E,kBAAkB;AAClB,8EAA8E;AAE9E,KAAK,UAAU,QAAQ,CAAC,SAAiB;IACvC,OAAO,QAAQ,CAAgB,aAAa,CAAC,SAAS,CAAC,EAAE;QACvD,SAAS,EAAE,EAAE;QACb,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACtC,CAAC,CAAC;AACL,CAAC;AAED,KAAK,UAAU,QAAQ,CAAC,SAAiB,EAAE,IAAmB;IAC5D,MAAM,SAAS,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC,CAAC;AAClD,CAAC;AAED,8EAA8E;AAC9E,aAAa;AACb,8EAA8E;AAE9E;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB;IAClD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;IACvC,OAAO,IAAI,CAAC,SAAS,CAAC;AACxB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,SAAiB,EAAE,QAAkB;IACtE,MAAM,YAAY,CAAC,aAAa,CAAC,SAAS,CAAC,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;QACvC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9B,IAAI,CAAC,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC5C,MAAM,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,SAAiB,EACjB,EAAU,EACV,OAA0B;IAE1B,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,SAAS,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"decision-store.js","sourceRoot":"","sources":["../../src/storage/decision-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-store.d.ts","sourceRoot":"","sources":["../../src/storage/feedback-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAgJ3B;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,cAAc,CAAC,GAC9D,OAAO,CAAC,aAAa,CAAC,
|
|
1
|
+
{"version":3,"file":"feedback-store.d.ts","sourceRoot":"","sources":["../../src/storage/feedback-store.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,eAAe,EAGhB,MAAM,mBAAmB,CAAC;AAgJ3B;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,GAAG,WAAW,GAAG,cAAc,CAAC,GAC9D,OAAO,CAAC,aAAa,CAAC,CA2BxB;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,EAAE,CAerF;AAED;;GAEG;AACH,wBAAsB,cAAc,CAClC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAC7B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAkB/B;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,MAAM,EACf,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,MAAM,EACf,KAAK,CAAC,EAAE,MAAM,EACd,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAQ/B;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CAqD3D;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,aAAa,EAAE,CAQ5F"}
|
|
@@ -154,6 +154,8 @@ export async function submitFeedback(dataDir, entry) {
|
|
|
154
154
|
planuVersion: newEntry.planuVersion,
|
|
155
155
|
stack: newEntry.context?.stack,
|
|
156
156
|
tags: newEntry.tags,
|
|
157
|
+
}).catch((err) => {
|
|
158
|
+
console.error('[planu] sendFeedbackRemote failed:', err);
|
|
157
159
|
});
|
|
158
160
|
return Promise.resolve(newEntry);
|
|
159
161
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feedback-store.js","sourceRoot":"","sources":["../../src/storage/feedback-store.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"feedback-store.js","sourceRoot":"","sources":["../../src/storage/feedback-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-projects-store.d.ts","sourceRoot":"","sources":["../../src/storage/global-projects-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"global-projects-store.d.ts","sourceRoot":"","sources":["../../src/storage/global-projects-store.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAgBnF;;;GAGG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,sBAAsB,CAAC,CAKnE;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC,CAElF;AAED;;;;;GAKG;AACH,wBAAsB,UAAU,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAwBhF;AAED;;;GAGG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAYzE;AAED;;GAEG;AACH,wBAAsB,WAAW,IAAI,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAGhE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
// storage/global-projects-store.ts — SPEC-296: Persist cross-repo project registry.
|
|
2
2
|
// Persistence file: data/global/registered-projects.json
|
|
3
3
|
import { readJson, writeJson, globalDataDir, hashProjectPath } from './base-store.js';
|
|
4
|
+
import { withFileLock } from './file-mutex.js';
|
|
4
5
|
// ---------------------------------------------------------------------------
|
|
5
6
|
// File path
|
|
6
7
|
// ---------------------------------------------------------------------------
|
|
@@ -33,40 +34,44 @@ export async function saveRegistry(registry) {
|
|
|
33
34
|
* Returns the registered project entry.
|
|
34
35
|
*/
|
|
35
36
|
export async function addProject(projectPath) {
|
|
36
|
-
const registry = await getRegistry();
|
|
37
37
|
const hash = hashProjectPath(projectPath);
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
existing
|
|
38
|
+
return withFileLock(registryFile(), async () => {
|
|
39
|
+
const registry = await getRegistry();
|
|
40
|
+
const existing = registry.projects.find((p) => p.path === projectPath);
|
|
41
|
+
if (existing !== undefined) {
|
|
42
|
+
existing.hash = hash;
|
|
43
|
+
registry.updatedAt = new Date().toISOString();
|
|
44
|
+
await saveRegistry(registry);
|
|
45
|
+
return existing;
|
|
46
|
+
}
|
|
47
|
+
const entry = {
|
|
48
|
+
path: projectPath,
|
|
49
|
+
hash,
|
|
50
|
+
registeredAt: new Date().toISOString(),
|
|
51
|
+
specCount: 0,
|
|
52
|
+
};
|
|
53
|
+
registry.projects.push(entry);
|
|
41
54
|
registry.updatedAt = new Date().toISOString();
|
|
42
55
|
await saveRegistry(registry);
|
|
43
|
-
return
|
|
44
|
-
}
|
|
45
|
-
const entry = {
|
|
46
|
-
path: projectPath,
|
|
47
|
-
hash,
|
|
48
|
-
registeredAt: new Date().toISOString(),
|
|
49
|
-
specCount: 0,
|
|
50
|
-
};
|
|
51
|
-
registry.projects.push(entry);
|
|
52
|
-
registry.updatedAt = new Date().toISOString();
|
|
53
|
-
await saveRegistry(registry);
|
|
54
|
-
return entry;
|
|
56
|
+
return entry;
|
|
57
|
+
});
|
|
55
58
|
}
|
|
56
59
|
/**
|
|
57
60
|
* Remove a project from the registry by path.
|
|
58
61
|
* Returns true if the project was found and removed, false otherwise.
|
|
59
62
|
*/
|
|
60
63
|
export async function removeProject(projectPath) {
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
64
|
+
return withFileLock(registryFile(), async () => {
|
|
65
|
+
const registry = await getRegistry();
|
|
66
|
+
const idx = registry.projects.findIndex((p) => p.path === projectPath);
|
|
67
|
+
if (idx === -1) {
|
|
68
|
+
return false;
|
|
69
|
+
}
|
|
70
|
+
registry.projects.splice(idx, 1);
|
|
71
|
+
registry.updatedAt = new Date().toISOString();
|
|
72
|
+
await saveRegistry(registry);
|
|
73
|
+
return true;
|
|
74
|
+
});
|
|
70
75
|
}
|
|
71
76
|
/**
|
|
72
77
|
* Return the list of all registered projects.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global-projects-store.js","sourceRoot":"","sources":["../../src/storage/global-projects-store.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,yDAAyD;AAGzD,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"global-projects-store.js","sourceRoot":"","sources":["../../src/storage/global-projects-store.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/storage/knowledge-store/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACd,MAAM,sBAAsB,CAAC;AA+B9B,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAErF;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,
|
|
1
|
+
{"version":3,"file":"sessions.d.ts","sourceRoot":"","sources":["../../../src/storage/knowledge-store/sessions.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,YAAY,EACZ,oBAAoB,EACpB,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,aAAa,EACd,MAAM,sBAAsB,CAAC;AA+B9B,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAErF;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,YAAY,GACzB,OAAO,CAAC,IAAI,CAAC,CAEf;AAED,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,YAAY,CAAC,GAC7B,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAID,wBAAsB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAE3F;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC,CAGtC;AAED,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,oBAAoB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAO/B;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,oBAAoB,CAAC,GACrC,OAAO,CAAC,oBAAoB,CAAC,CAqB/B;AAED,wBAAsB,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWhG;AAID,wBAAsB,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAQ1E;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAE1F;AAED,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAcjG;AAED,wBAAsB,wBAAwB,CAC5C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EAAE,EACjB,UAAU,SAAK,GACd,OAAO,CAAC,UAAU,CAAC,CAUrB;AAED,wBAAsB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAQtE;AAID,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,gBAAgB,CAAC,CAO3B;AAED,wBAAsB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAE9F;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,iBAAiB,GACvB,OAAO,CAAC,IAAI,CAAC,CAOf;AAED,wBAAsB,mBAAmB,CACvC,SAAS,EAAE,MAAM,EACjB,IAAI,CAAC,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAC/B,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAM9B;AAID,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,kBAAkB,EAC3B,MAAM,EAAE,aAAa,GACpB,OAAO,CAAC,uBAAuB,CAAC,CAqBlC"}
|