Merge branch '3.0' into fix/llm-model-config-error-message

This commit is contained in:
Guobin Yue 2026-04-25 16:26:59 +08:00 committed by GitHub
commit c583462d2d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
10 changed files with 204 additions and 116 deletions

View File

@ -1,5 +1,93 @@
# Change Log
## 3.1.0a1 25/04/2026
* New completely revamped Web interface.
* Add GNS3 Copilot AI agent back-end
* Web-wireshark: packet capture and live traffic analysis in the browser
* Fix using SSL with remote computes. Fixes https://github.com/GNS3/gns3-gui/issues/3733
* Add --url and --branch parameters to update-bundled-web-ui.sh
* Fix bug when custom_adapters is None in port_factory.py
* Have optional body in start node API endpoint
* Fix snapshots after merging
* Potential fix for pull request finding 'CodeQL / Information exposure through an exception'
* Refactored the way snapshots are handled in the server
* fix(symbols): add authentication to symbol raw endpoint
* fix(symbols): add CORS headers to symbol file responses
* Allow to find new project in sub dirs
* Enhancement: Refresh projects list without restarting the GNS3 server
* Fix accessing username in authentication.py
* Improved exception handling and telnet client disconnect
* Use get method for registry_version to avoid KeyError
* Add support for appliance format version 8
* Convert database template fields from PickleType to JSON
* feat(statistics): distinguish open vs closed project nodes
* fix(statistics): handle closed projects where nodes/links are dicts
* feat(controller): extend /statistics API with project, node and link stats
* Use FastAPI Lifespan Events
* feat(link): add control_offset field to LinkStyle
* feat(symbols): add DELETE API for removing custom symbol files
* Enhancement: Re-write current Telnet server implementation using telnetlib3 library
* feat: improve error handling for API configuration errors
* Enhancement Added link type support on the server side
* Ignore HTTPException received when closing a project
* Prevent router to be duplicated when running and add tests
* Fixed issue #1605 regarding Cisco slots causing configs to break
* feat: add VNC WebSocket console support for Docker and QEMU nodes
* Return 405 error for unsupported actions for other node types
* feat(telnet_server): improve error handling and connection management
* fix(telnet): handle connection race condition during broadcast
* Change first() to one_or_none() for image query
* Fix for duplicating Qemu nodes
* Minor optimizations to logic
* Fixed an issue with the server causing errors when uploading large images + Preparation for a smarter check when uploading images
* Implemented a smarter node_type system
* docs: restructure copilot docs and update node tools
* fix(acl): correct endpoint paths for users, groups, and roles
* fix(iou): return 405 error for unsupported suspend operation
* feat(api): enhance max_tokens field with robust null handling
* feat(docs): add AI prompting guide for configuration templates
* Deactivate 'use default IOU values' by default and update RAM/NVRAM values
* Make sure the node shows as stopped when the wrap console cannot be stopped. Ref https://github.com/GNS3/gns3-registry/pull/1010
* chore: update author name and copyright headers
* feat(docs): enhance AI chat API documentation with examples and details
* feat: add .claude directory to gitignore for API key security
* Revert "Fix QEMU serial console artifacts by filtering ANSI CPR responses in …"
* docs: add troubleshooting guide for datetime timezone issue
* Drop support for Python 3.9
* feat: add multi-user concurrency control design document
* docs: add troubleshooting guide for force kill residual processes
* Fixed the path traversal check
* Fix image handling
* Qemu VMs: only compute MD5 checksums for existing disks
* Copy config files and database from a previous version if it exists
* Add enable_http_auth in gns3_server.conf sample
* feat(compute): option to disable compute authentication
* tests(controller,port): short_name finishes successfully when port name is None
* fix(controller,port): handle None port name to prevent TypeError in short_name method
* fix(docker): handle container name conflict automatically
* feat(virtualbox): add fallback for VBoxManage executable detection
* feat: simplify port name assignment logic
* feat(ports): add null checks for port name in short name generation
* Remove unneeded rbac_repo in get_templates
* Use lists for tags instead of dicts
* Fix for resizing Qemu VM disks
* feat(templates): safely access settings dict keys
* feat(api): fix ETag handling and JSON serialization in template endpoint
* feat(api): add tag filtering to nodes and templates endpoints
* Update project schema and fix tests
* Add 'created_by' field to track project creator
* Fix updating packet filters
* Add vendor, model and netmiko_device_type fields to templates
* fix: handle RuntimeError in notification_manager emit()
* fix: busybox static link detection on Alpine/musl
* Fix bug when updating compute password to be empty
* Cancel tasks if controller cannot be started
* Enable parallel compression with zstandard. Fixes #2324
* Add Dynamips to Dockerfile dependencies
* Take populated disks into consideration when calculating PCI device ID
* Fix telnet keepalive options on macOS
## 2.2.58.1 12/04/2026
* Sync appliances

View File

@ -58,7 +58,7 @@ class CrashReport:
Report crash to a third party service
"""
DSN = "https://1c0ae79fd51b77c674718c6942337300@o19455.ingest.us.sentry.io/38482"
DSN = "https://802f8f0336dbfdf312ac94641ea9e8ff@o19455.ingest.us.sentry.io/38482"
_instance = None
def __init__(self):

View File

@ -190,11 +190,11 @@ function check_image_decode(
fail_callback
) {
if (console) {
console.info(
"checking",
format,
`with test image: ${image_bytes.length} bytes`
);
// console.info(
// "checking",
// format,
// `with test image: ${image_bytes.length} bytes`
// );
}
try {
const timer = setTimeout(function() {

View File

@ -24,19 +24,19 @@ $(function() {
onAction,
onClose
) {
console.debug(
"doNotification",
type,
nid,
title,
message,
timeout,
icon,
actions,
hints,
onAction,
onClose
);
// console.debug(
// "doNotification",
// type,
// nid,
// title,
// message,
// timeout,
// icon,
// actions,
// hints,
// onAction,
// onClose
// );
const nID = `notification${nid}`;
const a = $(
`<div id="${nID}" class="alert ${type}">` +

View File

@ -908,17 +908,17 @@ const LANGUAGE_TO_LAYOUT = {
};
function console_debug_safe() {
if (console) console.debug.apply(console, arguments);
// if (console) console.debug.apply(console, arguments);
}
function console_error_safe() {
if (console) console.error.apply(console, arguments);
// if (console) console.error.apply(console, arguments);
}
function console_warn_safe() {
if (console) console.warn.apply(console, arguments);
// if (console) console.warn.apply(console, arguments);
}
function console_log_safe() {
if (console) console.log.apply(console, arguments);
// if (console) console.log.apply(console, arguments);
}

View File

@ -0,0 +1 @@
import{Qf as a}from"./chunk-UKWNOQKZ.js";export{a as TopologySummaryComponent};

File diff suppressed because one or more lines are too long

View File

@ -1 +0,0 @@
import{Qf as a}from"./chunk-7KO7VTTK.js";export{a as TopologySummaryComponent};

View File

@ -115,5 +115,5 @@
}
})();
</script>
<link rel="modulepreload" href="chunk-7KO7VTTK.js"><script src="main-IF563FB2.js" type="module"></script></body>
<link rel="modulepreload" href="chunk-UKWNOQKZ.js"><script src="main-SBCD24KA.js" type="module"></script></body>
</html>

File diff suppressed because one or more lines are too long