* Prefer AGENTS.md over CLAUDE.md for project instructions * fix: preserve CLAUDE.md fallback behavior * fix: isolate onboarding tests and preserve legacy init * fix: restore full fsOperations exports in test mock and align compact cwd * Fix onboarding test isolation and init migration guidance * Tighten init prompt coverage and onboarding copy * Handle nested project instruction paths consistently * Fix NEW_INIT feature gate for Bun build --------- Co-authored-by: 赵小落 <zhaoxiaoluo@zhaoxiaoluodeMac-mini.local> Co-authored-by: zhaomo01 <zhaomo01@baidu.com>
35 lines
932 B
TypeScript
35 lines
932 B
TypeScript
import { basename, join } from 'path'
|
|
|
|
import type { MemoryFileInfo } from '../../utils/claudemd.js'
|
|
import {
|
|
findProjectInstructionFilePathInAncestors,
|
|
isProjectInstructionFileName,
|
|
PRIMARY_PROJECT_INSTRUCTION_FILE,
|
|
} from '../../utils/projectInstructions.js'
|
|
|
|
function isLoadedProjectInstructionFile(file: MemoryFileInfo): boolean {
|
|
return (
|
|
file.type === 'Project' &&
|
|
file.parent === undefined &&
|
|
isProjectInstructionFileName(basename(file.path))
|
|
)
|
|
}
|
|
|
|
export function getProjectMemoryPathForSelector(
|
|
existingMemoryFiles: MemoryFileInfo[],
|
|
cwd: string,
|
|
): string {
|
|
const loadedProjectInstructionPaths = new Set(
|
|
existingMemoryFiles
|
|
.filter(isLoadedProjectInstructionFile)
|
|
.map(file => file.path),
|
|
)
|
|
|
|
return (
|
|
findProjectInstructionFilePathInAncestors(
|
|
cwd,
|
|
path => loadedProjectInstructionPaths.has(path),
|
|
) ?? join(cwd, PRIMARY_PROJECT_INSTRUCTION_FILE)
|
|
)
|
|
}
|