diff --git a/ClaudeChecker/ContentView.swift b/ClaudeChecker/ContentView.swift
index 4c8cc00..b9b1cb0 100644
--- a/ClaudeChecker/ContentView.swift
+++ b/ClaudeChecker/ContentView.swift
@@ -977,6 +977,36 @@ struct UpdateSuccessBanner: View {
}
}
+// MARK: - Markdown notes renderer
+
+struct ReleaseNotesText: View {
+ let text: String
+ var font: Font = .system(size: 12)
+
+ var body: some View {
+ let processed = text
+ .split(separator: "\n", omittingEmptySubsequences: false)
+ .map { line -> String in
+ let s = String(line)
+ if s.hasPrefix("### ") { return "**\(s.dropFirst(4))**" }
+ if s.hasPrefix("## ") { return "**\(s.dropFirst(3))**" }
+ if s.hasPrefix("# ") { return "**\(s.dropFirst(2))**" }
+ if s.hasPrefix("- ") { return "• \(s.dropFirst(2))" }
+ return s
+ }
+ .joined(separator: "\n")
+
+ if let attr = try? AttributedString(markdown: processed,
+ options: .init(interpretedSyntax: .inlineOnlyPreservingWhitespace)) {
+ Text(attr).font(font).foregroundColor(.secondary)
+ .fixedSize(horizontal: false, vertical: true)
+ } else {
+ Text(text).font(font).foregroundColor(.secondary)
+ .fixedSize(horizontal: false, vertical: true)
+ }
+ }
+}
+
// MARK: - Update Banner
struct UpdateBanner: View {
@@ -992,10 +1022,7 @@ struct UpdateBanner: View {
Text("Update available — v\(updater.latestVersion)")
.font(.system(size: 12, weight: .semibold))
if !updater.releaseNotes.isEmpty {
- Text(updater.releaseNotes)
- .font(.system(size: 11))
- .foregroundColor(.secondary)
- .fixedSize(horizontal: false, vertical: true)
+ ReleaseNotesText(text: updater.releaseNotes, font: .system(size: 11))
}
}
Spacer()
@@ -1061,9 +1088,7 @@ struct UpdateSheet: View {
.foregroundColor(.blue)
}
if !updater.releaseNotes.isEmpty {
- Text(updater.releaseNotes)
- .font(.system(size: 12))
- .foregroundColor(.secondary)
+ ReleaseNotesText(text: updater.releaseNotes)
}
}
Spacer()
diff --git a/ClaudeChecker/Info.plist b/ClaudeChecker/Info.plist
index 8ee6b4e..95170f8 100644
--- a/ClaudeChecker/Info.plist
+++ b/ClaudeChecker/Info.plist
@@ -15,9 +15,9 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 1.0.6
+ 1.0.7
CFBundleVersion
- 25
+ 26
LSMinimumSystemVersion
13.0
LSUIElement
diff --git a/RELEASE_NOTES.md b/RELEASE_NOTES.md
index d049848..179ed9f 100644
--- a/RELEASE_NOTES.md
+++ b/RELEASE_NOTES.md
@@ -1,4 +1,4 @@
-## What's new in v1.0.6
+## What's new in v1.0.7
-### Improved update notification
-The update notification now reads **"Tap to view release notes & update now!"** — making it clear you can read what's changed before installing.
+### Release notes now render correctly
+Fixed markdown rendering in the update banner and update sheet — headers, **bold text**, and bullet points now display properly instead of showing raw `##` and `**` characters.