Skip to content

docs: align README with current implementation (issue #34)#44

Closed
ShadyUnderLight wants to merge 3 commits intomainfrom
feature/issue34-readme-alignment
Closed

docs: align README with current implementation (issue #34)#44
ShadyUnderLight wants to merge 3 commits intomainfrom
feature/issue34-readme-alignment

Conversation

@ShadyUnderLight
Copy link
Copy Markdown
Owner

Summary

Aligns README and README.zh-CN.md with the current codebase (issue #34 — README 已出现轻微能力漂移).

What was found

Already implemented but still in Roadmap:

  • Sparklines / history — fully implemented via SparklineView + cpuHistory / memoryHistory / temperatureHistory arrays (Views.swift, SparklineView.swift, SparklineViewTests.swift)

Already implemented but not documented in Features:

  • Sparkline trends for CPU, memory, temperature
  • Persisted display preferences (menu bar mode, temperature mode, row count)
  • Actionable temperature hint when temperature is unavailable

README description inaccurate:

  • CPU temperature section said "falls back to '--' plus thermal state" — actual behavior shows an actionable hint string instead of silent '--'

Changes

README.md:

  • Features: add "Sparkline trends for CPU, memory, and temperature"
  • Features: add "Best-effort CPU temperature support with actionable hints when unavailable"
  • CPU temperature notes: update to reflect Apple Silicon HID sensor priority and actionable hint behavior (no silent '--')
  • Roadmap: remove "Sparklines / history"; reword "Per-process actions" to hint at kill/priority

README.zh-CN.md:

  • 功能: add "趋势图(Sparkline):CPU、内存、温度历史曲线"
  • 功能: add "尽力而为的 CPU 温度支持,温度不可用时显示可操作提示"
  • 功能: add "持久化显示偏好(菜单栏模式、温度模式、行数)"
  • 关于 CPU 温度: update to reflect actionable hint behavior and Apple Silicon HID sensor priority
  • Roadmap: remove "趋势图 / 历史曲线"; reword "针对进程的操作按钮"

No code changes — documentation only.

LMZ added 3 commits April 21, 2026 18:11
TemperatureParsingTests: 17 tests covering extractTemperature boundaries
  (valid range 1-120°C), invalid inputs, and multiple-number handling.

EnumSavedValueTests: 18 tests for TemperatureMode and MenuBarDisplayMode
  savedValue initializers — both modern rawValue strings and legacy
  display-name strings (e.g. 'Hottest CPU').

LocalizationTests: 15 tests for L10n localizationCandidates fallback chain
  across en-*/zh-*/fr-/ja-JP locales, deduplication, and edge cases.

DiagnosticsTests: 17 tests for ProcessSnapshotDiagnostics state machine
  (markAttempt / markSuccess / markFailure) and full lifecycle transitions.

MonitorViewModelTests: 15 tests for ViewModel defaults, legacy settings
  migration (temperatureMode + menuBarDisplayMode), and fallbacks.

TestExpose.swift: test-only L10n wrapper exposing localizationCandidates
  to the test target.

Source changes:
- Localization.swift: make localizationCandidates internal (was private)
- SystemMetricsProvider.swift: add nonisolated extractTemperatureTest
…33)

Rename memory UI copy to 'Memory pressure' to accurately reflect the
system-wide active+inactive+wired+compressor metric rather than
implying a simple used/total partition.

Changes:
- Views.swift: memorySummary now shows pressure % instead of used/total bytes;
  SummaryCardView gains optional subtitle parameter to show bytes detail;
  RAM card displays 'XX%' with 'X GB / Y GB' as subtitle
- MonitorViewModel.swift: menuBarTitle now uses memoryPressurePercent for
  all three display modes (compact/labeled/temperatureFirst) instead of
  shortMemoryString(bytes:); aligned with popup semantic model
- en.lproj: summary.ram 'RAM (System-wide)' -> 'Memory pressure';
  metric.used_percent -> metric.memory_pressure '%.0f%%';
  menu_bar_title.labeled 'CPU %@  RAM %@  %@' -> 'CPU %@  Mem %@  %@';
  health.line 'RAM' -> 'Mem'; trend.ram -> 'Memory pressure'
- zh-Hans.lproj: summary.ram '内存 (系统级)' -> '内存压力';
  metric.used_percent -> metric.memory_pressure '%.0f%%';
  trend.ram -> '内存压力'
- README.md / README.zh-CN.md: 'Memory used / total memory' now reads
  'Memory pressure (system-wide active + inactive + wired + compressor)'

Consistent memory pressure semantics across all UI surfaces:
- Summary card: '72%' primary + '8 GB / 16 GB' subtitle
- Menu bar compact: '50%  72%  65°' (CPU · Mem · Temp)
- Menu bar labeled: 'CPU 50%  Mem 72%  65°'
- Menu bar temperature_first: '65°  CPU 50%  Mem 72%'
README was drifting from actual implementation. Fixes:

README.md:
- Features: add 'Sparkline trends for CPU, memory, and temperature'
  (already implemented via SparklineView + *History arrays)
- Features: add 'Best-effort CPU temperature support with actionable hints'
  (temperatureHint field replaces silent '--')
- CPU temperature notes: update fallback behavior — shows actionable hint
  instead of '--' when temperature is unavailable; clarify Apple Silicon
  HID sensor priority over helper tools
- Roadmap: remove 'Sparklines / history' (moved to Features);
  reword 'Per-process actions' to hint at kill/priority (not yet done)

README.zh-CN.md:
- 功能: add '趋势图(Sparkline):CPU、内存、温度历史曲线'
- 功能: add '尽力而为的 CPU 温度支持,温度不可用时显示可操作提示'
- 功能: add '持久化显示偏好(菜单栏模式、温度模式、行数)'
- 关于 CPU 温度: update to reflect actionable hint behavior and
  Apple Silicon HID sensor priority
- Roadmap: remove '趋势图 / 历史曲线'; reword '针对进程的操作按钮'
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant