Release: v2.36.4 - Datacollector Knowledge Sync

This commit is contained in:
g1nation
2026-05-02 17:51:07 +09:00
parent 28a0850197
commit 6c83a570ff
9 changed files with 141 additions and 5 deletions
+29
View File
@@ -28,6 +28,17 @@ describe('Second Brain Trace', () => {
'# General Note\n\nThis unrelated note talks about coffee and weather.',
'utf8'
);
fs.mkdirSync(path.join(brainRoot, '02_Architecture_Principles'), { recursive: true });
fs.writeFileSync(
path.join(brainRoot, '02_Architecture_Principles', 'API Gateway.md'),
[
'# API Gateway',
'',
'General Knowledge: API Gateway can route requests in a microservice architecture.',
'This document is not evidence that any current project implements API Gateway.'
].join('\n'),
'utf8'
);
fs.mkdirSync(path.join(brainRoot, '00_Raw', 'conversations'), { recursive: true });
fs.writeFileSync(
path.join(brainRoot, '00_Raw', 'conversations', '2026-05-01.md'),
@@ -57,6 +68,8 @@ describe('Second Brain Trace', () => {
expect(trace.retrievedDocuments[0].path).toContain('ADR-0002-low-dependency-design.md');
expect(trace.retrievedDocuments[0].usedInAnswer).toBe(true);
expect(trace.retrievedDocuments[0].selectedForAnswerContext).toBe(true);
expect(trace.retrievedDocuments[0].sourceType).toBe('User Decision');
expect(trace.retrievedDocuments[0].canSupportProjectClaim).toBe(true);
expect(trace.groundingScore).toBeGreaterThan(0);
});
@@ -73,6 +86,7 @@ describe('Second Brain Trace', () => {
expect(context).toContain('[SECOND BRAIN TRACE]');
expect(context).toContain('Retrieval query:');
expect(context).toContain('Do not imitate dramatic wording');
expect(context).toContain('No Evidence, No Project Claim');
});
it('explains when Second Brain is not needed', () => {
@@ -94,4 +108,19 @@ describe('Second Brain Trace', () => {
expect(trace.retrievedDocuments.find((doc) => doc.path.includes('00_Raw'))).toBeUndefined();
expect(trace.retrievedDocuments[0].path).not.toContain('Index_692.md');
});
it('classifies general architecture notes as unable to support project implementation claims', () => {
const trace = buildSecondBrainTrace(
'현재 프로젝트는 API Gateway 라우팅 구조를 갖추고 있어?',
brainRoot,
{ force: true }
);
const apiGateway = trace.retrievedDocuments.find((doc) => doc.path.includes('API Gateway.md'));
expect(apiGateway).toBeDefined();
expect(apiGateway?.sourceType).toBe('General Knowledge');
expect(apiGateway?.canSupportProjectClaim).toBe(false);
expect(apiGateway?.warning).toContain('실제 구현 근거가 아닙니다');
expect(renderSecondBrainTraceMarkdown(trace, true)).toContain('"canSupportProjectClaim": false');
});
});