Skip to content

[Nitro CLI] Add --archive option to fusion settings set command#9107

Merged
tobias-tengler merged 2 commits intomainfrom
tte/fusion-settings-set-without-nitro
Feb 12, 2026
Merged

[Nitro CLI] Add --archive option to fusion settings set command#9107
tobias-tengler merged 2 commits intomainfrom
tte/fusion-settings-set-without-nitro

Conversation

@tobias-tengler
Copy link
Copy Markdown
Member

No description provided.

Copilot AI review requested due to automatic review settings February 11, 2026 20:55
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR refactors the fusion settings set command to work with local Fusion archive files instead of cloud-based APIs. It introduces a new --archive option and extracts the --environment option into a reusable FusionEnvironmentOption class. The PR also fixes a typo (exitingArchiveStream → existingArchiveStream), adds support for new composition settings (CacheControlMergeBehavior and TagMergeBehavior), and simplifies composition settings handling.

Changes:

  • Refactored FusionSettingsSetCommand to work with local archive files instead of cloud APIs
  • Extracted FusionEnvironmentOption as a reusable class for consistency across commands
  • Added support for cache-control-merge-behavior and tag-merge-behavior settings

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 5 comments.

Show a summary per file
File Description
FusionEnvironmentOption.cs New reusable option class for the --environment flag with aliases
FusionSettingsSetCommand.cs Refactored to use local archives, added new merge behavior settings, removed cloud API dependencies
FusionPublishHelpers.cs Added overload for ComposeAsync accepting FusionArchive, renamed stageName parameter to environment
FusionPublishCommand.cs Fixed typo: exitingArchiveStream → existingArchiveStream
FusionComposeCommand.cs Refactored to use the new FusionEnvironmentOption class
SettingsExtensions.cs Added Preprocessor.ExcludeByTag to settings merging logic
CompositionSettings.cs Changed CacheControlMergeBehavior and TagMergeBehavior from init to set, changed ExcludeByTag default from empty set to null
CompositionHelper.cs Simplified composition settings saving to use merged settings directly
SatisfiabilityValidatorTests.cs Added test case for single schema with lookup

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread src/Nitro/CommandLine/src/CommandLine/Commands/Fusion/FusionSettingsSetCommand.cs Outdated
Comment thread src/Nitro/CommandLine/src/CommandLine/Commands/Fusion/FusionSettingsSetCommand.cs Outdated
@github-actions
Copy link
Copy Markdown
Contributor

🚀 Fusion Gateway Performance Results

Simple Composite Query

Constant Load (50 VUs)

Requests/sec Error Rate
24899.92 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 1.62ms 51.83ms 1.96ms 3.69ms 4.57ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
19531.82 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.08ms 8.53ms 94.50ms 10.70ms 22.38ms 26.91ms

Executed Query

fragment User on User {
  id
  username
  name
}

fragment Review on Review {
  id
  body
}

fragment Product on Product {
  inStock
  name
  price
  shippingEstimate
  upc
  weight
}

query TestQuery {
  topProducts(first: 5) {
    ...Product
    reviews {
      ...Review
      author {
        ...User
      }
    }
  }
}

Deep Recursion Query

Constant Load (50 VUs)

Requests/sec Error Rate
24394.63 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 1.66ms 41.93ms 2.00ms 3.80ms 4.67ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
19169.44 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 8.78ms 101.63ms 10.96ms 22.87ms 27.84ms

Executed Query

fragment User on User {
  id
  username
  name
}

fragment Review on Review {
  id
  body
}

fragment Product on Product {
  inStock
  name
  price
  shippingEstimate
  upc
  weight
}

query TestQuery {
  users {
    ...User
    reviews {
      ...Review
      product {
        ...Product
        reviews {
          ...Review
          author {
            ...User
            reviews {
              ...Review
              product {
                ...Product
              }
            }
          }
        }
      }
    }
  }
  topProducts(first: 5) {
    ...Product
    reviews {
      ...Review
      author {
        ...User
        reviews {
          ...Review
          product {
            ...Product
          }
        }
      }
    }
  }
}

Variable Batching Throughput

Constant Load (50 VUs)

Requests/sec Error Rate
27767.61 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.08ms 1.45ms 37.19ms 1.76ms 3.29ms 4.07ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
21759.31 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.08ms 7.30ms 102.22ms 9.54ms 20.12ms 24.57ms

Executed Query

query TestQuery_8f7a46ce_2(
  $__fusion_1_upc: ID!
  $__fusion_2_price: Long!
  $__fusion_2_weight: Long!
) {
  productByUpc(upc: $__fusion_1_upc) {
    inStock
    shippingEstimate(weight: $__fusion_2_weight, price: $__fusion_2_price)
  }
}

Variables (5 sets batched in single request)

[
  { "__fusion_1_upc": "1", "__fusion_2_price": 899, "__fusion_2_weight": 100 },
  { "__fusion_1_upc": "2", "__fusion_2_price": 1299, "__fusion_2_weight": 1000 },
  { "__fusion_1_upc": "3", "__fusion_2_price": 15, "__fusion_2_weight": 20 },
  { "__fusion_1_upc": "4", "__fusion_2_price": 499, "__fusion_2_weight": 100 },
  { "__fusion_1_upc": "5", "__fusion_2_price": 1299, "__fusion_2_weight": 1000 }
]

No baseline data available for comparison.


Run 21922729752 • Commit dd09330 • Wed, 11 Feb 2026 21:14:23 GMT

@github-actions
Copy link
Copy Markdown
Contributor

🚀 Fusion Gateway Performance Results

Simple Composite Query

Constant Load (50 VUs)

Requests/sec Error Rate
24917.75 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 1.63ms 38.67ms 1.96ms 3.68ms 4.57ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
19448.02 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 8.69ms 97.58ms 10.83ms 22.64ms 27.35ms

Executed Query

fragment User on User {
  id
  username
  name
}

fragment Review on Review {
  id
  body
}

fragment Product on Product {
  inStock
  name
  price
  shippingEstimate
  upc
  weight
}

query TestQuery {
  topProducts(first: 5) {
    ...Product
    reviews {
      ...Review
      author {
        ...User
      }
    }
  }
}

Deep Recursion Query

Constant Load (50 VUs)

Requests/sec Error Rate
24384.96 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 1.65ms 51.91ms 2.00ms 3.72ms 4.68ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
19199.49 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.09ms 8.74ms 116.78ms 10.89ms 22.77ms 27.79ms

Executed Query

fragment User on User {
  id
  username
  name
}

fragment Review on Review {
  id
  body
}

fragment Product on Product {
  inStock
  name
  price
  shippingEstimate
  upc
  weight
}

query TestQuery {
  users {
    ...User
    reviews {
      ...Review
      product {
        ...Product
        reviews {
          ...Review
          author {
            ...User
            reviews {
              ...Review
              product {
                ...Product
              }
            }
          }
        }
      }
    }
  }
  topProducts(first: 5) {
    ...Product
    reviews {
      ...Review
      author {
        ...User
        reviews {
          ...Review
          product {
            ...Product
          }
        }
      }
    }
  }
}

Variable Batching Throughput

Constant Load (50 VUs)

Requests/sec Error Rate
27696.74 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.08ms 1.45ms 36.14ms 1.76ms 3.30ms 4.07ms

Ramping Load (0→50→500→50 VUs)

Requests/sec Error Rate
21650.06 req/s 0.00%
📊 Response Time Metrics
Min Med Max Avg P90 P95
0.08ms 7.19ms 115.49ms 9.47ms 20.09ms 24.44ms

Executed Query

query TestQuery_8f7a46ce_2(
  $__fusion_1_upc: ID!
  $__fusion_2_price: Long!
  $__fusion_2_weight: Long!
) {
  productByUpc(upc: $__fusion_1_upc) {
    inStock
    shippingEstimate(weight: $__fusion_2_weight, price: $__fusion_2_price)
  }
}

Variables (5 sets batched in single request)

[
  { "__fusion_1_upc": "1", "__fusion_2_price": 899, "__fusion_2_weight": 100 },
  { "__fusion_1_upc": "2", "__fusion_2_price": 1299, "__fusion_2_weight": 1000 },
  { "__fusion_1_upc": "3", "__fusion_2_price": 15, "__fusion_2_weight": 20 },
  { "__fusion_1_upc": "4", "__fusion_2_price": 499, "__fusion_2_weight": 100 },
  { "__fusion_1_upc": "5", "__fusion_2_price": 1299, "__fusion_2_weight": 1000 }
]

No baseline data available for comparison.


Run 21938295218 • Commit 20b2649 • Thu, 12 Feb 2026 08:19:46 GMT

@tobias-tengler tobias-tengler merged commit 934d445 into main Feb 12, 2026
95 of 117 checks passed
@tobias-tengler tobias-tengler deleted the tte/fusion-settings-set-without-nitro branch February 12, 2026 10:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants