<?xml version="1.0" encoding="utf-8"?><?xml-stylesheet type="text/xsl" href="atom.xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://docs.nanako.org/zh-CN/changelog</id>
    <title>Nanako Docs Blog</title>
    <updated>2026-09-16T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://docs.nanako.org/zh-CN/changelog"/>
    <subtitle>Nanako Docs Blog</subtitle>
    <icon>https://docs.nanako.org/zh-CN/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[长文件名不再撑开翻译和解析页面]]></title>
        <id>https://docs.nanako.org/zh-CN/changelog/2026/09/16/long-filename-layout</id>
        <link href="https://docs.nanako.org/zh-CN/changelog/2026/09/16/long-filename-layout"/>
        <updated>2026-09-16T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[上传文件名很长的文件时，PDF 翻译和文档解析页面的任务列表不会再被挤出版面。]]></summary>
        <content type="html"><![CDATA[<p>在桌面端，上传文件名很长的文件会撑开 PDF 翻译和文档解析页面的双栏布局，把任务
列表挤出可视范围，而不是把文件名缩短显示。</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="修复">修复<a href="https://docs.nanako.org/zh-CN/changelog/2026/09/16/long-filename-layout#%E4%BF%AE%E5%A4%8D" class="hash-link" aria-label="修复的直接链接" title="修复的直接链接" translate="no">​</a></h3>
<ul>
<li class="">PDF 翻译和文档解析页面的长文件名现在会在所在栏内截断显示，双栏布局保持原有比例</li>
<li class="">鼠标悬停在被截断的文件名上可以看到完整名称</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[删除翻译与解析记录]]></title>
        <id>https://docs.nanako.org/zh-CN/changelog/2026/07/30/delete-task-records</id>
        <link href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/delete-task-records"/>
        <updated>2026-07-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[一键删除已结束的任务，文件同时从存储中移除。]]></summary>
        <content type="html"><![CDATA[<p>已结束的 PDF 翻译和文档解析现在可以删除了，文件也会一并清掉。这是从存储里真的
删除，不是把记录从列表中悄悄藏起来。</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="新增">新增<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/delete-task-records#%E6%96%B0%E5%A2%9E" class="hash-link" aria-label="新增的直接链接" title="新增的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><strong>PDF 翻译</strong>和<strong>文档解析</strong>中，每条已结束的任务都多了一个删除按钮。它会把源文件
和全部结果从对象存储中永久删除，无法恢复。</li>
<li class=""><code>DELETE /api/v1/translate/tasks/:id/record</code> 与
<code>DELETE /api/v1/mineru/tasks/:id/record</code> 提供相同能力。对仍在进行的任务两者都
返回 <code>400</code>——请先取消，否则它的 worker 可能在删除之后才写出结果，留下无人管理的文件。</li>
<li class="">存储不可达时整个请求以 <code>503</code> 失败，不会隐藏任何记录。记录绝不会在文件还在的情况下消失。</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="变更">变更<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/delete-task-records#%E5%8F%98%E6%9B%B4" class="hash-link" aria-label="变更的直接链接" title="变更的直接链接" translate="no">​</a></h3>
<ul>
<li class="">取消行为未变。<code>DELETE /api/v1/translate/tasks/:id</code> 与
<code>DELETE /api/v1/mineru/tasks/:id</code> 仍然只用于取消进行中的任务。取消与删除刻意分成
两个端点，同一个请求不会因任务状态不同而表示两种含义。</li>
</ul>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[消息通知上线]]></title>
        <id>https://docs.nanako.org/zh-CN/changelog/2026/07/30/notifications</id>
        <link href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/notifications"/>
        <updated>2026-07-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[站内收件箱、邮件提醒,以及按应用分开的通知偏好。]]></summary>
        <content type="html"><![CDATA[<p>事情做完了 Nanako 会告诉你,不用再自己回去刷页面看。</p>
<!-- -->
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>状态核验于 2026-09-10</div><div class="admonitionContent_BuS1"><p>本文记录 P0 通知版本。已核验实现仍包含站内收件箱、带轮询降级的 SSE 实时更新、
通知偏好、按已授权应用静音，以及在 worker/邮件渠道启用时的邮件投递。浏览器
Web Push 和 APNs 仍是后续渠道：当前没有设备注册端点，对应偏好开关会标成
“未开放”并禁用。下文关于清理推送订阅的描述是预留数据模型/会话行为，不代表
推送渠道现在可用。</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="本次交付">本次交付<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/notifications#%E6%9C%AC%E6%AC%A1%E4%BA%A4%E4%BB%98" class="hash-link" aria-label="本次交付的直接链接" title="本次交付的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><strong>消息中心</strong> —— 顶栏的收件箱,带未读角标。新消息不用刷新页面就会出现。</li>
<li class=""><strong>邮件提醒</strong> —— 同样的事件可以发到你的邮箱。所有类别默认关闭,需要你自己打开。</li>
<li class=""><strong>偏好设置页</strong> —— 按类别、按渠道分别决定要不要收。你授权过的第三方应用可以
单独静音,不必撤销它的授权。</li>
<li class=""><strong>翻译完成</strong>是第一个接进来的事件。PDF 翻译跑完——或者失败——都会通知你。</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="说明">说明<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/notifications#%E8%AF%B4%E6%98%8E" class="hash-link" aria-label="说明的直接链接" title="说明的直接链接" translate="no">​</a></h2>
<p>通知由一个独立的后台进程投递。如果你自建 Nanako,打开这个功能的同时必须部署
那个进程,否则消息中心里会堆满永远停在 <code>pending</code> 的条目。详见部署文档。</p>
<p>P0 数据模型还把未来的推送订阅关联到登录会话，以便撤销设备时让订阅失效。推送
投递本身没有随 P0 发布，在当前已核验实现中仍不可用。</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[面向第三方开发者的 OAuth 2.0 文档]]></title>
        <id>https://docs.nanako.org/zh-CN/changelog/2026/07/30/oauth2-developer-docs</id>
        <link href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/oauth2-developer-docs"/>
        <updated>2026-07-30T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[一份完整的对接指南,教你给自己的产品加上"使用 Nanako 账号登录"。]]></summary>
        <content type="html"><![CDATA[<p>让用户用 Nanako 账号登录你的产品,所需要的一切现在都有文档了:流程、每个端点和参数、
每个 scope 和 claim、每种错误,以及安全要求。</p>
<!-- -->
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="新增">新增<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/oauth2-developer-docs#%E6%96%B0%E5%A2%9E" class="hash-link" aria-label="新增的直接链接" title="新增的直接链接" translate="no">​</a></h3>
<ul>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/">OAuth 2.0</a> —— 概览、支持的客户端类型、令牌有效期,以及
提供方实现了什么、没实现什么</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/register">注册应用</a> —— 开发者审核、创建应用、回调地址规则
与凭证处理</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/authorization-code">授权码流程</a> —— 完整对接过程与可直接运行
的请求,含 PKCE、刷新与撤销</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/scopes">Scope</a> —— 四个 scope、各自返回的 claim,以及 scope
的校验方式</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/endpoints">端点参考</a> —— 四个 OAuth 端点的每个参数与响应字段</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/errors">错误</a> —— 每种错误的成因,以及该不该重试</li>
<li class=""><a class="" href="https://docs.nanako.org/zh-CN/nanako/oauth2/security">安全要求</a> —— 对接必须做对的事</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_Vzrq" id="说明">说明<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/30/oauth2-developer-docs#%E8%AF%B4%E6%98%8E" class="hash-link" aria-label="说明的直接链接" title="说明的直接链接" translate="no">​</a></h3>
<p>动手之前有两个限制值得先知道:<code>/.well-known/openid-configuration</code> 这份发现文档里的
端点地址是打不开的,请手动配置端点;纯浏览器应用在运营方把来源加入白名单之前,无法
完成换取令牌这一步。两点在文档里都有详细说明。</p>]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[docs.nanako.org 上线]]></title>
        <id>https://docs.nanako.org/zh-CN/changelog/2026/07/28/docs-site-launch</id>
        <link href="https://docs.nanako.org/zh-CN/changelog/2026/07/28/docs-site-launch"/>
        <updated>2026-07-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Nanako 生态有了公开的文档站。]]></summary>
        <content type="html"><![CDATA[<p>Nanako 生态的公开文档站上线了:<a href="https://docs.nanako.org/" target="_blank" rel="noopener noreferrer" class="">docs.nanako.org</a>。</p>
<!-- -->
<div class="theme-admonition theme-admonition-note admonition_xJq3 alert alert--secondary"><div class="admonitionHeading_Gvgb"><span class="admonitionIcon_Rf37"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>状态核验于 2026-09-10</div><div class="admonitionContent_BuS1"><p>本文记录 2026-07-28 的上线事件。仓库仍配置了 <code>docs.nanako.org</code>、Nanako
英中文档、更新日志搜索和有条件执行的 Cloudflare 部署，但仓库配置不能证明网站
当前可访问。Nanako 仍是唯一文档区；NanoStart 和 NanoUptime 是外部第一方应用，
目前在本站仍没有独立文档区。本站也尚未接入 OpenAPI 渲染。</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="本次交付">本次交付<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/28/docs-site-launch#%E6%9C%AC%E6%AC%A1%E4%BA%A4%E4%BB%98" class="hash-link" aria-label="本次交付的直接链接" title="本次交付的直接链接" translate="no">​</a></h2>
<ul>
<li class=""><strong>Nanako 文档</strong>,双语骨架(默认英文,简体中文位于 <code>/zh-CN/</code> 下)</li>
<li class=""><strong>更新日志</strong> —— 也就是本页</li>
<li class=""><strong>全文搜索</strong>,覆盖两种语言,含中文分词</li>
<li class=""><strong>持续部署</strong> —— 改动合并到 <code>main</code> 后自动发布,无需任何手动操作</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="更新是怎么走的">更新是怎么走的<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/28/docs-site-launch#%E6%9B%B4%E6%96%B0%E6%98%AF%E6%80%8E%E4%B9%88%E8%B5%B0%E7%9A%84" class="hash-link" aria-label="更新是怎么走的的直接链接" title="更新是怎么走的的直接链接" translate="no">​</a></h2>
<p>文档与它所描述的代码同仓库存放。改一个 API 和改它的文档发生在同一个 commit 里,在同一个 PR 中一起被 review。</p>
<h2 class="anchor anchorTargetStickyNavbar_Vzrq" id="接下来">接下来<a href="https://docs.nanako.org/zh-CN/changelog/2026/07/28/docs-site-launch#%E6%8E%A5%E4%B8%8B%E6%9D%A5" class="hash-link" aria-label="接下来的直接链接" title="接下来的直接链接" translate="no">​</a></h2>
<p>上线时的计划是增加 NanoStart、NanoUptime 文档区，并从 NanoUptime 的机器可读
描述生成 API 参考。这是当时的路线图，不是当前站点状态；请以上方核验注记为准。</p>]]></content>
    </entry>
</feed>