Compare commits

...
Author SHA1 Message Date
陈奇 b3335aac76 docs(release): prepare v1.1.84 highlights 2026-10-18 08:28:48 +00:00
3 changed files with 65 additions and 1 deletions

No files matched your search

+42
View File
@@ -0,0 +1,42 @@
## ✨ Release Highlights
Netcatty **v1.1.84** introduces custom host monitoring dashboards and an integrated host browser, expands AI conversation and model controls, and improves cloud sync, SSH authentication, and everyday terminal workflows.
### 📊 Custom host monitoring dashboards
- Create named **monitoring panels** in the Vault, choose their hosts, and switch between chart and list views. Panel configuration syncs across devices (#3703).
- Inspect CPU, memory, disk, network, and latency readings, with GPU details where available. Choose visible columns, resize them, adjust refresh controls, and open a terminal directly from a monitored host (#3704, #3705, #3713).
- Virtualized host collections keep large monitoring views responsive (#3713).
### 🌐 Browse host services inside Netcatty
- Open the **Browser** tool alongside SFTP and Notes in a terminal side panel. SSH browsing uses the selected host's network path, including services on that host's `localhost` (#3701).
- Work with browser tabs, bookmarks, navigation controls, and downloads without leaving the terminal workspace. Terminal links can open internally or in your system browser, according to your preference (#3701, #3712).
- Browser contexts stay with their terminal, and idle panes avoid unnecessary layout polling (#3701, #3723).
### 🤖 More control over AI conversations
- **Search chat history**, fork a conversation from a completed response, or undo the last turn by branching at a safe boundary while preserving the original conversation (#3601, #3602, #3604).
- Use the new **MiMo Code** agent integration. SDK model pickers gain clearer loading, source and retry states, better live model discovery, and support for manual model IDs (#3500, #3535, #3624, #3642).
- Dock the AI assistant at the bottom, scope external MCP approvals to a connection or host, and let Skills + CLI work with Vault Notes (#3482, #3569, #3512).
- Long-running AI sessions now default to an **8-hour idle timeout**. Catty prompt-cache handling and cached-token usage reporting are improved (#3618, #3714).
### ☁️ Cloud sync and Vault organization
- Choose a **non-destructive merge** strategy that retains entries missing from only one side, and include AI conversation history in cloud sync (#3633).
- Clear local backup history with confirmation, with clearer disconnect and retry behavior and a refreshed convergent-sync settings panel (#3708, #3728).
- Import FinalShell hosts, add Markdown notes to host groups, move selected hosts into a group, search workspace hosts by tag, and test a connection from the host editor (#3331, #3372, #3675, #3337, #2984).
### 🖥️ Terminal and editing workflows
- Save and automatically apply a **default terminal side-panel layout**, and open files in a detached editor window with multiple tabs (#3456, #3606).
- Confirm multiline pastes, recall compose-bar history, save the current terminal screen, and configure tab double-click behavior and cursor width (#3400, #3365, #3364, #3401, #3495).
- Highlight Unix paths with a switchable rule and prepare `tar` or `zip` commands from archive links. Command history gains a clear-all action (#3672, #3682, #3632).
- Toggle window transparency while preserving the chosen opacity (#2987).
### 🔐 SSH, SFTP, and responsiveness
- **FIDO2 OpenSSH security keys** return with touch/PIN prompts, retry handling, and an explicit saved-password fallback when available. Compatible hardware and OpenSSH support are required (#2823, #3709).
- Enable a single-channel SSH option for bastion hosts. SSH auto-reconnect is enabled by default, while automatic terminal closure on exit is disabled by default (#3458, #3617, #3619).
- SFTP gains a **Cancel all** transfer action and local-shell file browsing, with fixes for independent upload cancellation, interrupted downloads, and transfer setup errors (#3574, #3379, #3638, #3702).
- Large SFTP panes, expanded transfer lists, AI history searches, detached editors, and host searches receive responsiveness improvements. Release packages omit duplicate renderer and unused native files (#3716, #3717, #3719, #3721, #3722, #3724, #3726).
+5 -1
View File
@@ -117,5 +117,9 @@ See the
and [Privacy policy](https://github.com/${repo}/blob/${tag}/PRIVACY.md).
`;
fs.writeFileSync('release_notes.md', content);
// Keep editorial highlights scoped to their release so future tags do not
// accidentally reuse an older version's announcement.
const highlightsPath = path.join(__dirname, '..', 'release-notes', `${path.basename(tag)}.md`);
const highlights = fs.existsSync(highlightsPath) ? fs.readFileSync(highlightsPath, 'utf8').trim() : '';
fs.writeFileSync('release_notes.md', highlights ? `${highlights}\n\n${content.trimStart()}` : content);
console.log('Generated release_notes.md');
+18
View File
@@ -34,6 +34,7 @@ test("release notes include Arch pacman downloads for x64 and arm64", (t) => {
/https:\/\/github\.com\/binaricat\/Netcatty\/releases\/download\/v1\.2\.3\/Netcatty-1\.2\.3-linux-aarch64\.pacman/,
);
assert.match(notes, /Code signing policy/);
assert.doesNotMatch(notes, /Release Highlights/);
assert.match(
notes,
/Free code signing provided by SignPath\.io, certificate by SignPath Foundation/,
@@ -43,3 +44,20 @@ test("release notes include Arch pacman downloads for x64 and arm64", (t) => {
/https:\/\/github\.com\/binaricat\/Netcatty\/blob\/v1\.2\.3\/CODE_SIGNING_POLICY\.md/,
);
});
test("release-specific highlights precede downloads without replacing generated metadata", (t) => {
const tmp = fs.mkdtempSync(path.join(os.tmpdir(), "netcatty-release-note-"));
t.after(() => fs.rmSync(tmp, { recursive: true, force: true }));
const script = path.join(__dirname, "..", ".github", "scripts", "generate-release-note.js");
const highlights = fs.readFileSync(path.join(__dirname, "..", ".github", "release-notes", "v1.1.84.md"), "utf8").trim();
execFileSync(process.execPath, [script], {
cwd: tmp,
env: { ...process.env, VERSION: "1.1.84", GITHUB_REF_NAME: "v1.1.84", GITHUB_REPOSITORY: "binaricat/Netcatty" },
stdio: "pipe",
});
const notes = fs.readFileSync(path.join(tmp, "release_notes.md"), "utf8");
assert.ok(notes.startsWith(`${highlights}\n\n## Download based on your OS:`));
assert.match(notes, /releases\/download\/v1\.1\.84\/Netcatty-1\.1\.84-win-x64\.exe/);
assert.match(notes, /blob\/v1\.1\.84\/CODE_SIGNING_POLICY\.md/);
assert.equal(notes.match(/## ✨ Release Highlights/g).length, 1);
});