mirror of
https://github.com/NanmiCoder/cc-haha
synced 2026-07-16 13:03:31 +08:00
The desktop app now keeps the composer stable while turns are active, reduces low-signal tool noise in the transcript, restores project context under the composer after session creation, and relies on the CLI's own permission requests instead of injecting broader desktop-side Bash asks. This also brings in the supporting desktop app source tree and the server routes/session metadata needed for git info, filesystem browsing, session resume, slash commands, and SDK-backed permission bridging so the UI can operate as a coherent feature instead of a partial patch. Constraint: Desktop transcript needs to stay usable during long multi-tool sessions without hiding file-change diffs Constraint: Permission prompts must mirror CLI behavior closely enough that read-only commands do not get desktop-only prompts Rejected: Keep rendering Read/Bash bodies inline | too noisy and unlike the intended transcript model Rejected: Commit only the touched desktop files | would leave the newly introduced desktop app incomplete in git history Confidence: medium Scope-risk: broad Reversibility: messy Directive: Treat non-writing tools as summary-first transcript events; do not re-expand them by default without validating the UX against long sessions Tested: cd desktop && bun run lint Tested: cd desktop && bun run test -- --run Tested: bun test src/server/__tests__/conversations.test.ts Not-tested: Manual visual regression against the exact screenshots in a live desktop session Not-tested: Full root TypeScript check (repository still has unrelated extracted-native parse failures)
21 lines
566 B
TypeScript
21 lines
566 B
TypeScript
import { api } from './client'
|
|
import type { PermissionMode, UserSettings } from '../types/settings'
|
|
|
|
export const settingsApi = {
|
|
getUser() {
|
|
return api.get<UserSettings>('/api/settings/user')
|
|
},
|
|
|
|
updateUser(settings: Partial<UserSettings>) {
|
|
return api.put<{ ok: true }>('/api/settings/user', settings)
|
|
},
|
|
|
|
getPermissionMode() {
|
|
return api.get<{ mode: PermissionMode }>('/api/permissions/mode')
|
|
},
|
|
|
|
setPermissionMode(mode: PermissionMode) {
|
|
return api.put<{ ok: true; mode: PermissionMode }>('/api/permissions/mode', { mode })
|
|
},
|
|
}
|