954801926@qq.com
54c803091c
docs: M6/M7 delivered — roadmap + state snapshot (release v0.7.0 published)
2026-09-06 21:03:20 +08:00
954801926@qq.com
2a32ee910a
feat(M7): electron-builder packaging (MSI + NSIS) + electron-updater
...
- electron-builder.yml: msi(fixed upgradeCode)+nsis x64, asarUnpack node-pty/ssh2, npmRebuild off, publish generic for latest.yml
- updater: packaged-only, OT_UPDATE_URL/OT_UPDATE_TOKEN env, ready+5s check, warn-only failures; auto-update channel is NSIS (MSI not supported by electron-updater)
- scripts dist/dist:dir; win-unpacked smoke verified (native modules load)
v0.7.0
2026-09-06 20:48:17 +08:00
954801926@qq.com
fa83097528
chore: gitignore esbuild test bundles and release dir
2026-09-06 20:16:23 +08:00
954801926@qq.com
0663e5affa
feat(M6): broadcast input + main-process ZMODEM + quick input panel + shortcuts
...
- broadcast: session target picker popover, fan-out write path, <2 targets auto-disable, per-tab target dots
- zmodem: main-process engine over ssh sessions (rz send / sz receive), progress reuses transfer panel, offer 120s / stall 90s watchdogs, e2e test with real zmodem.js peer (both directions)
- quick input panel: bottom-right overlay (command line + auto-\r + library + recent), broadcast-aware send
- shortcuts: Ctrl+=/-/0 font size (persisted), globalShowHide accelerator via globalShortcut, Ctrl+PgUp/PgDn terminal cycling
- contracts: ZMODEM_OFFER/RESPOND/DONE channels, SystemSettings.globalShowHide, TransferKind zmodem-upload/download
- review fixes: xterm-helper-textarea font hotkey pass-through, zmodem error-vs-cancelled progress state, offer timer clear, receive stream destroy
v0.6.0
2026-09-06 20:15:49 +08:00
954801926@qq.com
0953ac4f41
docs: context compression — STATE.md snapshot (plan unchanged, M3-M5 done, M6 next)
2026-09-06 17:32:05 +08:00
954801926@qq.com
90058eb69f
docs: M3/M4/M5 delivered
2026-09-06 17:29:23 +08:00
954801926@qq.com
7467433a61
feat(M5): command history/library + completion + session logs
...
- main/commands.ts: JSON-backed history (500 cap, dedupe), command library
CRUD, per-session plain-text output logs (start/stop/index/open dir)
- pty data path feeds the session logger via injected hooks
- TerminalView: input line capture -> history recording, prefix completion
popup (history + library, Tab/Arrows/Esc), session log toggle buttons
- Sidebar: 命令 section — history (click to run, clear) and library
(add/delete, click to run into active session)
- tests: commands-store self-test ALL PASSED; full suite green
2026-09-06 17:28:15 +08:00
954801926@qq.com
7977c264be
chore: ignore sftp test artifacts
2026-09-06 17:07:49 +08:00
954801926@qq.com
2849fc30dc
feat(M4): file permissions/ownership + monitor charts
...
- SftpEntry carries uid/gid/mode (drwxr-xr-x style) from readdir attrs
- chmod/chown via SSH exec (JD sftp subsystem silently ignores SETSTAT)
- FilePanel: permission + owner columns, chmod/chown dialog (rwx grid +
octal input + uid/gid)
- MonitorPanel: canvas sparkline charts — CPU history (60 samples, 3min)
and network rx/tx rates, dpr-aware, no deps
- tests: sftp-chmod real-server verification (chmod 700/755 round trip)
2026-09-06 17:07:11 +08:00
954801926@qq.com
06fa4ca023
feat(M3): SSH productization — Terminal/SSH split + Wave-style server monitoring
...
- Sidebar split into 本地终端 / SSH 服务器 sections + recent sessions quick reconnect
- SSH tabs carry server badge (icon + green edge); local tabs unchanged
- SSH session panels mount a collapsible live monitor panel (CPU/mem/disk/net/load/uptime)
- src/main/sysinfo.ts polls remote via ssh2 exec (/proc + df), 3s interval,
error-tolerant (3 consecutive failures auto-stop), auto-stops on session close
- tests: sysinfo-e2e (loopback exec with canned /proc output) — ALL PASSED
2026-09-06 13:45:52 +08:00
954801926@qq.com
f97edbb016
docs: roadmap v2 — M3 SSH productization (Terminal/SSH split + Wave-style server monitoring), renumber SFTP to M4
2026-09-06 13:15:12 +08:00
954801926@qq.com
0be65370f6
fix: ssh connect flow never fired + 120s host-key prompt budget
...
- Workspace: saved-credential connections now call connect() directly;
ConnectFlow only rendered a connecting spinner without ever firing
openSession, leaving attempts hung forever (root cause of the stuck
'连接中' modal)
- Host-key prompt timeout raised 30s -> 120s (a security decision needs
time; 30s aborted while users compare fingerprints)
- main: unhandledRejection/uncaughtException loggers; ssh diagnostics on
error paths
2026-09-06 13:08:47 +08:00
954801926@qq.com
bf3b2a7c30
docs: drop AI assistant milestone (not needed)
2026-09-06 12:33:26 +08:00
954801926@qq.com
727ed93c01
docs: audit roadmap — mark early-delivered items, fix duplicated M3 row
2026-09-06 11:49:47 +08:00
954801926@qq.com
659a1ac695
docs: note i18n groundwork needed for UI language switching
2026-09-06 11:44:14 +08:00
954801926@qq.com
18506c926a
feat: system settings tab — launch at login and prevent-sleep toggles
...
AppSettings.system persisted through the existing settings IPC; the main
process applies real side effects at startup and on every save via
app.setLoginItemSettings and powerSaveBlocker.
2026-09-06 11:43:40 +08:00
954801926@qq.com
db0eae5efd
fix: flush held text-run carry on a 16ms timer so shell prompts render immediately
...
The highlight stream holds a trailing text run for cross-chunk anchor
consistency; a bare shell prompt (plain text, no follow-up data) stayed
held until the next keypress. Now the carry auto-flushes within one frame.
2026-09-06 11:26:17 +08:00
954801926@qq.com
551723c2d4
OpenTerminal v0.2.1: terminal suite with SSH, split panes, themes and keyword highlighting
...
- Local terminal (node-pty) + SSH sessions (ssh2) with unified data plane
- dockview split panes, per-group '+' tab bar button, layout templates
- Session replay buffer (late-subscriber catch-up), host key pinning,
credential encryption via safeStorage
- 12 builtin themes + custom theme editor, system font enumeration
- Keyword highlighting: regex rules with priority, ANSI truecolor injection,
chunk-boundary-safe stream (carry-over of partial escape sequences)
- Dark antd theme app-wide, settings dialog redesign, error boundary
- Tests: ssh loopback, session e2e, highlight split-chunk regression
2026-09-06 11:19:08 +08:00