Skip to content

手动归档不清 pinned 标记,桶回到活跃态时会带着钉复活并占用配额 #76

Description

@localangel09-eng

问题

衰减引擎的哲学是「pinned 永不归档」(src/decay_engine.py:306 里显式豁免),但手动归档通道不设防:POST /api/bucket/{id}/archive 直接调 bucket_mgr.archive(),后者无条件移文件,不查 pinned / protected(src/bucket_manager.py:2036 起)。

手动归档要不要拦 pinned,可以算设计选择——毕竟是用户主动点的。真正像是漏掉的是连带的那一半:archive() 只把 type 改成 archivedpinned 标记原样留在 frontmatter 里。而 _find_bucket_file() 是含 archive/ 目录一起搜的,所以这个桶日后只要以任何方式回到活跃态(update() 改 type、或手工把文件移回去),它会带着 pinned 一起复活:继续占 pinned 配额(默认 20),继续在 breath 开场置顶。

用户如果早忘了这个桶,配额就被一个看不见的幽灵占着,而且几乎无从排查——因为它在归档区,日常列表里根本不出现。

(核对版本:main @ f0abeb8

建议

archive() 里把 pinned 落回 Falseprotected 同理,如果语义上也算配额资源),配额语义才闭环。也可以反过来在恢复路径上清,但目前没有专门的解档入口,落在 archive() 里更稳妥。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions