Skip to content

feat(desktop): 整合挑片、傳輸紀錄與前景 JPEG 交付 - #237

Draft
js051 wants to merge 40 commits into
mainfrom
feat/pc-media-rating-filter
Draft

js051 wants to merge 40 commits into
mainfrom
feat/pc-media-rating-filter

Conversation

@js051

@js051 js051 commented Oct 10, 2026 •

Copy link
Copy Markdown
Owner

本輪完整首次連線/恢復群組(2026-10-11)

最新 head ede2f579a6722e9cfff69f95ef10a83211b5e375,tree 92929ad0f944c986882a759f1bfef3cb01ee5af1。正常 CI38119632891 已全數通過適用 gate/ci-complete(114412852798);下方原 head 的綠燈僅屬歷史來源。

新增英/繁中首次 CCAPI/電腦 Bridge/USB engine 指引、原點 URL 檢查、取消/空結果/失敗/重試狀態與舊回覆隔離。只有終態 CCAPI discovery 502 的 optional connectionReason 提供白名單原因;既有 HTTP/code/message/engine 保留、成功 fallback 優先、Bridge-token 401 分開。持續快門責任警告優先。

本地4個變動 JS 語法檢查及完整26 module scripts 通過,含13個新增恢復測試,10.82秒/1CPU/96MiB heap。RSS 監測器回0,aggregate RSS enforcement 未核實;早期V8啟動及測試selector失敗保留。正常 commit/pre-push secret scan 通過。Python pytest/Ruff、瀏覽器、實體相機本地 NOT_RUN;由本次正常 CI 驗證適用編譯/後端/browser,完整 App 人工驗收依使用者指示後置。來源審查的取消、非空原因集合與 auth/404/TLS precedence 負例保留。

首次 c3142ee/CI38118879567 為 FAILURE:Ruff與兩語言Chromium新旅程實際通過,既有Python static UI fixture仍要求已移除的 engine?.detail 拼法而失敗。已核 production保留實際engine與ready tooltip,只將 unavailable狀態改為本地化引導;2檔修正保留原 auth/storage/security 斷言,改驗確切renderHealth分支。6個原static測試以標準函式庫執行全過(1.93秒),不替代新全套CI。新head的Ruff、Python後端/static、完整modules、兩語言Chromium連線旅程(06:57:09/11 UTC)、打包、Windows及JVM/APK適用gate均成功;完整App人工/真機驗收仍後置。原run失敗保留。詳見 docs/validation/pc-connection-guidance-recovery-2026-10-11.zh-TW.md。仍草稿,不合併/發版。以下保留此前完整媒體交付及失敗證據。


變更

PC 原载入素材的日期/評分/相機資料夾/類型挑片,整合多選、使用者明選資料夾後循序保存原檔、完整離線工作清單及明確前景 JPEG 自動交付。0分與unknown分開,opaque folder ID/label只消費既有公開證據,不從檔名猜,不因篩選增加listing/info fan-out。

多選保留篩選/分頁/部分清單外的快照,批次固定session物件及順序,一次一檔沿原GET/串流/長度檢查/writer.close。取消或首個失敗停止後項,completed/failed/unknown/not-started分開。目錄picker只在明確使用者操作時呼叫,不支援時保留單檔;不以多anchor冒充已保存,不擅自覆寫/刪除目的檔。

新工作清單在任何目的檔/原檔GET前一次原子保存全部已選列,冷讀可完整保留5完成/1未確認/44排隊。plans及其他已開始嘗試共用100列、100KiB UTF-8,保護計畫與active rows;舊v1嚴格讀取,成功寫入時原子遷移。每列attempt admission未確認就不開始I/O;整份plan commit未知時fail closed,只有確認未commit才警告後保留原手動保存。clear退休epoch、不刪檔、不重建舊清單。

白名單只有本地隨機ID、清理後顯示名稱、順序、時間、實際結果和bytes;不存wire/session ID、URL/token、路徑/handle、原始錯誤。名稱不是來源身分,紀錄不自動重連、續傳或重試。前景動態匯入仍只記真實開始的獨立嘗試;close不是fsync或永久存在證據。

最新head7a147ee4d14dd129a9b1b27500e2b4aed6614974,treee89ef5e21d454c44c38508de0cd6ce1c6c9cb7ed,與本地已審a9fe2c90fc4d9e72ed8054548092cff5bf4c9075完整tree相同。真parent80a3ce6,原branch nonforce lease/readback成功。

驗證與歷史

  • accepted base089e71a;早期挑片bb95aeb CI38087426842全適用成功,只屬舊head。
  • 首次完整批次fe8c4b CI38090551549失敗:ccapi.browser.test.js:623舊preview selector同時匹配新checkbox與preview button,新增batch DOM尚未到達。原失敗保留,明確selector未減assertion。
  • 5585ea7 CI38091355470全適用成功:22個Node腳本、desktop/Windows/JVM/APK/secret/backend/package,以及4個新增正常browser批次旅程(英繁中closed bytes/hidden selection、unsupported API、取消停止後項)。此成功只驗5585ea7。
  • 最新紀錄批次本地23個Node腳本全部通過,修後3.53秒/1CPU;store34控制,production-owner31控制(原17保留+14新增),覆蓋quota/corrupt/兩store交易/clear epoch/Date界線/timeout commit競爭、紀錄故障不影響close、舊owner仍記真實完成、dialog clear/refresh/focus競爭。
  • 獨立來源review無剩餘阻擋;9檔1551新增/10刪除,正常commit及pre-push secret scan通過(14commits716993bytes,0leaks)。
  • 原browser suite增加真IndexedDB的pending reload不自動GET、第二分頁clear後late finish不重建,並延伸英繁中390px/200%完成後reload/離線入口/clear確認/焦點。exact head644ced49 的正常CI38093214237全部適用gates成功:desktop browser/backend/package、Windows standalone、JVM/APK、secret及ci-complete。原始desktop log確認英繁中完成後reload/離線/clear、pending reload、第二分頁clear與late finish四個紀錄旅程實際通過。這仍不等同真OS picker/provider或完整人工驗收。

範圍與 Release Assessment

紀錄限此瀏覽器profile與Bridge origin;完整工作清單與其他已開始嘗試共用100列,保存未開始的已選列。不保存單檔Blob/anchor下載結果、不自動續傳或重連。close只代表當時API完成,不保證檔案現在存在、硬體fsync、hash或可解碼。已存紀錄不可取代查看目的地。無真OS picker/provider或實體相機驗證,完整App人工/實機驗收依使用者指示開發後集中。

目錄/檔案create沒有原子exclusive保證,外部同時寫入仍有競爭;未完成檔案可能留下。Bridge原GET先整份暫存,取消不保證相機I/O立即停止。無背景/跨程序續傳、批次相機修改、私有消費端內容,不宣稱整P2或完整產品完成。

Latest release v0.12.0 Development Preview;整批能力屬minor。維持draft,不合併main、不發版、不改KVM;原gates與release HOLD保留。詳見 docs/validation/pc-batch-transfer-history-2026-10-10.zh-TW.md、pc-media-batch-delivery-2026-10-10.zh-TW.md及挑片文件。

原 P2 前景 JPEG 自動交付完整批次

僅CCAPI與支援File System Access的瀏覽器,使用者明確Start並明選目的地;兩次完整baseline排除舊檔、只觀察新JPEG,兩次相隔至少1秒的fresh positive size穩定才單次canonical GET,exact bytes後close才記已保存。RAW/影片ID亦記住,最多known4096/pending20/最近結果100;不發相機寫入、不自動恢復/重連,無API時保留原手動單檔。

新增既有GET的opt-in strict inventory/fresh info/single original契約和positive evidence headers;舊客戶端預設不變。inventory最多1000ID/512 requests或containers/2MiB JSON,完整遍歷不是atomic card snapshot;30秒為cooperative觀察budget,不宣稱hard header deadline。fresh size不用cache補值;single GET不跟redirect/試variant/Range,strict raw duplicate length/TE+CL檢查保留。原檔沿原Bridge staging/inactivity邊界,瀏覽器abort不假稱立即中止相機讀取。

實際讀取/寫入exact owner互斥手動controls;Stop/visibility/session切換保留未settle狀態、停止後項,late close仍是真實receipt但不污染新連線;目的地handle不持久化。close不是fsync或來源hash、跨程序pending queue/exactly-once未實作。

本地13檔manifest與原review/測試完全相同:25個Node腳本全過4.55秒、controller20/owner28控制,backend strict44+recovery29=73/73、Ruff、正常pre-push15commits875663bytes0leaks。新增browser英繁中390px/200% fresh evidence/closed bytes/no-backfill/reload/legacy header/Stop旅程此前NOT_RUN,需本次exact-head正常CI,不沿用644ced49成功。

先前大create_tree曾因scope/quota證據要求拒絕、同scope證據重審後兩次中斷UNKNOWN;只讀確認ref未動,完整候選保全。此次在同connector逐內容定址blob、精簡SHA tree後核完整6494e887與真正remote parent,再正常nonforce更新原分支;沒有force或憑證變更。

詳見docs/validation/pc-foreground-jpeg-import-2026-10-10.zh-TW.md。完整App/OS picker/provider/真機驗收依指示後置,不main/release,releaseHOLD不變。

首次前景 CI 與修正

原 d92c27d CI38110691618 FAILURE:EN/zh 新JPEG與legacy header拒絕通過,取消旅程在Start後尚未進watching即12秒timeout;尚未到capture/writer/Stop。原圖Off/0known、只有一般listing,無strict/fresh/original或JS error,精確點擊交錯未知。Windows/JVM/secret通過;browser失敗後backend/package未跑。

新head只修fixture前置:兩個真gallery縮圖與latest完成、Start可用後單次gesture並驗pickerCalls=1;保留原所有timeout/cancel/closedbytes斷言及production busy guard。新增受控初始busy拒絕→settle不自啟→新gesture baseline控制,25個Node腳本全過、owner29/29,syntax/diff/正常hook/prepush16commits882511bytes0leaks。新browser runtime待本head正常CI,不宣稱原failure根因已證。artifact11691243240 SHA873b94a2486ee6df6016204a2c05cae800a5e660fbed7e2490d5eeb18afea3f3保留。

本次終態

head80a3ce6 CI38111699034全適用SUCCESS:desktop完整browser、backend contract/package、Windows standalone、JVM/APK、secret與aggregate。raw04:32:09確認取消旅程PASS已經過held writer→Stop→1GET/closed=false/aborted=true/completed0/unknown1/1capture所有原斷言;英繁中baseline/fresh/closed bytes及legacy拒絕也PASS。這是synthetic軟體必要CI,不是OS實際picker/provider或真相機集中驗收,原failure與其未證因果保留。

完整工作清單本批驗證

  • 9檔1132+/53−,獨立來源review無blocking,完整25個Node模組最終來源6.026秒exit0;store53/53、正式caller/queue81/81。含committed-but-unacknowledged row不能回capability、冷讀unknown不偽造queued的負例。
  • 既有真browser reload/跨tab clear旅程增加全部已選列和queued/unknown、不重複receipt的檢查,原close/Stop/焦點/無自動request assertions保留。
  • 正常hook及17commit pre-push掃描零secret。exact head7a147ee 的正常CI38114608734全部適用gates SUCCESS:desktop browser/backend/package、Windows standalone、JVM/APK、secret及aggregate。原始desktop log確認完整工作清單reload與跨tab clear旅程在05:26:16/05:26:18通過,前景原四旅程也保留並通過。這是本head synthetic必要CI;真OS picker/provider與完整App人工驗收仍待集中驗收。
  • 完整文件:docs/validation/pc-complete-batch-worklist-2026-10-11.zh-TW.md。維持draft,未合併/發版,不改KVM或移除gates。

@js051 js051 changed the title feat(desktop): 加入已載入媒體的評分篩選與排序 feat(desktop): 補齊已載入媒體的評分與資料夾挑片 Oct 10, 2026
@js051 js051 changed the title feat(desktop): 補齊已載入媒體的評分與資料夾挑片 feat(desktop): 整合挑片、多選與循序原檔保存 Oct 10, 2026
@js051 js051 changed the title feat(desktop): 整合挑片、多選與循序原檔保存 feat(desktop): 整合挑片、批次原檔保存與傳輸紀錄 Oct 10, 2026
@js051 js051 changed the title feat(desktop): 整合挑片、批次原檔保存與傳輸紀錄 feat(desktop): 整合挑片、傳輸紀錄與前景 JPEG 交付 Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants