general improvements (#17)

* refactor(hooks): simplify hook execution with shared context

- [x] Extract BaseInput struct to eliminate duplicate fields across hooks
- [x] Create RunHook handler pattern for session-start and user-prompt
- [x] Create RunStatuslineHook for fast statusline rendering without worker startup
- [x] Add HookContext struct to pass port, project, CWD, SessionID to handlers
- [x] Add db/interface.go with ObservationReader/Writer interfaces
- [x] Add comprehensive conflict management tests in sqlite/conflict_test.go
- [x] Add vector client tests for Count, ModelVersion, NeedsRebuild, GetStaleVectors
- [x] Add FilterByThreshold helper tests for query result filtering
- [x] Make handlers_test more robust for network-dependent update checks
- [x] Update package versions in UI

* Move to GORM + general cleanup

* feat(mcp): add observation relations discovery and scoring integration

- [x] Add find_related_observations MCP tool for discovering related observations by confidence
- [x] Integrate scoring calculator and recalculator into MCP server initialization
- [x] Add pattern, relation, and session stores to MCP server dependencies
- [x] Register MCP server in Claude Code settings during plugin installation
- [x] Update install scripts (bash, PowerShell) to configure MCP server settings
- [x] Switch plugin manifest files to template-based versioning (plugin.json.tpl, marketplace.json.tpl)
- [x] Update all MCP server tests to pass new dependency parameters
This commit is contained in:
2026-01-07 00:26:20 +00:00
committed by GitHub
parent 92a99c7615
commit 7a061c85eb
85 changed files with 8445 additions and 8202 deletions
+32
View File
@@ -186,6 +186,34 @@ function Register-Plugin {
$Marketplaces | Add-Member -NotePropertyName "claude-mnemonic" -NotePropertyValue $MarketplaceEntry -Force
$Marketplaces | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $MarketplacesFile
Write-Success "Marketplace registered in known_marketplaces.json"
# Register MCP server in settings.json
$McpBinary = Join-Path $InstallDir "mcp-server.exe"
if (Test-Path $McpBinary) {
Write-Info "Registering MCP server in settings.json..."
# Reload settings to include any previous updates
$Settings = Get-Content $SettingsFile -Raw | ConvertFrom-Json
# Ensure mcpServers object exists
if (-not $Settings.mcpServers) {
$Settings | Add-Member -NotePropertyName "mcpServers" -NotePropertyValue @{} -Force
}
# Add MCP server entry
$McpEntry = @{
command = $McpBinary
args = @("--project", "`${CLAUDE_PROJECT}")
env = @{}
}
$Settings.mcpServers | Add-Member -NotePropertyName "claude-mnemonic" -NotePropertyValue $McpEntry -Force
$Settings | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $SettingsFile
Write-Success "MCP server registered successfully"
} else {
Write-Warn "MCP server binary not found at $McpBinary, skipping MCP registration"
}
} catch {
Write-Warn "Plugin registration encountered an error: $_"
}
@@ -282,6 +310,10 @@ function Uninstall-ClaudeMnemonic {
if ($Settings.statusLine -and $Settings.statusLine.command -match "claude-mnemonic") {
$Settings.PSObject.Properties.Remove("statusLine")
}
# Remove MCP server entry
if ($Settings.mcpServers) {
$Settings.mcpServers.PSObject.Properties.Remove("claude-mnemonic")
}
$Settings | ConvertTo-Json -Depth 10 | Out-File -Encoding UTF8 $SettingsFile
}
if (Test-Path $MarketplacesFile) {