Spaces:
Sleeping
Sleeping
Commit History
-
補齊「使用手冊」→「使用說明」更名的實際內容改動
上一個 commit(8eccc5a)只有檔案改名本身進去了,實際的文字內容 改動(app_agent.py 的按鈕標籤/檔案路徑/註解、assets/app.css 註解、 docs/ 底下三份文件、使用說明.md 內文與版本日期、重新產生的 使用說明.docx)因為 git add 指令裡一個路徑打錯導致整批加入失敗, 沒有真的進到上一個 commit,這裡補上。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>9615d53
-
統計穩定性警示、system prompt 補強、關於面板、多項 bug 修正
統計正確性: - cohens_d()/eta_squared() 分母趨近於零時回傳 None 而非失真數值 (新增 EFFECT_UNSTABLE_LABEL),修掉效果量算出天文數字的 bug - 新增 ZERO_VARIANCE_WARNING:任一組標準差趨近於 0 但檢定仍算出 p 值的退化情況,加註「統計穩定性有限」警示,不隱藏顯著性判斷 - 新增 ZERO_PROPORTION_WARNING(門檻 50%):任一組半數以上樣本值 為 0、SD 未趨近於零但平均數可能被離群值主導的情況,獨立於上面 的 SD 判準另外偵測,兩者可疊加、不重複描述同一組資料 - 修正 docx 差異性分析表格欄位定位改用欄名查表(原本 len(vals)-4 位置推算已對錯欄) - None/NaN 判斷全面改用 pd.isna(),修掉 docx 表格出現 "nan" 文字 - 群組標籤(如「人工翻譯」)修正為會實際套用到送給 LLM 的 difference_analysis 資料,不再只停留在畫面/圖表 - 差異性分析箱形圖:達顯著指標全部畫出(取消前 12 項上限),排序 改為先依組別、組內再依效果量絕對值 - 兩群比較用詞「較高/較低」、三群以上用詞「最高/最低」 System prompt(LLM1): - 補上角色邊界、11 條嚴格禁令(原 5 條)、指標代碼對照表、 metadata 一致性檢查指示 - 新增 INDICATOR_REFERENCE_TABLE:從 INDEX_CATEGORIES 動態產生, 取代手動謄寫,避免與實際指標定義漂移 - 每次分析新增 06_system_prompt.txt 可重現性附件,保留當次實際 送出的完整 system prompt 原文 介面: - 新增「關於」面板(系統版本、免責聲明、姊妹工具、開發紀錄;版權 /聯絡方式/引用格式因論文尚未發表,暫不公開真實姓名或 email) - 情境 1、4 卡片標題拿掉「同一原文的」;情境選擇小標改為 「請選擇最符合您針對同一原文的重譯研究設計的比較情境」 - 「語料 Metadata 說明」全面改稱「語料說明」(含隱形橋接按鈕文字 同步) - 隱私提醒文案調整(移除「先與計畫主持人確認」,改為「先行確認」) Co…f1c47a3
-
部署前整備:對話氣泡真人感、隱私告知、Space 存取控管與 Session 自動清理
對話流程/文案: - AI 對話補上使用者動作氣泡(上傳檔案、送出或略過語料 Metadata),避免 兩則 AI 訊息中間看起來像自問自答 - 使用者訊息泡泡改用獨立底色/邊框(淡綠),跟 AI 泡泡的中性藍灰區隔 - 對話中的 [WARNING] 純文字標籤改成 ⚠️ emoji,跟技術執行紀錄面板一致 - 使用者訊息裡殘留的舊工具名稱「ckip_segmentation_sumin」全面改為 「語料淬鍊(CorpusRefinery)」,含格式驗證訊息與失敗回退訊息 - 文本上傳卡片新增隱私提醒:告知使用者上傳內容會送第三方 AI 服務分析 部署與維運(對應 docs/開發優化建議.md 第一、四、六節): - app.py 新增 APP_AUTH_USERS 環境變數驅動的登入畫面(Gradio 內建 auth), 讓 Space 可保持 Public 但只有知道帳密的特定使用者能進入內容 - app_agent.py 新增 SESSIONS_DIR 自動清理:啟動時清一次、之後每 24 小時 重跑,依資料夾 mtime 判斷是否超過保留天數(預設 7 天,可用 SESSION_RETENTION_DAYS 覆寫),避免使用者研究語料無限期留在磁碟上 - app_agent.py 本機開發用的 share=True 改成看 GRADIO_SHARE 環境變數, 預設關閉,避免地端執行時意外對外開公開分享連結 使用手冊同步更新為目前實際流程(四步驟、CorpusRefinery 改名、群組層 改文字欄位、個體間比較消歧義邏輯、62/75 指標顯示範圍、下載捷徑精簡等)。 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>e02ce54
-
AI 頭像/AI對話圖示:兩顆星改成彩虹弧線
- assets/icons/ai-avatar.svg:頭像圖示從兩顆實心星改成三道白色同心弧 (彩虹弧線剪影),底色維持原本紫藍漸層不動 - assets/icons/chat-bubble.svg:AI對話導覽按鈕圖示同步改成同款弧線造型, 改用跟其他導覽圖示一致的單色線稿(#475569 / stroke-width 1.75), 深色模式沿用既有的 grayscale(1) invert(1) 反色濾鏡,不用額外處理 - assets/app.css:同步更新頭像區塊註解,說明沿用漸層 token 而非固定色的理由 Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>f1121d3
-
AI 頭像:兩顆星改實心並放大
業主:對話列的 AI 頭像圖案兩顆都要實心,而且現在視覺上有點小。 - assets/icons/ai-avatar.svg 改 fill 實心、不再描邊,path 一併撐大: 大星 x3.9–17.1/y2.2–17.2、小星 x15.3–21.5/y13.6–20.7,幾乎填滿 24 的 viewBox(原本大星只有 x6.6–17.4/y3.4–16.6,小星更小一圈)。 - CSS:img 內距 5px→3px,圖案在 28px 圓內的可用範圍 18px→22px。 兩件事要一起做才有感——只縮內距是把細線稿放大,只放大 path 又會被內距框住。 - _ICON_PATHS 的行內版 path 同步更新,維持「檔案版與行內版一致」的既有慣例。 驗證:實測頭像容器仍 28px、內距 3px、圖案可用範圍 22px;截圖確認兩顆星 都是實心白、在漸層圓內明顯放大。(這次沒有用像素統計當佐證——頁面底色 本身就接近白,用亮度門檻數白點會把背景一起算進去,改以 DOM 量測+截圖 目視為準。) Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc71b38599 -
表格右側白帶:關掉 dataframe 內部捲軸佔位(不是欄位錯版)
業主回報「表格似乎都會有欄位錯版」,要求全部檢查。 先查證再修:寫了個稽核腳本逐張量全部 13 張表(語料說明 2 張+五個結果頁 11 張),比對每一欄的表頭寬與資料列寬——**沒有任何一欄真的錯位**(misaligned 全為 0)。真正的症狀是表格右側多出一條空帶:Gradio 給 dataframe 的內部 容器 .virtual-table-viewport 設了 max-height:500px + overflow-y:auto,列數 一多就出現垂直捲軸,佔掉 10px 版面寬度。實測不捲動時表格右緣只差 2px (框線),一捲動就跳到 12px,與業主截圖吻合。會踩到的是敘述統計/差異性 分析/監督式學習三張長表,加上業主環境裡列數較多的語料說明兩張表。 修法:.virtual-table-viewport { scrollbar-width: none !important } 捲軸不再佔版面寬度,白帶完全消失(13 張表重新量過,捲軸佔位全為 0、右緣 只剩 2px 框線)。滾輪/觸控/鍵盤照常可捲,虛擬化不受影響。 過程中排除掉的三條死路,已全部寫進 CSS 註解避免重走: 1. 用 ::-webkit-scrollbar 改寬度——完全沒生效。真因不是 specificity: Gradio 在該元件設了標準屬性 scrollbar-width/scrollbar-color,Chrome 一旦 看到標準屬性就整組忽略 legacy 的 ::-webkit-scrollbar 偽元素。 2. 拿掉 max-height 讓表格攤開、交給 canvas 捲(比照 .exec-log 的既有決定) ——會壞掉。這個表格是虛擬捲動,靠自己的捲動位置決定渲染哪幾列,拿掉之後 敘述統計變成「保留 2832px 高度卻只畫 1 列」的空表。 3. 只對語料表單藏捲軸、結果頁保留橫向提示——方向搞反。會產生白帶的是不需要 橫捲的長表,而唯一需要橫向捲軸的語言指標分析(76 欄)從不出現垂直捲軸。 代價講明:語言指標分析的橫向捲軸也跟著隱形(該表仍可橫捲,且它是唯一 需要橫捲的表)。CSS 裡留了一段註解掉的 #canvas_idx 規則,需要時解開即可 單獨還原它的捲軸。 另修:這輪自己引入又當場發現的 CSS 語…6366111 -
使用手冊圖示放大到與其他導覽圖示同量體、radio 欄位標籤對齊文字欄位
1. 使用手冊圖示比其他導覽項目小一圈。用截圖逐一量「非背景像素」的實際 上色範圍才確認:book-open 只有 16×15,folder/chat-bubble/table-cells 都是 18×16(viewBox 全部是 24×24,光看檔案看不出差別)。把 path 撐到 x 3.2–20.8、y 4.5–20,重量後為 18×16,與其他項目一致。 assets/icons/book-open.svg 與 _ICON_PATHS 的行內版同步改,並在註解留下 「新增導覽圖示要量上色像素」這條檢查。 2. 「群組數量/比較方式」欄位標籤原本是一般大小的深色字,跟同一張表單裡 「原文標題/作者」的小灰字粗體不同調——radio 的 fieldset 標籤走的是 Gradio 另一條規則。補上 #metadata_zone fieldset.block > span 對齊成 .7rem/700/--c-text-muted,實測兩者現在都是 11.2px/700/#475569。 .7rem 不是新發明的字級,是對齊 Gradio 既有的欄位標籤值,因此不套 --font-size-base(那是內文用的,標籤本來就小一階)。 驗證:情境 3 實測兩處標籤數值完全相同;十個導覽圖示重新量過上色範圍, 使用手冊已與 folder/chat-bubble/table-cells 同為 18×16。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7502ffd8 -
淺色再調:線條改用次要按鈕邊框色、底色轉淺、白氣泡、語料表單去卡片
千卉四項指定: 1. 導覽列/對話列/內容列的邊線與水平線「改成跟『重新選擇研究情境』按鈕 的邊框色一樣」→ --c-border-strong 淺色改 rgba(2,132,199,.30),就是 button.secondary 用的那個值(實測 nav 分隔線與按鈕邊框已完全同色)。 對底 1.46:1。這是連續第三輪往柔和調,明確離開 WCAG 1.4.11 的 3:1, 屬業主拍板的視覺取捨;文字對比不受影響,仍全數通過 AA。 2. 淺色背景再淺一點 → --c-bg #e8f1fa → #f3f8fd。 3. 對話氣泡改白 → --c-bubble-bg 淺色 #ffffff(深色 #172136 不動)。 氣泡與欄底填色差剩 1.07:1,邊界改由 --c-bubble-border 撐(淺 1.69:1、 深 1.61:1,兩邊同一級)。 4. 語料說明表單去卡片: - 原文標題/作者/語言/出版年/版本:移除 Gradio 自動包的白色卡片。 這層卡片是兩件事疊起來的——.form 出框線、內層 .block 出白底與內距—— 兩層都要清才會消失。內距清掉後欄位左緣自然對齊小標題與下方表格, 達成業主要的「參考群組層資訊、水平橫列、靠左對齊」。 - 比較結構:gr.Group 改 gr.Column,Gradio 那條藍色標題橫幅與外框跟著 消失,標題自動變成跟「原文資訊」同款的藍色小標題。順帶符合本專案 既有定論——這版 Gradio 的 gr.Group 設 visible=False 只清空內容、 容器仍是 display:flex 會留空色塊,可切換的容器一律用 gr.Column。 已實測情境 1(不需要比較結構)該區塊 display:none、高度 0,無殘留。 - 群組數量/比較方式:同批去掉白底與內距。 順帶修掉一個既有 bug(業主截圖裡就已存在,不是這批造成):那兩組 radio 的選項被裁掉一半。真因是 .form 的 align-items:stretch 把每個欄位的高度 鎖成整列高度,而那個列高只算到選項區(61px)、沒算欄位標籤(20+8px), 多出來的 28px 被 fieldset…b1b0036 -
淡藍底色體系:降低純白/純黑面積,深淺共用三層結構
千卉回報「純黑或純白背景面積很大,整個視覺壓力也變大」,並指定淺色走 「氣泡淡藍+對話欄底稍深淡藍」(她的方案 2)、深色邏輯相同。量過之後 確認抱怨來源不只對話欄:淺色頁面底 #f8fafc 幾乎等於白,真正的大面積 純白是 --c-surface(表格資料列+所有 Gradio 區塊);深色則是 #020617 近乎純黑。 底色改成三層,淺深共用同一套邏輯: 底(--c-bg) 淺 #f8fafc→#e8f1fa 深 #020617→#0b1424 浮起物(--c-bubble-bg)淺 #eef2f7→#f5faff 深 #0d1526→#172136 資料紙張(--c-surface)淺 #ffffff 維持 深 #0d1526→#172136 淺色的表格/卡片刻意維持純白:75 項指標表格是資料密集區,可讀性優先於 「消滅所有純白」;染藍的是它下面那層底,白表格因此變成浮在淡藍上的紙張。 連帶 --c-surface2/--c-thead-bg/--background-fill-secondary 同批換成 同色相的值,避免藍底配灰塊。 線條改走 sky 相(千卉:淺色邊框不要太深,要維持亮麗的淺藍): --c-border-strong #a3aebd→#6ba3d6(結構線,約 2.3:1) --c-divider #b6c0cd→#a9cbe8(表格資料列細線) --c-input-border #a3aebd→#7fb0d9(約 2.0:1) 亮度級距不動,只換色相,手感與上一輪柔化後相同。 順帶修掉一個自己上一輪引入的深淺不一致:氣泡邊框原本共用 --c-divider, 淺色值卻是對著「深色結構線那一級(alpha .28)」挑的,而深色 --c-divider 是更淡的 .18,實測深色 1.37:1/淺色 1.61:1,兩個主題看起來不一樣。改成 獨立 token --c-bubble-border(淺 #a9cbe8、深 rgba(148,163,184,.26)), 兩邊實測都是 1.61:1,--c-divider 也回歸單一用途。 docs/design.md 同步:新增「底色體系:三層」章節(含淺色表格為何維持白底 的準則)、線條表換新值並補「淺色一…3dc69f8 -
線條柔化:結構線降到 2.25:1、氣泡邊框改細線與深色對齊
千卉看實機截圖後回饋兩點:①淺色氣泡的邊框要跟深色一樣淡、兩個模式一致 ②整體線條對比太高、看起來醜,要更柔和。 - --c-border-strong(淺色)#7c8798 → #a3aebd:對白從 3.64:1 降到 2.25:1。 這是刻意離開 WCAG 1.4.11 的 3:1 門檻的視覺決定,但仍是改版前 1.2:1 的 近兩倍,業主原本回報的「淺色看不清楚區塊」在這個亮度差已解決;文字對比 不受影響,全站文字維持 AA。日後若要嚴格達標,把這個 token 調回 #7c8798 即可,19 處線條會一起跟上。 - 對話氣泡邊框從結構線降到細線 --c-divider:淺色 #b6c0cd 對氣泡底 1.64:1、 對欄底 1.76:1,深色 rgba(148,163,184,.28) 疊 #0d1526 是 1.67:1,兩個模式 的邊框亮度差幾乎相同——「深淺一致」是量出來的,不是各挑一個順眼的值。 - --c-input-border(淺色)同步柔化成 #a3aebd。 - 使用者訊息氣泡維持與 AI 同款(業主確認先這樣,只靠左右對齊區分)。 docs/design.md 同步三處:token 表數值、結構線離開 3:1 的取捨說明、氣泡 邊框改用細線的量測依據。 驗證:重啟後實測淺色氣泡邊框 1.64/1.76:1、結構線 2.15-2.25:1,深色數值 與改動前完全相同;情境 1 走到語料說明表單、深淺兩色截圖確認,console 僅 3 筆既有外部資源錯誤。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MQuAXWC1hCsiT48TXftPc7059e85b -
業主第四輪修改:淺色對比度、AI 頭像、下載位置、使用手冊
1. 淺色模式對比度(深色維持原樣) 新增兩級線條 token:--c-border-strong(結構線,淺色 #7c8798,對白 3.64:1、對近白底 3.2-3.5:1)與 --c-divider(表格資料列細線)。深色值 沿用原本散在 .app-header/欄邊框/標題底線各處的 rgba(148,163,184,.28) 硬寫值,那批個別覆寫規則一併刪除。三個 token 宣告點(app.css :root/ .dark、app_agent.py _DARK_MODE_HEAD_CSS)同步。 對話氣泡:淺色底改 --c-bubble-bg #eef2f7(原本白底疊欄底只有 1.07:1) 並加 1px 結構線邊框。表格表頭底改 --c-thead-bg #e2e8f0、表頭分界線改 結構線。輸入框邊框(淺色)從 1.3:1 改 3.6:1。 2. AI 對話氣泡加頭像 gr.Chatbot(avatar_images=(None, ai-avatar.svg)),28px 圓形。漸層畫在 CSS 的 .avatar-container(吃 accent token、隨主題切換),SVG 檔只放 白色四角星——avatar_images 是 Python 端參數,同一個檔沒辦法隨主題換色。 3. 語言指標分析的下載區塊移到表格下方,與其他五個結果頁順序一致 (純宣告順序調整,_TAB_IDX 位置對應不動)。 4. 左側導覽列最後加「使用手冊」下載項目 放在 result_nav_col 外、nav-items-scroll 最末,全程可見;接專案根目錄 既有的 使用手冊.docx(實測下載 41783 bytes 一致,不用改 allowed_paths)。 它是下載動作不是頁面,不進 _ALL_NAV_IDS,不搶導覽 active 狀態。 #nav_guide_btn 比照 #reset_btn 加進導覽列樣式與收合狀態的選擇器清單。 順帶讓 result_nav_col 只佔內容高度(Gradio 預設 flex:1 1 auto 會把它 撐滿、把使用手冊推到欄底)。 docs/design.md 同步:兩級線條準則、對話氣泡…f5990cb
-
成果說明文件重整為六章成果導向架構,新增 docs/README.md
原文件為十五章的需求規格結構,是協作時的工作文件,交給業主閱讀時 找不到「這次做了什麼」。重整為六章,分類邏輯從文件書寫順序改為讀者 會問的問題:修好了什麼、新增了什麼、怎麼設計的、還沒做什麼。 新增文首「文件架構與成果總覽」表,兼目錄與成果摘要,一頁掌握全貌。 第二章依使用者實際遭遇情況重新分為三類共 13 項:流程卡住只能重整 頁面(6 項)、畫面與實際狀態不符(3 項)、視覺與可讀性(4 項)。 除原第三章的 5 個 Bug 外,補入改版過程中發現並修復但從未記錄的問題 (上傳取消鈕鎖死入口、重置後情境卡片失效、報告失敗誤報全部完成、 表單殘留上一輪內容、明暗切換失效、標題漸層消失),每項附 commit。 純視覺微調不列入此章,歸入 4.4。 功能項目與其規格章節合併:原第四章缺口 1 與原第九章下載機制併為 3.1、缺口 3 併為 3.2,避免同一件事拆兩處。設計相關的原第五、六、 七、十一、十三章整併為「四、設計規範」,新增 4.6 說明 design.md 的三個用途(工程取值依據、其他系統沿用同一設計語言、設計與程式的 單一事實來源)及其與本章的分工。 第五章未完成項目統一為 8 項,順序與《開發優化建議》一一對應,避免 兩份文件數量對不上。原第十二章既有架構限制移入 1.3。 修正 Footer 章節:原寫「透過 API 使用:保留」,實際 footer_links=[] 為全部移除(commit d928c91),決策後來改變但文件未同步。 新增 docs/README.md 說明三份交付文件的用途與適合讀者,並依「想知道 做了什麼」「準備接手維護」「要調整樣式」三種來意給出閱讀路徑。 刪除 docs/進度報告-2026-07-21.md(2026-07-21 的階段性快照,11 階段 只完成 6 個,內容已被本次重整取代且與現況不符)。docs/design/ 的 四情境首頁設計原型已過時(該設計 2026-07-30 已被推翻),其中的 Crimson Pro 字體檔移至 assets/fonts/ 保留,日後若要移除對 Google Fonts CDN 的依賴可直接使用。 《開發優化建議》六處交叉引用改為新章節編號。798601b
-
分析運算面板加上「請保持前景、電腦勿休眠」提醒文字
低風險緩解措施,對應開發優化建議.md第一節提到的連線中斷問題:系統 目前沒有連線中斷後恢復進度的機制,先用文案提醒使用者在看到「分析 完成」前不要把分頁切到背景或讓電腦休眠。只在任一子階段status為 running時顯示,全部done/failed後自動隱藏,不干擾完成後的畫面。 Playwright 驗證:情境1(略過Metadata路徑)跑一次完整分析,提醒文字 在運算期間正確顯示、分析完成後正確消失,無 console/server error。686c7cd -
E4:_CUSTOM_CSS 抽成獨立 assets/app.css
原本內嵌在 app_agent.py 裡約 2165 行的 CSS 字串常數,抽成獨立檔案, 改用 app.launch(css_paths=...)(Gradio 6 原生支援,語意與原本 gr.Blocks(css=...) 相同)。app_agent.py 從 6380 行降到 4185 行。 Playwright 驗證:淺色/深色模式畫面與抽出前逐像素一致,console 僅有 既有的 Gradio CDN 預載警告(非本次改動引入)。0a5d32e -
研究選擇搬回工作區成正式第1步+首頁改版+導覽列/對話區視覺打磨(Batch A-G)
- 3-A:情境選擇從首頁搬回工作區,成為步驟列正式第1步「研究選擇」(_STEPS 3→4步) - 2-B:nav-col 三段式改版、對話圖示改對話氣泡樣式 - 2-C:對話輸入框改常駐隱藏、對話氣泡字級調整為14px - 首頁置中、品牌字標2行1.1rem、頂部列去標題、捲軸懸停才顯示 - 4-B/4-C 導覽列消失、重置殘留等回歸問題修復 - 新增「重新選擇研究情境」返回鈕 - .gitignore 補 .gradio/(Gradio本機憑證快取,比照 .venv/ 排除)698954d
-
新增整包下載:導覽列四顆下載捷徑 + beforeunload 防手滑 + 修復重置後情境卡片失效
整包下載(需求文件缺口 1,原訂只做假按鈕,改為直接實作完整後端): - 新增 _ZIP_GROUPS/_make_result_zips(),把產出分成指標數據/統計圖表/ 研究報告/完整分析結果四包 zip - 呼叫點放在 _populate_tabs 而非運算流程:結果頁提供下載的是改過名的 複本(TransPrism_LLM Report_*.docx)且刻意排除原始 .txt,重新命名就 發生在 _populate_tabs 裡,在那裡打包才能保證 zip 內容與使用者在頁面上 看到的檔案一致,也不用把「哪些檔案是給使用者的」寫兩遍 - 內容為空的那包不產生,對應按鈕就不出現(LLM 報告失敗時「下載研究報告」 不會亮出來);只有一組有內容時不另外產生整包,避免兩顆按鈕內容一樣 - nav-col 底部新增四顆 gr.DownloadButton,接在 _TAB_OUTPUTS 尾端 26-29 - _populate_tabs 開頭明確把這四顆設回隱藏:其他結果元件都住在 canvas_*_col 裡,重置時整個 Column 被藏起來看不到殘值;這四顆住在 result_nav_col, 而它會在下次選定情境時重新顯示,不歸零的話上一輪的 zip 會跟著冒出來 - state 的 zip_path(從專案第一天就只被初始化成 None)改成 zip_paths 字典 - 新增 download.svg(照既有規格:24x24、stroke #475569、stroke-width 1.75) 防手滑: - 工作區顯示期間掛上 beforeunload,回到首頁自動解除 - 兩個瀏覽器層面的限制寫進註解:需先與頁面互動確認框才會出現、提示文字 無法自訂 順帶修復測試中發現的既有 bug(已用 git stash 在原版程式碼上重現確認,非本次 改動造成):按「開始新分析」回到首頁後,情境卡片點了完全沒反應,必須重新 整理頁面才能再選,等於 Bug1「選錯情境無法變更」的修復只有一半。根因是 homepage_col 設成 visible=False 時 Svelte 會銷毀整個子樹而非加 display:none, 重新顯示時是全新節點,原本掛在 #homepage_scenario_grid 上的 listener …ab5ce10 -
步驟列收斂 8 步 → 6 步 + 導覽列與頁殼視覺調整
步驟列: - _STEPS 改為 文本上傳/格式驗證/語料說明/指標計算/統計分析/報告產出 - 移除的 4 步都不帶資訊:情境選擇已搬到首頁、上傳引導與文本上傳在同一個 generator 內連續完成、報告撰寫與下載成果本來就寫在同一行一起標記 - 新增「語料說明」步驟,修正填表期間步驟列誤亮「指標計算 進行中」 - failed_step 5,6 → 4,5;_COMPUTING_STEP_LABELS key 5,6,7 → 4,5,6 - 格式驗證失敗退回重傳時,一併把該步從 done_steps 移除(原本只設 current_step,_build_header_html 判斷順序 done > current,步驟列會停在 「✓ 文本上傳」與畫面要求補傳自相矛盾) - 全部完成後步驟列整條隱藏,只留產品名 視覺: - 頂部列扁平化(去框線/漸層/圓角,只留 1px 下邊框,產品名與步驟列改上下兩行) - .upload-zone/.metadata-zone 去框線/陰影/底色 - .nav-col/.chat-col 各加 border-right - 導覽列改 Bootstrap 5.3 nav-underline 垂直版(選取項左緣 2px 主色線) - 統計比較分析 4 個子頁改一般項目+各配圖示、左緣齊平,手風琴預設展開 - 主項目 .result-nav-btn 改用 #result_nav_col 祖先提高 specificity,蓋掉 Gradio 的 button.svelte-xxx.secondary 預設框線(子項目先前已修,主項目漏了) - 新增 table-cells/scale/academic-cap/squares-2x2 四個 Heroicons 圖示 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>5033f69
-
排版重構 Phase 2:nav-col 真正的頁面切換模型
千卉確認的核心行為:情境選擇→上傳→格式驗證→Metadata→運算中這段流程 進行中,對話欄常駐顯示;點導覽列任何一個結果類項目(語言指標分析/ 統計比較分析/LLM輔助分析/技術執行紀錄)互斥顯示、收起對話欄、 Canvas 佔滿寬度;點「AI對話」(原「回到上傳/表單」改名)對話欄彈回。 這是全新邏輯,取代 8-C/8-D「有資料就全部堆疊、使用者自己往下捲」的 舊行為(8-C 程式碼註解本來就把這個標成「8-D 待辦」,8-D 當時只做了 捲動+子分頁切換,沒真的做互斥頁面,這次補完)。 - 技術執行紀錄從手風琴(exec_log_accordion)轉正成獨立頁面 (canvas_exec_col),跟其他三個結果頁同一種 visible=True/False 語意, 不再需要 open/label 收合狀態邏輯,_accordion_update/_accordion_label 兩個函式跟著移除;nav-col 新增「技術執行紀錄」項目,跟主要三項用 分隔線+降低視覺權重區隔 - 純 JS 實作(applyActivePage(),_APP_HEAD_SCRIPT):在 .main-layout-row 設 data-page 屬性+chat-collapsed class,canvas-scroll 底下 7 個直屬 區塊按頁面歸屬只清除或強制 inline display:none,絕不強制顯示—— Python 的 visible=False(資料是否存在)永遠優先,沿用 8-E 驗證過的 inline style 優先權技巧。延續這批 nav 按鈕「刻意不接 Python .click()」 的既有設計原則,不新增 Gradio queue 往返 - 「開始新分析」reset 流程新增把頁面狀態重置回 chat(.main-layout-row 這個 DOM 節點在 Gradio 重置時不會銷毀重建,data-page 不會自動清空) 兩個新踩坑: 1. Gradio 的 Svelte reactivity 在元件 visible prop 改變時會整個重寫 inline style(不是疊加,是覆蓋),把 JS 手動加的 !important 覆寫 一併洗掉——運算完成那一刻 canva…b234dbb -
Phase 8-E:nav-col 桌面收合 icon bar + 手機漢堡抽屜
nav-col 收合成窄 icon bar(桌面,60px,localStorage 記住狀態)與 off-canvas 抽屜(手機 ≤900px,漢堡鈕開/X、背景遮罩、Esc 都能關)。 提前補上 Heroicons 風格圖示(plus/home/trending-up/document,assets/ icons/*.svg + gr.Button(icon=);統計比較分析用 CSS ::before 掛 chart-bar,Accordion 沒有 icon 參數)——因為收合後純文字按鈕沒有圖示 會看不懂,跟千卉確認後決定把原訂「下一輪視覺打磨」的圖示需求提前 到這次一起做,範圍限縮在 nav-col 這批新按鈕。 gr.Button(icon=) 這版 Gradio 是渲染成 <img>,不是行內 svg,深色模式 用 filter 反相+去彩處理(img 不吃 currentColor)。收合狀態下重置 按鈕若被點擊,JS 會先自動展開 nav-col 再顯示確認彈窗,避免彈窗擠在 窄欄裡;nav-col 原本 gr.Column(min_width=200) 的 inline min-width 需要 額外用 !important 覆寫才能真正收窄(min-width 優先於 max-width)。 已用 Playwright 驗證 375/768/900/1024/1440 五個斷點無跑版無橫向捲動、 淺色/深色模式圖示皆正常、桌面收合展開/手機抽屜開關四種關閉路徑 (X、背景、Esc、點導覽項目自動關)、重置流程收合狀態下正確自動展開。3ced5f9