feat(app): add flow diagnostics and refine interface
CI / Validate manifests (push) Has been cancelled
CI / SwiftLint (push) Has been cancelled
CI / iOS / Extension (push) Has been cancelled
CI / macOS (push) Has been cancelled

Improve failure recovery visibility, strengthen account-session handling, and make the cross-platform interface more consistent.
This commit is contained in:
Rocky
2026-08-26 14:40:06 +08:00
parent 1ee032bdb9
commit 39002336c0
78 changed files with 2737 additions and 735 deletions
@@ -68,7 +68,7 @@ public struct RecordButton: View {
}
private var waveformColor: Color {
Color(red: 1.0, green: 0.78, blue: 0.78)
OSGColor.recordingWaveform
}
private enum Layout {
@@ -103,7 +103,10 @@ public struct RecordButton: View {
.animation(Motion.soft, value: level)
Circle()
.stroke(Color.white.opacity(isIdle ? 0.08 : 0.12), lineWidth: 0.5)
.stroke(
isIdle ? OSGColor.recordDiscHairlineIdle : OSGColor.recordDiscHairlineActive,
lineWidth: 0.5
)
.frame(width: Layout.outerRing, height: Layout.outerRing)
ZStack {
@@ -120,7 +123,7 @@ public struct RecordButton: View {
Circle()
.fill(discGradient)
Circle()
.stroke(Color.white.opacity(0.16), lineWidth: 1)
.stroke(OSGColor.recordDiscOverlayStroke, lineWidth: 1)
.blendMode(.overlay)
}
@@ -129,13 +132,13 @@ public struct RecordButton: View {
case .idleReady, .idleUnavailable:
Image(systemName: "mic.fill")
.font(.system(size: 36, weight: .medium))
.foregroundStyle(.white)
.foregroundStyle(OSGColor.fixedLightContent)
case .recording:
VStack(spacing: 3) {
if let remainingSeconds {
Text(formatRemaining(remainingSeconds))
.font(.system(size: 22, weight: .semibold, design: .rounded))
.foregroundStyle(.white)
.foregroundStyle(OSGColor.fixedLightContent)
.monospacedDigit()
.contentTransition(.numericText())
.offset(y: 3)