feat: shortcut recorder, configurable terminal toolbar, offline changelog

- Global shortcut setting: press-to-record input (Esc cancels, Backspace
  clears); requires a modifier or F-key so plain typing can't be hijacked
- Terminal toolbar: three settings-gated buttons — session-log record
  (default off), open logs dir (default off), open working directory
  (default on, new; local sessions only, cwd tracked via cd/OSC 7)
- Input suggestions + command history now default off, with a one-time
  migration that resets persisted true values for existing installs
- Settings dialog: fix broken scrolling — antd v6 renamed the Tabs scroll
  container to .ant-tabs-body-holder; theme gallery drops its nested
  scroll (single outer scrollbar)
- Offline changelog: CHANGELOG.md at repo root bundled via ?raw; About tab
  reads it first, network sources stay as fallback; scripts/sync-changelog.cjs
  merges RELEASE_NOTES.md per release (release.cjs fails without an entry)
- commands.ts history prefs default aligned with new off-by-default
This commit is contained in:
Bill committed 2026-09-20 11:25:59 +08:00
1 parent c1744184a3
commit 34094d607b
17 files changed
+319 -41

No files matched your search

+2
View File
@@ -80,6 +80,8 @@ export interface AppApi {
logStop(sessionId: string): Promise<void>
listSessionLogs(): Promise<SessionLogMeta[]>
openLogsDir(): void
/** open a local directory in the OS file manager; false if not a directory */
openDirectory(dir: string): Promise<boolean>
// ---- ssh connections ----
listConnections(): Promise<SshConnection[]>
+3 -1
View File
@@ -106,7 +106,9 @@ export const Ipc = {
/** resolve a cd-style argument against the current cwd, platform-aware */
CWD_RESOLVE: 'session:cwdResolve',
/** normalize a cwd reported by the shell (OSC 7 / OSC 9;9) */
CWD_REPORT: 'session:cwdReport'
CWD_REPORT: 'session:cwdReport',
/** open a local directory in the OS file manager (terminal toolbar) */
CWD_OPEN: 'session:cwdOpen'
} as const
export interface PtyCreateOptions {
+11 -2
View File
@@ -40,6 +40,12 @@ export interface TerminalSettings {
historyEnabled: boolean
/** max entries kept in command history */
historyLimit: number
/** terminal toolbar: session-log record button */
showRecButton: boolean
/** terminal toolbar: open logs folder button */
showOpenLogsButton: boolean
/** terminal toolbar: open working-directory button (local sessions only) */
showOpenCwdButton: boolean
/** accent color for the active tab outline, rail indicator and SSH badges */
tabAccentColor: string
}
@@ -117,9 +123,12 @@ export const DEFAULT_SETTINGS: AppSettings = {
autoWrap: true,
copyOnSelect: false,
pasteRiskConfirm: true,
suggestEnabled: true,
historyEnabled: true,
suggestEnabled: false,
historyEnabled: false,
historyLimit: 100,
showRecButton: false,
showOpenLogsButton: false,
showOpenCwdButton: true,
tabAccentColor: '#3fb950'
},
customThemes: [],