<svg xmlns="http://www.w3.org/2000/svg" width="960" height="540" viewBox="0 0 960 540" preserveAspectRatio="xMidYMid meet" role="img" aria-labelledby="title desc" data-image-type="object_relationship_boundary">
  <title id="title">Harbor 保留规则与回收边界关系</title><desc id="desc">image_type: object_relationship_boundary; section_position: 图1，清理前先确认哪些镜像不能动；reader_task: 区分删除 Tag 与释放存储空间的不同阶段。</desc>
  <defs><style>text{font-family:system-ui,Arial,Helvetica,"Microsoft YaHei","PingFang SC",sans-serif;fill:#193326}.h{font-size:20px;font-weight:700}.s{font-size:16px;fill:#486552}.m{font-size:14px;fill:#637869}.box{fill:#fff;stroke:#9ccd93;stroke-width:2}.p{fill:#fff8e8;stroke:#d8aa4b;stroke-width:2}.gc{fill:#eef8f2;stroke:#74b98a;stroke-width:2}</style></defs>
  <rect width="960" height="540" fill="#f8fcf8"/><rect x="52" y="52" width="856" height="420" rx="28" fill="#eef8ef" stroke="#cfe6d1"/>
  <text x="480" y="96" text-anchor="middle" class="h">保留规则到空间释放的边界</text><text x="480" y="126" text-anchor="middle" class="s">三类对象分开判断，避免把删除 Tag 误解为空间已释放</text>
  <rect x="86" y="174" width="236" height="168" rx="20" class="p"/><text x="204" y="216" text-anchor="middle" class="h">保留规则</text><text x="204" y="252" text-anchor="middle" class="s">保护生产、上一版</text><text x="204" y="284" text-anchor="middle" class="m">输出可清理候选 Tag</text>
  <rect x="362" y="174" width="236" height="168" rx="20" class="box"/><text x="480" y="216" text-anchor="middle" class="h">项目仓库</text><text x="480" y="252" text-anchor="middle" class="s">Tag 删除不等于层删除</text><text x="480" y="284" text-anchor="middle" class="m">仍需确认制品引用</text>
  <rect x="638" y="174" width="236" height="168" rx="20" class="gc"/><text x="756" y="216" text-anchor="middle" class="h">GC 边界</text><text x="756" y="252" text-anchor="middle" class="s">只回收无引用层</text><text x="756" y="284" text-anchor="middle" class="m">执行后验证拉取</text>
  <rect x="260" y="400" width="440" height="48" rx="18" fill="#fff" stroke="#c6dfc9"/><text x="480" y="430" text-anchor="middle" class="s">顺序：保护范围 → 删除 Tag → 执行回收 → 验证拉取</text>
</svg>
