Skip to content

Releases: nxrobins/dotscope

v1.7.9

23 Apr 05:32

Choose a tag to compare

Windows-safe MCP boot-gate release.

Highlights:

  • force UTF-8 Python stdio in the reusable MCP boot-gate workflow
  • run boot-gate ingest/init in quiet mode for CI
  • make init summary output ASCII-safe on non-Unicode consoles
  • include regression coverage for cp1252-style stdout handling

v1.7.8

23 Apr 05:25

Choose a tag to compare

MCP boot-contract hardening and refactor release.

Highlights:

  • strict MCP boot contract with manifest and failure bundle persistence
  • managed-runtime and repo-local auto-repair with advisory global drift by default
  • reusable CI/release boot gate across Windows, Linux, Intel macOS, and Apple Silicon macOS
  • probe, target, and boot-policy refactors plus lock and launcher regressions fixed during validation

v1.7.7

15 Apr 08:38

Choose a tag to compare

Help, docs, and CLI fixes

CLI:

  • dotscope ingest . now works — added optional positional directory arg (was --dir only)
  • dotscope sync help text cleaned up

Help text:

  • Root --help now shows all user-facing commands (was missing sync, match, context, list, validate, impact)
  • Added per-command --help for sync, context, match, validate, impact

Documentation overhaul:

  • mcp-integration.md: Rewrote to match the 14 tools that actually exist. Previous version claimed 19 tools, listing 12 that were never implemented. Added dotscope_sync and dotscope_refresh. Fixed codebase_searchdotscope_search.
  • cli-reference.md: Rewrote with accurate syntax for all commands.

Also includes (from v1.7.4–1.7.6)

  • Fixed MCP stdio transport (responses going to stderr)
  • Replaced fragile monkeypatch with clean method override
  • Fixed dotscope_search git grep flag ordering
  • Fixed list_scopes / match_scope returning empty results
  • Exposed dotscope_sync as MCP tool
  • Raised mcp dependency floor to >=1.6.0

v1.7.6

15 Apr 08:13

Choose a tag to compare

Bug fixes

dotscope_search: git grep -i flag was inserted at the wrong index, producing the invalid command git --no-pager -i grep .... Fixed off-by-one in cmd.insert().

list_scopes / match_scope: Both returned empty results when the .scopes index existed but had no entries in the scopes: field (e.g., legacy routes: format). The check if index: was truthy for an empty ScopesIndex, so the fallback to physical .scope file discovery never ran. Changed to if index and index.scopes:.

Also in this release (from v1.7.4–1.7.5)

  • Fixed MCP stdio transport (responses were going to stderr instead of stdout)
  • Replaced fragile monkeypatch with clean run_stdio_async method override
  • Exposed dotscope_sync as an MCP tool
  • Raised mcp dependency floor to >=1.6.0

v1.7.5

15 Apr 08:00

Choose a tag to compare

Improved stdio transport fix

Supersedes v1.7.4. Replaces the internal module monkeypatch with a clean method override that passes the isolated stdout into stdio_server(stdout=...) — the public API. This is stable across all mcp package versions.

Changes:

  • Simpler fix: Override FastMCP.run_stdio_async instead of patching mcp.server.fastmcp.server.stdio_server (an internal import that could change between releases)
  • Raise mcp floor: mcp>=1.6.0 (was >=1.2.0). Versions <1.6 crash with a Pydantic ValidationError when the client sends notifications/cancelled

Background

v1.7.3 had a bug where all JSON-RPC responses were silently written to stderr instead of stdout, causing every MCP client to time out. v1.7.4 fixed this but used a fragile monkeypatch. v1.7.5 uses the same approach but through stable public API.

v1.7.4

15 Apr 07:24

Choose a tag to compare

Bug fix

Fix MCP stdio transport: JSON-RPC responses were silently written to stderr instead of stdout, causing all MCP clients (Claude Code, Claude Desktop, Cursor, etc.) to time out after 60 seconds.

Root cause: The stdout isolation monkeypatch replaced mcp.server.stdio.stdio_server, but FastMCP.run_stdio_async binds the function via from … import at module load time — the patch never took effect. All responses went through the redirected fd 1 (→ stderr).

Fix: Patch the local name inside mcp.server.fastmcp.server (the reference that run_stdio_async actually calls) in addition to the module-level attribute.

v1.7.3

14 Apr 22:20

Choose a tag to compare

Polish for public launch

  • Version string sync: dotscope.__version__ and dotscope --version now correctly report 1.7.3. v1.7.2 shipped with a stale "1.7.1" hardcoded in dotscope/__init__.py.
  • sdist publishes cleanly: added license-files = ["LICENSE"] so maturin includes LICENSE in the sdist alongside the PEP 639 metadata. Previous sdist uploads were rejected by PyPI; now sdist and all wheels publish successfully.

No functional changes from v1.7.2. If you're already on v1.7.2 with working wheels, the only practical difference is correct version reporting.

If you're just finding dotscope

v1.7.3 is the first release where everything aligns: the init crash is fixed, help and argparser are in sync, and the package metadata is clean. pip install dotscope.

v1.7.2

14 Apr 21:32

Choose a tag to compare

Fixes

  • dotscope init post-ingest crash_cmd_init in cli/core.py referenced helpers that live in cli/__init__.py without importing them, and called backtest_scopes() with a stale 1.6.x signature. Chain of NameError/TypeError made init exit 1 after successful ingestion. The crash came after all artifacts were written, so existing installs were functionally fine — this restores a clean exit code and the post-init counterfactual summary. (a60aeb9)
  • Phantom onboard subcommand — the help banner advertised onboard [NEW!] Interactive getting started guide, but the argparser had no such subcommand registered, so dotscope onboard failed with an "invalid choice" error. Removed from the help banner and HELP_COMMANDS so help and argparser stay in sync. (a60aeb9)
  • CI: Publish workflowactions/download-artifact@v4 with a wildcard pattern was creating subdirectories that broke twine. Added merge-multiple: true. This is why v1.7.0 and v1.7.1 never made it to PyPI. (7b62ac1)

Side benefit

Init is slightly faster now — the fix eliminates a redundant second backtest invocation. ingest() already runs a 50-commit replay internally and stores the result on plan.backtest_report, so the CLI just reads from there.

Note

v1.7.2 is the first dotscope release to reach PyPI. v1.7.0 and v1.7.1 had tags and GitHub releases but the publish workflow failed. Install with pip install dotscope.

Dotscope v1.7.1: The Product Hunt Launch Matrix Fix

13 Apr 06:40

Choose a tag to compare

Structural physics bounding for AI Agents. Native Petgraph bounds + Zero-Dependency cross-compiled Rust binaries.

Dotscope v1.7.0: The Product Hunt Launch

12 Apr 23:30

Choose a tag to compare

Structural physics bounding for AI Agents. Native Petgraph bounds + Zero-Dependency cross-compiled Rust binaries.