• v0.1.8 2275974cde

    way released this 2026-10-16 21:34:49 +08:00 | 91 commits to main since this release

    Pigway Frame Flow v0.1.8

    增加 NAS 本地图库反选、放大总览图片,并统一图片查看器与界面表达。

    • 反选只切换当前页可见图片的勾选状态;隐藏勾选项的批量操作范围明确提示。
    • 总览当前图片预览增大,点击或键盘打开与图库相同的查看器,读取原图并支持适应屏幕、原始尺寸和 Esc 关闭。
    • 修正图库排序、播放顺序、型号信息来源、云端确认状态等标签,补齐天气与连接状态翻译。
    • 区分本地与云端删除影响,解释星标保留规则,避免对未知来源作无依据判断。
    • 修正数据源空态、路径与凭据说明;同步 README 和操作文档中的共享 Photos 登录机制与入口。

    验证:305 项布局检查、8 组星标与反选检查、12 组总览查看器检查、45 项图片加载检查及新增中英文文案检查通过。全套后端与静态检查由本次发布流水线再次验证。检查不涉及真实照片删除、设备写入或收费 AI 调用。

    Improve NAS gallery selection, dashboard image viewing and UI wording. Invert selection affects visible items on the current page. Dashboard previews open the same full-image viewer as the gallery. Storage destinations, deletion scope, server-side stars, cloud confirmation and shared Photos credentials are clarified in both languages.

    发布验证:508 项 Python 测试、Ruff、格式检查、mypy、依赖审计、隔离容器构建与重启验证均通过。NAS 6005 端口健康与就绪检查通过,提交 2275974cde95724c4dcc63881f0f6aad3d406d7b;6 个前端文件与提交哈希一致。线上中英文文案检查及总览原图查看器只读验证通过。两个发布附件下载回验一致。

    验证与部署流水线

    Downloads
  • v0.1.7 d4543a9843

    way released this 2026-10-16 19:21:22 +08:00 | 92 commits to main since this release

    Pigway Frame Flow v0.1.7

    简体中文

    修复首次打开图库时内容区空白、必须等待云端图片列表返回才出现控件的问题。

    • 目的地标签、搜索、排序、刷新和上传按钮立即初始化,图片列表独立请求。
    • 仅在工具栏提示正在读取列表;未知数量时不生成图片卡片,不提前显示“图库为空”。实际图片仍在自己的区域内独立加载。
    • 启动使用轻量设备身份目录,完整设备状态在后台更新,避免厂商状态请求阻塞首屏。
    • 慢请求期间可以切换到 NAS 图库;过期响应不会覆盖当前页面。
    • 列表失败时保留控件并在工具栏显示错误,仍可刷新或切换目的地。
    • 保留等待期间输入的搜索词和排序选择;本地任务筛选请求在同一次导航内复用。

    验证

    本地 508 项 Python 测试、Ruff、格式检查、mypy 和 JavaScript 语法检查通过。
    新增首次未缓存列表的控件就绪、输入保留、慢云端切换和列表失败回归。
    不增加图库列表的服务端缓存,不修改厂商请求重试、照片、生成内容或设备写入策略。

    English

    Fix the blank gallery on its first uncached visit. Destination tabs and gallery controls initialize before metadata requests complete.
    Slow or failed cloud listing does not prevent switching to NAS storage. Search and sort choices survive list arrival, and stale responses cannot replace the active destination.
    Only a small toolbar status indicates metadata loading; real images keep independent loading indicators.

    线上验证:v0.1.7 / ba2f2cd,健康与就绪检查通过;6 个前端文件哈希一致。关闭浏览器缓存后,一次实测控件 134 ms 可见,真实云端列表在其后完成;另验证同时阻塞设备状态和图片列表时控件仍可用。

    CI 与自动部署通过。

    Downloads
  • v0.1.6 106b6f311f

    way released this 2026-10-16 18:58:02 +08:00 | 93 commits to main since this release

    Pigway Frame Flow v0.1.6

    简体中文

    • 图库使用具体目的地标签:KoKonna 云端图库 与 <NAS 名称> 本地图库,NAS 名称通过 FRAME_FLOW_STORAGE_NAME 配置。
    • Settings API 增加目的地元数据,标签仅展示连接已配置、明确支持保存且存在适配器的目的地;全局写入保护保持独立。
    • 后续网盘须实现读取/保存适配器并完成连接后才能加入标签栏,显示具体服务商/实例名称。当前只读照片来源不会作为保存目的地展示。
    • 长标签在手机上换行,避免整页横向溢出;中英文保持相同目的地身份。
    • Compose 和自动部署透传 NAS 展示名称;分支 CI 完整验证后发布标签,避免相同提交的标签推送重复占用构建队列。

    验证

    本地 507 项 Python 测试、Ruff、格式检查、mypy、JavaScript 语法检查通过。
    图库目的地标签与能力过滤 18 项浏览器检查通过;覆盖 320–1440 像素、中英文、明暗主题和长 NAS 名称。
    本次不增加任何网盘写入功能,不改变画框写入策略。

    升级

    Compose 设置 FRAME_FLOW_STORAGE_NAME;Actions 设置同名仓库 Variable。
    名称只描述实例,不作为路径或授权凭据。未设置时回退为 NAS。
    默认访问端口仍为 6005,容器内部端口仍为 18787。
    NAS 源码包与 SHA256 附件不含运行配置、密钥、数据库或私人照片,需自行构建镜像。

    English

    Gallery tabs identify the concrete destination: KoKonna cloud gallery and the configured NAS name plus Local gallery.
    Destination metadata includes connection and upload capabilities; only implemented writable adapters are shown.
    Existing read-only cloud photo sources are not presented as save destinations. Long labels wrap on mobile.
    Set FRAME_FLOW_STORAGE_NAME in Compose or the Actions repository Variables. No cloud-drive write support or device write policy is changed.

    发布验证 / Release verification

    提交 / Commit: 106b6f311f90e659917c7afa0b34ff27f6f92c18。
    CI #82 的 507 项测试、静态/格式/类型检查、依赖审计、隔离 Docker 构建/冒烟/重启检查及自动部署均通过。
    线上版本与提交、6 个应用文件哈希一致,health/ready 返回 HTTP 200。
    使用真实 Settings API 的目的地元数据,16 组线上浏览器尺寸/语言/主题检查通过,仅 GET,无页面异常;账号初始化使用测试响应,不验证账号密码登录或真实网盘写入。
    CI, deployment, file hashes and health/readiness checks passed. Sixteen read-only production browser profiles verified the actual destination metadata and labels. No cloud-drive write functionality is added.

    Downloads
  • v0.1.5 d3f40cfea3

    way released this 2026-10-16 16:26:20 +08:00 | 94 commits to main since this release

    Pigway Frame Flow v0.1.5

    简体中文

    • 图片仅在真实图片区域内居中显示加载动画,无页面骨架、虚构图片卡片或人为展示延时;请求及解码完成后立即显示,失败时显示局部提示。
    • 图库搜索、排序、卡片操作及写入保护先于图片请求初始化,复用真实列表元数据;本地任务筛选异步填充,不阻塞其他控件。
    • 手动拼版改为并行加载,各图独立完成或失败;固定区域容器保留坐标和拖动交互,加载前后位置一致。
    • 修复手机底栏文字裁切、窄屏页头拥挤和横屏导航可达性,支持底部安全区域,补齐表单标签和当前导航无障碍状态。
    • 默认对外访问端口改为 6005。本地启动、Compose、测试地址及文档同步;容器内部仍监听 18787。

    验证

    本地 505 项 Python 测试、Ruff、格式检查、mypy、JavaScript 语法和差异检查通过。
    浏览器回归:布局 305 项、图片加载 45 项、图库加载顺序 14 项、手动拼版 31 项通过。
    先行 UI 部署的生产静态文件哈希、health/ready 和拦截测试数据下的浏览器交互已验证;
    不代表真实 AI 生成、画框写入、手机实机或软键盘测试。

    升级说明

    已有安装须更新私有环境配置中的 WEB_PORT=6005,并重建服务后生效。
    自动部署的 PROD_WEB_PORT 必须与现有实例的映射一致;仅修改该变量不能迁移端口。
    NAS 附件是源码部署包,需自行构建 Docker 镜像,不含密钥、运行配置、数据库或私人照片。

    English

    Image loading indicators stay inside real image regions, without page skeletons or artificial delays.
    Gallery controls initialize before image requests. Manual collage images load independently in parallel,
    with stable regions and working coordinate/drag controls. Mobile navigation, safe-area spacing and form
    accessibility are improved. The default published port is now 6005, mapped to container port 18787.
    Existing installations must update their private port configuration and recreate the service.
    NAS source package and SHA256 checksum are included; this is not a prebuilt Docker image.

    发布验证 / Release verification

    • 提交 / Commit: d3f40cfea3cf39f11653105e0c8760a0c7b7e56c。
    • 主分支 CI #80:505 项测试、静态/格式/类型检查、依赖漏洞审计、隔离 Docker 构建/冒烟/重启检查及生产部署均通过。
    • 标签 CI #81:验证通过,标签不执行部署。
    • 线上版本、提交、6 个应用静态文件哈希与发布内容一致,health/ready 均返回 HTTP 200。
    • Both CI runs passed. The main-branch deployment is verified at v0.1.5 with the exact release commit; application file hashes and health/readiness checks match.
    Downloads
  • v0.1.4 a843d4de9b

    way released this 2026-10-16 12:25:16 +08:00 | 95 commits to main since this release

    简体中文

    错误与重试策略

    • 根据官方文档区分 HTTP 500 中明确的业务拒绝与真正未知结果,避免无效密钥、图片不存在或参数错误误锁设备。
    • 只读临时失败、连接建立超时和明确的限流拒绝最多尝试 3 次;普通退避 1/2 秒,遵守 Retry-After 和本地 18 次/分钟预算,超过等待上限不提前请求。
    • 写入读取超时、一般连接异常、通用 5xx 或无效成功响应均不重发;保留只读核对和写入保护。

    恢复与可观测性

    • 持久化恢复原因、检查次数、检查时间与人工处理状态,随 Operation API 返回。
    • 长期未解决的操作生成一次 operation.blocked 事件和 MANUAL_REVIEW_REQUIRED 历史记录;重启不会重复升级。可选择配置 Webhook 通知,未订阅不会自动对外通知。
    • 单条核对异常不会中断其他后台工作。无效布尔上传 ID 不会被当成有效图片 ID。
    • 新增中文错误矩阵和操作手册,更新 OpenAPI 与契约快照。

    验证

    本地 505 项测试、Ruff、格式检查、mypy 和差异检查通过;CI #78 的 505 项测试、静态检查、25 个依赖漏洞审计、隔离 Docker 构建/冒烟/重启验证及生产部署全部通过。线上 9 个只读端点和恢复状态 API 契约已验证。
    发布提交:a843d4de9bc34a709a1261d61839e2bebd3b3054。
    完整错误与恢复策略。
    附件为 NAS 源码包及 SHA256 校验文件,不含运行配置、密钥、数据库或私人照片。需自行构建 Docker 镜像。

    边界

    厂商未提供幂等写入和可靠的上传状态查询契约。没有证据的未知写入仍需人工核对,不能靠超时无条件解除保护,也不能保证网络故障时所有任务都自动成功。

    English

    Add documented failure classification, bounded retries for read-only requests and writes proven unsent or rate-limit rejected, and durable recovery progress/escalation. Ambiguous writes are never replayed. Operation recovery metadata, a one-time operation.blocked event, updated OpenAPI, and a Chinese recovery guide make unresolved blocks visible and actionable.

    CI #78 passed all 505 tests, static checks, the 25-dependency vulnerability audit, isolated Docker smoke/restart checks and production deployment. Nine live read-only endpoints and the recovery API contract were verified. Release commit: a843d4de9bc34a709a1261d61839e2bebd3b3054. NAS source package and SHA256 checksum included. Unknown outcomes without sufficient evidence still require manual review.

    Downloads
  • v0.1.3 d2f02d8054

    way released this 2026-10-16 10:30:08 +08:00 | 96 commits to main since this release

    简体中文

    修复

    • 人工核对未确认的写入时,保留原始上传目标、上传意图和此前错误;不再用当前图片覆盖原始目标。
    • 人工关闭未确认写入会明确记录为 FAILED / DISPLAY_NOT_CONFIRMED,并保留观察到的图片 ID 和先前错误。
    • 网络错误保存固定分类(连接超时、读取超时、TLS、连接异常等),HTTP 错误保存状态码。不会持久化可能包含凭据的异常原文,也不会自动重发设备写入。

    验证与安装

    本地 473 项测试、Ruff、格式检查、mypy 和 git diff --check 通过。CI #76 的 473 项测试、静态检查、25 个依赖漏洞审计、隔离 Docker 构建/冒烟/重启检查及生产部署全部通过。线上 9 个只读端点返回 HTTP 200,Synology Photos 连接正常。
    发布提交:d2f02d805491b1ed8cebed575e9d3a2114478c31。
    中文安装说明。
    NAS 附件为源码部署包,需自行构建 Docker 镜像;不含私人配置、密钥、数据库或照片,附 SHA256 校验文件。

    English

    Preserve original upload evidence and previous errors during manual reconciliation, instead of replacing the expected target with the currently displayed image. Manually closed unconfirmed writes are recorded as failed. Persist fixed safe transport error categories and HTTP status codes without raw exception text or credentials. Device writes are never automatically replayed.

    CI #76 passed all 473 tests, static checks, the 25-dependency vulnerability audit, isolated Docker smoke/restart checks and production deployment. Nine live read-only endpoints returned HTTP 200. Release commit: d2f02d805491b1ed8cebed575e9d3a2114478c31. The NAS source deployment package requires a Docker build and includes a SHA256 checksum.

    Downloads
  • v0.1.2 8a3c616b5f

    way released this 2026-10-16 09:48:51 +08:00 | 97 commits to main since this release

    简体中文

    修复

    • Webhook 在限制批量大小前筛选订阅类型,避免无关事件积压导致后续通知漏发。
    • 隔离定时任务异常;某个设备处于未知写入状态时,其他任务和后台队列继续处理。保留原有重试、过期跳过和写入保护规则。
    • 包含 v0.1.1 之后的上传响应丢失只读核对、部署锁释放和镜像保留修复。

    验证与安装

    本地 465 项测试、Ruff、格式检查、mypy 和 git diff --check 通过。两个新增回归测试已验证在旧代码上失败、修复后通过。
    Gitea CI #74 全部通过:465 项测试、静态检查、25 个依赖漏洞审计、隔离 Docker 构建/冒烟/重启验证及生产部署。线上 9 个只读端点返回 HTTP 200,Synology Photos 连接正常。
    发布提交:8a3c616b5ffcd92d25df9727032479d22af74fac。
    中文安装说明。
    附件为 NAS 源码部署包,需要自行构建 Docker 镜像;不含运行配置、密钥、数据库或私人照片,附 SHA256 校验文件。

    设备安全边界

    不会重放历史设备写入,也不会将历史 UNKNOWN 操作强制标记为成功;未确认的写入继续保留保护。

    English

    Fix webhook starvation by filtering event types before the batch limit, and isolate scheduled job failures so other jobs and queue processing continue. Existing retry, overdue and device-write safety rules remain in effect. Includes post-v0.1.1 upload reconciliation and deployment lifecycle fixes.

    465 tests, static checks, the 25-dependency vulnerability audit, isolated Docker smoke/restart checks and production deployment passed in CI #74. Nine live read-only endpoints returned HTTP 200, and the Synology Photos connection was healthy. Release commit: 8a3c616b5ffcd92d25df9727032479d22af74fac. The NAS source package requires a Docker build and includes a SHA256 checksum. No runtime credentials or private data are included. Unknown historical writes are never replayed or force-confirmed.

    Downloads
  • v0.1.1 aabbff8127

    way released this 2026-10-11 14:49:24 +08:00 | 103 commits to main since this release

    简体中文

    修复

    • 设备同步延迟后,自动只读核对已知目标图片;目标一致且已同步才解除写入锁,不重试上传。
    • Scheduler 先核对同步状态再提交定时任务,避免未知结果持续阻塞后续任务。错过的任务不补发。
    • 新版部署验收成功后,自动保留当前版本和一个回滚基线;保护所有容器引用、其他项目和持久化数据。

    验证与安装

    457 项自动测试通过;Ruff、格式检查、mypy、pip-audit,以及 Gitea CI #66 的隔离 Docker、重启验证和生产部署全部通过。
    发布 commit:aabbff8127c14571c93d14dc7a4d38b3d9e1893d。
    中文安装说明。附件是需要自行构建 Docker 镜像的 NAS 源码部署包,不含私人配置、密钥、数据库或照片;附 SHA256 校验文件。

    安全边界

    没有已知目标、目标不一致或尚未同步的未知写入继续保持锁定,需要人工核对。不会自动重试写请求。云端同步状态仍不代表对物理屏幕的独立视觉确认。

    English

    Fixes

    • Periodically reconcile delayed acknowledgements using read-only device queries. Release the write lock only when the known target matches and is synced; never retry uploads.
    • Check synchronization before submitting scheduled jobs so an uncertain write cannot indefinitely block reconciliation. Missed jobs are not replayed.
    • After a verified deployment, retain the current production image and one rollback baseline. Protect all container references, unrelated projects and persistent data.

    Validation and installation

    457 tests passed, together with Ruff, formatting, mypy and pip-audit. Gitea CI #66 passed isolated Docker/restart verification and production deployment.
    Release commit: aabbff8127c14571c93d14dc7a4d38b3d9e1893d.
    English installation guide. The NAS attachment is a source deployment package requiring a Docker build, with no private configuration, secrets, databases or photos. A SHA256 checksum is included.

    Safety boundaries

    Unknown writes without a known target, with a different target, or without sync confirmation remain blocked for manual review. Writes are never automatically replayed. Cloud sync is not independent visual confirmation of the physical screen.

    Downloads
  • v0.1.0 80c6bf3b7d

    way released this 2026-10-11 08:23:12 +08:00 | 106 commits to main since this release

    简体中文

    Pigway Frame Flow 首个正式版本:可独立运行的智能画框自动化平台。

    功能

    • 中英文 Web UI、深浅色主题、账号登录与设备状态面板。
    • KoKonna API Key 接入;官方账号能力单独授权,不向外部调用方交付设备密钥。
    • 本地/云端图库、图片预览、星标、来源与任务筛选、批量操作和横竖方向选择。
    • 七种图片模板、天气 Provider、照片与文字、自动随机照片和定时任务。
    • 1–12 张图片的拼图/海报,以及可选的 OpenAI 兼容 AI 排版。
    • Synology Photos 人物筛选、NAS 文件夹、WebDAV 与可选网盘数据源。
    • 播放列表、优先级覆盖/恢复、SQLite 持久化和操作历史。
    • /api/v1、OpenAPI/Swagger、异步操作、幂等请求和外部客户端鉴权;Ticktar 集成为可选项。
    • Docker/NAS 部署、隔离 CI 与带健康检查和回滚的自动部署。

    验证与安装

    发布 commit:80c6bf3b7d28bc55608d03fb3ef6b2bd690df50e。CI #62 的 Verify/Deploy 全部通过,451 项自动测试通过;线上 /health、/ready 均为 HTTP 200。

    参见 中文安装说明。当前默认配置与已验证平台为 AMD64。
    附件 NAS 包是源码部署包,需要自行构建 Docker 镜像;不含密钥、私人配置、数据库或照片。SHA256 文件用于校验下载内容。

    已知边界

    云端同步不代表已确认物理屏幕刷新;KoKonna 云端上传会立即切换。结果未知的写请求不会自动重试。官方原生轮播成员编辑不可用。可选天气/AI/网盘等需单独配置授权;当前为单 Worker 服务,不面向多副本部署。

    English

    The first official release of Pigway Frame Flow, an independent self-hosted smart-frame automation platform.

    Features

    • Chinese/English Web UI, light/dark themes, account login and device dashboard.
    • KoKonna API-key integration and separately authorized official-account capabilities; device credentials stay server-side.
    • Local/cloud galleries, previews, stars, source/task filters, batch actions and orientation selection.
    • Seven image templates, weather providers, Photo + Text, scheduled random photos and automation.
    • Collages/posters with 1–12 images and optional OpenAI-compatible AI layout planning.
    • Synology Photos person filtering, NAS folders, WebDAV and optional cloud-drive sources.
    • Playlists, priority overrides/restore, SQLite persistence and operation history.
    • /api/v1, OpenAPI/Swagger, asynchronous operations, idempotency and client authentication. Ticktar integration is optional.
    • Docker/NAS deployment, isolated CI and health-checked automatic deployment with rollback.

    Validation and installation

    Release commit: 80c6bf3b7d28bc55608d03fb3ef6b2bd690df50e. CI #62 Verify/Deploy passed, including 451 tests; live /health and /ready returned HTTP 200.

    See the English installation guide. AMD64 is the current default configuration and verified platform.
    The NAS attachment is a source deployment package, not a prebuilt Docker image. It contains no keys, private configuration, databases or photos. Use the SHA256 file to verify it.

    Known limits

    Cloud sync does not prove physical screen refresh. KoKonna cloud uploads activate immediately. Uncertain writes are never automatically replayed; native slideshow membership editing is unavailable. Optional providers need separate configuration/authorization. The service uses a single worker and is not designed for multiple replicas.

    Downloads