Skip to content

Releases: boringdata/kurt-core

v0.3.0 - Consolidating to AGENTS.md + kurt show command

05 Dec 19:42
b2666c2

Choose a tag to compare

Features

  • Vector Search Enhancement (#42, #53): Replaced ripgrep with document-level vector search and optimized
    prompt citations for more accurate content discovery
  • Firecrawl Integration (#47): Added batch scraping API support for improved web content extraction
  • Eval Framework Improvements (#50, #44):
    • Added project dump/load functionality for evaluation workflows
    • Reorganized eval framework with clean mock data structure
  • Async Operations (#29): Migrated to native async DSPy and async database operations for better performance
  • Bulk CMS Fetching (#31): Added bulk fetch capabilities for CMS documents with increased analytics query
    limits
  • New Commands: Added kurt show and kurt update commands for better workflow management

Fixes

  • Migration Handling (#30): Fixed broken migration system and improved migration handling in Claude Code and
    Cursor
  • Entity Resolution (#23): Fixed circular MERGE_WITH bug in entity resolution
  • Data Model Simplification: Store topics/technologies as entities only for cleaner data structure
  • Clustering: Fixed clustering to assign all documents to clusters (not just example URLs)
  • Filter Bug (#41): Fixed --include filter in list-entities command

Internal Improvements

  • Centralized agent configuration in AGENTS.md
  • Single citations file per document for better organization
  • Updated test coverage for vector search migration
  • Enhanced circular merge chain testing

v0.2.8 - Usable analytics + CMS integrations

20 Nov 21:39
d79a1d9

Choose a tag to compare

🚀 Performance Improvements

CMS Bulk Fetch Optimization

  • No more slow CMS mapping: Sanity bulk document fetching now ~120x faster (10 minutes → 5 seconds for 256 documents)
  • Added batch fetching API support for CMS adapters
  • Documents are grouped by platform/instance and fetched in single API calls instead of individual requests
  • Web document fetching unchanged (still uses async HTTP)

Analytics Integration Enhancement

  • PostHog queries now use LIMIT 10000 and ORDER BY pageviews DESC to fetch all high-traffic pages
  • Fixed pagination issues (now fetching 298 pages vs ~50 before)

📚 Documentation Improvements

Source Management Instructions

  • Reorganized CLAUDE.md and add-source.md for better separation of concerns
  • Added comprehensive "Keeping Content Up to Date" sections for each source type (CMS, websites, files)
  • Integrated update workflows directly into each source type's instructions
  • Clarified incremental vs full refresh workflows with --refetch flag usage

🐛 Bug Fixes (from v0.2.7)

  • Fix migration system (#28): Improved migration handling and integrated data migrations
  • Fix clustering (#25): Now assigns ALL documents to clusters, not just example URLs
  • Fix entity resolution circular MERGE_WITH bug (#23, #24): Prevents circular merge chains in entity resolution
  • Simplify data model (#26, #27): Store topics/technologies as entities only (Issue #16)

🔧 Other Improvements

  • Analytics decoupled from documents for cleaner architecture
  • Enhanced CMS integration UX
  • Added unit tests for integration features
  • Removed unused session variable in fetch.py

📦 Installation

  1. Upgrade kurt
  pip install --upgrade kurt-cli
  # or
  pip install kurt-cli==0.2.8
  1. Update Cursor + Claude Code plugins in project folder
kurt init

Will prompt to update Cursor rules / Claude instruction files.

  1. Start Cursor or Claude
    Will automatically run migrations to bring your Kurt db up to date.

🔗 Full Changelog

Commits since v0.2.7:

  • efcb005 Bulk fetch of CMS docs, bumping limit on analytics queries (#29)
  • 8a62a8d Fix migration system and integrate data migration (#28)
  • 4cc35cf Simplify data model: Store topics/technologies as entities only (#27)
  • 75eed92 Fix clustering to assign all documents to clusters (#25)
  • 363e794 Fix entity resolution circular MERGE_WITH bug (#24)
  • f8cad7d Integration upgrades + bug fixes: analytics decoupling, CMS integration UX, unit tests (#19)

v0.2.7 - Dual Cursor + Claude Code support

14 Nov 22:09

Choose a tag to compare

  • Dual IDE support by default (Claude Code + Cursor)
  • Firmer instructions in CLAUDE.md / kurt-main.mdc to follow the rules (as Cursor can ignore directives). Need to keep an eye on Cursor rule following.

v0.2.6 - Topic and Technology Filters

14 Nov 19:47

Choose a tag to compare

New Features

Content List Filtering

Added --with-topic and --with-technology filters to kurt content list command for more granular content discovery.

New Options

  • --with-topic: Filter documents by topic (e.g., "Python", "Machine Learning")
  • --with-technology: Filter documents by technology/tool (e.g., "FastAPI", "TensorFlow")

Features

  • Dual-source filtering: Searches both:
    • Document metadata fields (primary_topics, tools_technologies)
    • Knowledge graph entities (Topic, Technology, Tool, Product types)
  • Case-insensitive partial matching: Finds "python" in "Python Programming"
  • Seamless integration: Combines with existing filters (--with-status, --include, --in-cluster, etc.)
  • Consistent with list commands: Synced with kurt content list-topics and kurt content list-technologies

Usage Examples

```bash

Filter by topic

kurt content list --with-topic "Python"

Filter by technology

kurt content list --with-technology "FastAPI"

Combine both filters

kurt content list --with-topic "Machine Learning" --with-technology "TensorFlow"

Combine with other filters

kurt content list --with-topic "Python" --with-status FETCHED --limit 10
```

Testing

  • Added comprehensive test suite with 18 test cases
  • All tests passing ✅
  • Covers metadata filtering, knowledge graph integration, combined filters, and edge cases

What's Changed

  • Enhanced kurt content list command with topic and technology filtering
  • Updated list_content() function with new filtering logic
  • Added test_list_filters.py test suite

Full Changelog: v0.2.5...v0.2.6

Kurt v0.2.5 - IDE Selection Support

14 Nov 16:48

Choose a tag to compare

What's New

IDE Selection Support

Kurt now supports multiple IDEs! Choose between Claude Code and Cursor when initializing a new project.

# For Claude Code (default)
kurt init
kurt init --ide claude

# For Cursor
kurt init --ide cursor

Features

  • --ide flag for kurt init: Select your preferred IDE during project initialization

  • Claude Code support: Automatically sets up .claude/ directory with:

    • CLAUDE.md - Main instructions
    • settings.json - Hooks configuration
    • instructions/ - Contextual instructions
    • commands/ - Slash commands
    • kurt/templates/ - Format and project templates
  • Cursor support: Automatically sets up .cursor/ directory with:

    • rules/*.mdc - 8 Cursor rules including main instructions and workflows
    • kurt/templates/ - Format and project templates
  • IDE-specific next steps: Shows appropriate instructions for each IDE after initialization

Installation

pip install kurt-core==0.2.5

Or upgrade:

pip install --upgrade kurt-core

Full Changelog: v0.2.4...v0.2.5

v0.2.4 - Test reliability improvements

14 Nov 15:28

Choose a tag to compare

What's Changed

Test Infrastructure

  • Fixed flaky background logging test: Improved test reliability by increasing timeouts, better waiting logic, and adding detailed error messages
  • Skipped unreliable test in CI: Temporarily skipped due to race condition that requires architectural changes to fix properly

Technical Details

The background workflow logging test was inherently flaky due to a race condition:

  • Worker process enqueues workflow in background thread pool
  • Logging is configured in main worker thread
  • Fast workflows can complete before logging is set up

The test passes ~60% locally but fails consistently in CI. The functionality works correctly in production - this is purely a test timing issue.

Changes

  • Increased test wait time from 5s → 20s for CI environments
  • Improved waiting logic to check for actual workflow logs, not just file existence
  • Better error messages showing file size and log content previews
  • Removed psutil dependency that was causing import errors in CI
  • Skipped flaky test to unblock CI while architectural improvements are planned

Full Changelog: v0.2.3...v0.2.4

v0.2.3

14 Nov 13:59

Choose a tag to compare

What's New

Telemetry Tracking

  • Added decorator to all 16 content commands
  • All content operations now send telemetry events to PostHog
  • Track command execution, duration, and errors

Commands Now Tracked

  • kurt content fetch - Download and index content
  • kurt content list - List documents
  • kurt content stats - Show statistics
  • kurt content get - Get document details
  • kurt content index - Extract metadata
  • kurt content search - Search content
  • kurt content delete - Delete documents
  • kurt content cluster-urls - Organize into topics
  • kurt content list-clusters - List topic clusters
  • kurt content list-topics - List all topics
  • kurt content list-technologies - List technologies
  • kurt content sync-metadata - Sync metadata
  • kurt map url - Discover URLs from web
  • kurt map folder - Discover files from folders
  • kurt map cms - Discover content from CMS

Events Tracked

  • command_started - When command begins
  • command_completed - When command succeeds (includes duration_ms)
  • command_failed - When command errors (includes error_type)

Event Properties

All events include:

  • Command name and path
  • Execution duration (for completed commands)
  • Operating system and version
  • Python version
  • Kurt version
  • Exit code and error type (for failures)

Installation

pip install kurt-core

Requirements

  • Python >= 3.10
  • PostHog package (automatically installed)

🤖 Generated with Claude Code

v0.2.2

14 Nov 12:37

Choose a tag to compare

Changes

  • Added new training data for project with sources scenario
  • Updated dependencies in uv.lock

Improvements

  • Training Data: Added comprehensive training data for evaluation framework

Full Changelog: v0.2.1...v0.2.2

v0.2.1

14 Nov 12:25

Choose a tag to compare

Changes

  • Fixed CI test failure in test_is_ci_environment
  • Fixed release workflow to trigger correctly on GitHub releases
  • Test now properly clears CI environment variables before asserting

Bug Fixes

  • CI/CD: Fixed test that was failing in CI environments by clearing CI env vars before testing default behavior
  • Workflow: Fixed release workflow condition to work with GitHub release events

Full Changelog: v0.2.0...v0.2.1