Commit Graph

  • a58fa8602b
    remove wrongly merged code grossmj 2026-07-13 10:05:01 +02:00
  • d8f8b6ec70
    fix(docker): handle container name conflict automatically YueGuobin 2026-02-27 16:35:11 +01:00
  • 01d72aed9a
    Merge branch '2.2' into 3.1 grossmj 2026-07-13 09:32:07 +02:00
  • b256d5a5f6
    Merge pull request #2812 from GNS3/bugfix/2788 Jeremy Grossmann 2026-07-12 13:50:11 +02:00
  • ea09cc2724
    fix: gns3-server crashes on startup if "Open this project in the background" is active but there is a problem with that project grossmj 2026-07-12 13:46:12 +02:00
  • e3e0a511b6
    Handle HTTPNotFound exception when retrieving compute status grossmj 2026-07-12 11:08:13 +02:00
  • 0ecaab4da0
    Replace ControllerForbiddenError with aiohttp.web.HTTPForbidden for project deletion error handling grossmj 2026-07-12 11:05:15 +02:00
  • 40644f33e6
    Fix: Check compute connectivity before open() during project deletion YueGuobin 2026-05-07 03:58:20 +02:00
  • a9cce209d7
    Development on 3.1.0.dev5 grossmj 2026-07-10 10:01:35 +02:00
  • 94a131dab3
    Merge pull request #2810 from yueguobin/feature/cloud-host-interface-ip-addresses Jeremy Grossmann 2026-07-10 09:19:54 +02:00
  • 0ed1715fe6
    Use typed InterfaceStatus enum and simplify stats fallback in interfaces() YueGuobin 2026-07-10 14:55:21 +08:00
  • 9721660cc3
    Expose full interface address list and link state in cloud node API YueGuobin 2026-07-10 13:56:07 +08:00
  • a66740e154
    Add script to create and push annotated git tags from version.py grossmj 2026-07-09 11:02:33 +02:00
  • 913d021705
    Release v3.1.0a4 v3.1.0a4 grossmj 2026-07-09 10:40:38 +02:00
  • d64fdd71a9
    Bundle web-ui v3.1.0a4 grossmj 2026-07-09 08:40:05 +02:00
  • bdd73be6d6
    Merge pull request #2808 from yueguobin/docs/jwt-refresh-token-config-example Jeremy Grossmann 2026-07-09 08:34:25 +02:00
  • 61ce59788b
    Merge branch '3.1' into docs/jwt-refresh-token-config-example Guobin Yue 2026-07-09 14:19:14 +08:00
  • cccc3e5b77
    Add jwt_refresh_token_expire_minutes to sample configuration YueGuobin 2026-07-09 14:15:49 +08:00
  • 6fba497734
    Remove deleted web-ui files from git grossmj 2026-07-08 22:40:27 +02:00
  • 54540e7ef7
    Merge remote-tracking branch 'origin/3.1' into 3.1 grossmj 2026-07-08 21:49:20 +02:00
  • 5992a284c9
    Bundle web-ui v3.1.0a4 grossmj 2026-07-08 21:48:48 +02:00
  • a2ee5389af
    Bundle web-ui v3.1.0a4 grossmj 2026-07-08 20:11:59 +02:00
  • 4548d9053a
    Sync appliances grossmj 2026-07-08 18:45:07 +02:00
  • 2d3bb89e58
    Merge remote-tracking branch 'origin/2.2' into 3.1 grossmj 2026-07-08 10:33:00 +02:00
  • 809d4cc609
    Merge branch 'master' into 2.2 grossmj 2026-07-08 10:30:53 +02:00
  • 89e4e836c9
    Merge pull request #2806 from my-code-is-grey/2798-dockerhub Jeremy Grossmann 2026-07-08 05:17:04 +02:00
  • 69ddcf553f .dockerignore ignore .dockerignore my-code-is-grey 2026-07-07 22:37:24 -04:00
  • 1e1ec5aae8 typo made me reconsider and move out to env my-code-is-grey 2026-07-07 21:58:49 -04:00
  • e30e6435ca defaulted DOCKERHUB_ORG repository variable my-code-is-grey 2026-07-07 21:42:27 -04:00
  • 77700f361c 2798 my-code-is-grey 2026-07-07 01:30:58 -04:00
  • e3e3a7e729
    Update fastapi to v0.139.0 grossmj 2026-07-06 19:21:56 +02:00
  • 6415d2e56c
    Update dependencies grossmj 2026-07-06 19:06:25 +02:00
  • 424ae55c38
    Revert "Update dependencies" grossmj 2026-07-06 18:38:48 +02:00
  • b6793a50f3
    Update dependencies grossmj 2026-07-06 18:31:52 +02:00
  • 562108748a
    Remove API docs from 2.2 after merging grossmj 2026-07-06 18:17:00 +02:00
  • d54b16df53
    Merge branch '2.2' into 3.1 grossmj 2026-07-06 18:13:17 +02:00
  • ad4aa1d49b
    Merge pull request #2803 from GNS3/update-ga-workflows Jeremy Grossmann 2026-07-06 18:10:17 +02:00
  • 8499ed3d65
    Update GitHub Actions workflows grossmj 2026-07-06 18:05:28 +02:00
  • a0ca8761c0
    Merge pull request #2802 from yueguobin/fix-web-wireshark-docker-xpra6.x Jeremy Grossmann 2026-07-06 17:32:31 +02:00
  • 277640a335
    Merge branch '3.1' into fix-web-wireshark-docker-xpra6.x Guobin Yue 2026-07-06 13:35:44 +08:00
  • f5a72532ac
    Fix web-wireshark docker build broken by xpra 6.5 release YueGuobin 2026-07-06 13:31:07 +08:00
  • 7650409ab6
    Merge pull request #2797 from yueguobin/feature/optional-ai-support-2794 Jeremy Grossmann 2026-06-27 19:44:27 +02:00
  • e0ef63ebc1
    Update CI to install [ai-features,dev] instead of [ai-copilot,dev] YueGuobin 2026-06-27 22:19:39 +08:00
  • 292b60efaa
    Make AI features (AI Copilot + MCP) optional via [ai-features] extra YueGuobin 2026-06-26 00:17:02 +08:00
  • 58d3055dd3
    Merge pull request #2792 from yueguobin/feature/refresh-token-mechanism-2786 Jeremy Grossmann 2026-06-24 00:26:07 +02:00
  • 0dd2fb4173
    Add refresh token mechanism documentation under docs/features/ YueGuobin 2026-06-23 23:36:37 +08:00
  • c8c14af9f4
    Add /refresh to allowed public endpoints list in route auth test YueGuobin 2026-06-23 23:19:07 +08:00
  • 0e8d0cb87b
    Add stateless JWT refresh token mechanism YueGuobin 2026-06-23 22:39:11 +08:00
  • 4ffab7abee
    Merge pull request #2791 from yueguobin/fix/mcp-test-issues Jeremy Grossmann 2026-06-17 21:07:59 +02:00
  • 471e65e48c
    Add project/node/link handler tests: 39 total, covering list/get/create/delete/start/stop/suspend/reload/console/update/fields YueGuobin 2026-06-18 00:07:14 +08:00
  • 5cc826baff
    Add MCP handler unit tests with mocked Gns3Connector YueGuobin 2026-06-18 00:02:38 +08:00
  • dc3a386961
    Add MCP tool parameter consistency tests YueGuobin 2026-06-17 23:59:40 +08:00
  • ead9747e1b
    Fix appliance_install: add version parameter YueGuobin 2026-06-17 23:03:28 +08:00
  • 2e75c9319b
    Merge pull request #2787 from yueguobin/optimize/project-open-speed Jeremy Grossmann 2026-06-16 23:59:41 +02:00
  • f16eba183a
    Add coordinate system note to docs YueGuobin 2026-06-16 23:30:59 +08:00
  • 0d21f294f6
    Document canvas coordinate system in node_create x/y params YueGuobin 2026-06-16 23:16:17 +08:00
  • 00647d092c
    Update docstring: batch concurrency from 10 to 100 YueGuobin 2026-06-16 23:05:17 +08:00
  • da35eaa014
    Remove unused import time YueGuobin 2026-06-16 23:04:05 +08:00
  • 10ff5b2283
    Add list type check before nodes[0] access in _normalize_link_nodes YueGuobin 2026-06-16 23:00:47 +08:00
  • 0d45bfbae5
    Add fields type validation in create handlers YueGuobin 2026-06-16 22:58:36 +08:00
  • 390a40ce80
    Use pop() instead of pop(0) for O(1) port removal YueGuobin 2026-06-16 22:56:42 +08:00
  • 59e5f8dd2f
    Fix review issues: key_prefix length, count validation, WAL log, timeout comment, pointless temp var YueGuobin 2026-06-16 22:50:22 +08:00
  • 533d3d5b71
    Fix: pass name from TemplateUsage to add_node_from_template YueGuobin 2026-06-16 22:43:46 +08:00
  • 68567118f1
    Remove unused imports (logging, log, select) YueGuobin 2026-06-16 22:25:07 +08:00
  • af94c1729b
    Add warning for unconsumed pre-allocated UDP ports after link creation YueGuobin 2026-06-16 22:22:23 +08:00
  • 7d5d4767bf
    Remove FIXME comment about middleware in server.py Jeremy Grossmann 2026-06-16 12:20:55 +02:00
  • f7abb62603
    Rename device_command_run_handler → device_show_run_handler to match tool name YueGuobin 2026-06-16 12:44:12 +08:00
  • fbb8924a8e
    Rename device_command_run → device_show_run for clarity YueGuobin 2026-06-16 12:27:35 +08:00
  • e627481ec2
    Fix device_command_run KeyError('commands'): tool desc said show_commands but backend expects commands YueGuobin 2026-06-16 12:23:15 +08:00
  • ec58bea24b
    Fix template_list return type annotation to match _run_handler_sync envelope YueGuobin 2026-06-16 12:08:07 +08:00
  • a126f910d4
    Add performance optimization documentation YueGuobin 2026-06-16 01:14:12 +08:00
  • 48b7ea8bf0
    Update MCP service docs: API key format, auth flow, tool parameters, concurrency YueGuobin 2026-06-16 01:13:01 +08:00
  • d407b29fe9
    Increase HTTP connection pool to 500/1000 YueGuobin 2026-06-16 00:58:12 +08:00
  • 74192f454f
    Increase BATCH_MAX_WORKERS and Pool concurrency from 20 to 100 YueGuobin 2026-06-16 00:49:08 +08:00
  • 286b2407cd
    Remove final timing artifact in projects.py YueGuobin 2026-06-16 00:44:54 +08:00
  • bd15c8d019
    Remove remaining dead timing variables and imports YueGuobin 2026-06-16 00:40:03 +08:00
  • a8cc01af46
    Remove database warmup (proven ineffective - real bottleneck was bcrypt blocking event loop) YueGuobin 2026-06-16 00:35:42 +08:00
  • ccb629f48f
    Clean up all timing/debug logs YueGuobin 2026-06-16 00:34:11 +08:00
  • 8ef70d9fac
    Add memory: import validation best practice YueGuobin 2026-06-16 00:25:45 +08:00
  • 7d8ab399da
    Fix: add missing UUID imports YueGuobin 2026-06-16 00:24:37 +08:00
  • d6b337bc3a
    Generate fresh JWT on API key auth instead of returning raw key YueGuobin 2026-06-16 00:09:36 +08:00
  • f522c947bc
    Optimize API key auth: O(1) lookup via UUID-embedded key format YueGuobin 2026-06-15 23:56:36 +08:00
  • 796a2e6ca8
    Fix: offload bcrypt.checkpw to thread pool to prevent blocking event loop YueGuobin 2026-06-15 23:49:28 +08:00
  • 04f0657661
    Add timing to API key auth path and log api_keys count YueGuobin 2026-06-15 23:45:26 +08:00
  • 3c41dea48f
    Replace SELECT 1 warmup with full database file read to warm OS page cache YueGuobin 2026-06-15 23:43:41 +08:00
  • 5502b8f8e5
    Add timing logs to auth dependency chain to identify 6s pre-handler delay YueGuobin 2026-06-15 23:35:12 +08:00
  • b3619a3c00
    Add granular timing to get_template: separate execute vs fetch time YueGuobin 2026-06-15 23:33:19 +08:00
  • e90fb0774c
    Warm up database connection pool on startup to avoid 8s cold-start penalty on first API request YueGuobin 2026-06-15 23:26:28 +08:00
  • 6d3cfc7d1e
    Fix: register WAL PRAGMA on sync_engine instead of Engine class for async compat YueGuobin 2026-06-15 23:21:50 +08:00
  • 08e0dbc122
    Add timing logs to get_template to identify DB query bottleneck YueGuobin 2026-06-15 23:18:00 +08:00
  • fa9aa5a9cc
    Add timing middleware to log slow requests (>1s) with [CTRL-TIMING] prefix YueGuobin 2026-06-15 23:13:36 +08:00
  • a855cb34f1
    Fix: _time → time in compute.py timing log YueGuobin 2026-06-15 23:06:10 +08:00
  • ea4bb2c1fb
    Add [CTRL-TIMING] logs to controller create_node flow YueGuobin 2026-06-15 23:04:01 +08:00
  • e5797c3da0
    Fix: pass template_id to batch mode handler so top-level template_id works as default YueGuobin 2026-06-15 22:57:40 +08:00
  • cef6dc6bd2
    Add detailed timing logs to MCP node creation and HTTP client YueGuobin 2026-06-15 22:51:43 +08:00
  • 58ca6b1dd4
    Add fields filter to template_list tool with description for AI YueGuobin 2026-06-15 22:11:14 +08:00
  • b79fb89866
    Fix: add missing _filter_link_response function YueGuobin 2026-06-15 21:51:17 +08:00
  • 1bb010d274
    Pass name parameter through to controller API when creating node from template YueGuobin 2026-06-15 21:50:14 +08:00
  • eb3ac64016
    Add validation to compact link format with clear error messages YueGuobin 2026-06-15 21:46:27 +08:00
  • a8a83051ff
    Add compact array format for link node entries to reduce token usage YueGuobin 2026-06-15 21:42:26 +08:00