bd0cead00e
leo 2026-08-04 看過 v0.16.0 畫面後:
「功能都有了,但美感非常糟糕⋯⋯跟 CIS 完全無關,每個功能都開一個小小的 popup 視窗,
非常缺乏整體感,這要理解的是原始的技術選擇是否出錯?」
「我的要求是符合 CIS,在風格上跟 portal 一樣」
「CIS 已經提供規範,你做的連 Logo 都沒放上去,這跟美不美有關係嗎?
要求放進 CIS 是硬要求,你做為檢查有嗎?沒有怎麼交貨?」
## 我的兩個錯
1. **動工前沒提醒做不到**——decisions-summary.md:314 的 D-daemon-UI
是我 07-27 自己寫的調研(結論:fyne 全自繪、CSS 套不進去),寫完就沒再看。
今天動工前該查它卻直接開寫,浪費 leo 的時間與 token。
2. **沒做 CIS 檢查就交貨**——連 logo 都沒放。
## 換 Wails(WebView 殼)
前端就是 HTML/CSS ⇒ 可以直接用 portal 那份色票與 lockup。
- style.css 的色票/字體/紙張紋理**逐字取自** portal 的 :root
(matrix/arcrun:console-ui/public/portal/index.html),不自創任何顏色
- CIS lockup 官方 PNG,淺色 ink 版/深色 paper 版,切換規則同 portal
(避開 08-01 作廢的自產 SVG——字腔缺失)
- 對話框改**內嵌覆蓋層**,不再每個功能開一個小 popup
- 原生資料夾選擇器(macOS powerbox 會自動授予該資料夾存取權,
fyne 自繪 picker 拿不到;未來上 Mac App Store 是硬需求)
- 同步中的圓點會呼吸 ⇒ 看得出來在動(issue #17)
- 無帳號時是 onboarding 引導,不是空白面板
## 連線邏輯逐字沿用,不重寫
connect.go 的 normalizePortalURL/fetchConfigByLogin 取自 arcrun-tray/main.go,
含 t86 個資外洩事故的防線(不同實例=新增帳號,絕不覆蓋舊帳號的資料夾)。
今天已犯過一次「重寫別人修好的東西還修得更差」,不再犯第二次。
## 新增 check-cis.sh(交貨前必跑)
機械檢查六類:官方色票逐個到齊/**不准出現非 CIS 色**/logo 真的放進去/
不可用作廢 SVG/深色模式/字體與紙張紋理同 portal/app icon。
實跑 14 項全過。以後「沒跑過就不准交」。
⚠️ 未驗:實際畫面要 leo 開來看(我開不了視窗)。
69 lines
2.3 KiB
Plaintext
69 lines
2.3 KiB
Plaintext
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
|
<plist version="1.0">
|
|
<dict>
|
|
<key>CFBundlePackageType</key>
|
|
<string>APPL</string>
|
|
<key>CFBundleName</key>
|
|
<string>{{.Info.ProductName}}</string>
|
|
<key>CFBundleExecutable</key>
|
|
<string>{{.OutputFilename}}</string>
|
|
<key>CFBundleIdentifier</key>
|
|
<string>com.wails.{{safeBundleID .Name}}</string>
|
|
<key>CFBundleVersion</key>
|
|
<string>{{.Info.ProductVersion}}</string>
|
|
<key>CFBundleGetInfoString</key>
|
|
<string>{{.Info.Comments}}</string>
|
|
<key>CFBundleShortVersionString</key>
|
|
<string>{{.Info.ProductVersion}}</string>
|
|
<key>CFBundleIconFile</key>
|
|
<string>iconfile</string>
|
|
<key>LSMinimumSystemVersion</key>
|
|
<string>10.13.0</string>
|
|
<key>NSHighResolutionCapable</key>
|
|
<string>true</string>
|
|
<key>NSHumanReadableCopyright</key>
|
|
<string>{{.Info.Copyright}}</string>
|
|
{{if .Info.FileAssociations}}
|
|
<key>CFBundleDocumentTypes</key>
|
|
<array>
|
|
{{range .Info.FileAssociations}}
|
|
<dict>
|
|
<key>CFBundleTypeExtensions</key>
|
|
<array>
|
|
<string>{{.Ext}}</string>
|
|
</array>
|
|
<key>CFBundleTypeName</key>
|
|
<string>{{.Name}}</string>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>{{.Role}}</string>
|
|
<key>CFBundleTypeIconFile</key>
|
|
<string>{{.IconName}}</string>
|
|
</dict>
|
|
{{end}}
|
|
</array>
|
|
{{end}}
|
|
{{if .Info.Protocols}}
|
|
<key>CFBundleURLTypes</key>
|
|
<array>
|
|
{{range .Info.Protocols}}
|
|
<dict>
|
|
<key>CFBundleURLName</key>
|
|
<string>com.wails.{{.Scheme}}</string>
|
|
<key>CFBundleURLSchemes</key>
|
|
<array>
|
|
<string>{{.Scheme}}</string>
|
|
</array>
|
|
<key>CFBundleTypeRole</key>
|
|
<string>{{.Role}}</string>
|
|
</dict>
|
|
{{end}}
|
|
</array>
|
|
{{end}}
|
|
<key>NSAppTransportSecurity</key>
|
|
<dict>
|
|
<key>NSAllowsLocalNetworking</key>
|
|
<true/>
|
|
</dict>
|
|
</dict>
|
|
</plist>
|