daemon: 首次啟動改成兩步引導精靈(Gitea #23)

舊版 onboarding() 只有兩行字+兩顆按鈕,沒解釋 Arcrun 是什麼,也沒有
「我做到哪了」的感覺;『我還沒有知識庫』點下去就丟去外部網址,
回來以後要自己想起來要按哪顆鈕才能連線。

改成兩步小精靈,每步都有步驟點(1/2):
① 認識 Arcrun:三句大白話講清楚在做什麼,不用任何內部詞
② 連上或申請知識庫:『已經有了』/『還沒有』並排兩張卡,
   『還沒有』那張當場講清楚『回來這裡按哪顆鈕』,不是丟出去就沒事

連線邏輯(Connect/showConnect)完全沒動,接的是既有後端;
連線成功後落回首頁,首頁本來就有狀態時間軸+自動種好的範例資料夾
(default_library.go 的 P4),使用者不必再多做一步就看得到
『丟檔案 → 知識卡』整條路跑起來。

只動前端(main.js+style.css),零 Go 改動。check-cis.sh 全過;
用 mock window.go.main.App 在瀏覽器截圖驗過兩步畫面(截圖見 issue #23 留言)。
This commit is contained in:
2026-08-09 15:03:23 +08:00
parent 63bea13f21
commit e7a72d74e1
2 changed files with 91 additions and 8 deletions
+36
View File
@@ -149,6 +149,42 @@ button.ghost:hover { color: var(--err); background: transparent; }
.empty .t { font-size: 17px; font-weight: 600; margin-bottom: 10px; }
.empty .d { font-size: 14px; color: rgba(var(--ink-rgb), .55); line-height: 1.9; margin-bottom: 20px; }
/* ── 首次啟動精靈(issue #23):兩步,讓人隨時知道「我做到哪了」──
步驟點沿用首頁「狀態時間軸」同一套配色邏輯(done=--ok、on=--amber),
不另外發明一組顏色。 */
.ob { max-width: 520px; margin: 0 auto; padding-top: 36px; }
.obdots {
display: flex; align-items: center; justify-content: center;
gap: 8px; margin-bottom: 18px;
}
.obdot {
width: 26px; height: 26px; border-radius: 50%; flex: none;
display: flex; align-items: center; justify-content: center;
font-size: 12.5px; font-weight: 600; font-family: ui-monospace, Menlo, monospace;
background: rgba(var(--ink-rgb), .1); color: rgba(var(--ink-rgb), .45);
}
.obdot.on { background: var(--amber); color: var(--knob); }
.obdot.done { background: var(--ok); color: var(--knob); }
.obline { width: 40px; height: 2px; background: rgba(var(--ink-rgb), .12); }
.obcap {
font-size: 12px; letter-spacing: .06em; text-transform: uppercase;
color: rgba(var(--ink-rgb), .4); margin-bottom: 14px;
}
.obintro { text-align: left; max-width: 420px; margin: 0 auto 24px; }
.obintro p { margin: 0 0 10px; }
.obchoice {
display: flex; gap: 14px; margin-top: 22px; text-align: left;
flex-wrap: wrap; justify-content: center;
}
.obcard {
flex: 1 1 200px; max-width: 240px;
background: var(--well); border-radius: 12px; padding: 16px 18px;
display: flex; flex-direction: column; gap: 8px;
}
.obcard .obh { font-size: 14.5px; font-weight: 600; }
.obcard .d { margin-bottom: 4px; }
.obcard button { margin-top: auto; }
label.radio { display: flex; align-items: flex-start; gap: 10px; margin: 12px 0; font-size: 14px; cursor: pointer; }
label.radio input { margin-top: 3px; }
input[type=text], input[type=password] {