fix: exclude __words__ keyword index from corruption detection and getStats()
The __words__ keyword index stores 50-5000 entries per entity (one per word), which inflated avg entries/entity well above the corruption threshold of 100. This caused: 1. validateConsistency() to falsely detect corruption on every startup, triggering unnecessary clearAllIndexData() + rebuild() cycles 2. getStats() to log false "Metadata index may be corrupted" warnings and report inflated totalEntries/totalIds stats Both methods now skip __words__ when counting, so stats and health checks reflect metadata fields only (noun, type, createdAt, etc.). Keyword search is unaffected since the __words__ field index itself is not modified.
This commit is contained in:
parent
32dbdcec61
commit
364360d447
128 changed files with 5637 additions and 5682 deletions
|
|
@ -172,7 +172,7 @@ export const coreCommands = {
|
|||
metadata
|
||||
}
|
||||
|
||||
// v4.3.x: Add confidence and weight if provided
|
||||
// Add confidence and weight if provided
|
||||
if (options.confidence) {
|
||||
addParams.confidence = parseFloat(options.confidence)
|
||||
}
|
||||
|
|
@ -347,7 +347,7 @@ export const coreCommands = {
|
|||
searchParams.includeRelations = true
|
||||
}
|
||||
|
||||
// v4.7.0: VFS is now part of the knowledge graph (included by default)
|
||||
// VFS is now part of the knowledge graph (included by default)
|
||||
// Users can exclude VFS with --where vfsType exists:false if needed
|
||||
|
||||
// Triple Intelligence Fusion - custom weighting
|
||||
|
|
|
|||
|
|
@ -312,7 +312,7 @@ ${chalk.cyan('Fork Statistics:')}
|
|||
},
|
||||
|
||||
/**
|
||||
* Migrate from v4.x to v5.0.0 (one-time)
|
||||
* Migrate storage format (one-time)
|
||||
*/
|
||||
async migrate(options: MigrateOptions) {
|
||||
let spinner: any = null
|
||||
|
|
@ -388,7 +388,7 @@ ${chalk.cyan('Fork Statistics:')}
|
|||
|
||||
await oldBrain.init()
|
||||
|
||||
// Create new brain (v5.0.0)
|
||||
// Create new brain
|
||||
const newBrain = new Brainy({
|
||||
storage: {
|
||||
type: 'filesystem',
|
||||
|
|
|
|||
|
|
@ -117,7 +117,7 @@ export const neuralCommand = {
|
|||
await handleNeighborsCommand(neural, argv)
|
||||
break
|
||||
case 'path':
|
||||
console.log(chalk.yellow('\n⚠️ Semantic path finding coming in v3.21.0'))
|
||||
console.log(chalk.yellow('\n⚠️ Semantic path finding coming soon'))
|
||||
console.log(chalk.dim('This feature requires implementing graph traversal algorithms'))
|
||||
console.log(chalk.dim('Use "neighbors" and "hierarchy" commands to explore connections'))
|
||||
break
|
||||
|
|
@ -148,7 +148,7 @@ async function promptForAction(): Promise<string> {
|
|||
{ name: '🎯 Find semantic clusters', value: 'clusters' },
|
||||
{ name: '🌳 Show item hierarchy', value: 'hierarchy' },
|
||||
{ name: '🕸️ Find semantic neighbors', value: 'neighbors' },
|
||||
{ name: '🛣️ Find semantic path between items (v3.21.0)', value: 'path', disabled: true },
|
||||
{ name: '🛣️ Find semantic path between items (coming soon)', value: 'path', disabled: true },
|
||||
{ name: '🚨 Detect outliers', value: 'outliers' },
|
||||
{ name: '📊 Generate visualization data', value: 'visualize' }
|
||||
]
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
/**
|
||||
* 💾 Storage Management Commands - v4.0.0
|
||||
* 💾 Storage Management Commands
|
||||
*
|
||||
* Modern interactive CLI for storage lifecycle, cost optimization, and management
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -133,7 +133,7 @@ export const utilityCommands = {
|
|||
// removeOrphans and rebuildIndex would require new Brainy APIs
|
||||
if (options.removeOrphans || options.rebuildIndex) {
|
||||
spinner.warn('Advanced cleanup options not yet implemented')
|
||||
console.log(chalk.yellow('\n⚠️ Advanced cleanup features coming in v3.21.0:'))
|
||||
console.log(chalk.yellow('\n⚠️ Advanced cleanup features coming soon:'))
|
||||
console.log(chalk.dim(' • --remove-orphans: Remove disconnected items'))
|
||||
console.log(chalk.dim(' • --rebuild-index: Rebuild vector index'))
|
||||
console.log(chalk.dim('\nUse "brainy clean" without options to clear the database'))
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ let brainyInstance: Brainy | null = null
|
|||
const getBrainy = async (): Promise<Brainy> => {
|
||||
if (!brainyInstance) {
|
||||
brainyInstance = new Brainy()
|
||||
await brainyInstance.init() // v5.0.1: Initialize brain (VFS auto-initialized here!)
|
||||
await brainyInstance.init() // Initialize brain (VFS auto-initialized here!)
|
||||
}
|
||||
return brainyInstance
|
||||
}
|
||||
|
|
@ -52,8 +52,8 @@ export const vfsCommands = {
|
|||
const spinner = ora('Reading file...').start()
|
||||
|
||||
try {
|
||||
const brain = await getBrainy() // v5.0.1: Await async getBrainy
|
||||
// v5.0.1: VFS auto-initialized, no need for vfs.init()
|
||||
const brain = await getBrainy() // Await async getBrainy
|
||||
// VFS auto-initialized, no need for vfs.init()
|
||||
const buffer = await brain.vfs.readFile(path, {
|
||||
encoding: options.encoding as any
|
||||
})
|
||||
|
|
|
|||
|
|
@ -68,7 +68,7 @@ ${chalk.cyan('Examples:')}
|
|||
$ brainy vfs search "React components"
|
||||
$ brainy vfs similar /code/Button.tsx
|
||||
|
||||
${chalk.dim('# Storage management (v4.0.0)')}
|
||||
${chalk.dim('# Storage management')}
|
||||
$ brainy storage status --quota
|
||||
$ brainy storage lifecycle set ${chalk.dim('# Interactive mode')}
|
||||
$ brainy storage cost-estimate
|
||||
|
|
@ -217,11 +217,11 @@ program
|
|||
|
||||
program
|
||||
.command('path <from> <to>')
|
||||
.description('Find semantic path between items (v3.21.0)')
|
||||
.description('Find semantic path between items')
|
||||
.option('--steps', 'Show step-by-step path')
|
||||
.option('--max-hops <number>', 'Maximum path length', '5')
|
||||
.action(() => {
|
||||
console.log(chalk.yellow('\n⚠️ Semantic path finding coming in v3.21.0'))
|
||||
console.log(chalk.yellow('\n⚠️ Semantic path finding coming soon'))
|
||||
console.log(chalk.dim('This feature requires implementing graph traversal algorithms'))
|
||||
console.log(chalk.dim('Use "brainy neighbors" and "brainy hierarchy" to explore connections'))
|
||||
})
|
||||
|
|
@ -446,7 +446,7 @@ program
|
|||
vfsCommands.tree(path, options)
|
||||
})
|
||||
|
||||
// ===== Storage Management Commands (v4.0.0) =====
|
||||
// ===== Storage Management Commands =====
|
||||
|
||||
program
|
||||
.command('storage')
|
||||
|
|
@ -610,7 +610,7 @@ program
|
|||
.option('--iterations <n>', 'Number of iterations', '100')
|
||||
.action(utilityCommands.benchmark)
|
||||
|
||||
// ===== COW Commands (v5.0.0) - Instant Fork & Branching =====
|
||||
// ===== COW Commands - Instant Fork & Branching =====
|
||||
|
||||
program
|
||||
.command('fork [name]')
|
||||
|
|
|
|||
|
|
@ -625,7 +625,7 @@ export async function promptCommand(): Promise<string> {
|
|||
*/
|
||||
export async function startInteractiveMode() {
|
||||
console.log(chalk.cyan('\n🧠 Brainy Interactive Mode\n'))
|
||||
console.log(chalk.yellow('Interactive REPL mode coming in v3.20.0\n'))
|
||||
console.log(chalk.yellow('Interactive REPL mode coming soon\n'))
|
||||
console.log(chalk.dim('Use specific commands for now: brainy add, brainy search, etc.'))
|
||||
process.exit(0)
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue