Skip to content

Releases: boykush/scraps

v0.33.0

13 Mar 08:53

Choose a tag to compare

What's Changed

✨ Features

scraps lint - Wiki-link quality checker 🆕

New scraps lint command that validates wiki-link quality across your scraps.
Detects broken links and potential issues with clippy-style diagnostic output using annotate-snippets, providing clear source spans and actionable suggestions. (#428)

  • feat(scraps-writer): auto-determine max-lines based on topic familiarity (#423, #427)

    Scraps-writer skill now automatically adjusts content length based on topic familiarity,
    using an inverted-U curve for optimal output.

  • feat(scraps-writer): make skill user-invocable and improve UX (#422, #403, #402)

    Scraps-writer skill can now be invoked directly by users with improved title handling and contextual guidance.

📚 Documentation

  • docs: add lint to CLI features in README (#429)

🐛 Bug Fixes

  • fix: disable mise cache in Playwright CI (#401)
  • fix: correct broken wiki-link path in Search Architecture doc (#389)
  • fix: use GitHub Releases binary for mise installation in remote environments (#426)

🔧 Refactoring

  • refactor: remove unnecessary clone() calls across codebase (#400)
  • refactor: construct BacklinksMap once and pass by reference (#397)
  • refactor: migrate builtin CSS to use CSS nesting (#394)
  • refactor: migrate plain tests to rstest parametrized cases (#391)
  • refactor: replace manual frontmatter parsing with pulldown-cmark MetadataBlock (#390)

🛠 Development Improvements

  • feat: add animated progress spinners to build stage output (#424)
  • feat: add cargo-deny for dependency security and license auditing (#395)
  • feat: streamline dev docs and enable all-features testing (#404)
  • feat: add remote environment setup hook for mise tool installation (#425)
  • feat: refactor performance test into mise task (#396)
  • ci: optimize mise install by specifying only required tools per workflow (#399)
  • chore: migrate mise inline tasks to file tasks (#393)
  • chore: replace tarpaulin with cargo-llvm-cov for coverage (#392)
  • chore: switch scraps tool to github backend (#388)

📦 Dependencies

Full Changelog: v0.32.0...v0.33.0

v0.32.0

11 Feb 06:26

Choose a tag to compare

What's Changed

✨ Features

  • feat: add get_scrap MCP tool for single scrap retrieval (#382)

    Added a new get_scrap MCP tool that allows retrieving a single scrap by title. This enables more targeted content access without needing to search across all scraps.

  • feat: remove md_text from search/lookup MCP tool responses (#384)

    Removed md_text field from search and lookup MCP tool responses to reduce response payload size and simplify the tool output format.

🐛 Bug Fixes

  • fix: enforce max-lines default of 10 in skill workflows (#379)

🔧 Refactoring

  • refactor: restore scraps-writer as shared workflow skill (#381)
  • refactor: pass title and max-lines explicitly to scraps-writer skill (#383)

📚 Documentation

  • docs: update scraps-writer SKILL.MD for md_text removal (#385)

🔧 Maintenance

  • chore(deps): update boykush/scraps-deploy-action action to v4.2.1 (#376)
  • chore(deps): update dependency cargo:scraps to 0.31.0 (#377)
  • chore(deps): update rust crate tempfile to v3.25.0 (#380)

Full Changelog: v0.31.1...v0.32.0

v0.31.1

08 Feb 06:49
3b97064

Choose a tag to compare

What's Changed

🐛 Bug Fixes

  • Revert PR #373: tag syntax redesign (#375)

🔧 Maintenance

  • chore(deps): update rust crate clap to v4.5.57 (#371)
  • chore(deps): update rust crate anyhow to v1.0.101 (#372)
  • refactor: replace prohibition instructions with tag verification step in skills (#378)

Full Changelog: v0.31.0...v0.31.1

v0.31.0

08 Feb 06:07

Choose a tag to compare

What's Changed

✨ Features

  • feat: add scraps lint command with tag syntax support (#373)

    New scraps lint command detects broken wiki-links in your scraps. Also introduces #[[tag]] syntax to distinguish tags from regular links, preventing false lint warnings.
    Related: #374

🐛 Bug Fixes

  • fix: strengthen Wiki-link validation instructions (#368)

🔧 Refactoring

  • refactor: consolidate scraps-writer skill into add-scrap and web-to-scrap (#367)

📚 Documentation

  • docs: clarify search_scraps returns existing scraps only (#364)

🔧 Maintenance

  • chore(deps): update rust crate hyper-util to v0.1.20 (#370)
  • chore(deps): update rust crate schemars to v1.2.1 (#369)
  • chore(deps): update rust crate rmcp to v0.14.0 (#350)
  • chore(deps): update rust crate clap to v4.5.56 (#358)
  • chore(deps): update boykush/scraps-deploy-action action to v4.1.2 (#357)
  • chore(config): migrate Renovate config (#366)
  • chore: exclude self-maintained packages from minimumReleaseAge (#362)
  • ci: add semver comments to docker actions for renovate stability-days (#365)

Full Changelog: v0.30.2...v0.31.0

v0.30.2

27 Jan 15:23

Choose a tag to compare

What's Changed

✨ Features

  • feat: add logic parameter to search_scraps MCP tool (#355)

    Add optional logic parameter for OR (default) or AND keyword matching in search_scraps MCP tool. OR search finds related content by matching any keyword, while AND search enables precise filtering by requiring all keywords.

📚 Documentation

  • docs: add Linux support and GitHub Releases installation guide (#353)

🔧 Maintenance

  • chore(deps): update boykush/scraps-deploy-action action to v4.1.1 (#354)

Full Changelog: v0.30.1...v0.30.2

v0.30.1

25 Jan 08:11

Choose a tag to compare

What's Changed

  • feat(plugin): enforce MCP-validated links and tags in scraps-writer skills by @boykush in #345
  • chore(deps): update dependency cargo:scraps to 0.30.0 by @renovate[bot] in #344
  • chore(deps): update boykush/scraps-deploy-action action to v4.1.0 by @renovate[bot] in #343
  • feat: centralize CDN dependency versions for Renovate management by @boykush in #346
  • docs: add README files for plugins by @boykush in #348
  • chore(deps): update cdn dependencies by @renovate[bot] in #347
  • feat: add multi-platform binary build support by @boykush in #351
  • feat: add Linux support for homebrew formula by @boykush in #352

Full Changelog: v0.30.0...v0.30.1

v0.30.0

24 Jan 09:03

Choose a tag to compare

What's Changed

✨ Features

  • feat(plugin): restructure scraps-writer plugin to v2.0.0 with workflow skills (#342)

    Restructured plugin with modular skills: add-scrap, web-to-scrap, and scraps-writer knowledge base for better Claude Code integration.

  • feat(plugin): add max-lines argument option to scraps-writer skill (#341)

  • feat(search): include body content in search (#339)

    Improved content discovery by including body text in search results, making it easier to find scraps based on their content.

  • feat(search): support AND search with space-separated keywords (#338)

    Search queries now support AND logic with space-separated keywords. Search for 'rust async' to find scraps containing both terms.

📚 Documentation

  • docs: remove search CLI documentation (#340)
  • docs: remove redundant Configure Project tutorial (#334)

🔧 Maintenance

  • chore(deps): update docker/build-push-action digest to 64c9b14 (#302)
  • chore(deps): update docker/login-action digest to 0567fa5 (#281)
  • chore(deps): update docker/setup-buildx-action digest to c7c4c00 (#274)
  • chore(deps): update docker/metadata-action digest to ed95091 (#271)
  • chore(deps): update rust crate thiserror to v2.0.18 (#335)
  • chore(deps): update boykush/scraps-deploy-action action to v4 (#333)
  • chore(deps): update dependency cargo:scraps to 0.29.0 (#332)

Full Changelog: v0.29.0...v0.30.0

v0.29.0

18 Jan 11:13

Choose a tag to compare

What's Changed

⚠️ Breaking Changes

This release includes breaking changes to the configuration file format. Please review the migration steps below.

✨ Features

  • feat!: rename Config.toml to .scraps.toml (#331)

    The configuration file has been renamed from Config.toml to .scraps.toml for better project organization. This hidden file convention aligns with common developer tooling practices and keeps project roots cleaner.

  • feat!: move SSG config fields to [ssg] section (#328)

    SSG-related configuration fields have been reorganized under a dedicated [ssg] section. The timezone setting has been moved to the root level for easier access. This restructuring improves configuration clarity and extensibility.

🐛 Bug Fixes

  • fix: correct documentation URL format in error messages (#331)
  • fix: add documentation link to config load error message (#331)
  • fix: add missing [ssg] section to documentation examples (#331)
  • fix: update project Config.toml to new [ssg] section format (#329)
  • fix(plugins): use SCRAPS_PROJECT_PATH env var instead of --path arg (#328)

🔧 Refactoring

  • refactor: extract config file name to constant (#330)
  • refactor: move timezone to root level config (#328)

🔧 Maintenance

  • chore(deps): update boykush/scraps-deploy-action action to v3.0.2 (#327)
  • chore(deps): update peter-evans/create-pull-request action to v8 (#326)

Full Changelog: v0.28.1...v0.29.0

v0.28.1

17 Jan 15:19

Choose a tag to compare

What's Changed

✨ Features

  • feat(cli): support SCRAPS_PROJECT_PATH environment variable for --path option (#324)

    Users can now set the project path via the SCRAPS_PROJECT_PATH environment variable instead of using the --path option.

✅ Tests

  • test: add MCP server integration tests using rmcp client (#321)

🔧 Refactoring

  • refactor(scraps-writer): migrate from agents to skills (#323)
  • refactor: migrate tests to rstest fixture injection (#318)

🔧 CI/CD

  • ci: add workflow to update scraps-deploy-action Dockerfile on release (#325)

🔧 Maintenance

  • chore(deps): update rust crate tokio-util to v0.7.18 (#322)
  • Increase performance threshold from 3 to 4 seconds (#320)
  • chore(renovate): apply global minimumReleaseAge of 1 day (#319)
  • chore(deps): update rust crate colored to v3.1.1 (#317)
  • chore(deps): update rust crate rmcp to v0.13.0 (#316)
  • chore(deps): update boykush/scraps-deploy-action action to v3.0.1 (#315)
  • chore: update scraps-deploy-action to v3 (#314)
  • chore: pin scraps-deploy-action to commit hash (#313)
  • chore(deps): update dependency cargo:scraps to 0.28.0 (#312)

Full Changelog: v0.28.0...v0.28.1

v0.28.0

12 Jan 14:19

Choose a tag to compare

🚨 Breaking Changes

Search Command Removed (#309)

The scraps search command has been removed from the CLI. This decision was made for the following reasons:

  1. IDE-based search is superior: Modern IDEs (VSCode, Cursor, etc.) provide much better file search functionality with instant fuzzy search, full-text search across all files, and better UX overall.

  2. MCP server already provides search: For AI assistant use cases (Claude Code, etc.), the MCP server's search tool already provides the necessary functionality with full content access.

  3. Simplifies maintenance: Removing unused features reduces code complexity and maintenance burden.

Migration Guide: Users who relied on scraps search <query> should:

  • Use their IDE's built-in search functionality for interactive searches
  • For AI assistants, use the MCP server's search tool

Note: The SearchUsecase remains available and is still used by the MCP server. The search index generation for static sites is also unaffected.

✨ Features

  • feat: make title and base_url optional in Config.toml (#310)

    Config.toml fields title and base_url are now optional with command-level validation. This provides more flexibility for different use cases (e.g., MCP server usage) while maintaining validation where needed (e.g., build command still requires these fields).

  • feat: Claude Code plugin integration (#286, #287, #288, #290)

    Added scraps-writer agent plugin and MCP server integration for enhanced Claude Code experience. This enables seamless documentation creation and management directly from Claude Code.

  • feat: increase scrap title font size (#265)

🔧 Refactoring

  • refactor: make base_url optional for MCP server (#306)

  • refactor: make base_url optional for tag command (#307)

  • refactor: use public_path helper in test fixtures (#305)

  • refactor: encapsulate Content/Scrap/Tag model fields with getters (#291, #292)

  • refactor: migrate from TestResources to tempfile + rstest fixtures (#301)

  • refactor: apply rstest fixtures to tests (#296, #297, #298)

🛠️ Developer Experience

  • feat: introduce rstest library for parameterized testing (#296, #297, #298)

  • feat: add markdownlint for documentation quality checks (#266)

  • feat: add mise tasks for cargo commands (#257)

  • feat: add scraps documentation tasks to mise (#259)

  • feat: add hk git hook manager (#258)

  • feat: enable rust-analyzer-lsp plugin (#293)

  • feat: group Rust toolchain updates in Renovate (#260)

📚 Documentation

  • docs: update Config.toml requirements to SSG context (#311)

  • docs: restructure documentation using Diátaxis framework (#242)

  • docs: enhance README with badges and screenshots (#240)

  • docs: improve issue and PR templates (#238, #239)

  • docs: add Code of Conduct (#237)

🔧 Maintenance

Multiple dependency updates via Renovate:

  • rmcp: v0.8.5 → v0.12.0
  • clap: v4.5.51 → v4.5.54
  • tokio: v1.49.0
  • rust toolchain: 1.91.1 → 1.92.0
  • And many more...

Full Changelog: v0.27.2...v0.28.0