<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
    <loc>https://zglab.fun/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/</loc>
  </url>
<url>
    <loc>https://zglab.fun/research/</loc>
  </url>
<url>
    <loc>https://zglab.fun/ideas/</loc>
  </url>
<url>
    <loc>https://zglab.fun/about/</loc>
  </url>
<url>
    <loc>https://zglab.fun/notes/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/agentic-enterprise-qa/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/meeting-agent/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/real-time-voice-tutor/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/resume-tailor/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/zglab-rag/</loc>
  </url>
<url>
    <loc>https://zglab.fun/projects/zglab-tools/</loc>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/06-production-deployment/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/01-from-rag-to-production/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/04-grounded-generation-and-citation/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/03-rag-evaluation-methodology/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/07-personal-first-external-research/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/02-rag-knowledge-engineering/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-rag/05-retrieval-system-design/</loc>
    <lastmod>2026-08-21T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-from-tool-list-to-platform-architecture/</loc>
    <lastmod>2026-07-29T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/controlled-component-reuse-in-tool-platforms/</loc>
    <lastmod>2026-07-29T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/problems/spring-multiple-constructors-startup-failure/</loc>
    <lastmod>2026-07-24T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/production-agent-system-architecture/</loc>
    <lastmod>2026-07-24T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/agent-long-term-memory/</loc>
    <lastmod>2026-07-24T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/agent-sandbox-mechanisms/</loc>
    <lastmod>2026-07-24T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/problems/normal-websocket-close-misclassified-during-recovery/</loc>
    <lastmod>2026-07-23T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/grounding-short-meeting-minutes-and-side-effects/</loc>
    <lastmod>2026-07-23T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/reconciling-realtime-and-final-transcripts-by-timeline/</loc>
    <lastmod>2026-07-23T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/generation-fencing-for-browser-realtime-lifecycles/</loc>
    <lastmod>2026-07-23T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/observable-mobile-recording-pipeline/</loc>
    <lastmod>2026-07-20T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/durable-h5-audio-chunk-upload/</loc>
    <lastmod>2026-07-20T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/problems/meeting-stuck-recording-after-recovery-expiry/</loc>
    <lastmod>2026-07-20T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/evidence-grounded-resume-generation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/sudo-free-static-deployment-and-strict-health-check/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-qrcode-generator-implementation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-json-formatter-implementation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/resume-tailor-agent-controlled-workflow/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/deploy-astro-static-site-with-nginx/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/building-local-first-astro-tool-platform/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/from-zero-to-maintainable-astro-personal-site/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/recoverable-realtime-recording-session/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/reliable-structured-llm-calls/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/static-site-release-and-runtime-boundaries/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/browser-local-processing-privacy-boundaries/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-timestamp-converter-implementation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/hybrid-app-microphone-permission-bridge/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/problems/resume-matches-but-generated-document-empty/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-line-processor-implementation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/astro-content-collections-config-driven-content/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/long-running-h5-memory-and-download-optimization/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/zglab-tools-text-counter-implementation/</loc>
    <lastmod>2026-07-17T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/knowledge/secure-recording-proxy-and-signed-links/</loc>
    <lastmod>2026-07-16T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/subordinate-app-cas-unified-auth/</loc>
    <lastmod>2026-07-16T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/projects/dual-repository-sync-with-environment-isolation/</loc>
    <lastmod>2026-07-16T00:00:00.000Z</lastmod>
  </url>
<url>
    <loc>https://zglab.fun/notes/problems/stale-health-check-causes-false-rollback/</loc>
    <lastmod>2026-07-16T00:00:00.000Z</lastmod>
  </url>
</urlset>