Category Archives: Development

Pomalé buildy v Claude Code na MacOS

Pokud na macOS pracuješ s Claude Code a ještě nemáš zapnutý sandbox, zapni si ho. Je to jediná smysluplná obrana, jak izolovat agenta od zbytku stroje — filesystem, síť, syscally — a riziko vážného průšvihu klesne řádově. Praktický návod, jak to nakonfigurovat, je třeba v článku Sandboxing Claude Code on macOS. Tenhle text předpokládá, že už ten krok máš za sebou — a popisuje jeden konkrétní side-effect, na který jsem narazil.

Symptom

Začalo to nenápadně — všiml jsem si, že Claude Code mi začal nezvykle dlouho trvat i jednoduché úkoly. Drobné refaktory, na které byl dřív zvyklý odpovědět během chvíle, najednou zabraly desítky minut. Když jsem se podíval pořádně, co se uvnitř session vlastně děje, ukázalo se, že agent opakovaně spouští dotnet build a každý jednotlivý běh mu trvá pět minut. Lokálně, ve vedlejším terminálu, ten samý build doběhne za sekundu.

Výstup z těch dlouhých běhů vypadal pokaždé identicky:

  Determining projects to restore...

Build FAILED.
    0 Warning(s)
    0 Error(s)

Time Elapsed 00:05:00.81

Pět minut, FAILED, a přitom nula chyb a nula varování. Build failed s 0 errors? Co to vůbec je? Buď build selhal a má nám sdělit proč, nebo neselhal — ale tyhle dvě věci dohromady jsou nesmysl.

Diagnostika

Nechal jsem to vyřešit samotného agenta — zajímalo mě, jakou cestou se k příčině dostane on. Co následuje, je jeho úvaha nahlas.

První rozumný tip byl NuGet restore — síť uvnitř sandboxu je omezená a v logu svítilo „Determining projects to restore“. Zkusil tedy --no-restore. Stejný výsledek. Tak možná zápisová práva do ~/.dotnet nebo ~/.nuget cache? Ne. Přidal --no-dependencies -v:m, nic. Pro jistotu pak pustil ještě jeden běh úplně mimo sandbox přes dangerouslyDisableSandbox: true — a build doběhl za 1,02 sekundy. Tím bylo jasné, že problém je 100 % sandbox.

Když běžná podezření zradila, sáhl po -v:diag — to MSBuild zaplaví výstup úplně vším, co se uvnitř děje. Hned na prvních pár desítkách řádků se objevilo:

(eval):1: nice(5) failed: operation not permitted

Příčina

Claude Code na macOS pouští každý Bash tool call přes Apple Seatbelt sandbox, který blokuje syscall setpriority() (běžně volaný přes nice). MSBuild defaultně forkuje worker nody (-maxcpucount), každý worker si při startu chce snížit svou prioritu přes nice(), sandbox volání odmítne — a worker se zacyklí v silent retry/respawn smyčce. Žádná chyba na stdout, žádný non-zero exit, žádné varování. Jen čekání, až dotnet sám zabije proces vlastním 5-minutovým watchdogem.

Klíčové na tomhle failure mode: MSBuild považuje nice failure za non-fatal, a worker fork stack se snaží vzpamatovat. Sandbox tedy nezablokuje build — jen mu odebere mechanismus terminace.

Řešení

Sandbox nenabízí granular syscall allow (Seatbelt na macOS to neumí filtrovat per syscall pro běžné uživatelské profily). Co Claude Code umí, je vyloučit konkrétní commands ze sandboxování:

{
"sandbox": {
"excludedCommands": ["dotnet *"]
}
}

V ~/.claude/settings.json. Pozor na syntaxexcludedCommands používá Claude Code permission-rule syntax, tedy prefix s wildcardem. Plain ["dotnet"] se s ničím nematchne a problém přetrvá. Po změně settings je potřeba session restart.

Výsledek: dotnet build v sandboxu 0,62 s, žádný nice retry-loop.

Logic Apps na steroidech [Ondřej Václavek, Global Azure Praha 04/2026]

Jak v Azure Logic Apps postavit AI agenta? ReAct pattern, Do-Until loop a autonomní řešení incidentů krok za krokem.

  • Úrovně automatizace workflow v Logic Apps a kam jsme se dostali s AI agenty
  • Jak za minutu dostat do workflow jazykový model
  • ReAct pattern v Logic Apps pomocí Do-Until smyčky
  • Strukturovaný JSON output a parsování odpovědí AI agenta
  • Cosmos DB jako memory pro historii a kontext agenta
  • Architekturní vzory: Autonomous agents vs. Conversational agents
  • Antipatterny – kdy Logic App není správná volba
  • Náklady a monitoring tokenů přes Application Insights
  • Omezení Logic Apps AI agentů (regiony, modely)

Přednášku na Global Azure Praha 04/2026 prezentoval Ondřej Václavek.

Hledáte pomoc s Azure? Podívejte se na naše služby: https://www.havit.cz/sluzby/microsoft-azure

Passkeys v EntraID [Daniel Hrubý, Global Azure Praha 04/2026]

Jak nasadit passkeys v Microsoft Entra ID? Phishing-resistant přihlašování bez hesel (FIDO2/WebAuthn).

  • Jak vypadá přihlášení passkey z pohledu uživatele (demo)
  • Proč klasická MFA (heslo + SMS / push) selhává proti Adversary-in-the-Middle phishingu
  • 4 možnosti passwordless přihlašování v Microsoft Entra ID
  • Jak passkey funguje technicky – WebAuthn, asymetrická kryptografie, challenge-response
  • Device-bound vs. synchronizované passkeys – kdy použít hardware tokeny a kdy synchronizaci
  • Konfigurace Authentication methods, Passkey profile a Conditional Access
  • Recovery scénáře přes Temporary Access Pass (TAP)
  • Praktická úskalí a UX problémy s přihlašovacími dialogy

Záznam přednášky z konference Global Azure Praha (duben 2026). Prezentoval Daniel Hrubý.

Stavíte na Microsoft Azure? Pomůžeme s návrhem, migrací i provozem: havit.cz/sluzby/microsoft-azure

AI v každodenní praxi vývoje software [Robert Haken, GitHub Copilot Dev Day Praha, 30.4.2026]

Jak se každodenní vývoj softwaru v roce 2026 mění s AI: cesta od autocomplete k agentnímu workflow.

  • Cesta od Visual Studia s Copilot autocomplete k plně agentnímu workflow
  • Always-on context: od copilot-instructions.md k unifikovanému AGENTS.md
  • MCP servery – vlastní pro dokumentaci Havit Blazor, Azure DevOps MCP, Context7
  • Zlomový moment: „vyzvedni si tiket z Azure DevOps a implementuj“
  • Posun v zadávání tiketů – od mikromanagementu k byznysovému popisu funkčnosti
  • Volba modelu pro coding agenty: Sonnet 4.5 vs Opus 4.7 (3× multiplier) vs GPT-5
  • Konec éry klasického code-centric IDE: Visual Studio → VS Code Agents (Insider)
  • Paralelizace přes git worktrees – více session nad jedním repem současně
  • Bypass approvals a autopilot mode – yolo přístup s důvěrou v agenta
  • Skills, marketplace a pluginy pro sdílení instrukcí napříč projekty i týmem
  • Migrace repozitářů z Azure DevOps na GitHub – oficiální doporučení Microsoftu
  • Hybridní setup: repos v GitHubu, work-items a pipelines stále v Azure DevOps
  • Reálné náklady AI nástrojů pro full-time developera ($150–200/měsíc)

Sessionu na GitHub Copilot Dev Day Praha 30.4.2026 prezentoval Robert Haken.

🚀 Onboardujeme vývojářské týmy na AI – Copilot, Claude Code, agenti, MCP servery a disciplína, díky níž je vývoj s AI skutečně rychlejší: havit.cz/sluzby/ai-developer-onboarding

🛠️ Migrace z Azure DevOps na GitHub – přestěhujeme vám repozitáře, aby vaši vývojáři neztráceli kontakt s AI (jako jsme to udělali sami): havit.cz/products/github-migration

Pomalé .NET buildy/testy? Možná za to může nainstalované preview SDK

Pokud máte na stroji nainstalované .NET preview SDK (např. .NET 11 preview), může dotnet CLI defaultně sahat právě po něm — u mě to způsobilo (zřejmě nějaký bug v preview), že buildy i testy běží o hodně pomaleji než s release SDK. Projeví se to i u AI coding agentů, kteří volají dotnet z příkazové řádky.

Řešením je do rootu solution přidat global.json se zákazem preview-SDK:

{
"sdk": {
"version": "10.0.0",
"allowPrerelease": false,
"rollForward": "latestFeature"
},
"test": {
"runner": "Microsoft.Testing.Platform"
}
}

Klíčový je allowPrerelease: falsedotnet přeskočí preview-SDK a vezme release. Verzi v version upravte podle své cílové verze .NET.

Aktuální podobu udržujeme v naší šabloně projektu: havit/NewProjectTemplate-Blazor/global.json.

Software Architecture – monolith/modular/microservices [Martin Goffa, Vzdělávací okénko, 16.4.2026]

Monolit, modulární monolit, nebo mikroslužby? Jak vybrat správnou architekturu pro .NET aplikaci.

  • Monolitická architektura — kdy stále dává smysl
  • Modulární monolit jako kompromis mezi monolitem a mikroslužbami
  • Mikroslužby — výhody, rizika a kdy se vyplatí
  • Porovnání z hlediska komplexity, deploymentu a škálovatelnosti
  • Praktická doporučení pro výběr architektury podle typu projektu
  • Diskuze k modulárnímu monolitu

Vzdělávací okénko prezentoval Martin Goffa.

MCP server do vlastní aplikace (+ VSCode Agents) [Robert Haken, Vzdělávací okénko, 9.4.2026]

MCP server do vlastní aplikace v .NET / C# – implementace, Entra ID auth, VS Code Agents.

  • Co je MCP (Model Context Protocol) server a proč ho přidat do své aplikace
  • Implementace MCP serveru v ASP.NET Core – NuGet ModelContextProtocol.AspNetCore
  • Definice tools přes atributy a auto-discovery z assembly
  • Custom MCP Tool Authorization atribut s rolemi (analogie k [Authorize])
  • Stateless HTTP transport, mapování endpointu a obcházení error middleware
  • Nejtěžší část: autentizace přes Entra ID + JWT bearer tokeny
  • Registrace klientské aplikace v Entra – VS Code built-in client vs. custom client_id / client_secret
  • Připojení MCP serveru v Claude Desktop, VS Code a Claude Code CLI
  • Praktická ukázka VS Code Agents (Insider) – paralelní agenti, autopilot, worktree workflow
  • Trendy: CLI jako SDK/harness, ústup klasického code-centric IDE

🚀 Potřebujete MCP server pro vlastní produkt? Postavíme vám MCP gateway pro libovolné API, aplikaci či databázi: havit.cz/products/mcp

🛠️ Goran – ERP/PM pro IT firmy (nástroj použitý v ukázce): goran.cz

Aspektové programování (Metalama) [Lukáš Michl, Vzdělávací okénko, 26.3.2026]

Jak snížit objem kódu o 20 % bez psaní boilerplate? Aspektové programování s Metalama v .NET (C#).

  • Co je aspektové programování a proč ho použít
  • Jak Metalama funguje – transformace C# kódu přes Roslyn před kompilací (bez IL weaving)
  • Instalace: stačí jeden NuGet balíček
  • Logování metod a exception s parametry
  • Trim property, validace, INotifyPropertyChanged a další built-in aspekty
  • Introduce Dependency Injection bez ručního konstruktoru
  • LINQ dotazy nad zdrojovým kódem (LinqPad integrace)
  • Licencování ($10/měsíc), podpora v Rider vs. Visual Studio

Vzdělávací okénko prezentoval Lukáš Michl.

AI v chytrém domě [Dan Hrubý, Vzdělávací okénko, 19.3.2026]

Jak Dan Hrubý použil AI (NotebookLM, Claude) k diagnostice a optimalizaci chytrého domu Loxone?

  • Co je chytrý dům a jak funguje systém Loxone
  • Proč tepelné čerpadlo nefungovalo efektivně a doma byla zima
  • AI-asistovaná diagnostika: ChatGPT a NotebookLM jako fyzikální poradce
  • Sběr dat z Loxone: Modbus TCP (Atrea) → Node-RED → InfluxDB
  • Claude Desktop: generování Node-RED flow jedním promptem, bez kódování
  • Vizualizace v Grafana – celý dashboard z jednoho AI promptu
  • Výsledek: stabilní regulace zásobníku teplé vody a tepelného čerpadla
  • Plánovaná optimalizace zálivky zahrady

Jak vytvořit AI aplikaci od nuly [Tomáš Wagner, Vzdělávací okénko, 5.3.2026]

Záznam ze Vzdělávacího okénka HAVIT z 5. března 2026. Tomáš Wagner ukazuje, jak krok za krokem postavit AI aplikaci v .NET a C# – od nastavení AI služby přes napojení do aplikace až po pokročilejší funkce jako chat history, tools a strukturovaný výstup.

  • Nastavení AI služby v .NET – OpenAI, Ollama (OllamaSharp) a Microsoft.Extensions.AI
  • Jak napojit AI do .NET aplikace a komunikovat s LLM modely
  • Přepínání mezi AI providery (OpenAI, Anthropic, Google Gemini, Ollama) bez přepisování kódu
  • Chat history – uchování kontextu konverzace
  • System prompts, instructions a tools (function calling)
  • Strukturovaný výstup z AI do C# tříd