Skip to content
Descoped Source Code Portalv2.2.13
PollingSign in

Releases

80 releases kept
Up to date
  1. v1.1.1

    descoped/kranthoGitHuboranheim

    Publish a repository's existing docs folder as a static site.

    Release notes

    Publish a repository's existing docs folder as a static site.

    • A collection's indexFile reads README.md as its home page (#15)
    • site.rendering for initServerLoader(): relative links between markdown files go to their pages, and files beside them are served from the site's root (#15)
    • renderContent() takes resolveUrl; initServerLoader() takes resolveUrl and atNotation (#15)
    • The src and href of raw <img> and <a> tags get the same rewriting as markdown links (#16)
    • A static site's pages follow content.atNotation; the static starter writes no .env and styles tables (#15)

    No database reset is needed: the release adds content files only.

  2. v0.1.0 dedupd 0.1.0

    descoped/dedupdGitHuboranheim

    The first release of dedupd: the daemon, the `dedupd` command and the macOS app, in one disk image signed with Developer ID and notarised by Apple.

    Release notes

    The first release of dedupd: the daemon, the dedupd command and the macOS app, in one disk image signed with Developer ID and notarised by Apple.

    dedupd keeps each model file once, in a content-addressed store, and gives Ollama, Bionic and LM Studio, and the Hugging Face cache (hf, huggingface_hub, mlx_lm, llama.cpp) a copy-on-write clone of it. See the README and the documentation.

    Requirements

    • macOS 26 on Apple silicon.
    • APFS, with the dedupd store (~/.dedupd) and the apps' model folders on the same volume.

    Install

    1. Open dedupd-0.1.0.dmg and drag Dedupd to Applications.
    2. Open Dedupd. It runs in the menu bar.
    3. Install the background service with the dedupd command the app carries, which copies itself to ~/.dedupd/bin and registers a launchd agent:
      /Applications/Dedupd.app/Contents/Helpers/dedupd install
      
      The Install button on the app's Daemon screen runs the same command; it has been tested only against a simulated agent so far.

    The daemon takes the models the apps already hold into the store; the apps' files are not changed. Quitting the app leaves the daemon running.

    Included

    • Download once for several apps, adoption of existing models, and replacement of duplicate copies by clones.
    • The Hugging Face Hub API and the Ollama registry API on 127.0.0.1:8642, answered from the store.
    • App profiles: which app takes which format, by which method and at what cost in disk space. 4-bit and 8-bit MLX models are placed into Ollama as clones with a rewritten index.
    • An archive disk: a second copy of every stored file, and archive and restore per model.
    • The app: Library, Discover, Downloads, Storage and Daemon screens, and the menu bar panel.

    Not included yet

    • Updates for the app. A new version is installed by replacing the app; the Daemon screen then offers to update the daemon.
    • Linux, ModelScope and the catalogue of model families; see the roadmap.

    Checksum

    92c7a5c1c1d0a0e787ad2deab50602ffd167bf0681e88e940d0888e9f5919872  dedupd-0.1.0.dmg
    
  3. v0.3.3 Release v0.3.3

    descoped/fastapi-testingGitHuboranheim

    Maintenance & Dependency Release

    Release notes

    Maintenance & Dependency Release

    The library API is unchanged from v0.3.2 — src/fastapi_testing is byte-identical. This release modernizes dependencies (security fixes + latest compatible versions) and CI tooling.

    Dependencies

    • Security updates: starlette, pygments, and pytest moved to patched releases.
    • Minimums raised to the latest releases that still support Python ≥ 3.11:
      • Runtime: fastapi>=0.137.2, starlette>=1.3.1, uvicorn>=0.49.0, websockets>=16.0
      • Dev/build: pytest>=9.1.0, pytest-asyncio>=1.4.0, pytest-cov>=7.1.0, pydantic>=2.13.4, ruff>=0.15.17, hatchling>=1.30.1

    Note for consumers: installing fastapi-testing 0.3.3 now pulls in the newer FastAPI / Starlette / Uvicorn minimums listed above.

    CI / Tooling

    • GitHub Actions upgraded to current majors: checkout v7, setup-python v6, setup-uv v8.2.0, codecov-action v7, attest-build-provenance v4.
    • Fixed the pinned uv version in CI (0.5.11 → 0.11.13) so it can parse the current revision = 3 lockfile.
    • "Build and Test" now runs on pull requests.

    Compatibility

    • Python 3.11–3.13. No public API changes; no migration required.

    Full Changelog: https://github.com/descoped/fastapi-testing/compare/v0.3.2...v0.3.3

  4. v0.3.2

    descoped/dddnsGitHubgithub-actions[bot] (automation)

    dddns v0.3.2 (2026-04-19T00:40:29Z)

    Release notes

    dddns v0.3.2 (2026-04-19T00:40:29Z)

    Changelog

    Features

    • 96260aa143a5d86ab1ed6b3e77b5e5e2dacf9c05 feat(aws-lambda): add ?dry-run=true query param + fix aws v6 deprecations

    Installation

    Ubiquiti Dream Machine (UDM/UDR)

    curl -fsL https://raw.githubusercontent.com/descoped/dddns/main/scripts/install-on-unifi-os.sh | bash -s
    

    macOS

    brew tap descoped/tap
    brew install dddns
    

    Manual

    Download the appropriate binary from the assets below.

  5. v0.3.1 Release v0.3.1

    descoped/psycopg-toolkitGitHuboranheim

    🎯 Simplified pgvector Support

    Release notes

    🎯 Simplified pgvector Support

    This release simplifies pgvector integration by removing the pgvector-python library dependency and using native JSON parsing instead. This results in zero external dependencies, better Pydantic compatibility, and simpler code.

    ✨ What's Changed

    Removed Dependencies

    • Removed pgvector-python dependency - No longer required for vector support
    • Removed numpy dependency - Vector data returned as native Python list[float]

    Simplified Implementation

    • PostgreSQL returns vectors as strings like '[0.1,0.2,0.3]'
    • Automatically parsed to list[float] using built-in JSON parsing
    • Removed 28 lines of adapter registration complexity
    • No async adapter registration needed

    Performance

    • Negligible overhead: <0.1ms per vector for JSON parsing
    • For 1000 vectors: ~10-100ms difference vs adapter (1-10% overhead)
    • Completely acceptable for typical LLM embedding use cases

    🚀 Key Benefits

    ✅ Zero External Dependencies - No pgvector-python, no numpy required ✅ Simpler Code - Removed async adapter registration logic ✅ Perfect Pydantic Compatibility - Returns list[float], not numpy.ndarray ✅ No Breaking Changes - Same public API, drop-in upgrade ✅ All Tests Passing - 227 tests with zero regressions

    📦 Installation

    pip install psycopg-toolkit==0.3.1
    

    💻 Usage Example

    from pydantic import BaseModel
    from psycopg_toolkit import BaseRepository
    from uuid import UUID
    
    class DocumentEmbedding(BaseModel):
        id: UUID
        document_id: UUID
        embedding: list[float]  # Auto-detected as vector field
        metadata: dict[str, Any] | None = None
    
    class EmbeddingRepository(BaseRepository[DocumentEmbedding, UUID]):
        def __init__(self, db_connection):
            super().__init__(
                db_connection=db_connection,
                table_name="embeddings",
                model_class=DocumentEmbedding,
                primary_key="id",
                auto_detect_vector=True,  # Automatically detects list[float]
            )
    
    # Usage - works seamlessly with PostgreSQL pgvector extension
    embedding_vector = [0.1] * 384  # 384-dimensional vector
    doc = DocumentEmbedding(
        id=uuid4(),
        document_id=uuid4(),
        embedding=embedding_vector,
        metadata={"model": "all-MiniLM-L6-v2"}
    )
    
    created = await repo.create(doc)
    assert isinstance(created.embedding, list)  # Returns list[float]!
    

    🔧 Technical Details

    Before (v0.3.0):

    • Required pgvector-python>=0.4.1 dependency
    • Used register_vector_async() adapter registration
    • Returned vectors as numpy.ndarray
    • Required numpy as transitive dependency

    After (v0.3.1):

    • No external dependencies needed
    • Simple JSON parsing with JSONHandler.deserialize()
    • Returns vectors as native Python list[float]
    • Direct Pydantic compatibility

    📝 Full Changelog

    Commits:

    • 82ad82a - refactor: Remove pgvector-python dependency, use JSON parsing for vectors
    • Updated documentation in .claude/CLAUDE.md
    • Removed adapter registration from BaseRepository
    • Added vector field parsing in _postprocess_data()

    Files Changed: 4 files (+37, -152 lines)

    • pyproject.toml - Removed pgvector dependency
    • src/psycopg_toolkit/repositories/base.py - Simplified vector handling
    • .claude/CLAUDE.md - Updated documentation
    • uv.lock - Dependency updates

    🧪 Testing

    All 227 tests passing:

    • 12 vector field unit tests
    • 4 pgvector integration tests
    • 211 other tests (JSONB, arrays, dates, transactions, etc.)
    • Zero regressions

    ⚠️ Breaking Changes

    None - This is a drop-in replacement for v0.3.0. The public API remains identical.


    Full Changelog: https://github.com/descoped/psycopg-toolkit/compare/v0.3.0...v0.3.1

  6. v0.1.1 Release v0.1.1 - Performance & SQLite Optimization

    descoped/mcp-pkg-localGitHuboranheim

    🚀 Major Performance Improvements

    Release notes

    🚀 Major Performance Improvements

    High-Performance SQLite Cache

    • 40x faster validity checks (0.03ms vs 1.2ms)
    • WAL mode for optimized concurrent access
    • Prepared statements for efficient queries
    • MessagePack serialization for binary data storage
    • Response times: ~150ms scan, ~10ms read, ~5ms cache hits

    Token Efficiency Optimizations

    • 90% token reduction for scan-packages (20K → 2K tokens)
    • 99% reduction with summary mode (20K → 200 tokens)
    • 94% reduction with lazy loading (5K → 300 tokens)
    • Smart limits: Default 50 packages for optimal LLM performance

    ✨ New Features

    Advanced Filtering System

    • 📊 Summary Mode: Ultra-efficient package counts only
    • 🔍 Regex Filtering: Pattern-based package selection
    • 📦 Category Filtering: Production vs development dependencies
    • 🏷️ Group Filtering: Pre-defined groups (testing, linting, building, etc.)
    • 🚫 Type Exclusion: Optionally exclude @types packages

    Enhanced Package Intelligence

    • 📈 Relevance Scoring: Prioritizes direct dependencies over transitive
    • 🎯 Smart Prioritization: Project dependencies ranked higher
    • 🌲 Lazy Loading: File trees loaded on-demand for faster navigation
    • 🔄 Package Scoring: Popular packages get higher relevance scores

    Developer Experience

    • 🛠️ TypeScript 5.9+: Strict mode with full type safety
    • 📦 ES Modules: Modern import maps (#utils, #tools, etc.)
    • 🧪 Comprehensive Testing: 59 tests with 100% pass rate
    • 🔧 Better Error Handling: Actionable error messages with suggestions

    🏗️ Architecture Improvements

    Simplified Caching

    • Removed 350+ lines of dead JSON fallback code
    • SQLite-only implementation (no unnecessary fallbacks)
    • 87% code reduction in cache.ts (407 → 53 lines)
    • Synchronous operations for better performance

    Test Infrastructure

    • Sequential test execution to prevent SQLite database locking
    • Directory-based cache naming for proper test isolation
    • 100% reliable test suite (54/54 tests pass consistently)
    • 60-second timeout for performance-heavy operations

    Code Quality

    • 0 ESLint errors/warnings
    • 0 TypeScript errors
    • Safer null handling with nullish coalescing (??)
    • Proper type definitions eliminating any types

    📊 Statistics

    Metric Value
    Files changed 53
    Insertions +8,140
    Deletions -2,464
    Net change +5,676 lines
    Test coverage 59 tests (100% pass rate)
    Dependencies 420 packages (0 vulnerabilities)
    Build time ~2s (clean environment)

    🐛 Bug Fixes

    • Fixed SQLite database locking in concurrent test execution
    • Resolved test robustness with better package detection
    • Fixed TypeScript path mapping for #utils/sqlite-cache
    • Improved cache sharing between scan and read operations
    • Enhanced error handling and validation across all tools

    🔧 Technical Changes

    Cache System

    • UnifiedCache now SQLite-only (removed PartitionedCache, IndexCache)
    • Cache stored in .pkg-local-cache/cache.db (or test-specific variants)
    • Automatic WAL mode for concurrent access
    • Directory-based naming for test isolation
    • 1-hour TTL with smart invalidation

    Test Infrastructure

    • vitest.config.ts: Sequential execution with pool: 'forks', singleFork: true
    • Test timeout: Increased to 60s for performance benchmarks
    • Cache isolation: Directory-based DB naming prevents conflicts
    • 100% reliability: No more SQLite locking errors

    API Consistency

    • All cache methods now synchronous
    • Improved type safety across all modules
    • Better error messages with actionable suggestions
    • Consistent logging and debugging output

    🏃♂️ Performance Benchmarks

    Operation v0.1.0 v0.1.1 Improvement
    Cache validity check 1.2ms 0.03ms 40x faster
    Full scan tokens 20,000 2,000 90% reduction
    Summary mode tokens N/A 200 99% reduction
    Lazy loading tokens 5,000 300 94% reduction
    Cache hit response 50ms 5ms 10x faster
    Test suite reliability 85% 100% Consistent

    Full Changelog: v0.1.0...v0.1.1

  7. v0.5.7 Release v0.5.7

    descoped/authlyGitHuboranheim

    🎯 Highlights

    Release notes

    🎯 Highlights

    This release focuses on improving the standalone Docker container experience with enhanced admin account management, better modularization, updated dependencies, and optimized CI/CD workflows.

    ✨ New Features

    Admin Account Management

    • New unlock-admin-account CLI command - Directly unlock the admin account via database connection when locked out
    • Added convenient wrapper scripts for better container CLI experience
    • Improved admin account security with better rate limiting defaults (100 requests/60 seconds)

    Standalone Container Improvements

    • Refactored Dockerfile.standalone for better maintainability with modular setup scripts
    • Added version identifier to /health endpoint response for easier deployment tracking
    • Optimized container build process with better caching and reduced image size
    • Consolidated to single optimized Dockerfile (removed minimal variant)
    • Database connections now use dedicated authly user instead of postgres superuser

    🔧 Infrastructure & DevOps

    CI/CD Improvements

    • Optimized Docker builds with PostgreSQL builder caching strategy
      • Separated postgres-builder stage for better caching
      • Multi-stage caching reduces build times significantly
      • Cached builder images stored in GitHub Container Registry
    • Python 3.13 adoption in CI/CD pipelines
      • Updated conformance tests to use Python 3.13
      • Modernized test runner configurations
    • Enhanced release workflow
      • Split Docker builds into production and standalone variants
      • Improved deployment summaries with clearer instructions
      • Better image tagging and metadata handling

    Build System

    • Modularized container setup into separate scripts:
      • configure-all.sh - Main configuration orchestrator
      • setup-environment.sh - Environment variables setup
      • setup-postgres.sh - PostgreSQL configuration
      • setup-python.sh - Python environment setup
      • setup-s6-services.sh - S6 supervision configuration
      • setup-wrappers.sh - CLI wrapper scripts

    Testing

    • Added PostgreSQL builder cache testing script
    • Enhanced health check endpoint with version information
    • Removed "90% Target" from OIDC conformance tests (now achieving 100% compliance)

    📦 Dependencies

    • Python: Updated to 3.13.6
    • Docker base images: Updated to latest versions
    • UV lock file: Refreshed with latest compatible dependencies

    📚 Documentation

    • Archived completed AI assistant instructions
    • Updated Gemini project memory
    • Enhanced Docker standalone documentation
    • Added comprehensive implementation notes for Docker improvements

    🔄 Changes Summary

    • 11 commits since v0.5.6
    • 34 files changed: 1,408 insertions(+), 635 deletions(-)
    • Major refactoring of standalone Docker implementation
    • Improved developer experience with better CLI tools
    • Optimized CI/CD pipeline with better caching strategies

    New Admin Unlock Feature

    If the admin account gets locked due to failed login attempts:

    # Direct database unlock
    ./scripts/unlock-admin-account.sh
    
    # Or within container
    docker exec authly-standalone authly-unlock-admin
    

    📝 Notes

    • The minimal Dockerfile variant has been removed in favor of a single optimized build
    • Rate limiting defaults have been adjusted to 100 requests per 60 seconds for better security
    • The health endpoint now returns version information for easier deployment verification
    • CI/CD builds now leverage multi-stage caching for faster deployments

    Full Changelog: https://github.com/descoped/authly/compare/v0.5.6...v0.5.7

  8. v1.0.0 Release v1.0.0

    descoped/mcp-web-scraperGitHuboranheim

    Features**

    Release notes

    Features

    🍪 Advanced Cookie Consent Handling

    • 30+ Languages: Norwegian, English, German, French, Spanish, Italian, and more
    • 25+ Frameworks: OneTrust, Quantcast, Cookiebot, TrustArc, and others
    • 100% Success Rate: Tested on major European and American news sites
    • Sub-second Performance: <1000ms average consent handling

    🔌 MCP Protocol Compliance

    • Perfect 10/10 Score: Full MCP 2024-11-05 specification compliance
    • Real-time Progress: 5-stage workflow tracking with SSE notifications
    • Content Streaming: Live content delivery during extraction
    • TypeScript Native: Complete type safety and IntelliSense support

    🏆 Complete Browser Automation (29 Tools)

    • 100% Microsoft Playwright MCP Parity: All 29 tools implemented
    • Core Interactions: Navigation, clicking, typing, form handling, dialogs
    • Advanced Features: PDF generation, console monitoring, accessibility testing
    • Session Management: Tab management, history navigation, network monitoring
    • AI-Powered Vision: Element finding, page annotation, JavaScript execution
    • Session Persistence: Maintain browser state across tool calls
    • Cookie Consent: Superior handling that Microsoft's implementation lacks
  9. v0.4.4 Release v0.4.4

    descoped/async-task-workerGitHuboranheim

    Release Notes v0.4.4

    Release notes

    Release Notes v0.4.4

    🚀 New Features

    Cache Metadata Tracking

    • Added from_cache metadata field to all task responses and status objects
    • Tasks now indicate whether their results were served from cache (true) or freshly computed (false)
    • Available in all API endpoints: /api/v1/tasks, /api/v1/tasks/{task_id}, and task listings

    Enhanced Completion Callbacks

    • Updated completion callback signature to include cache metadata: (task_id, result, from_cache)
    • Backward compatibility maintained - existing callbacks without the from_cache parameter continue to work
    • Cache hits and fresh computations are now distinguishable in callback handlers

    🔧 Improvements

    API Enhancements

    • All task response models now include the from_cache boolean field
    • Task serialization (.to_dict()) includes cache metadata
    • Consistent cache metadata across all task management operations

    Testing

    • Added comprehensive test coverage for cache metadata functionality
    • Tests verify cache metadata in both direct task execution and API responses
    • Ensures cache metadata is properly serialized and deserialized

    📦 Dependencies

    • Updated redis: 6.1.0 → 6.2.0

    🔄 Breaking Changes

    None - This release maintains full backward compatibility with existing code.

    💡 Usage Examples

    Checking if a result came from cache:

    task_info = await worker.get_task_info(task_id)
    if task_info.from_cache:
        print("Result was served from cache")
    else:
        print("Result was freshly computed")
    

    Using the enhanced completion callback:

    async def on_task_complete(task_id: str, result: Any, from_cache: bool):
        if from_cache:
            logger.info(f"Cache hit for task {task_id}")
        else:
            logger.info(f"Fresh computation for task {task_id}")
    
    # Old callbacks still work:
    async def legacy_callback(task_id: str, result: Any):
        logger.info(f"Task {task_id} completed")
    

    API Response Example:

    {
      "id": "task-123",
      "status": "completed",
      "result": {"value": "computed_result"},
      "from_cache": true,
      "progress": 1.0,
      "metadata": {}
    }
    

    This release enhances observability and debugging capabilities while maintaining full backward compatibility with existing applications.

  10. v0.1.3 Release v0.1.3

    descoped/aippGitHuboranheim

    Implemented PromptBuilder with composable TextProcessors.

    Release notes

    Implemented PromptBuilder with composable TextProcessors.

    Created a modular system for AI prompt engineering with a fluent interface.

    Key components:

    • PromptBuilder with method chaining for prompt construction
    • TextProcessor protocol for composable transformations
    • Built-in processors for common patterns: variables, JSON, step-by-step, chain-of-thought, few-shot examples, structured output, etc.
    • Support for custom processors via lambda functions
  11. 2.0.1 io.descoped.dc:data-collector-core

    descoped/data-collector-coreMaven

  12. 2.0.1 io.descoped.dc:data-collector-connector-content-stream-rawdata

    descoped/data-collector-connector-content-stream-rawdataMaven

  13. 2.0.0 io.descoped.dc:data-collector-connector-content-stream-discarding

    descoped/data-collector-connector-content-stream-discardingMaven

  14. 2.0.1 io.descoped.dc:data-collector-testutils

    descoped/data-collector-testutilsMaven

  15. 2.0.2 io.descoped.dc:data-collector-server-base

    descoped/data-collector-server-baseMaven

  16. 2.0.4 io.descoped.dc:data-collector-api

    descoped/data-collector-apiMaven

  17. 2.0.1 io.descoped.secrets:secrets-provider-safe-configuration

    descoped/secrets-provider-safe-configurationMaven

  18. 2.0.1 io.descoped.secrets:secrets-provider-google-secret-manager

    descoped/secrets-provider-google-secret-managerMaven

  19. 2.0.1 io.descoped.secrets:secrets-provider-dynamic-configuration

    descoped/secrets-provider-dynamic-configurationMaven

  20. 2.0.3 io.descoped.secrets:secrets-client-api

    descoped/secrets-client-apiMaven

  21. 2.0.0 io.descoped.rawdata:rawdata-client-provider-postgres

    descoped/rawdata-client-provider-postgresMaven

  22. 2.0.0 io.descoped.rawdata:rawdata-client-provider-gcs

    descoped/rawdata-client-provider-gcsMaven

  23. 2.0.0 io.descoped.rawdata:rawdata-client-api

    descoped/rawdata-client-apiMaven

  24. 2.0.1 io.descoped.encryption:encryption-util

    descoped/encryption-utilMaven

  25. 2.0.0 io.descoped.config:dynamic-configuration

    descoped/dynamic-configurationMaven

  26. 2.0.1 io.descoped.spi:service-provider-api

    descoped/service-provider-apiMaven

  27. 0.0.23 io.descoped.stride.application:stride-application-project

    descoped/stride-application-projectMaven