Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
f1173b0
Add Rust search core: Stage 0 FFI skeleton + Stage 1 core slice
DitriXNew Jun 8, 2026
738c46a
Stage 2: sync text install on accept, meta filters, grep
DitriXNew Jun 8, 2026
bf6cae7
Native tools/call routing for search/get_segment/grep + tools/list sc…
DitriXNew Jun 8, 2026
4fe65dd
Board: mark native-routing, grep, meta-filters done
DitriXNew Jun 8, 2026
987e8c4
Stage 2: index_raw chunker + offset table + get_segment
DitriXNew Jun 8, 2026
cb91f7c
Add C++ transport thread-safety audit (stage0-cpp-thread-safety-review)
DitriXNew Jun 8, 2026
4ae96d5
Board: index_raw, get_segment, cpp-thread-safety-review done
DitriXNew Jun 8, 2026
e348a95
Stage 2: hybrid (RRF) search modes + incremental delete
DitriXNew Jun 8, 2026
aecdd9a
Wire rcore_shutdown into doStopListen + Stage 2 hybrid/delete board
DitriXNew Jun 8, 2026
4892285
Add real fastembed-based Embedder behind a cargo feature
DitriXNew Jun 8, 2026
d3c2529
Board: real embedder (embedding-shared-session) + embed-signature done
DitriXNew Jun 8, 2026
02c27b0
rust-core: GPU (DirectML) execution with CPU fallback for FastEmbedder
DitriXNew Jun 8, 2026
4366370
Load rcore.dll at runtime for lite/full packaging
DitriXNew Jun 8, 2026
297f5b3
Add two-package (lite/full) RAG release and document search subsystem
DitriXNew Jun 8, 2026
15893b4
Board: GPU/DirectML + two-version (lite/full) RAG done
DitriXNew Jun 8, 2026
2e91dd5
Address PR review: CI linker, filter schema, lock-free counter, docs
DitriXNew Jun 9, 2026
58e0e85
rust-core: gated offline-init test - air-gapped new_local (no network)
DitriXNew Jun 9, 2026
af9d4ad
kanban: Stage 0/2 cards -> done; offline-init verified offline
DitriXNew Jun 9, 2026
fd97733
1c demo: wire the RAG/search core into the http1c data processor
DitriXNew Jun 9, 2026
2dda3b5
http1c demo: headless RAG self-test harness + in-place ExtCompT attach
DitriXNew Jun 9, 2026
b9679a9
http1c demo: scenario segmentation, batched index + progress indicato…
DitriXNew Jun 9, 2026
a43b842
Kanban: close 3 cards (int8 delivery + 2 stage-3 investigation blockers)
DitriXNew Jun 9, 2026
68cfe95
http1c: de-hardcode + pluggable stub adapters + asserting self-test c…
DitriXNew Jun 9, 2026
81957aa
http1c adapters: match card meta contracts (SKU/article, INN dedup), …
DitriXNew Jun 9, 2026
afd6216
Kanban: close all remaining stage-3/4/5 cards (adapters done, contour…
DitriXNew Jun 9, 2026
ff443c5
rust-core search: lightweight Scored ranking, top-k select, SIMD dot
DitriXNew Jun 9, 2026
1ad1515
rust-core: cache keyword token multiset; borrow LF-only text in grep
DitriXNew Jun 9, 2026
5436693
cpp glue: fix WCHAR2MB/MB2WCHAR data race (thread-safe Win32 convert)
DitriXNew Jun 9, 2026
7be4625
rust-core embedder: tune ONNX sessions per role (query CPU, bulk device)
DitriXNew Jun 9, 2026
64abdf4
http1c BSL: append-mode self-test log + StrConcat, drop O(N^2) patterns
DitriXNew Jun 9, 2026
9df6cdd
Kanban: document deferral of perf-ann + perf-search-readlock
DitriXNew Jun 9, 2026
a105f07
Kanban: remove stale features/-root copies of moved done cards
DitriXNew Jun 9, 2026
333db0e
Add reproducible keyword-search perf benchmark (Rust + 1C) with numbers
DitriXNew Jun 9, 2026
940d0ae
rust-core: configurable multi-session embedding worker pool (+ 1C con…
DitriXNew Jun 9, 2026
fecd758
http1c form: corpus-sync UI (steps field + sources table + Sync button)
DitriXNew Jun 9, 2026
b431637
rust-core: collection registry (descriptions + list_collections) + mu…
DitriXNew Jun 9, 2026
c374568
rust-core: worker-pool perf fixes from pool review
DitriXNew Jun 9, 2026
40c9b2c
http1c form: restore component install under an explicit button
DitriXNew Jun 9, 2026
04cddbb
http1c: async-only config/status (no synchronous AddIn property calls)
DitriXNew Jun 9, 2026
228bcdb
docs(readme): async-only config/status + RAG subsystem rationale & usage
DitriXNew Jun 10, 2026
3be069c
docs: search-subsystem tests (TESTING.md) + rcore registry/worker-poo…
DitriXNew Jun 10, 2026
11e83c0
Add VA Plugin
DitriXNew Jun 10, 2026
3ac6395
rcore: collection_description on index_raw + effective meta in search…
DitriXNew Jun 10, 2026
99515cb
http1c: resurrect unknown MCP sessions + native list_collections tool
DitriXNew Jun 10, 2026
649883c
vanessa-plugin: file collections, knowledge base, synonyms, index wat…
DitriXNew Jun 10, 2026
68c191e
vanessa-plugin: search_guide MCP prompt (agent skill as a template)
DitriXNew Jun 10, 2026
4cf068d
vanessa-plugin: get_search_guide tool + prompt rename to search-guide
DitriXNew Jun 11, 2026
2cf4a82
http1c-dp: refresh embedded lite template
DitriXNew Jun 11, 2026
f38a98e
docs: sync README/TESTING/plugin docs with the current feature set
DitriXNew Jun 11, 2026
5a499f5
review: advertise tags/collections filters in schemas; portable build…
DitriXNew Jun 11, 2026
139e638
http1c-dp: refresh embedded lite template (schema fixes)
DitriXNew Jun 11, 2026
b7eda86
review: fix auth/timeout data race, tools/list dedupe, UTF-16 aliasing
DitriXNew Jun 11, 2026
6441598
http1c: reject reserved native tool names at registration, loudly
DitriXNew Jun 11, 2026
db9a0e7
tests: black-box smoke harness for the C++ component (T1-T9, in CI)
DitriXNew Jun 11, 2026
7f45649
review: cap session map (LRU) + Windows-only guard for RustCore.h
DitriXNew Jun 11, 2026
dec8e53
review: retry rcore.dll load (late install), doc/dep sync + T10
DitriXNew Jun 11, 2026
5839180
review: clamp timeout >= 1s, get_segment schema minima, honest CRT co…
DitriXNew Jun 11, 2026
35f0d7b
vanessa-plugin: QUICKSTART.md - one-page launch guide
DitriXNew Jun 11, 2026
1e7718f
vanessa-plugin: baseline-vs-RAG comparison section in README
DitriXNew Jun 11, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 53 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,67 @@ jobs:
with:
arch: x64

- name: Build DLL (Release)
# Git for Windows ships a GNU coreutils `link.exe` in usr/bin; under
# `shell: bash` it shadows the MSVC linker on PATH, so cargo/rustc link
# steps fail with a GNU `link` invoked on MSVC args. Remove it so cargo
# finds MSVC's link.exe.
- name: Remove GNU link.exe (shadows MSVC linker under bash)
shell: pwsh
run: |
$p = "C:\Program Files\Git\usr\bin\link.exe"
if (Test-Path $p) { Remove-Item $p -Force }

# The full (RAG) build produces the rcore.dll cdylib via `cargo build`
# (the lite C++ build needs no cargo), and the Rust-core tests below need
# cargo. Pin the toolchain for a deterministic, msvc-targeted build.
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc

- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
workspaces: rust-core

- name: Test Rust core
shell: bash
run: cargo test --manifest-path rust-core/Cargo.toml

- name: Build DLL (Release, lite) + smoke harness
shell: bash
run: |
cd http-1c-dll
rm -rf build
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DHTTP1C_BUILD_TESTS=ON
cmake --build .

# Black-box smoke: loads the freshly built bin/libhttp1cWin.dll the way
# 1C does (LoadLibrary + GetClassObject + stubbed 1C interfaces) and
# drives it over real HTTP (T1-T9: init, tools/list union, reserved-name
# rejection, session resurrection, auth races, timeout, UTF-8, native
# list_collections). rcore.dll is not in bin/ here, so the native tools
# exercise the structured rag_not_installed path.
- name: Run smoke harness (black-box, bin/libhttp1cWin.dll)
shell: bash
run: ./http-1c-dll/bin/http1c_smoke.exe

# Full ("RAG") build check: compile the rcore.dll cdylib with the
# fastembed feature and the dynamic CRT (ort/onnxruntime needs /MD). This
# catches fastembed/ort build breakage without re-running CMake. The model
# is fetched at runtime, so nothing is downloaded here. Rust is cached
# above (Swatinem/rust-cache), so this stays cheap after the first run.
- name: Build rcore.dll (fastembed, dynamic CRT)
shell: bash
env:
RUSTFLAGS: "-C target-feature=-crt-static"
run: |
cargo build --release --features fastembed \
--target x86_64-pc-windows-msvc \
--manifest-path rust-core/Cargo.toml

- name: Build tests
shell: bash
run: |
Expand Down
59 changes: 53 additions & 6 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ permissions:
jobs:
build:
runs-on: windows-latest

steps:
- uses: actions/checkout@v4

Expand All @@ -26,7 +26,30 @@ jobs:
with:
arch: x64

- name: Build DLL (Release)
# Git for Windows' GNU `link.exe` (usr/bin) shadows the MSVC linker under
# `shell: bash`, breaking cargo/rustc link steps — remove it.
- name: Remove GNU link.exe (shadows MSVC linker under bash)
shell: pwsh
run: |
$p = "C:\Program Files\Git\usr\bin\link.exe"
if (Test-Path $p) { Remove-Item $p -Force }

# The full ("RAG") build invokes `cargo build` (via CMake) to produce the
# rcore.dll cdylib (fastembed search core), so the Rust toolchain must be
# present. The lite build is pure C++ and needs no cargo.
- name: Setup Rust
uses: dtolnay/rust-toolchain@stable
with:
targets: x86_64-pc-windows-msvc

- name: Cache Rust build
uses: Swatinem/rust-cache@v2
with:
workspaces: rust-core

# ---- LITE variant: libhttp1cWin.dll alone (no cargo, search returns
# "install RAG"). The committed Template.bin tracks this bundle. ----
- name: Build DLL (Release, lite)
shell: bash
run: |
cd http-1c-dll
Expand All @@ -47,9 +70,29 @@ jobs:
cmake --build .
./http1c_tests.exe

- name: Package add-in
- name: Package add-in (lite)
shell: bash
run: VARIANT=lite bash build/package-http1c-addin.sh

# ---- FULL variant: also build rcore.dll (real fastembed search core).
# -DRCORE_FASTEMBED=ON makes CMake invoke cargo with the dynamic-CRT
# RUSTFLAGS and drop rcore.dll next to the component. The model is fetched
# at RUNTIME, so nothing extra is downloaded at build time. Packaging adds
# rcore.dll + DirectML.dll (from System32) to the bundle; SKIP_TEMPLATE=1
# keeps the committed lite Template.bin from being clobbered. ----
- name: Build DLL + rcore.dll (Release, full)
shell: bash
run: |
cd http-1c-dll
rm -rf build
mkdir build
cd build
cmake .. -G "Ninja" -DCMAKE_BUILD_TYPE=Release -DRCORE_FASTEMBED=ON
cmake --build .

- name: Package add-in (full)
shell: bash
run: bash build/package-http1c-addin.sh
run: VARIANT=full SKIP_TEMPLATE=1 bash build/package-http1c-addin.sh

- name: Extract version
id: version
Expand All @@ -70,7 +113,8 @@ jobs:
shell: bash
run: |
VERSION="${{ steps.version.outputs.VERSION }}"
cp "build/artifacts/http1c-addin.zip" "build/artifacts/http1c-addin-v${VERSION}.zip"
cp "build/artifacts/http1c-addin.zip" "build/artifacts/http1c-addin-lite-v${VERSION}.zip"
cp "build/artifacts/http1c-addin-full.zip" "build/artifacts/http1c-addin-full-v${VERSION}.zip"

- name: Create Release
uses: softprops/action-gh-release@v2
Expand All @@ -79,4 +123,7 @@ jobs:
name: "http1c v${{ steps.version.outputs.VERSION }}"
generate_release_notes: true
files: |
build/artifacts/http1c-addin-v${{ steps.version.outputs.VERSION }}.zip
build/artifacts/http1c-addin-lite-v${{ steps.version.outputs.VERSION }}.zip
build/artifacts/http1c-addin-full-v${{ steps.version.outputs.VERSION }}.zip
build/artifacts/http1c-addin.zip
build/artifacts/http1c-addin-full.zip
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -41,6 +41,7 @@ build/artifacts/

# CMake and out-of-source build directories
http-1c-dll/build/
http-1c-dll/build-smoke/
http-1c-dll/artifacts/
tests/build/
build_dbg/
Expand Down
Loading
Loading