Persist sidebar visibility; add language-matching rule to default prompt
- ContentView now reads/writes SettingsService.sidebarVisible so the NavigationSplitView sidebar's shown/hidden state survives relaunch, matching the existing window size/position persistence. - Default system prompt gains a rule: always reply in the user's language, even for requests (e.g. translation) targeting another one.
This commit is contained in:
@@ -90,6 +90,7 @@ You are a helpful AI assistant. Follow these core principles:
|
|||||||
- **Be Direct**: Provide concise, relevant answers. No unnecessary preambles.
|
- **Be Direct**: Provide concise, relevant answers. No unnecessary preambles.
|
||||||
- **Show Your Work**: If you use capabilities (tools, web search, etc.), demonstrate what you did.
|
- **Show Your Work**: If you use capabilities (tools, web search, etc.), demonstrate what you did.
|
||||||
- **Complete Tasks Properly**: If you start something, finish it correctly.
|
- **Complete Tasks Properly**: If you start something, finish it correctly.
|
||||||
|
- **Match the User's Language**: Always reply in the same language the user is writing in, even when the request itself involves another language (e.g. a translation or spelling request) — the target language applies to the content you produce, not to your own reply.
|
||||||
|
|
||||||
## FORMATTING
|
## FORMATTING
|
||||||
|
|
||||||
|
|||||||
@@ -29,7 +29,8 @@ import Darwin // uname, sysctlbyname
|
|||||||
struct ContentView: View {
|
struct ContentView: View {
|
||||||
@Environment(ChatViewModel.self) var chatViewModel
|
@Environment(ChatViewModel.self) var chatViewModel
|
||||||
private var updateService = UpdateCheckService.shared
|
private var updateService = UpdateCheckService.shared
|
||||||
@State private var columnVisibility: NavigationSplitViewVisibility = .all
|
@State private var columnVisibility: NavigationSplitViewVisibility =
|
||||||
|
SettingsService.shared.sidebarVisible ? .all : .detailOnly
|
||||||
@State private var showIntelWarning = false
|
@State private var showIntelWarning = false
|
||||||
|
|
||||||
var body: some View {
|
var body: some View {
|
||||||
@@ -46,6 +47,9 @@ struct ContentView: View {
|
|||||||
)
|
)
|
||||||
}
|
}
|
||||||
.frame(minWidth: 860, minHeight: 560)
|
.frame(minWidth: 860, minHeight: 560)
|
||||||
|
.onChange(of: columnVisibility) { _, newValue in
|
||||||
|
SettingsService.shared.sidebarVisible = newValue != .detailOnly
|
||||||
|
}
|
||||||
#if os(macOS)
|
#if os(macOS)
|
||||||
.onAppear {
|
.onAppear {
|
||||||
NSApplication.shared.windows.forEach { $0.tabbingMode = .disallowed }
|
NSApplication.shared.windows.forEach { $0.tabbingMode = .disallowed }
|
||||||
|
|||||||
@@ -125,6 +125,7 @@ You are a helpful AI assistant. Follow these core principles:
|
|||||||
- **Be Direct**: Provide concise, relevant answers. No unnecessary preambles.
|
- **Be Direct**: Provide concise, relevant answers. No unnecessary preambles.
|
||||||
- **Show Your Work**: If you use capabilities (tools, web search, etc.), demonstrate what you did.
|
- **Show Your Work**: If you use capabilities (tools, web search, etc.), demonstrate what you did.
|
||||||
- **Complete Tasks Properly**: If you start something, finish it correctly.
|
- **Complete Tasks Properly**: If you start something, finish it correctly.
|
||||||
|
- **Match the User's Language**: Always reply in the same language the user is writing in, even when the request itself involves another language (e.g. a translation or spelling request) — the target language applies to the content you produce, not to your own reply.
|
||||||
|
|
||||||
## FORMATTING
|
## FORMATTING
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user