diff --git a/Dockerfile b/Dockerfile index ab02817..318bd11 100644 --- a/Dockerfile +++ b/Dockerfile @@ -43,7 +43,7 @@ WORKDIR /app ARG BUILD_COMMIT=development ARG BUILD_TIME=unknown ENV BUILD_COMMIT=$BUILD_COMMIT BUILD_TIME=$BUILD_TIME -LABEL org.opencontainers.image.title="PIGWay Frame Flow" org.opencontainers.image.version="0.1.27" org.opencontainers.image.revision=$BUILD_COMMIT +LABEL org.opencontainers.image.title="PIGWay Frame Flow" org.opencontainers.image.version="0.1.28" org.opencontainers.image.revision=$BUILD_COMMIT USER 10333:10333 EXPOSE 18787 HEALTHCHECK --interval=30s --timeout=5s --start-period=20s --retries=3 \ diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md index 5287c98..badea66 100644 --- a/RELEASE_NOTES.md +++ b/RELEASE_NOTES.md @@ -1,11 +1,11 @@ -# pigway-frame-flow v0.1.27 +# pigway-frame-flow v0.1.28 -历史记录增加服务端分页、筛选和删除管理。 +源图库增加自动选图排除标记,并完善图库卡片交互。 -- 支持每页 20 / 50 / 100 条及前后翻页,显示记录总数。 -- 支持图片名称、任务 ID、请求 ID、来源搜索,以及状态、操作、设备和上海时区日期筛选。 -- 支持当前页全选、反选、单条和批量删除;删除前确认,运行中任务不可删除。 -- 删除仅移除历史展示,保留图库来源、幂等处理及任务恢复所需的内部执行凭据,不删除图片或取消任务。 -- 同步 API 文档、契约快照及权限、CSRF、分页和删除回归验证。 +- 本地图库支持单张、批量“不再选用/恢复选用”;网盘等照片源支持星标及选用标记,按图库与图片 ID 保存。 +- 后续自动选图和自动拼图跳过被排除的图片;图片仍保留,可手动使用或恢复,不取消已提交任务。 +- 星标与不再选用互斥,前端禁用冲突按钮,后端校验单张、批量、照片源及并发提交,拒绝非法布尔值。 +- 卡片分别显示来源、星标/排除标记和时间;按钮按“显示到画框、星标保留、不再选用、下载图片、删除”排列,保持贴底、靠左及同行底边对齐。 +- 修正图库任务筛选控件空引用提示,保留删除确认和批量操作。 -保留既有单用户安全、设备控制及品牌布局。源码包包含 LICENSE、NOTICE 和第三方许可材料。 +源码包保留 LICENSE、NOTICE 和第三方许可材料,不包含私有配置、数据库或会话。 diff --git a/SHA256SUMS b/SHA256SUMS index 9a5d7d1..d20aff5 100644 --- a/SHA256SUMS +++ b/SHA256SUMS @@ -5,12 +5,12 @@ b45d35d737f119a70bf40cb1f9626ff80772ed7913cb35f6e9b870d6ada01a15 .github/workfl c8c545718e9b9880555c950a078cac160c82e0cd6e593afcf20bc13727539ec5 .github/workflows/verify.yml 3931cc314019760a582e0914e2d9c0f3b862a004d0a30d374900edcad5f599e5 .gitignore 4b4ed4926a350cbeb71436541b4566e4ba7d2494ac95236b88827a9f5dd171c2 CONTRIBUTING.md -219c51489601f68ae24e90e5cb6f0b3c46ef68a6b1c21f9452b041d6a76a337c Dockerfile +784ddd90ad45e4de196a7459bd3b7cb76daf57c374cd4a503be31a0e95e2b2a1 Dockerfile 6eb7728e6e73f9568ca6fd5ad6383d13ffc638f2870fefa2d86f72f39685c0fc LICENSE 250a2bcec248b074786d90e0329874628d70d5a0fe3b4fba47c8c57d4f84dcce NOTICE.md b7a41a2c00df1a0dbe3869d059d65c3bcaee8c50e51217c358527c4f1d3d6c98 README.md 94184f76401192678ec420c2ccd23142d90e07a8ccc882a4a0d4701a0c278afc README.zh-CN.md -4a81645fe7ee8ee335ee74262004e2c51e804e7282ee9ef17f7a80dfcb7baa84 RELEASE_NOTES.md +441c9bf48ed54c32dc21e103a657c3f87b497cb96e358ca2c62f31b2d058ec14 RELEASE_NOTES.md 3dd364e47fdbd2ce9ce2df83342c523adc21583f093a5439d501b3424878ce2f SECURITY.md e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 build-cache/wheels/.gitkeep e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 config/.gitkeep @@ -37,14 +37,14 @@ f709156217c798f6b6230dae1f341373e0814a67ab90e881401da577f52ec3d3 docs/brand/pig da6734d8a23305f6254c0936dadff4ec34977b4c934f5067186423c8cfce3fc7 docs/brand/pigway-logo.png 0fa494a3fbd456c754bbea3f7f050be139e32e3b42b09a1ed953094087437210 docs/brand/pigway-logo.svg ac0481196e593ff9cca2e5133ff41fb3614268e6a10728a0deca3ad3bfb80b34 docs/integrations/TICKTAR.md -93ca4bc8261504dce387ec14f07170fda8d8bfbe246dd739aa31e3268b2772b7 docs/openapi.json +bd906c2e74d95360880f3c96fd78474458be243f7ac01bd6cbc6e737719bb9ad docs/openapi.json 54bf7061e0626900ce35e19e81efc5c32c8fd6a0438bdad68f494e1ce81616d4 docs/research/KOKONNA_ACCOUNT_CAPABILITIES.md a07cbe71571c6e2d5a1b94897bd63321c74675c05d15438c4964eef39db0fd76 docs/research/KOKONNA_CONTENT_SUBSCRIPTIONS.md ec53d587b855be84283c50f8fb45be62a4c1caba78b28d436a8260fd171943a2 docs/research/KOKONNA_LOCAL_CONTROL.md 2a68fe95ba4afc24aec6abd3e6ab24a360eb6bc3005ab0fefd696190915d76c1 docs/research/KOKONNA_WIDGET_CATALOG.json e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pigway_frame_flow/__init__.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pigway_frame_flow/api/__init__.py -e16fb262482c6be5aa58a2f63926a5acfb2ca021b772aff924d8cced9b16c524 pigway_frame_flow/api/app.py +a2561122d40be5ed49bff2a4ad6cae628f9180ef28489853dd9bf1812e224ac6 pigway_frame_flow/api/app.py 1efe9b1fc774a97e5be72d81199b1b65b25c258956fdf166aebff732cc820d7c pigway_frame_flow/api/history.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pigway_frame_flow/core/__init__.py 0b8402603c2f397f4f42491873b27bf363959194b05a0c67c7b1d49596288b95 pigway_frame_flow/core/accounts.py @@ -88,7 +88,7 @@ a518965aa4db9abeb60865c315229c3053c8e9edd26d80f24dc0af0528bad9e6 pigway_frame_f 2a68fe95ba4afc24aec6abd3e6ab24a360eb6bc3005ab0fefd696190915d76c1 pigway_frame_flow/integrations/kokonna_official/widget_catalog.json aea594fb4e4c9a6e2094d4d7973eb627ac02fb632811b2d1a558a0ee1cd12e77 pigway_frame_flow/integrations/kokonna_official/widgets.py 1fe53f4bfb407b8db774fe730131ecf1213e16d752a3506c4c56b46365ea14e8 pigway_frame_flow/main.py -a456b4d18414546563db4eae4709689c8ddfac0ac6b3ffe840c6796f2fe74a9c pigway_frame_flow/models.py +f16e9ae17da8bddf95622b4d8ef2626342a88cd9da2f97913db5bdaec5c409df pigway_frame_flow/models.py e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855 pigway_frame_flow/providers/__init__.py b7a6cb8eb40d8dedfbce18777f8fbd433a174f14bcdadf498bd834132aa568fd pigway_frame_flow/providers/cloud_drives.py 58b070f0c814d639a4a912d079479d751d459816d59f2199d0be03e4d573ec3b pigway_frame_flow/providers/external.py @@ -129,13 +129,13 @@ d7d55b06ead173b4c23a277fa39800cadfc18f1163c500e8617cfc1f4ee0dea9 pigway_frame_f 0fa494a3fbd456c754bbea3f7f050be139e32e3b42b09a1ed953094087437210 pigway_frame_flow/web/favicon.svg 4c7a6d81a4397896e5dcca9020e0a162e60116ff05a840f161834afdf6ea54c5 pigway_frame_flow/web/features.js 4995020f673252abfd745ac8a1a6e9c5081cf9bfa89dd4b7d1ab30a41e0b6eb9 pigway_frame_flow/web/i18n.js -51796b4db73773cea7e451ea21d3b493fcfaf340945d44a696b5d484a5222ea5 pigway_frame_flow/web/index.html +3f241f7180861aac148f4713e1538178e252b375172759e7d6bfdfa84042236b pigway_frame_flow/web/index.html 0fa494a3fbd456c754bbea3f7f050be139e32e3b42b09a1ed953094087437210 pigway_frame_flow/web/logo-symbol.svg ff769c592cc616a983fdf6e92114ebe3779cf8f40a2a7bc235687e7cbdfdaed0 pigway_frame_flow/web/style.css cfc7749b96f63bd31c3c42b5c471bf756814053e847c10f3eb003417bc523d30 pigway_frame_flow/web/swagger-LICENSE 050bc415ee7048dcd881682678f720264e7da5e373f7461d7c58c755305255f7 pigway_frame_flow/web/swagger-ui-bundle.js 1ac324f7dcd27e4b9386b4bd6421271ec147e922a22c05ba24b11515e9aa6321 pigway_frame_flow/web/swagger-ui.css -24d1e0233bc9107f290543b1fccf74455697bbc9f6eafa557d559ea0ea044548 pyproject.toml +0d444fe33713346788104b3473c4b413fd261e0abda77dae6cf174442b71812c pyproject.toml d34ac82e4c3feacd38546aa2f0a4491ab17ddbf3ad8f489375783166d78923f0 requirements.lock 008af5f4adf616c86e805febc016faad60be0008abf5dddad6e955f1d03606cf scripts/build-verify.sh 43e8345ac5f29c2a5d1fa751c0e7c963b00b5391817393541e72c52919f0f2b4 scripts/check-compose-remote.py diff --git a/docs/openapi.json b/docs/openapi.json index ce5ec62..20697d7 100644 --- a/docs/openapi.json +++ b/docs/openapi.json @@ -2,7 +2,7 @@ "openapi": "3.1.0", "info": { "title": "PIGWay Frame Flow API", - "version": "0.1.27" + "version": "0.1.28" }, "paths": { "/api/v1/devices/{device_id}/widgets/selection": { diff --git a/pigway_frame_flow/api/app.py b/pigway_frame_flow/api/app.py index ebe1abc..f9d3e27 100644 --- a/pigway_frame_flow/api/app.py +++ b/pigway_frame_flow/api/app.py @@ -134,7 +134,7 @@ def create_app(settings=None, start_worker=True): app = FastAPI( title="PIGWay Frame Flow API", docs_url=None, - version="0.1.27", + version="0.1.28", lifespan=lifespan, responses=error_responses, ) @@ -1099,7 +1099,7 @@ def create_app(settings=None, start_worker=True): supports_upload=True, ), ], - version="0.1.27", + version="0.1.28", mock=settings.mock, write_enabled=settings.write_enabled, api_key_configured=bool(settings.api_key) diff --git a/pigway_frame_flow/models.py b/pigway_frame_flow/models.py index 8815086..73bfb53 100644 --- a/pigway_frame_flow/models.py +++ b/pigway_frame_flow/models.py @@ -368,7 +368,7 @@ class SettingsView(BaseModel): class Health(BaseModel): status: str - version: str = "0.1.27" + version: str = "0.1.28" class Readiness(BaseModel): @@ -400,7 +400,7 @@ class RestoreRequest(StrictModel): class Version(BaseModel): product: str = "PIGWay Frame Flow" - version: str = "0.1.27" + version: str = "0.1.28" api_version: str = "v1" commit: str = "development" build_time: str = "unknown" diff --git a/pigway_frame_flow/web/index.html b/pigway_frame_flow/web/index.html index be821b1..6eea6e9 100644 --- a/pigway_frame_flow/web/index.html +++ b/pigway_frame_flow/web/index.html @@ -1,3 +1,3 @@ PIGWay Frame Flow -
PIGWay Frame Flow

+
PIGWay Frame Flow

diff --git a/pyproject.toml b/pyproject.toml index 0682e9d..4dd0587 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [project] name = "pigway-frame-flow" -version = "0.1.27" +version = "0.1.28" readme = "README.md" license = {file = "LICENSE"} requires-python = ">=3.14,<3.15"