Skip to content

Releases: drknowhow/code-context-control

v2.34.0

10 Jun 21:31
195d942

Choose a tag to compare

v2.34.0 — Tooling robustness & security observability

Improvements surfaced while exploring the tool, focused on day-to-day Windows friction and defense-in-depth.

pip install -U code-context-control

⚡ c3_shell

  • Forces UTF-8 in child processes and decodes output as UTF-8 — fixes cp1252 UnicodeEncodeError crashes when a command prints , box-drawing, or emoji on Windows.
  • Self-sweeps stray 0-byte "ghost" files created during a command (shell-redirect / metacharacter artifacts like a >Lnnn marker or 2>$null leaking a filename), and reports them. Install-independent and only removes files that appeared during the command — pre-existing files are never touched.
  • No longer auto-filters git status/diff/log/show/branch output — those are needed verbatim.

🔒 Security

  • Guard observability: a startup log line and a web_guard block in the UI /api/health confirm the localhost guard (2.33.0) is active.
  • MCP transport Host allowlist: the Oracle MCP server (:3332) now rejects requests whose Host header isn't loopback or the configured bind_host/allowed_hosts — defense-in-depth against DNS rebinding, on top of the Bearer gate.

🧹 Refactor

  • De-duplicated the MCP-section TOML helpers (parse / upsert / remove / escape) that had drifted between cli/server.py and cli/hub_server.py into a single shared core/mcp_toml.py (reconciled: quote-stripped keys, unlink an emptied config file). Net −235 lines across the two servers.

✅ Quality

  • +23 tests (test_shell_robustness, test_mcp_host_guard, test_mcp_toml); full suite 381 passing across macOS/Ubuntu/Windows × py3.10–3.12.

See CHANGELOG.md for full details.

v2.33.0

10 Jun 20:43
f7c859a

Choose a tag to compare

v2.33.0 — Web security hardening

Security-hardening release closing a cross-origin / DNS-rebinding gap in C3's local web servers, plus two related hardenings and two c3_read fixes.

pip install -U code-context-control

🔒 Security

  • Cross-origin / CSRF + DNS-rebinding hardening for all local web servers. The Hub, per-project UI, and Oracle bind to loopback but had no auth, no Origin/Host validation, and wildcard CORS — so any web page open in the user's browser could drive state-changing endpoints (the launch-ide custom command, adding a malicious MCP server, downgrading Claude permissions, wiping data) and read the Oracle Discovery bearer token. A new shared guard (core/web_security.py) now enforces a Host-header allowlist (defeats DNS rebinding) + an Origin/Referer check on every request (defeats CSRF), and replaces wildcard CORS with scoped, same-origin reflection. Loopback and non-browser API clients are unaffected; non-loopback binds honour host/bind_host + an optional allowed_hosts list. Oracle Discovery bearer auth still applies on top.
  • api_projects_open (Hub + UI) now refuses non-directory paths, so it can no longer launch an arbitrary file via the OS default handler.
  • c3_shell blocklist strengthened to also cover rm -rf /*, rm -rf of a whole top-level system directory, and Windows whole-drive-root wipes (del/rd/format C:\). Nested-path deletes stay allowed. Documented explicitly as a best-effort guard, not a sandbox.

🐛 Fixed

  • c3_read silently returned the file map instead of source for lines range reads — MCP serializes lines as a string (e.g. "[22, 193]"), which fell through the range logic. lines is now coerced like symbols.
  • Comma-separated symbols ("a,b,c") now split into multiple targets instead of being read as one ambiguous name.

✅ Quality

  • New tests: tests/test_web_security.py, tests/test_read_coercion.py; extended tests/test_c3_shell.py. Full suite green across macOS/Ubuntu/Windows × py3.10–3.12.

See CHANGELOG.md for full details.

v2.32.2

09 Jun 13:02
9f1df6f

Choose a tag to compare

What's Changed

  • docs: add Oracle Discovery API section to the README by @drknowhow in #6
  • chore(release): 2.32.2 docs release by @drknowhow in #7

Full Changelog: v2.32.1...v2.32.2

v2.32.1

09 Jun 12:28
2e1136b

Choose a tag to compare

C3 v2.32.1

First PyPI release since v2.30.0 — it brings everything merged in between: cross-project tools (2.31.0), the Oracle Discovery API (2.32.0), and dashboard token management (2.32.1).

🔮 Oracle Discovery API (2.32.0)

External LLMs — Claude Code / Desktop or any function-calling model — can point at a running Oracle and use C3's cross-project code & memory intelligence as tools, over MCP (HTTP/SSE) and a parallel OpenAPI REST surface that share one tool core. Read + safe-action tiers only (no code edits); Bearer-token auth (OS keyring); loopback-bound by default. New c3 oracle api {info,key,rotate,clear} CLI prints the token + a ready-to-paste .mcp.json snippet.

🔑 Dashboard token management (2.32.1)

Generate / rotate / clear / reveal / copy the Discovery API Bearer token from the Oracle dashboard (Settings → Discovery API), with live MCP / REST / OpenAPI URLs and a copyable .mcp.json entry. Backed by new /api/apikey/* endpoints.

🌐 Cross-project tools (2.31.0)

New c3_project MCP tool — discover and operate on other c3-installed projects (search / read / compress / status / memory / impact / edits / validate / filter), with guarded writes (edit, shell, memory mutations) behind an explicit allow_write=true, audited on the target project.

🔒 Notable change

The Oracle server now binds 127.0.0.1 by default (was 0.0.0.0); override via bind_host in ~/.c3/oracle/config.json.

Full curated notes per version: CHANGELOG.md.


What's Changed

  • feat(2.31.0): cross-project tools - c3_project MCP tool by @drknowhow in #3
  • feat(2.32.0): Oracle Discovery API - external LLM tool surface (MCP + OpenAPI) by @drknowhow in #4
  • feat(2.32.1): Discovery API token management in the Oracle dashboard by @drknowhow in #5

Full Changelog: v2.30.0...v2.32.1

v2.30.0

07 May 14:50
74f3a79

Choose a tag to compare

What's Changed

  • feat(2.30.0): Bitbucket Data Center / Server integration by @drknowhow in #2

New Contributors

Full Changelog: v2.29.0...v2.30.0

v2.29.0

27 Apr 20:11

Choose a tag to compare

Full Changelog: v2.28.3...v2.29.0

v2.28.3

27 Apr 10:27

Choose a tag to compare

Full Changelog: v2.28.2...v2.28.3

v2.28.2

27 Apr 10:13

Choose a tag to compare

Full Changelog: v2.28.1...v2.28.2

v2.28.1

27 Apr 10:07

Choose a tag to compare

Full Changelog: v2.28.0...v2.28.1

v2.28.0

27 Apr 09:37

Choose a tag to compare