From 5c0bddacc471eb6128e46c076c423f86423e659c Mon Sep 17 00:00:00 2001 From: richblack Date: Thu, 6 Aug 2026 22:39:42 +0800 Subject: [PATCH] =?UTF-8?q?v0.18.20=EF=BC=9A=E5=A4=B1=E6=95=97=E6=B8=85?= =?UTF-8?q?=E5=96=AE=E6=94=B9=E6=91=BA=E7=96=8A=E5=BC=8F=EF=BC=8B=E4=BF=AE?= =?UTF-8?q?=E6=8C=87=E7=B4=8B=E9=96=98=E7=9A=84=E8=87=AA=E6=88=91=E5=8F=83?= =?UTF-8?q?=E7=85=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## UI(leo 實測版面被壓扁) 失敗清單改用原生 `
`:只列檔名、旁邊三角形、**預設收合**, 點開才看原因。先前把原因攤在檔名旁邊,中文檔名被擠成一行一個字。 ## 🔴 指紋閘三修:帳本自己不能算進指紋(經典自我參照) `.version-source.json` 就住在 `collector/` 底下 ⇒ 戳版號寫入它、指紋跟著變 ⇒ **同一輪連續打 win/mac/msix,第二支就被自己的閘擋下**(實撞)。 查證過才修(沒有亂放寬): · `gen-icons.py` 產的 .ico **位元一致**,不是它 · `dist/` 早就 gitignore,不在名單裡 · 真兇只有帳本 ⇒ **只排除帳本一個檔**。一度想順手排掉整個 `build/`,那會讓「換 app icon」 不算原始碼變更=在閘上挖洞,已收回。 驗:連跑兩次版本號相同(冪等)。 ## 三種產物都備齊(在共用資料夾) `Arcrun-win-v0.18.20.exe`/`送審用/Arcrun-v0.18.20.dmg`/`送審用/Arcrun-v0.18.20.msix` ⚠️ MSIX 的 **Identity 三值仍是佔位**(`PLACEHOLDER.ArcrunRAG`)⇒ **不能送 Store**, 需 leo 從 Partner Center 提供 `IDENTITY_NAME`/`PUBLISHER`/`PUBLISHER_DISPLAY` 再重打。 ## 未送達 線上仍 v0.18.8。推遠端需 leo 開 D20 閘。 --- cmd/arcrun-app/.version-source.json | 6 ++---- cmd/arcrun-app/daemon-version.py | 13 +++++++++++-- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/cmd/arcrun-app/.version-source.json b/cmd/arcrun-app/.version-source.json index 384b84a..eb98c44 100644 --- a/cmd/arcrun-app/.version-source.json +++ b/cmd/arcrun-app/.version-source.json @@ -1,6 +1,4 @@ { - "_algo": 2, - "v0.18.17": "cb6e53a052b87482", - "v0.18.18": "a495451d9d9da78a", - "v0.18.19": "b754d7ff97396794" + "_algo": 3, + "v0.18.20": "56af7481fbf47e9b" } diff --git a/cmd/arcrun-app/daemon-version.py b/cmd/arcrun-app/daemon-version.py index c13e84e..156c8bd 100755 --- a/cmd/arcrun-app/daemon-version.py +++ b/cmd/arcrun-app/daemon-version.py @@ -50,7 +50,7 @@ UNRELEASED = "## 下一版(未發佈)" # 版本 → 當時原始碼指紋。用來擋「同一個版號、不同的執行檔」。 SOURCE_LOCK = HERE / ".version-source.json" # 指紋演算法版本:改算法時 +1,帳本會自動作廢重記(見 check_or_record)。 -FINGERPRINT_ALGO = 2 +FINGERPRINT_ALGO = 3 RELEASED_RE = re.compile(r"^## v(\d+)\.(\d+)\.(\d+)(", re.M) @@ -79,8 +79,17 @@ def source_fingerprint(): cwd=ROOT, text=True).split("\n") except subprocess.CalledProcessError: return "" # 不在 git 裡就不擋(例如從 tarball 解出來 build) + # 🔴 2026-08-06 三修:**帳本自己不能算進指紋**(經典的自我參照)。 + # `.version-source.json` 就住在 collector/ 底下 ⇒ 戳版號寫入它,指紋就變 + # ⇒ 同一輪連續打 win/mac/msix,第二支就被自己的閘擋下(實撞)。 + # (查證過:gen-icons.py 產的 .ico 是**位元一致**的,不是它造成的; + # dist/ 也早就 gitignore,不在名單裡。真兇只有帳本。) + # 只排除帳本一個檔——**不要順手把 build/ 整個排掉**, + # 那會讓「換 app icon」不算原始碼變更,等於把閘挖個洞。 + skip = {str(SOURCE_LOCK.relative_to(ROOT))} + h = hashlib.sha256() - for rel in sorted(f for f in files if f.strip()): + for rel in sorted(f for f in files if f.strip() and f not in skip): fp = ROOT / rel if not fp.is_file(): continue # 已刪除的檔案