2026-04-29 mcpclaude-coworkclaude-code cowork-terminal-mcp: Host Terminal Access for Claude Cowork in One MCP Server cowork-terminal-mcp v0.4.1 bridges Claude Cowork's sandboxed VM to your host shell. One tool, stdio transport, hard-pinned Git Bash on Windows.
2026-04-29 claude-codeai-agentscli Export Claude Code Conversations to PDF With jsonl-to-pdf A practical guide to turning the JSONL files Claude Code writes under ~/.claude/projects/ into shareable PDFs using jsonl-to-pdf, with sub-agent nesting, secret redaction, compact and dark themes, and CI-friendly batch recipes.
2026-04-29 llmai-agentsanthropic-sdk How to Add Prompt Caching to an Anthropic SDK App and Measure the Hit Rate Add prompt caching to a Python or TypeScript Anthropic SDK app, place cache_control breakpoints correctly, and read cache_read_input_tokens and cache_creation_input_tokens to compute a real hit rate. With pricing math for Claude Sonnet 4.6 and Opus 4.7.
2026-04-29 dotnetdotnet-11filesystem How to detect when a file finishes being written to in .NET FileSystemWatcher fires Changed before the writer is done. Three reliable patterns for .NET 11 to know a file is fully written: open with FileShare.None, debounce with size stabilization, and the producer-side rename trick that avoids the problem entirely.
2026-04-29 blazorblazor-webassemblyaspnetcore-11 How to share validation logic between server and Blazor WebAssembly The single biggest source of validation drift in a Blazor WebAssembly + ASP.NET Core app is the urge to write the rules twice. This guide walks the only layout that scales in .NET 11: a Shared class library that owns the DTOs and their validators, consumed by both the WASM client (EditForm + DataAnnotationsValidator or Blazored.FluentValidation) and the server (minimal API endpoint filter or MVC model binding), with a tested round-trip that maps server-side ValidationProblemDetails back into the EditContext.
2026-04-29 dotnetdotnet-11performance How to use SearchValues<T> correctly in .NET 11 SearchValues<T> beats IndexOfAny by 5x to 250x but only when you use it the way the runtime expects. The cache-as-static rule, the StringComparison gotcha, when not to bother, and the IndexOfAnyExcept inversion trick that nobody documents.
2026-04-29 skiasharpdotnetmaui SkiaSharp 4.0 Preview 1: Immutable SKPath, Variable Fonts, and a New Co-Maintainer SkiaSharp 4.0 Preview 1 lands with Uno Platform as co-maintainer alongside the .NET team. SKPath becomes immutable behind a new SKPathBuilder, and HarfBuzzSharp gets full OpenType variable font axis control.
2026-04-28 dotnet-10aspnetcoreopenapi Asp.Versioning 10.0 finally plays nicely with built-in OpenAPI in .NET 10 Asp.Versioning 10.0 is the first release that targets .NET 10 and the new Microsoft.AspNetCore.OpenApi pipeline. Sander ten Brinke's April 23 walkthrough shows how to register one OpenAPI document per API version with WithDocumentPerVersion().
2026-04-28 aspnetcoreopenapiswagger How to add OpenAPI authentication flows to Swagger UI in .NET 11 In .NET 11 the OpenAPI document is generated by Microsoft.AspNetCore.OpenApi and Swagger UI is no longer in the template. Here is how to wire Bearer, OAuth2 with PKCE, and OpenID Connect so the Authorize button actually works.
2026-04-28 aspnetcoreidentityauthentication How to implement refresh tokens in ASP.NET Core Identity Two working paths in .NET 11: the built-in MapIdentityApi /refresh endpoint, and a custom JWT setup with refresh token rotation, family tracking, and reuse detection.