Skip to content

v0.1.0-alpha.114

Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 08 Sep 23:50
· 52 commits to main since this release

Windows 預設下載 AI-Sister-Setup.exe。這是 current-user 安裝包,內嵌 WebView2
offline installer 與同版 sister.exe,設計為安裝時不需連網;代價是安裝包顯著變大,
exact 大小以該 tag 的 asset 為準。正式 artifact 的斷網安裝仍待實測。Release 也保留
sister.exe
sister-desktop.exe,只想跑 CLI、
免安裝使用或診斷 installer 問題時,請把兩個檔放在同一個資料夾。

目前 installer 沒有 code signing,也沒有內建自動 updater。升級是使用者手動下載新版
AI-Sister-Setup.exe,先自行結束 desktop 並停止 recorder,再重新執行。alpha.113 起,本版
產生的 sections 覆寫 Tauri stock running-app macro;legacy current-user scanner 回報
sister-desktop.exesister.exe 命中時只拒絕,不提供或執行 forced kill。Setup 在
.onInit 取得 lifecycle mutex,成功路徑持有到 POSTINSTALL;direct uninstall 在
PREUNINSTALL 取得,成功路徑持有到 POSTUNINSTALL。拒絕先釋放,取消由 process teardown
關閉;alpha.113+ PageLeave child 驗證 inherited dynamic capability 後借用 parent
marker。帶協定的 desktop/CLI 以 product event + mutex/event/mutex handshake 在產品狀態前
和 installer 交接,無關的第二份 Setup 也不能同時進入 lifecycle。

這仍不是跨版本完整原子 lifecycle。legacy scanner 沒有 Unknown,process 列舉或 token/SID
查詢失敗會和未找到合併;舊 binary 不持有 event。較舊 PageLeave child 執行時外層 marker
仍會擋 aware product,但 child 仍依自己的版本行為。Windows loader 又在 Rust main 前映射
executable,最後一次 legacy scan 到 NSIS File 之間仍有窄窗。installer late-start 因此仍是
Release 1.0 未完成項。

sister.exe doctor                 # 先看這個:她在這台機器上做得到什麼
sister.exe consent --grant local-recording --grant frame-storage
                                  # 沒簽第一張,下一行會直接拒絕
sister.exe record --duration 60   # 錄一分鐘(省略 --duration 就錄到 Ctrl-C)
sister.exe stats                  # 記了多少
sister.exe query 電話             # 查,每筆都附出處
sister.exe prune --dry-run        # 保留期現在會刪掉什麼

第二行不是形式。沒簽第一張同意書,record 不會開始錄——不是印個
警告然後照錄。少簽第三張(frame-storage)她照樣記,但只記螢幕上的
字、一張截圖都不寫。sister.exe consent 不帶參數就是看現在簽了哪幾張。
使用者自己開桌面姊妹(sister-desktop.exe)的話,它會把那一頁跳出來。
alpha.107 的 Windows login mode 是窄例外:它不在登入背景啟動時自動彈同意頁。

記憶資料放在 %APPDATA%\ted-h\AI-Sister\data\,刪掉那個資料夾就等於
把記憶全部忘掉;config.toml 裡的機器設定(包括 alpha.100 的 URL 答案)不在其中。
也可以用 --data-dir .\test 錄到別的地方,測完直接刪。

這一版把現有 17 套分層角色從「圓角相框裡的上半身」改成透明全身浮空。

素材沒有重抓或擴包:alpha.110 起出貨的 17 套 workplace rig 原本就是完整
1280×1280 透明全身,腿與鞋一直在同一批 402 張 PNG 裡。舊 runtime 只把 viewport
固定在 320,0,640,640,因此主動裁掉下半身;CSS 再加上底色、5 px 邊框、
圓角與厚投影,畫面才會長成頭像卡。

現在 selector、sanitized manifest 與 renderer 同時固定使用完整
0,0,1280,1280 viewport。角色座標格不再畫底色、邊框、圓角卡或裁切;投影
改為跟著 PNG alpha 的人物輪廓。主視窗最高用 300 px 顯示全身;有答案或 URL
問題時縮成 88 px,仍保留已 decode 的全身 rig,不再切回小相框。idle、thinking、
paused、asleep、speaking 與 reduced-motion 的狀態邏輯不變;狀態點和暫停斜槓改成
適合透明人形的尺寸與位置。

這版的 PNG image bytes 仍是 35,140,885 bytes,每次仍只解碼目前一人的
21–26 層。本機 5.2 GB 候選裡其他 19 組服裝與 reaction 沒有順手加入;
若後續做換裝,要另行精選、固定 hash 與授權邊界,不把整包丟進安裝檔。
原本 17 張 208×208、不透明方形半身 WebP 已換成由同一組 reel workplace canvas
縮出的 640×640 透明全身 WebP,合計 1,031,124 bytes。因此 JS 尚未 ready、
圖層解碼中、任一圖層損壞與設定頁選角都不會短暫倒回相框半身。這 17 張是固定
source-canvas hash 的輕量衍生預覽,不是把其他服裝或 reaction 加進來;沒有字母
fallback,也不連網自動修復。

應用程式圖示也不再沿用舊半身裁圖:五個 checked-in PNG/ICO 現在由同一張
ChatGPT 透明全身 preview 裁出,共 464,143 bytes。它們使用獨立 exact
manifest/NOTICE,固定 source WebP、icon.htmlmake-icons.sh recipe 與五個
輸出 hash;這份 owner grant 不借 17 張 preview 的文字替其他衍生圖背書。

本機已用 selector 從 canonical 素材樹重生 production manifest;public clone 不含該素材樹,
所以 CI 不冒充能重生圖。它仍會核對 selector 只接受 exact production Reel authority、
只准 exact 已審 WebP manifest/NOTICE 出貨,並在有 pinned codec 時另跑 synthetic
encoder determinism;shipped-byte checker 逐檔核對 402 張 PNG 的 bytes、SHA-256、
尺寸與授權 projection。另一道
Rust shipped-byte test 逐張 decode 17 張 WebP,核對 640×640、透明 alpha、上下全身
跨度、bytes/SHA-256,拒絕 personas 目錄任何第 18 張圖/子目錄/symlink,並交叉綁回
同角色的 reel manifest 與 canvas hash。app-icon checker 則核 exact 五檔、來源、recipe、
alpha、尺寸、manifest/NOTICE 與 owner grant。Persona renderer fixture
另驗完整 viewport、無相框 CSS、active-only
decode、原子切換、壞圖退路與 compact 全身,並確認 Tauri 不採信 screenshot query。
Linux Chromium 實際截過 340×560 的 idle、thinking、paused、asleep 主視窗;工具會等
頁面/人物 decode、核指定狀態與 exact PNG 像素,不再對空頁或未載完設定頁印成功。
這不等於正式 Windows WebView2 的人工肉眼驗收;該項仍留在
docs/WINDOWS-CHECKLIST.md

隱私承諾與邊界見
PRIVACY.md
THREAT_MODEL.md

最有價值的回報是:「這條規則在我的機器上沒有生效。」

Full Changelog: v0.1.0-alpha.113...v0.1.0-alpha.114