From c3cbe4dcf34e21fc3ac8216ab396b15fe06dab39 Mon Sep 17 00:00:00 2001 From: Simon0719 Date: Wed, 24 Jun 2026 16:50:40 +0800 Subject: [PATCH 1/2] 1. Add analyze label on rust SAM (Power sequence, Keyboard HID, interrupt and debug ssh) 2. Expand pallet and avoid presence label color possibly not similar. --- highlight/RUST_SAM.json | 22 +++++++++++++++++++++- src/renderer/i18n/en.json | 4 ++++ src/renderer/i18n/zh.json | 4 ++++ src/renderer/js/app.js | 23 +++++++++++++++++++++-- 4 files changed, 50 insertions(+), 3 deletions(-) diff --git a/highlight/RUST_SAM.json b/highlight/RUST_SAM.json index 630d6d5..3ccfc8a 100644 --- a/highlight/RUST_SAM.json +++ b/highlight/RUST_SAM.json @@ -11,10 +11,30 @@ "level": "warn", "pattern": "\\b(?:warn(?:ing)?|timeout|timed?\\s*out|retry|retries|retrying|busy|skip(?:ped)?)\\b" }, + { + "name": "PowerSequence", + "level": "pwrseq", + "pattern": "-{3,}(?:Start\\s+[A-Za-z0-9]+\\s*->\\s*[A-Za-z0-9]+|Press\\s+Power\\s+Button)-{3,}|\\b(?:power\\s*sequence|power\\s+(?:on|off)|cold\\s+boot|warm\\s+(?:boot|reset)|reset\\s+reason|reboot|shutdown)\\b" + }, { "name": "SocSubsystem", "level": "socss", - "pattern": "-{3,}(?:Start\\s+[A-Za-z0-9]+\\s*->\\s*[A-Za-z0-9]+|Press\\s+Power\\s+Button)-{3,}|\\b(?:powersequence|boot\\s+failure|reset\\s+reason)\\b" + "pattern": "\\bboot\\s+failure\\b" + }, + { + "name": "DebugSSH", + "level": "debugssh", + "pattern": "^\\s*\\.[a-z][a-z0-9_]*\\b" + }, + { + "name": "KeyboardHID", + "level": "kbdhid", + "pattern": "\\b(?:i2c_hid_host_task|i2c_hid_device_task|kb)\\s*:" + }, + { + "name": "Interrupt", + "level": "intr", + "pattern": "\\b(?:interrupts?|irqs?|(?:de)?asserting\\s+interrupt|host\\s+interrupt\\s+(?:de)?asserted)\\b" }, { "name": "UEFI_SSH", diff --git a/src/renderer/i18n/en.json b/src/renderer/i18n/en.json index 896c46a..8b199be 100644 --- a/src/renderer/i18n/en.json +++ b/src/renderer/i18n/en.json @@ -106,7 +106,11 @@ "ana.version": "Version", "ana.boot": "Boot Point", "ana.membucket": "Memory Bucket", + "ana.pwrseq": "Power Sequence", "ana.socss": "SocSubsystem", + "ana.debugssh": "Debug SSH Cmd", + "ana.kbdhid": "Keyboard HID", + "ana.intr": "Interrupt", "ana.uefissh": "UEFI_SSH", "ana.pd": "PD", "ana.level.toggle": "Select: include in count / up-down navigation", diff --git a/src/renderer/i18n/zh.json b/src/renderer/i18n/zh.json index 24c2082..047ccba 100644 --- a/src/renderer/i18n/zh.json +++ b/src/renderer/i18n/zh.json @@ -106,7 +106,11 @@ "ana.version": "版號", "ana.boot": "開機點", "ana.membucket": "記憶體配置", + "ana.pwrseq": "電源序列", "ana.socss": "SoC子系統", + "ana.debugssh": "Debug SSH 指令", + "ana.kbdhid": "鍵盤 HID", + "ana.intr": "中斷", "ana.uefissh": "UEFI_SSH", "ana.pd": "PD", "ana.level.toggle": "選取:是否納入計數與上下導覽", diff --git a/src/renderer/js/app.js b/src/renderer/js/app.js index 16b4cd2..3c73886 100644 --- a/src/renderer/js/app.js +++ b/src/renderer/js/app.js @@ -1635,7 +1635,7 @@ async function anaPopulateHl() { sel.value = ana.hl || 'auto'; } -const ANA_RANK = { info: 1, warn: 2, error: 3 }; +const ANA_RANK = { info: 1, intr: 1.5, warn: 2, error: 3 }; function anaHighlightLine(line, rules) { // Match against the RAW text (not HTML-escaped) so patterns can use real @@ -2147,7 +2147,22 @@ function anaNavGo(dir) { /* ---------- Highlight levels (dynamic, expandable nav chips) ---------- */ // Known level colors; unknown levels (e.g. BOOTMODE) get a palette color. const ANA_LEVEL_COLORS = { error: '#ff6b81', warn: '#fbbf24', info: '#60a5fa' }; -const ANA_LEVEL_PALETTE = ['#34d399', '#a78bfa', '#22d3ee', '#f472b6', '#f59e0b', '#38bdf8', '#c084fc', '#4ade80']; +// Palette for custom levels. Deliberately avoids the hue bands of the three +// reserved colours — error (red/pink ~350°), warn (amber ~45°) and info +// (blue ~215°) — so a custom chip never looks like error/warn/info. Ordered to +// maximise hue distance between neighbours; only repeats after 10 levels. +const ANA_LEVEL_PALETTE = [ + '#34d399', // emerald ~157° + '#a78bfa', // violet ~255° + '#22d3ee', // cyan ~187° + '#e879f9', // fuchsia ~291° + '#a3e635', // lime ~ 82° + '#c084fc', // purple ~270° + '#4ade80', // green ~142° + '#2dd4bf', // teal ~172° + '#d8b4fe', // lavender ~270° + '#5eead4', // aqua ~166° +]; const ANA_BUILTIN_LEVELS = new Set(['error', 'warn', 'info']); const anaLevelColorMap = {}; let anaLevelPaletteIdx = 0; @@ -2172,7 +2187,11 @@ function anaLevelLabel(level) { if (level === 'version') return t('ana.version', '版號'); if (level === 'boot') return t('ana.boot', '開機點'); if (level === 'membucket') return t('ana.membucket', '記憶體配置'); + if (level === 'pwrseq') return t('ana.pwrseq', '電源序列'); if (level === 'socss') return t('ana.socss', 'SoC子系統'); + if (level === 'debugssh') return t('ana.debugssh', 'DebugSSH'); + if (level === 'kbdhid') return t('ana.kbdhid', 'Keyboard HID'); + if (level === 'intr') return t('ana.intr', '中斷'); if (level === 'uefissh') return t('ana.uefissh', 'UEFI_SSH'); if (level === 'pd') return t('ana.pd', 'PD'); if (anaIsMarkLevel(level)) return anaMarkLabel(level); From cfb0612dddc604ff5244d608755f25a95be7a3c0 Mon Sep 17 00:00:00 2001 From: Simon0719 Date: Thu, 25 Jun 2026 14:20:42 +0800 Subject: [PATCH 2/2] chore: release v0.0.8 --- package-lock.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a0c563..2e60da6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "m2-log-tool", - "version": "0.0.7", + "version": "0.0.8", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "m2-log-tool", - "version": "0.0.7", + "version": "0.0.8", "license": "MIT", "dependencies": { "archiver": "7.0.1" diff --git a/package.json b/package.json index 7938528..2750b1c 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "m2-log-tool", - "version": "0.0.7", + "version": "0.0.8", "description": "Experiment LOG collector and exporter (UEFI / SAM) - Electron desktop app", "author": "OA Hsiao", "license": "MIT",