build(deps): bump the testing group across 1 directory with 2 updates#5
Closed
dependabot[bot] wants to merge 113 commits into
Closed
build(deps): bump the testing group across 1 directory with 2 updates#5dependabot[bot] wants to merge 113 commits into
dependabot[bot] wants to merge 113 commits into
Conversation
…ne, Euclidean, VectorOps)
…p) with zero-copy I/O
… SECURITY, README, CI, templates)
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
…double-consonant dedup
… HNSW recall tests
…n-testtools dependency
…hunker, TextUtils and add chunked ingestion for large documents
…kenizer for large document support
… auto-embed engine integration
- QuantizationType enum (NONE, SCALAR_INT8) - ScalarQuantizer with min/max calibration and INT8 encoding - QuantizedCosineSimilarity and QuantizedDotProduct SIMD kernels - SimilarityFunction updated with quantized variants - ScalarQuantizerTest for encode/decode and batch operations
- PersistenceMode enum (IN_MEMORY, DISK, MMAP) - IndexFileFormat for binary HNSW serialization - QuantizedVectorStore with INT8 compression - InMemoryVectorStore concurrent access improvements
- DiskHnswWriter for binary HNSW graph serialization - DiskHnswIndex for mmap-based read-only index loading - QuantizedHnswIndex with INT8 scalar quantization (4x memory reduction) - BM25Index and HnswIndex performance improvements - DiskHnswIndexTest and QuantizedHnswIndexTest
- ProductQuantizer: K-Means++ codebook training, PQ encode/decode, ADC distance computation, batch encoding - IvfPqIndex: full IVF-PQ implementing VectorIndex SPI with cluster assignment, residual-based PQ encoding, and multi-probe search - PostingList: per-cluster growable storage for PQ codes - 14 tests: PQ training/encode/decode/ADC + IVF-PQ search/recall/sorting
- Reranker SPI interface for pluggable re-ranking strategies - LlmReranker: listwise relevance scoring using Ollama generate API with prompt-based 0-10 scoring and graceful fallback - HybridSearchOrchestrator: integrated optional re-ranking post-processing - LlmRerankerTest: fallback behavior, empty input, topK limiting
- spector-gpu Maven module with Panama FFM CUDA bindings - GpuCapability: runtime CUDA detection (device count, name, memory) - GpuBatchSimilarity: SIMD-optimized batch dot product and cosine similarity using FMA Vector API operations - CudaKernelLauncher: PTX module loader, function resolver, kernel launcher with grid/block configuration - batch_similarity.cu: CUDA kernels for batch_cosine, batch_dot, batch_l2 with block-level shared memory reduction - 14 tests: GPU detection, batch similarity correctness, CUDA launcher
…hitecture - spector-cluster Maven module with gRPC/protobuf integration - spector_search.proto: 6 RPC definitions (vector, keyword, hybrid search, ingest, health check, stats) - ClusterCoordinator: fan-out/merge query execution via virtual threads with consistent hash shard routing - ShardNode: gRPC server wrapping SpectorEngine - SpectorSearchServiceImpl: full gRPC service delegating to local engine - RemoteShardClient: type-safe gRPC client for all 5 RPC methods - ClusterConfig: multi-node endpoint configuration with replication - ClusterConfigTest: routing, hash consistency, topology tests
…rEngine - IndexType enum (HNSW, IVF_PQ) for configurable index strategy - SpectorConfig: added indexType, ivfNlist, ivfNprobe, pqSubspaces with builder methods (withIvfPq) and auto-defaults - SpectorEngine: IVF-PQ auto-training pipeline that buffers ingested vectors and trains PQ codebooks after nlist*40 samples - Backward-compatible 7-arg constructor preserved - 4 new tests: auto-training, keyword search during buffering, config builder, auto-defaults
- HeavyPerformanceBenchmark: keyword/vector/hybrid at 50K-100K scale - IvfPqBenchmark: IVF-PQ search, PQ encode/decode, ADC distance, batch cosine similarity at 10K-50K scale - ConcurrencyBenchmark: multi-threaded search throughput - IngestionBenchmark: document ingestion throughput - PerformanceTestRunner: standalone runner with formatted results
- pom.xml: added spector-gpu, spector-cluster modules to reactor and dependencyManagement - README.md: expanded architecture (13 modules), 5 new features, updated comparison table (quantization, IVF-PQ, GPU, LLM, distributed), updated test suite (316+ tests), added roadmap checklist
Extract ~300 lines of duplicated graph traversal code (greedyClosest, searchLayer, selectNeighbors, addConnection, getNeighbors, setNeighbors) into AbstractHnswIndex base class with three template method hooks: - computeDistance(float[], int) — distance from query to stored node - getNodeVector(int) — float32 vector retrieval for pruning - storeVector(int, float[]) — vector storage on insertion HnswIndex: 413 -> 76 lines (-81%) QuantizedHnswIndex: 476 -> 226 lines (-53%) All 316+ tests passing, zero regressions.
- VectorIndex: add default isReadOnly() method (returns false) - DiskHnswIndex: override isReadOnly() to return true - KeywordIndex: add default remove(String id) method - BM25Index: expose existing removeDoc() logic via KeywordIndex.remove() Completes the deletion API path across the engine.
- VasqParams: add bitWidth field (BIT_WIDTH_4/8), codeBytesPerVector() - VasqCalibrator: add calibrate4bit() with 2.5σ clipping for 15 levels - Vasq4Encoder: encode/decode with nibble packing to off-heap MemorySegment - Vasq4QueryState: deinterleaved hi/lo query arrays with offset bias - Vasq4QueryPrep: FWHT rotation + pre-scaling + deinterleaving - Vasq4SimdKernel: Panama Vector API SIMD kernel for nibble-packed L2/dot Compression: 6-8x vs float32 (2x over VASQ-8). Offset encoding [0,14] keeps bytes non-negative for correct castShape. Tighter clipping (2.5σ vs 3.0σ) optimizes for 15 quantization levels.
- QuantizationType: add VASQ_4 enum variant (4 bits/dim) - DistanceContext: add Vasq4Ctx sealed variant - SimilarityFunction: add computeVasq4() dispatch - Vasq4Strategy: QuantizationStrategy implementation for INT4 - QuantizationStrategyFactory: wire VASQ_4 case with backward-compat overloads
- QuantizedHnswIndex: add vasq4(), vasq4PreCalibrated(), calibrateVasq4() - VectorIndexFactory: add VASQ_4 HNSW creation branch - SpectorConfig: add withVasq4() builder methods, update effectiveOversamplingFactor - SpectorEngine.Builder: add vasq4() and vasq4(int) fluent methods
- Vasq4KernelTest: 11 tests covering calibration, encode/decode, L2/dot accuracy, ranking preservation, memory layout, and bit-width rejection - QuantizationTypeTest: update enum count 6→7, add VASQ_4 assertion - All 261+ tests pass (mvn clean install verified)
Vasq4RecallBench: real-embedding benchmark using Ollama qwen3-embedding (4096-dim).
Tests 8 configurations: VASQ-8 and VASQ-4 × {1x, 2x, 3x, 5x} oversampling.
Measures recall@10, latency (avg/p50/p99), QPS, and memory per vector.
Caches embeddings to disk for rerunning without re-embedding.
README: - Add VASQ-4 to features, programmatic API example, configuration table - Update architecture differentiators and compression highlights - Update roadmap: VASQ-4 done, add pending items (#2-#6) Docs: - vasq-deep-dive.md: add full VASQ-4 section (memory layout, calibration, SIMD kernel, usage tabs, expected recall table) - quantization-comparison.md: update Spector approach, tables, recall tiers - roadmap.md: new detailed roadmap page covering all 10 items with status, projected savings, and implementation scope - mkdocs.yml: add Roadmap to nav
Centralized concurrency abstraction in spector-commons providing: - forkJoinAll(): all-or-nothing parallel execution with auto-cancel - forkJoinPartial(): deadline-based partial result collection - LabeledTask/PartialResult records for typed partial results Dual-mode execution: - Structured mode (default): JEP 505 StructuredTaskScope with awaitAll/ awaitAllSuccessfulOrThrow Joiners and Configuration.withTimeout() - Classic mode (fallback): Virtual-thread ExecutorService + Future Feature flag: -Dspector.concurrency.structured=false to disable. Uses System.Logger (no SLF4J dep) to keep commons zero-dependency.
- spector-embed-api: new dependency (was zero-dep SPI module) - spector-query: explicit dependency (was transitive via spector-index) - spector-cluster: explicit dependency (was transitive via spector-index)
Migrate all ExecutorService+Future concurrency to the centralized ConcurrentTasks utility, enabling structured concurrency (JEP 505) with feature-flag fallback. Sites migrated: 1. HybridSearchOrchestrator: 2-way keyword||vector fan-out - Removed ExecutorService field, no lifecycle management needed - Auto-cancels sibling search on failure 2. ClusterCoordinator: N-way shard fan-out - Removed ExecutorService field, extracted fanOutAndMerge() helper 3. DistributedQueryCoordinator: N-way with timeout+partial results - Uses ConcurrentTasks.forkJoinPartial() with LabeledTask/PartialResult - Removed ExecutorService field 4. ParallelEmbeddingPipeline: N-way batch embedding - processBatch() never throws, so fail-fast is safe 5. ParallelPqTrainer: M-way parallel K-Means subspace training - Clean task list → ConcurrentTasks.forkJoinAll() 6. BM25Index: parallel term scoring - Builds Callable list, merges results from List<float[]> All 261+ tests pass. No behavioral change with default settings.
- roadmap.md: update to ✅ Completed with migration table showing all 6 sites, key design decisions (ConcurrentTasks, feature flag, Joiner selection) - README.md: mark structured concurrency checkbox as done
Three targeted optimizations to reduce allocation on the search hot path: 1. Replace stream().map().toList() with direct pre-sized loop in forkJoinAllStructured — avoids Stream + Iterator + intermediate list on every search query. 2. Add typed forkJoin2() specialization with Pair<A,B> record — zero list allocations for the 2-task case. HybridSearchOrchestrator now uses forkJoin2() directly instead of forkJoinAll(taskA, taskB) which wrapped into List.of() + ArrayList<Subtask>. 3. Pre-size classification ArrayLists in both forkJoinPartialStructured and forkJoinPartialClassic to tasks.size() — avoids internal array resize on the distributed query path. All objects remain method-scoped (young-gen, free GC). No behavioral change — all 261+ tests pass.
- Built-in Model Context Protocol server with 6 tools: semantic_search, hybrid_search, rag_query, ingest_document, delete_document, engine_status - McpToolHandler abstract base (template method pattern) - ToolSchemaBuilder for type-safe JSON schema construction - SpectorToolRegistry, SpectorResourceProvider, SpectorPromptProvider - ResultFormatter for shared formatting utilities - SpectorMcpMain CLI entry point with Ollama auto-detection - In-process execution with zero network overhead (50-200us) - 15 unit tests, all passing - Added spector-mcp module to parent pom.xml
- New tagline: 'The Zero-Overhead, Agent-Ready AI Memory Backbone' - Added 4-pillar 'Why Spector?' section (Agent-Native MCP, SpectorQuant VASQ, Off-Heap Panama, Embedded/Standalone) - Added MCP Integration section with tool table and Claude config - Added spector-mcp to architecture tree and dependency graph - Updated test suite table (331+ tests including spector-mcp) - Expanded roadmap with MCP, LoRA routing, ColBERT reranking - Added JDK API status note in Prerequisites section - Removed competitor name-drops from positioning language - Reordered: Why Spector → MCP → Architecture → Quick Start → API → Performance → Comparison
New MkDocs pages: - architecture/mcp-integration.md: MCP server design, module structure, tool reference, design patterns, performance analysis - sdk-usage/mcp-server.md: practical setup guide for Claude Desktop, Cursor, and custom MCP clients with troubleshooting - getting-started/jdk-api-status.md: JDK incubator/preview API status, Vector API assessment, JVM flag reference, migration paths, FAQ
- mkdocs.yml: updated site_description, added MCP and JDK API nav entries - index.md: enterprise tagline, MCP metrics, agent integration nav section - about.md: MCP as #1 differentiator, agent-native comparison table, agentic AI memory use case, removed competitor name-drops - architecture/overview.md: added spector-mcp to module diagram, dependency graph, and new MCP agent data flow sequence diagram - roadmap.md: new Agentic AI section (MCP server, Streamable HTTP, LoRA adapter routing, ColBERT late interaction), updated summary table
Added 10 entries under 'Added — spector-mcp (Agent-Native MCP Server)' covering the MCP server, tools, design patterns, and test suite.
- Transition the spector-memory module to the Business Source License 1.1 (BSL 1.1) - Set BSL parameters: Licensor Spectrayan, Change Date May 27, 2030, Change License Apache 2.0 - Add BSL 1.1 License file under spector-memory/ - Update main NOTICE file to document licensing boundaries - Update main and module READMEs to reflect BSL 1.1 terms and badge
- Add spector-memory/pom.xml and register in parent pom.xml - Implement 4-tier storage (Working, Episodic, Semantic, Procedural cortex) - Implement off-heap mmap episodic partitions with Panama Arena - Implement 32-byte CognitiveRecordLayout header and SynapticTagEncoder Bloom filters - Implement CognitiveScorer with 6-phase fused scoring pipeline - Implement Dopamine system (SurpriseDetector with Welford online stats) - Implement Amygdala valence coloring, Hebbian spreading coactivation, and Habituation penalties - Implement sleep consolidation (ReflectDaemon K-Means clustering & compaction) - Implement prospective memory, proactive deduplication, and memory introspector - Add comprehensive suite of 33 unit and integration tests
…ools - Implement QuantizedEuclideanDistance SIMD function in spector-core - Register QuantizedEuclideanDistance in SimilarityFunction enum - Define GenerationOptions and TextGenerationProvider SPI contracts in spector-embed-api - Add dependency on spector-memory in spector-mcp/pom.xml - Create MemoryToolHandler base class for agent-native memory tools - Implement 8 new cognitive memory MCP tools: * core_memory_append: remember/update agent instructions * memory_forget: delete/tombstone memories by key * memory_introspect: examine memory capacity and partition health * memory_reinforce: manual consolidation/boost memory importance * memory_status: retrieve core memory and dopamine statistics * recall_context: query episodic/semantic stores with fused similarity * working_memory_scratchpad: volatile working buffer operations - Register the new tools in SpectorToolRegistry for LLM agent discovery
- Update docs/mkdocs.yml with new '🧠 Cognitive Memory' nav section - Add 19 comprehensive documentation pages under docs/docs/memory/ - index.md: Module overview, tagline, competitive comparisons, and vision - getting-started.md: Maven configuration, quickstart snippet, Claude/Ollama integration - architecture.md: Package-to-biological mappings and structural facade designs - scoring-pipeline.md: 6-phase scoring hot-loop cycle counts and formulas - cortex.md: 4-tier storage (Working, Episodic mmap, Semantic, Procedural stores) - hippocampus.md: sleep consolidation, K-Means, circadian reflection, compaction - synapse.md: 32-byte header, SynapticTagEncoder Bloom filter gating analysis - dopamine.md: SurpriseDetector, Welford stats, FlashbulbPolicy thresholds - amygdala.md: emotional coloring, ValenceTracker, and valence-filtered recall - hebbian.md: spread coactivation associations, HebbianGraph neurons - habituation.md: anti-filter bubble, decay penalties, recall frequency limits - inhibition.md: memory suppression, redaction, and block lists - performance.md: SIMD AVX2/AVX-512 benchmarks, cycle metrics, parallel tier scans - panama-design.md: Panama FFM, off-heap Arena, zero-GC, memory layouts - api-reference.md: builder pattern signatures and data models - interference.md: proactive interference and deduplication - prospective.md: future reminder scheduling - metamemory.md: introspective health statistics - sync.md: WAL and CloudSync reconciliation
- Increase warm-up iterations from 100 to 15,000 to trigger JVM C2 JIT SIMD compilation - Increase threshold to 150ms to provide reliable headroom under shared CPU loads
Bumps the testing group with 2 updates in the / directory: [org.junit:junit-bom](https://github.com/junit-team/junit-framework) and [org.assertj:assertj-core](https://github.com/assertj/assertj). Updates `org.junit:junit-bom` from 5.11.4 to 6.1.0 - [Release notes](https://github.com/junit-team/junit-framework/releases) - [Commits](junit-team/junit-framework@r5.11.4...r6.1.0) Updates `org.assertj:assertj-core` from 3.27.3 to 3.27.7 - [Release notes](https://github.com/assertj/assertj/releases) - [Commits](assertj/assertj@assertj-build-3.27.3...assertj-build-3.27.7) --- updated-dependencies: - dependency-name: org.assertj:assertj-core dependency-version: 3.27.7 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: testing - dependency-name: org.junit:junit-bom dependency-version: 6.0.3 dependency-type: direct:production update-type: version-update:semver-major dependency-group: testing ... Signed-off-by: dependabot[bot] <support@github.com>
6fca1eb to
c587519
Compare
Author
|
This pull request was built based on a group rule. Closing it will not ignore any of these versions in future pull requests. To ignore these dependencies, configure ignore rules in dependabot.yml |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Bumps the testing group with 2 updates in the / directory: org.junit:junit-bom and org.assertj:assertj-core.
Updates
org.junit:junit-bomfrom 5.11.4 to 6.1.0Release notes
Sourced from org.junit:junit-bom's releases.
... (truncated)
Commits
0dc3af1Release 6.1.01d13002Prepare 6.1.0 release notes072b217Update plugin spotless to v8.5.0 (#5668)3a53480Update Gradle to v9.5.1 (#5666)0e18a20Update zizmorcore/zizmor-action action to v0.5.4 (#5669)0a2634fUpdate github/codeql-action action to v4.35.5 (#5671)4dbd556Restructure workflows to have single "status" job (#5670)f2194ceIncrease timeout to reduce flakiness5c8fdd2Update dependency org.apache.groovy:groovy to v5.0.6 (#5659)43c6982Update dependency org.slf4j:slf4j-jdk14 to v2.0.18 (#5667)Updates
org.assertj:assertj-corefrom 3.27.3 to 3.27.7Release notes
Sourced from org.assertj:assertj-core's releases.
... (truncated)
Commits
e840716[maven-release-plugin] prepare release assertj-build-3.27.785ca7ebDeprecateXmlStringPrettyFormatter77081dcMerge commit from forkb68fc24Bump github/codeql-action from 4.31.9 to 4.31.10 in the github-actions group ...0cf5bb6Bumpkotlin.versionfrom 2.1.0 to 2.2.21d393ef1Abort tests when symbolic links cannot be created (#3788)2212433Add IntelliJ custom inspection for test class names5717d02Update JetBrains icona8ec20bAdd icon for JetBrains productsc05fb3dBump Maven to 3.9.12 and Wrapper to 3.3.4