Files
ruvnet__ruflo/v3/@claude-flow/cli/__tests__/issue-2818-intelligence-project-root.test.ts
rUv 67ff9898c0 fix: resolve current runtime and verification defects for v3.32.36 (#2850)
* fix(cli): make runtime status and learning signals truthful

* fix(metaharness): accept padded scan severities

* fix(codex): make core hooks and status skill native

* fix(security): make witness verification hermetic

* fix(metrics): expose grounded learning outcomes

* fix(hooks): deduplicate project and plugin events

* fix(verification): preserve security audit payloads

* fix(runtime): stabilize dual memory skills and MCP schemas

* fix(cli): harden helper signing and reflexion health

* test(release): align helper and container invariants

* chore(release): prepare v3.32.36

* test(funnel): align gates with cold-start seed pool

* fix(ci): document MCP environment precedence
2026-07-29 15:08:51 -04:00

34 lines
1.5 KiB
TypeScript

import { describe, expect, it } from 'vitest';
import { execFileSync } from 'node:child_process';
import { existsSync, mkdirSync, mkdtempSync, readFileSync, rmSync, writeFileSync } from 'node:fs';
import { join, resolve } from 'node:path';
import { tmpdir } from 'node:os';
const HELPER = resolve(__dirname, '../.claude/helpers/intelligence.cjs');
describe('#2818 intelligence helper project-root storage', () => {
it('writes at CLAUDE_PROJECT_DIR and recovers legacy nested pending insights', () => {
const root = mkdtempSync(join(tmpdir(), 'ruflo-2818-'));
const nested = join(root, 'src');
const legacyDir = join(nested, '.claude-flow', 'data');
mkdirSync(join(root, '.claude-flow'), { recursive: true });
mkdirSync(legacyDir, { recursive: true });
const legacyLine = JSON.stringify({ type: 'edit', file: 'legacy.ts', success: true });
writeFileSync(join(legacyDir, 'pending-insights.jsonl'), `${legacyLine}\n`, 'utf-8');
try {
execFileSync(process.execPath, ['-e', `require(${JSON.stringify(HELPER)}).recordEdit('current.ts', true)`], {
cwd: nested,
env: { ...process.env, CLAUDE_PROJECT_DIR: root },
});
const rootPending = join(root, '.claude-flow', 'data', 'pending-insights.jsonl');
expect(existsSync(rootPending)).toBe(true);
const contents = readFileSync(rootPending, 'utf-8');
expect(contents).toContain(legacyLine);
expect(contents).toContain('"file":"current.ts"');
} finally {
rmSync(root, { recursive: true, force: true });
}
});
});