code-context-engine 0.4.8__tar.gz → 0.4.10__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.
Files changed (87) hide show
  1. {code_context_engine-0.4.8/src/code_context_engine.egg-info → code_context_engine-0.4.10}/PKG-INFO +1 -1
  2. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/pyproject.toml +1 -1
  3. {code_context_engine-0.4.8 → code_context_engine-0.4.10/src/code_context_engine.egg-info}/PKG-INFO +1 -1
  4. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/cli.py +12 -1
  5. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/dashboard/_page.py +1 -1
  6. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/integration/mcp_server.py +4 -1
  7. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/LICENSE +0 -0
  8. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/README.md +0 -0
  9. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/setup.cfg +0 -0
  10. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/code_context_engine.egg-info/SOURCES.txt +0 -0
  11. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/code_context_engine.egg-info/dependency_links.txt +0 -0
  12. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/code_context_engine.egg-info/entry_points.txt +0 -0
  13. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/code_context_engine.egg-info/requires.txt +0 -0
  14. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/code_context_engine.egg-info/top_level.txt +0 -0
  15. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/__init__.py +0 -0
  16. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/cli_style.py +0 -0
  17. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/__init__.py +0 -0
  18. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/compressor.py +0 -0
  19. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/ollama_client.py +0 -0
  20. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/output_rules.py +0 -0
  21. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/prompts.py +0 -0
  22. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/compression/quality.py +0 -0
  23. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/config.py +0 -0
  24. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/dashboard/__init__.py +0 -0
  25. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/dashboard/server.py +0 -0
  26. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/editors.py +0 -0
  27. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/event_bus.py +0 -0
  28. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/__init__.py +0 -0
  29. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/chunker.py +0 -0
  30. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/embedder.py +0 -0
  31. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/embedding_cache.py +0 -0
  32. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/git_hooks.py +0 -0
  33. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/git_indexer.py +0 -0
  34. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/ignorefile.py +0 -0
  35. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/manifest.py +0 -0
  36. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/pipeline.py +0 -0
  37. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/secrets.py +0 -0
  38. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/indexer/watcher.py +0 -0
  39. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/integration/__init__.py +0 -0
  40. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/integration/bootstrap.py +0 -0
  41. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/integration/git_context.py +0 -0
  42. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/integration/session_capture.py +0 -0
  43. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/__init__.py +0 -0
  44. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/compressor.py +0 -0
  45. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/db.py +0 -0
  46. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/extractive.py +0 -0
  47. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/grammar.py +0 -0
  48. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/hook_installer.py +0 -0
  49. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/hook_server.py +0 -0
  50. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/hooks.py +0 -0
  51. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/memory/migrate.py +0 -0
  52. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/models.py +0 -0
  53. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/pricing.py +0 -0
  54. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/project_commands.py +0 -0
  55. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/retrieval/__init__.py +0 -0
  56. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/retrieval/confidence.py +0 -0
  57. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/retrieval/query_parser.py +0 -0
  58. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/retrieval/retriever.py +0 -0
  59. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/serve_http.py +0 -0
  60. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/services.py +0 -0
  61. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/__init__.py +0 -0
  62. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/backend.py +0 -0
  63. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/fts_store.py +0 -0
  64. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/graph_store.py +0 -0
  65. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/local_backend.py +0 -0
  66. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/remote_backend.py +0 -0
  67. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/storage/vector_store.py +0 -0
  68. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/src/context_engine/utils.py +0 -0
  69. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_init_probe.py +0 -0
  70. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_mcp_config.py +0 -0
  71. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_savings.py +0 -0
  72. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_savings_buckets.py +0 -0
  73. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_savings_e2e.py +0 -0
  74. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_serve.py +0 -0
  75. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_sessions_export.py +0 -0
  76. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_sessions_status.py +0 -0
  77. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_smoke.py +0 -0
  78. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_cli_uninstall.py +0 -0
  79. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_config.py +0 -0
  80. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_e2e.py +0 -0
  81. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_event_bus.py +0 -0
  82. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_models.py +0 -0
  83. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_project_commands.py +0 -0
  84. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_real_life.py +0 -0
  85. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_services.py +0 -0
  86. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_token_efficiency.py +0 -0
  87. {code_context_engine-0.4.8 → code_context_engine-0.4.10}/tests/test_token_packing.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-engine
3
- Version: 0.4.8
3
+ Version: 0.4.10
4
4
  Summary: Index your codebase. AI searches instead of re-reading files. 94% token savings, benchmarked on FastAPI. Works with Claude Code, Cursor, VS Code, Gemini CLI, and Codex.
5
5
  Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
6
6
  License-Expression: MIT
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "code-context-engine"
3
- version = "0.4.8"
3
+ version = "0.4.10"
4
4
  description = "Index your codebase. AI searches instead of re-reading files. 94% token savings, benchmarked on FastAPI. Works with Claude Code, Cursor, VS Code, Gemini CLI, and Codex."
5
5
  readme = {file = "README.md", content-type = "text/markdown"}
6
6
  license = "MIT"
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: code-context-engine
3
- Version: 0.4.8
3
+ Version: 0.4.10
4
4
  Summary: Index your codebase. AI searches instead of re-reading files. 94% token savings, benchmarked on FastAPI. Works with Claude Code, Cursor, VS Code, Gemini CLI, and Codex.
5
5
  Author-email: Fazle Elahee <felahee@gmail.com>, Raj <rajkumar.sakti@gmail.com>
6
6
  License-Expression: MIT
@@ -445,7 +445,8 @@ def _show_welcome_banner(config) -> None:
445
445
  if queries > 0:
446
446
  left_lines.append(f" {G}●{R} Savings {GB}{saved_pct}%{R} over {C}{queries}{R} queries")
447
447
  elif full_file > 0:
448
- left_lines.append(f" {D}○ Savings no queries yet{R}")
448
+ left_lines.append(f" {D}○ Savings waiting for first search{R}")
449
+ left_lines.append(f" {D}stats update after context_search calls{R}")
449
450
  else:
450
451
  left_lines.append(f" {Y}○ Not indexed{R}")
451
452
  left_lines.append(f" {D}run: cce init{R}")
@@ -1258,6 +1259,16 @@ def _run_savings_report(config, *, as_json: bool = False, all_projects: bool = F
1258
1259
  click.echo(f" {bold(name)} {dim('·')} {value(str(queries))} {dim(q_label)}")
1259
1260
  click.echo()
1260
1261
 
1262
+ # Show friendly message when no searches have happened yet.
1263
+ # Exception: bucket data with real savings means context_search
1264
+ # was called but the legacy query counter wasn't incremented.
1265
+ has_bucket_savings = bucket_baseline > 0 and bucket_served < bucket_baseline
1266
+ if queries == 0 and not has_bucket_savings:
1267
+ click.echo(f" {dim('Waiting for first search.')}")
1268
+ click.echo(f" {dim('Stats populate after context_search calls via MCP.')}")
1269
+ click.echo()
1270
+ return
1271
+
1261
1272
  # Headline bar + percentage
1262
1273
  click.echo(
1263
1274
  f" {_bar(saved_pct)} "
@@ -1229,7 +1229,7 @@ async function loadOverviewPanels() {
1229
1229
  );
1230
1230
  } else {
1231
1231
  document.getElementById('chart-token-savings').innerHTML =
1232
- '<div class="empty"><span class="empty-title">No queries yet</span><span class="empty-hint">Run context_search via MCP to start tracking</span></div>';
1232
+ '<div class="empty"><span class="empty-title">Waiting for first search</span><span class="empty-hint">Stats populate automatically after context_search calls</span></div>';
1233
1233
  }
1234
1234
 
1235
1235
  // ── File Health Donut ──
@@ -1355,7 +1355,10 @@ class ContextEngineMCP:
1355
1355
  f"({saved:,} saved, {pct}%)"
1356
1356
  )
1357
1357
  else:
1358
- status_parts.append("Token savings: no queries recorded yet")
1358
+ status_parts.append(
1359
+ "Token savings: waiting for first context_search call. "
1360
+ "Stats populate automatically after searches."
1361
+ )
1359
1362
  return [TextContent(type="text", text="\n".join(status_parts))]
1360
1363
 
1361
1364
  async def _handle_reindex(self, args):