bgts-context-engine 0.2.4__tar.gz → 0.3.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/CHANGELOG.md +96 -1
- {bgts_context_engine-0.2.4/src/bgts_context_engine.egg-info → bgts_context_engine-0.3.0}/PKG-INFO +2 -2
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/README.md +1 -1
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/README.tr.md +1 -1
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/__init__.py +1 -1
- bgts_context_engine-0.3.0/src/bce/core/orchestrator/anchors.py +700 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/expand.py +27 -2
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/orchestrator.py +24 -4
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/text.py +168 -1
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/domain/models.py +5 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/embedder/embedder.py +92 -10
- bgts_context_engine-0.3.0/src/bce/indexing/parser/_treesitter.py +122 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/csharp_provider.py +24 -18
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/go_provider.py +25 -19
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/java_provider.py +24 -18
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/jsts_provider.py +102 -27
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/python_provider.py +25 -18
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/graph/repository.py +218 -23
- bgts_context_engine-0.3.0/src/bce/storage/relational/migrations/0011_search_text.sql +80 -0
- bgts_context_engine-0.3.0/src/bce/storage/relational/migrations/0012_body_trgm.sql +28 -0
- bgts_context_engine-0.3.0/src/bce/storage/vector/store.py +195 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer3/orchestration.py +90 -16
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0/src/bgts_context_engine.egg-info}/PKG-INFO +2 -2
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bgts_context_engine.egg-info/SOURCES.txt +2 -0
- bgts_context_engine-0.2.4/src/bce/core/orchestrator/anchors.py +0 -346
- bgts_context_engine-0.2.4/src/bce/indexing/parser/_treesitter.py +0 -58
- bgts_context_engine-0.2.4/src/bce/storage/vector/store.py +0 -110
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/LICENSE +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/MANIFEST.in +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/pyproject.toml +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/setup.cfg +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/mcp/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/mcp/server.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/mcp/tools.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/app.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/deps.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/routes.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/schemas.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/static/assets/index-Cc4pUpSE.js +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/static/assets/index-DrLRaTMU.css +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/static/favicon.svg +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/static/index.html +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/ui/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/ui/queries.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/ui/router.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/ui/schemas.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/api/rest/ui/trace.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/bench/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/bench/pr_ablation.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/bench/runner.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/cli.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/config.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/assembler/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/assembler/assembler.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/auth/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/auth/scope.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/coverage/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/coverage/confidence.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/defaults.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/i18n/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/i18n/catalogs/en.json +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/i18n/catalogs/tr.json +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/i18n/locale.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/i18n/translator.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/logging.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/bulk.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/orchestrator/profile.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/scoring/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/core/scoring/engine.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/domain/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/domain/enums.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/churn.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/embedder/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/embedder/encoder.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/extractor/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/extractor/bridges.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/extractor/designnote.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/extractor/extractor.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/extractor/routes.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/gitsync/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/gitsync/bitbucket.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/gitsync/local.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/gitsync/remote.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/indexer.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/linker/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/linker/linker.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/base.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/languages/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/registry.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/scip/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/scip/resolver.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/parser/symbol_id.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/upserter/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/indexing/upserter/upserter.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/integrations/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/integrations/agents.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/integrations/precontext.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/integrations/templates/claude_section.md +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/integrations/templates/cursor_rule.mdc +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/jobs/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/jobs/store.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/jobs/worker.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/graph/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/graph/client.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/db.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0001_extensions_graph.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0002_relational.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0003_vector.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0004_rls.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0005_embeddings_dim.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0006_fts.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0007_jobs.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0008_graph_label_indexes.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0009_fts_identifier_parts.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrations/0010_file_churn.sql +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/migrator.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/relational/queries.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/storage/vector/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer1/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer1/primitives.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer2/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer2/search.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bce/tools/layer3/__init__.py +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bgts_context_engine.egg-info/dependency_links.txt +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bgts_context_engine.egg-info/entry_points.txt +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bgts_context_engine.egg-info/requires.txt +0 -0
- {bgts_context_engine-0.2.4 → bgts_context_engine-0.3.0}/src/bgts_context_engine.egg-info/top_level.txt +0 -0
|
@@ -7,6 +7,99 @@ project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
|
7
7
|
|
|
8
8
|
## [Unreleased]
|
|
9
9
|
|
|
10
|
+
## [0.3.0] - 2026-09-24
|
|
11
|
+
|
|
12
|
+
Retrieval hybrid-v4: the whole symbol is searchable, and the task's code fragments, file
|
|
13
|
+
paths and dominant names find the places that *use* them. Measured on 30 natural-language
|
|
14
|
+
tasks against a React/TypeScript front end (`local_bench/cli_k50_eval`, `bce context
|
|
15
|
+
--max-candidates 50`, macro file recall over the files each task had to touch): **82.0 →
|
|
16
|
+
99.6 / 100**, full recall on 29/30 tasks against 20/30, micro recall 72 % → 98 %, no task
|
|
17
|
+
without a hit, MRR 0.67 → 0.76. Of the 31 files the old pipeline missed at K=50, 27 had never entered the
|
|
18
|
+
candidate pool: their evidence lived in parts of the code nothing indexed — a
|
|
19
|
+
`localStorage.getItem('token')` in the middle of a 10 KB panel, the members of a `type`
|
|
20
|
+
union, a toast string sixty lines into a page. Every change below is general (nothing is
|
|
21
|
+
fitted to those tasks) and the head of every channel is unchanged for small answers.
|
|
22
|
+
|
|
23
|
+
### Added
|
|
24
|
+
|
|
25
|
+
- **Symbol search text.** Every language provider attaches the symbol's full declaration
|
|
26
|
+
(capped at 24 000 characters) as `GraphNode.search_text`; it is not a graph property. It
|
|
27
|
+
feeds the FTS document (`symbol_fts.body`, weight D as identifier words) and the
|
|
28
|
+
embeddings, so interfaces, constants, classes and long components — which had a 1 200
|
|
29
|
+
character head or nothing — are findable by what they contain.
|
|
30
|
+
- **Chunked embeddings.** A symbol longer than one window (2 000 characters, 200 overlap,
|
|
31
|
+
at most 12 windows) is stored as several vectors, each repeating the header (name, kind,
|
|
32
|
+
path, signature, docstring); search collapses them to the symbol's best chunk. Migration
|
|
33
|
+
`0011_search_text` adds `embeddings.chunk` and the `(kind, ref_id, chunk)` uniqueness.
|
|
34
|
+
- **TypeScript `type` aliases and `enum`s** are symbols (`type` / `enum`); JSDoc blocks
|
|
35
|
+
above a declaration (or its `export` / decorator) become the docstring.
|
|
36
|
+
- **Usage anchor source.** Code fragments the task wrote out — a backticked name as a whole
|
|
37
|
+
word, a quoted string as a literal, a dotted expression as a substring — are looked up
|
|
38
|
+
inside symbol bodies; strength falls with the match count and generic fragments
|
|
39
|
+
(`useState`) are dropped. Migration `0012_body_trgm` adds `pg_trgm` GIN indexes on
|
|
40
|
+
`symbol_fts.body` and `file_id` (2 ms a lookup; skipped with a notice where the extension
|
|
41
|
+
is unavailable).
|
|
42
|
+
- **Path anchor source.** File paths the task names — `src/utils/auth.ts`, a bare
|
|
43
|
+
`Layout.tsx`, the `File "/opt/app/flask/app.py"` of a traceback — resolve to indexed files
|
|
44
|
+
by longest suffix and nominate every symbol in them (`0.85 / files`; more than 4 files is
|
|
45
|
+
ambiguous and ignored).
|
|
46
|
+
- **Impact anchor source.** Callers and referrers of the five strongest anchors with
|
|
47
|
+
combined strength ≥ 0.9 get anchor evidence of their own, fan-out aware (`0.7 · root ·
|
|
48
|
+
√(1 − users/pool)`; hubs nominate nothing). "Every component that calls the admin check"
|
|
49
|
+
is answered by `isAdmin`'s callers, not by a decayed hop. The same source follows
|
|
50
|
+
**coupling through data**: the namespaced string literals of a dominant anchor's body —
|
|
51
|
+
query keys, storage keys, route paths, i18n / config keys — are looked up in other
|
|
52
|
+
bodies, and the symbols quoting them (the hook that registers the query a helper
|
|
53
|
+
invalidates) are its users too, with the same fan-out rule against a quarter of the pool.
|
|
54
|
+
Bare words (`'undefined'`, `'dark'`) are not keys; a literal quoted by a quarter of the
|
|
55
|
+
pool (`'en-US'`) is a convention and nominates nothing.
|
|
56
|
+
- **Lexical phrase bonus.** Adjacent content-word pairs of the task (`access token`) are
|
|
57
|
+
looked up conjunctively and reward symbols carrying both words.
|
|
58
|
+
- **Outbound `REFERENCES` expansion** (one hop): the constants, types and fields an
|
|
59
|
+
anchor's body reads, writes or passes.
|
|
60
|
+
- `VectorStore.trim_chunks`, `GraphRepository.body_mentions`, `symbol_bodies`,
|
|
61
|
+
`files_by_suffix`, `references_of` / `get_references`; lexical hits carry a `match_tier`
|
|
62
|
+
(`a` name, `b` name parts, `c` container / path, `d` signature / docstring / body).
|
|
63
|
+
|
|
64
|
+
### Changed
|
|
65
|
+
|
|
66
|
+
- **Channel widths follow the answer size.** Lexical pool / anchors, semantic candidates
|
|
67
|
+
and the usage pool are `max(default, 2K)` (`max(15, K)` lexical anchors) for
|
|
68
|
+
`max_candidates = K`; a 50-symbol answer no longer draws on a 30-candidate channel.
|
|
69
|
+
- **Per-file cap tapers past slot 10.** The engine's diversity rule keeps `ceil(i · 0.6)`
|
|
70
|
+
symbols per file for the first ten slots and admits one more per ten slots after that: 10
|
|
71
|
+
of 50 and 15 of 100 instead of 30 and 60. Model-stream picks stay exempt; the list stays
|
|
72
|
+
K-monotonic. Long answers cover more places instead of the fourteenth helper of one file.
|
|
73
|
+
- **The FTS document** carries every word of the file path at weight C (not just the stem)
|
|
74
|
+
and the identifier words of the body at weight D; `ts_rank` uses length normalisation so
|
|
75
|
+
a 300-line component does not outrank a 3-line helper by word count. **Lexical strength
|
|
76
|
+
depends on where a term matched**: a hit in the exact name counts 1.0, in its identifier
|
|
77
|
+
parts 0.9, in container / path words 0.6, only in the signature, docstring or body 0.35 —
|
|
78
|
+
with whole bodies in the document, a long component matches half the words of any task
|
|
79
|
+
somewhere, and without the tiers it outranked the helpers named after those words.
|
|
80
|
+
- Splitting the task into clauses and fusing the per-clause semantic rankings was built,
|
|
81
|
+
measured and dropped: with chunked embeddings the whole-text query already found 89 of
|
|
82
|
+
127 expected files in its top 100 against the fusion's 87, and the fusion cost the head
|
|
83
|
+
(semantic hit@1 19 → 14 of 30, MRR 0.75 → 0.58). One query vector per task, as before.
|
|
84
|
+
- **Test detection by name is narrower.** `test_x` / `should_x` are tests wherever they
|
|
85
|
+
live; the CamelCase `TestFoo` / `testFoo` forms are trusted only when no path is known.
|
|
86
|
+
`TestBotTriggerPanel` is a production component and was being dropped from every channel.
|
|
87
|
+
|
|
88
|
+
### Migration
|
|
89
|
+
|
|
90
|
+
`bce migrate` applies `0011` and `0012`. Rows indexed before `0011` have no body and a single
|
|
91
|
+
vector, so **re-index once** (`bce index` per repository) for the usage source, body search
|
|
92
|
+
and chunked embeddings to see them; nothing is truncated and the old rows keep working
|
|
93
|
+
meanwhile.
|
|
94
|
+
|
|
95
|
+
## [0.2.5] - 2026-09-24
|
|
96
|
+
|
|
97
|
+
### Changed
|
|
98
|
+
|
|
99
|
+
- The English and Turkish READMEs link to the project website
|
|
100
|
+
([bgts-ai-org.github.io/bce-microsite](https://bgts-ai-org.github.io/bce-microsite/))
|
|
101
|
+
from the top navigation.
|
|
102
|
+
|
|
10
103
|
## [0.2.4] - 2026-09-22
|
|
11
104
|
|
|
12
105
|
This release turns the agent benchmark (a Cursor CLI agent on 14 tasks against a
|
|
@@ -370,7 +463,9 @@ First public release.
|
|
|
370
463
|
- Docker Compose deployment with PostgreSQL, Apache AGE and pgvector preconfigured.
|
|
371
464
|
- `server.json` manifest describing the stdio server for the official MCP registry.
|
|
372
465
|
|
|
373
|
-
[Unreleased]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.
|
|
466
|
+
[Unreleased]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.3.0...HEAD
|
|
467
|
+
[0.3.0]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.2.5...v0.3.0
|
|
468
|
+
[0.2.5]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.2.4...v0.2.5
|
|
374
469
|
[0.2.4]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.2.3...v0.2.4
|
|
375
470
|
[0.2.3]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.2.2...v0.2.3
|
|
376
471
|
[0.2.2]: https://github.com/bgts-ai-org/bgts-context-engine/compare/v0.2.1...v0.2.2
|
{bgts_context_engine-0.2.4/src/bgts_context_engine.egg-info → bgts_context_engine-0.3.0}/PKG-INFO
RENAMED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: bgts-context-engine
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Deterministic code-graph context engine for AI coding agents - PostgreSQL, Apache AGE and pgvector, over MCP and REST
|
|
5
5
|
Author: Oğuz Öztürk, Enes İyidil
|
|
6
6
|
Maintainer: BGTS
|
|
@@ -69,7 +69,7 @@ that actually answer it — ranked, budgeted, and reproducible.
|
|
|
69
69
|
[](docs/mcp.md)
|
|
70
70
|
[](https://github.com/bgts-ai-org/bgts-context-engine/stargazers)
|
|
71
71
|
|
|
72
|
-
[Quick start](#quick-start) · [Use it from your agent](#use-it-from-your-agent) · [How it works](#how-it-works) · [Supported models](#supported-models) · [Documentation](#documentation) · [Türkçe](README.tr.md)
|
|
72
|
+
[Quick start](#quick-start) · [Use it from your agent](#use-it-from-your-agent) · [How it works](#how-it-works) · [Supported models](#supported-models) · [Documentation](#documentation) · [Website](https://bgts-ai-org.github.io/bce-microsite/) · [Türkçe](README.tr.md)
|
|
73
73
|
|
|
74
74
|
</div>
|
|
75
75
|
|
|
@@ -16,7 +16,7 @@ that actually answer it — ranked, budgeted, and reproducible.
|
|
|
16
16
|
[](docs/mcp.md)
|
|
17
17
|
[](https://github.com/bgts-ai-org/bgts-context-engine/stargazers)
|
|
18
18
|
|
|
19
|
-
[Quick start](#quick-start) · [Use it from your agent](#use-it-from-your-agent) · [How it works](#how-it-works) · [Supported models](#supported-models) · [Documentation](#documentation) · [Türkçe](README.tr.md)
|
|
19
|
+
[Quick start](#quick-start) · [Use it from your agent](#use-it-from-your-agent) · [How it works](#how-it-works) · [Supported models](#supported-models) · [Documentation](#documentation) · [Website](https://bgts-ai-org.github.io/bce-microsite/) · [Türkçe](README.tr.md)
|
|
20
20
|
|
|
21
21
|
</div>
|
|
22
22
|
|
|
@@ -14,7 +14,7 @@ veren sekiz sembolü sıralanmış, bütçelenmiş ve yeniden üretilebilir şek
|
|
|
14
14
|
[](docs/mcp.md)
|
|
15
15
|
[](https://github.com/bgts-ai-org/bgts-context-engine/stargazers)
|
|
16
16
|
|
|
17
|
-
[Hızlı başlangıç](#hızlı-başlangıç) · [Ajanınızdan kullanma](#ajanınızdan-kullanma) · [Nasıl çalışır](#nasıl-çalışır) · [Desteklenen modeller](#desteklenen-modeller) · [Dokümantasyon](#dokümantasyon) · [English](README.md)
|
|
17
|
+
[Hızlı başlangıç](#hızlı-başlangıç) · [Ajanınızdan kullanma](#ajanınızdan-kullanma) · [Nasıl çalışır](#nasıl-çalışır) · [Desteklenen modeller](#desteklenen-modeller) · [Dokümantasyon](#dokümantasyon) · [Site](https://bgts-ai-org.github.io/bce-microsite/) · [English](README.md)
|
|
18
18
|
|
|
19
19
|
</div>
|
|
20
20
|
|