Release Notes

Changelog and release notes for CodeWiki MCP.

Latest Releases

v1.3.0 — 2026-02-17

  • GitHub API fallback for typos & misspellings:
    • When CodeWiki search returns zero results, the resolver now queries api.github.com/search/repositories as a fallback — catches typos like "fecbook/react" → "facebook/react".
    • Fully async with httpx; no API token required for public repos.
  • Indexing confirmation via MCP Elicitation:
    • codewiki_request_indexing now asks the user to confirm before submitting a repository for indexing, using the MCP Elicitation protocol.
    • Users can accept, decline, or cancel — decline and cancel skip the submission gracefully.
  • Defensive hardening:
    • Narrowed all broad except Exception handlers across every module to catch only specific exception types (TimeoutError, PlaywrightError, httpx.HTTPError, etc.).
    • Eliminated bare raise from except-all blocks; replaced with targeted re-raises.
  • Code quality:
    • Full Ruff & Pylint cleanup — zero warnings across the entire codebase.
    • Fixed session pool test infinite loop and gc.collect RuntimeWarnings.
  • Testing:
    • 53 new tests covering keyword resolution, helpers, request-indexing elicitation, tool-level keyword integration, SHA-256 hashing, and bare keyword input validation.
    • New test files: test_helpers.py (27 tests), test_request_indexing.py (14 tests), test_keyword_integration.py (7 tests), plus additions to test_types.py (5 tests).
    • Total: 246 tests passing, 0 warnings.

v1.2.0 — 2026-02-17

  • Bare keyword resolution — resolver.py:
    • All tools now accept bare keywords (e.g. "vue", "react") in addition to full URLs and owner/repo shorthand.
    • Resolution pipeline: CodeWiki search scraping → GitHub API fallback → MCP Elicitation for disambiguation → heuristic top-pick.
    • New module codewiki_mcp/resolver.py encapsulates the entire resolution flow.
  • MCP Elicitation protocol:
    • When multiple repositories match a keyword, the server uses the MCP Elicitation protocol to interactively ask the user to pick the right one.
    • Requires an MCP client that supports elicitation (e.g. Claude Desktop, VS Code Copilot with MCP support).
  • Resolution notes in responses:
    • When a bare keyword is resolved, every response is prefixed with a note like: > Resolved: keyword "vue" → vuejs/vue (209.9k★)
  • ctx parameter on all tools:
    • All 5 tools now accept an optional ctx: Context parameter for MCP Elicitation support. Backward-compatible — omitting ctx disables elicitation and uses heuristic resolution.
  • SHA-256 content hash:
    • Content hash algorithm upgraded from MD5 to SHA-256 (16-char hex prefix) for stronger deduplication fingerprints.
  • Testing:
    • New test_resolver.py with full coverage of the resolution pipeline. Total: 193 tests passing.

v1.1.0 — 2026-02-16

  • New tool — codewiki_request_indexing:
    • Submit unindexed repositories to Google CodeWiki for indexing directly from the MCP server.
    • Full Playwright automation — navigates to the CodeWiki search page, clicks "Request repository", fills the URL dialog, and submits.
    • Automatic NOT_INDEXED detection — all tools now detect unindexed repos and return a structured NOT_INDEXED error code with guidance to call codewiki_request_indexing.
  • Tool renaming — codewiki_verb_noun pattern:
    • All tools renamed for better LLM/agent distinguishability: codewiki_list_topics, codewiki_read_structure, codewiki_read_contents, codewiki_search_wiki, codewiki_request_indexing.
    • Updated all agent instructions, skill definitions, README, and documentation.
  • Version management:
    • __init__.py now reads version from importlib.metadata at runtime — no more hardcoded duplicate.
    • New scripts/bump_version.py — single command bumps pyproject.toml, all docs version badges, and the server banner year.
  • ASCII startup banner:
    • Server now prints a branded ASCII banner with version and year to stderr on startup.
  • Testing:
    • 10 new tests for NOT_INDEXED detection and request indexing tool. Total: 161 tests passing.

v1.0.4 — 2026-02-16

  • Critical bug fixes:
    • Event-loop deadlock_search_impl runs on the browser event loop; calling the sync get_or_create_session() wrapper tried to submit a coroutine to the same loop and blocked, causing a 60 s deadlock per attempt (~123 s total). Fixed by using await _get_or_create() / await _release() directly.
    • Double-submit timeout — after pressing Enter the send button becomes disabled; the old _click_submit() then waited 30 s trying to click the disabled button. New _submit_query() checks the button state first and only clicks as a fallback.
  • Browser stealth layer:
    • New stealth.py module — patches navigator.webdriver, chrome.runtime, plugins, languages, WebGL vendor, permissions, and window dimensions.
    • Human-like input helpers: human_type() (per-character jitter 35–120 ms), human_click() (mouse-move + click), random_delay().
    • Stealth context options: viewport jitter, locale, timezone, Sec-CH-UA client hints, device scale factor.
    • Launch args: --disable-blink-features=AutomationControlled, --disable-infobars.
    • User-Agent updated to Chrome/132.
  • Testing & diagnostics:
    • 22 new stealth tests; 151 total tests passing.
    • Added tests/diagnose_search.py — standalone diagnostic script for headless chat debugging.

v1.0.3 — 2026-02-16

  • Anti-loop / agent-safety optimizations:
    • In-flight deduplication — concurrent identical tool calls are collapsed into one, preventing duplicate work.
    • Rate limiting — max 10 calls per 60 s per repository URL; returns a clear RATE_LIMITED error when exceeded.
    • Content hash — every response includes a short hash so agents can detect duplicate content without re-reading.
    • Topic cachecodewiki_list_topics results are cached for 5 min with a size_hint field to guide agents.
    • Idempotency keyrepo_url::content_hash key in every response for agent-level dedup.
  • Testing:
    • 28 new tests for dedup, rate limiting, content hash, topic cache, and idempotency. Total: 129 tests passing.

v1.0.2 — 2026-02-16

  • Token efficiency optimizations:
    • codewiki_list_topics now returns titles + 200-char previews instead of dumping the full page (~80% fewer tokens).
    • codewiki_read_contents supports pagination via offset and limit parameters — read only what you need.
    • Search responses are cached for 2 minutes — repeated identical queries return instantly.
    • Parsed WikiPage objects are cached in memory — avoids re-parsing the same HTML on repeated tool calls.
    • Word-boundary-aware truncation prevents mid-word content cuts.
  • Code quality improvements:
    • New shared tools/_helpers.py module eliminates duplicated error handling and URL construction across all tools.
    • Added ContentsInput Pydantic model with pagination parameters.
    • Updated tool descriptions to guide agents toward the most efficient workflow.
  • Documentation:
    • Updated Agentic AI Guide with token-efficient workflow recommendations.
    • Added model selection & GitHub Copilot credit optimization guide.
    • Updated Tools Reference with new pagination parameters and caching behavior.
  • Testing:
    • Added tests for parsed cache, search cache, and pagination. Total: 101 tests passing.

v1.0.1 — 2026-02-15

  • Documentation updates and site polish:
    • Added Agentic AI Guide and `Skills & Client Setup` guide.
    • Added GitHub Copilot CLI installation and MCP integration section.
    • Added favicon (SVG + PNG + ICO) and updated docs head metadata.
    • Fixed Mermaid diagram syntax in architecture and tools pages.
    • Published site to GitHub Pages and updated README link.
  • Minor repo cleanup and formatting:
    • Removed unused `server.py` and applied code style fixes (Black, Ruff, Pylint).
    • Small UI tweak: removed duplicate hero SVG (logo remains in sidebar).

v1.0.0 — 2026-02-14

  • Stable release with core features:
    • Playwright-based headless rendering for Google CodeWiki pages.
    • Diagram extraction (Mermaid, Graphviz, inline SVG parsing).
    • Four MCP tools: topics overview, structure JSON TOC, full/section content, interactive chat Q&A.
  • Release infra:
    • PyPI packaging and a GitHub Actions workflow for trusted publishing.
    • Dockerfile updated to install from PyPI and include Playwright dependencies.

v0.3.0 — initial

  • Initial development baseline and repository import.