Skip to content
Merged

v1.6.3 #4970

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
139 commits
Select commit Hold shift + click to select a range
4be4aba
fix: update audit logs page layout classes and add newline at EOF (#4…
impoiler Jun 26, 2026
a05e839
feat: add collapsible tag limit to TagInput (#4730)
impoiler Jun 26, 2026
e2214fe
fix: rebuild token_usage from denormalized columns in hybrid log list…
G-XD Jun 27, 2026
0b3868d
refactor: centralize Anthropic request building into `BuildAnthropicC…
Pratham-Mishra04 Jun 27, 2026
9710dd7
refactor: extract `HandleAnthropicChatCompletionRequest` / `HandleAnt…
Pratham-Mishra04 Jun 27, 2026
53bcefd
refactor: introduce `BearerAuthHeader` helper and migrate OpenAI-comp…
Pratham-Mishra04 Jun 27, 2026
3c670cf
refactor: replace pre-built SigV4 body signing with lazy `BodySigner`…
Pratham-Mishra04 Jun 27, 2026
7142501
feat: add `bedrock_mantle` as a first-class provider with native-Anth…
Pratham-Mishra04 Jun 27, 2026
8b8551d
feat: add `bedrock_mantle` provider with SigV4 key config, DB migrati…
Pratham-Mishra04 Jun 27, 2026
c28de9d
feat: add AWS Bedrock Mantle provider docs (#4738)
Pratham-Mishra04 Jun 27, 2026
bb5ffd0
tests: add `bedrock_mantle` provider capabilities and Postman environ…
Pratham-Mishra04 Jun 27, 2026
eef4003
chunking_strategy as extra params for openai models (#4741)
akshaydeo Jun 28, 2026
a5e332a
fix: fix the provider governance form UI to only show calendar aligne…
roroghost17 Jun 28, 2026
e16f1c4
fix: custom providers with space in names could not set budget (#4725)
roroghost17 Jun 28, 2026
927cd5d
fix: pass through gs:// image URLs on Vertex Gemini closes #4402 (#4568)
G-XD Jun 28, 2026
568c655
Fix mcp reconnect failure on startup (#4316)
HackToHell Jun 28, 2026
b873aaf
fix(responses): preserve codex tool_search_call/tool_search_output in…
raghu-nandan-bs Jun 28, 2026
c63b329
fix: build fix in vertex (#4765)
TejasGhatte Jun 29, 2026
85f6b89
fix: responses.go build fix (#4766)
TejasGhatte Jun 29, 2026
e706c44
feat: add server/client_id filter to MCP clients list (#4767)
impoiler Jun 29, 2026
720b022
fix: redact decoder details from invalid request payload errors (#4770)
impoiler Jun 29, 2026
bf0791f
complexity router : analyzer's no-signal fallback + few improvements …
Madhuvod Jun 30, 2026
a18c62c
complexity: stemming support along w exact keyword match in complexit…
Madhuvod Jun 30, 2026
1b5847c
refactor: rename MCP handler files to remove underscores and drop red…
Pratham-Mishra04 Jun 30, 2026
feacad5
feat: add OAuth2 AS discovery endpoints, signing key management, and …
Pratham-Mishra04 Jun 30, 2026
bade677
feat: add OAuth2 issuance endpoints (DCR, authorize, token) with PKCE…
Pratham-Mishra04 Jun 30, 2026
09d113f
feat: add `OAuth2ConsentHandler` with VK, session, and user identity …
Pratham-Mishra04 Jun 30, 2026
151c8c0
feat: add JWT Bearer authentication path for `/mcp` with session vali…
Pratham-Mishra04 Jun 30, 2026
91937c9
feat: add OAuth2 session listing, revocation, family-revocation, VK l…
Pratham-Mishra04 Jun 30, 2026
612a1ee
ui: add OAuth2 consent page and MCP server auth mode settings (#4510)
Pratham-Mishra04 Jun 30, 2026
8f10b71
ui: add OAuth Grants page and `identity` exact-match filter for MCP s…
Pratham-Mishra04 Jun 30, 2026
dcf1e87
feat: add `mcp_server_auth_mode` and OAuth 2.1 gateway auth docs with…
Pratham-Mishra04 Jun 30, 2026
afd8710
tests: add OAuth2 issuance, JWT verification, consent, discovery, ses…
Pratham-Mishra04 Jun 30, 2026
3994f8f
tests: add MCP auth mode e2e collection and Newman runner for headers…
Pratham-Mishra04 Jun 30, 2026
658b273
tests: add MCP auth e2e collection covering discovery, credential mat…
Pratham-Mishra04 Jun 30, 2026
cf64510
refactor: move Circuit Breaker above Pricing Overrides in sidebar, up…
Pratham-Mishra04 Jun 30, 2026
6aa2d77
feat: add `disable_vk_identity` to suppress virtual-key identity in O…
Pratham-Mishra04 Jun 30, 2026
99e8940
fix: exclude terminal-status oauth configs from expiring token refres…
Pratham-Mishra04 Jun 30, 2026
ef7bc35
feat: add interactive MCP test client with header and OAuth auth supp…
Pratham-Mishra04 Jun 30, 2026
3c77299
fix: make MCP sessions table scrollable with sticky header and improv…
Pratham-Mishra04 Jun 30, 2026
5154331
feat: push OAuth2 sessions filtering and pagination to SQL with total…
Pratham-Mishra04 Jun 30, 2026
dbc0f0b
feat: add `virtualKeysByID` secondary index and cache signing key + V…
Pratham-Mishra04 Jun 30, 2026
6a83b31
feat: scope pre-authenticated user requests to their representative v…
Pratham-Mishra04 Jun 30, 2026
f22fd7f
feat: revoke VK-mode OAuth2 grants on VK deletion and add user-livene…
Pratham-Mishra04 Jun 30, 2026
3c88753
docs: clarify OAuth revocation behavior, `disable_vk_identity` flag, …
Pratham-Mishra04 Jun 30, 2026
ecff4b7
feat: add `x-goog-api-key` as a supported VK header on the MCP auth p…
Pratham-Mishra04 Jun 30, 2026
0b35640
feat: drop reasoning when tools present but reasoning_with_tool_calls…
sammaji Jun 30, 2026
37e66bf
fix: signal Bedrock max_output_tokens truncation on Responses API (#4…
jeremym-tanium Jul 1, 2026
8fb1878
docs: add security best practices deployment guide (#4706)
impoiler Jul 1, 2026
cc4c946
feat: add `UpsertModelParametersBatch` for batched model parameter sy…
impoiler Jul 1, 2026
42df88c
fix: use parseAsSafeArrayOf for dashboard page array query params (#4…
impoiler Jul 1, 2026
c9a66e5
feat: display provider key aliases as model names in model catalog ov…
impoiler Jul 1, 2026
a792547
feat: stream cost recalculation progress via SSE with batch processin…
impoiler Jul 1, 2026
b8e157b
feat: add `is_deprecated` field to model pricing and catalog API resp…
impoiler Jul 1, 2026
ead934c
feat: remove is_deprecated models from api responses (#4792)
impoiler Jul 1, 2026
7c66b20
removing old pii redactors ui code + presidio icon (#4133)
Madhuvod Jul 1, 2026
53a60c2
chore: build fix ui (#4827)
TejasGhatte Jul 1, 2026
a52d180
feat: lower `auth_code_ttl` default to 300s and enforce 900s maximum …
Pratham-Mishra04 Jul 1, 2026
c581168
[fix]: Anthropic provider - preserve file ID document sources (#4832)
mmacvicar Jul 2, 2026
8493d18
fix(gemini): preserve file upload mime type (#4833)
mmacvicar Jul 2, 2026
98645f7
fix: test fixes (#4823)
roroghost17 Jul 2, 2026
5214991
feat: add connection_type, auth_type, state, and virtual_key filters …
impoiler Jul 2, 2026
19e5597
feat: add filter sidebar with faceted filtering to MCP clients page (…
impoiler Jul 2, 2026
c10c85a
feat: add pagination and filtering to MCP clients list endpoint (#4841)
impoiler Jul 2, 2026
871725b
fix: skip background token refresh for disabled/unconfigured MCP clie…
Pratham-Mishra04 Jul 2, 2026
4eadb1f
docs: clarify two-layer token refresh behavior and disabled-client re…
Pratham-Mishra04 Jul 2, 2026
dac21d8
fix: perplexity responses api compatibility (#4813)
TejasGhatte Jul 2, 2026
98b8d14
fix: cancelled state in logs (#4831)
TejasGhatte Jul 2, 2026
dc0fcfa
fix: gemini openai through signature compatibility (#4810)
TejasGhatte Jul 2, 2026
e1198e5
fix: billing on failed responses stream requests anthropic and bedroc…
TejasGhatte Jul 2, 2026
d3d2f17
feat(mcp): add per-MCP-server tool execution timeout (#4472)
Purvi09 Jul 2, 2026
97c8a21
feat: use `schemas.SecretVar` for virtual key values to support env s…
BearTS Jul 2, 2026
3c155e5
fix: honor model_parameters_url changes in config.json like pricing_u…
jeremym-tanium Jul 2, 2026
09bf6a3
feat: add multi-value attribution cell with plural fallback for logs …
impoiler Jul 3, 2026
24ff783
feat: add `user_name`, `team_ids`, `team_names`, `customer_ids`, `cus…
impoiler Jul 3, 2026
815c4ce
feat: latency info on errors (#4867)
TejasGhatte Jul 3, 2026
70da5f3
Added missing OpenAI responses methods for lifecycle related tasks (#…
17jmumford Jul 3, 2026
d036d25
fix: small latency return fixes (#4876)
TejasGhatte Jul 3, 2026
83591ca
feat: adds multiple teams / customers / bus to connectors (#4875)
roroghost17 Jul 3, 2026
de12e5f
fix: append datasheet models for incomplete list models call (#4879)
TejasGhatte Jul 3, 2026
1f7f9ee
refactor: simplify Responses lifecycle permissions to require explici…
Pratham-Mishra04 Jul 3, 2026
f6dd217
fix: skip O(N) reference refresh on request-time rate-limit/budget re…
danpiths Jul 3, 2026
456ffe1
feat: add `BedrockMantleKeyConfig` support to key hashing, schema/tab…
Pratham-Mishra04 Jul 3, 2026
1dc6649
fix: cost for image generation or image edit streaming (#4802)
sammaji Jul 3, 2026
0053265
feat: adds deepseek provider (#4852)
sammaji Jul 3, 2026
59af8c8
chore: adds tests for deepseek provider (#4853)
sammaji Jul 3, 2026
5d8892c
chore: adds docs for deepseek provider (#4854)
sammaji Jul 3, 2026
010e775
fix: converts thinking to disabled if tool choice is required for dee…
sammaji Jul 3, 2026
9e89466
feat: add expiry field to virtual keys (#4887)
Pratham-Mishra04 Jul 3, 2026
4f94fe1
test: add Postman e2e collection and runner for virtual key expiry va…
Pratham-Mishra04 Jul 3, 2026
6484317
docs: add virtual key expiry support docs (#4889)
Pratham-Mishra04 Jul 3, 2026
669f6e1
ipv6 support (#4895)
akshaydeo Jul 4, 2026
53b17df
docs: update benchmarking docs for new CLI flags, mocker/hitter tools…
Pratham-Mishra04 Jul 4, 2026
3e7a685
fix: report cached_tokens as reads only per the OpenAI spec (#4906)
fus3r Jul 4, 2026
468c5d8
docs: clarify adaptive load balancing weight calculation and cross-no…
Pratham-Mishra04 Jul 4, 2026
51a5dfc
docs: add conflicting credentials troubleshooting and clarify MCP aut…
Pratham-Mishra04 Jul 4, 2026
7f4348b
fix: surface Gemini batch inline responses from response field, not d…
eyeveil Jul 4, 2026
7476ba9
fix: clear the stream close claim between attempts so streaming retri…
fus3r Jul 4, 2026
717ce67
[fix]: sanitize ErrorDetailsParsed so raw payloads honor disable_cont…
citrocat Jul 4, 2026
9fe01a7
fix: decode URL-encoded governance team IDs in fetch/update/delete en…
eyeveil Jul 4, 2026
bef906b
fix: complete deferred LLM span on streaming goroutine exit (#4885)
TejasGhatte Jul 4, 2026
9da2027
[fix]: sweep orphaned deferred spans in trace store TTL cleanup (#4869)
citrocat Jul 4, 2026
3279475
pr review skill (#4914)
akshaydeo Jul 4, 2026
a9f4c58
fix: sanitize error details on log update path, set MCP raw-storage f…
akshaydeo Jul 4, 2026
be26977
review skill updates (#4915)
akshaydeo Jul 4, 2026
9667666
fix: resolve semantic cache internal embedding keys like external req…
eyeveil Jul 5, 2026
5272ed2
refactor: extract `ClearContextForInternalRequest` and extend it to c…
Pratham-Mishra04 Jul 5, 2026
f244691
fix: skip model check for responses lifecycle apis (#4920)
TejasGhatte Jul 5, 2026
4a8c5df
fixes empty tool call result insertion failures (#4925)
akshaydeo Jul 5, 2026
944dbae
fix(anthropic): consistent content_block indices for server tools on …
surki Jul 5, 2026
e07512e
feat: extend Bedrock vendor-prefix pricing fallback to OpenAI, Google…
Pratham-Mishra04 Jul 5, 2026
d87f109
fix: adds support for external budget resolved for supplemental budge…
roroghost17 Jul 5, 2026
06f295c
fix: endless login loop on sso (#4928)
BearTS Jul 5, 2026
a9e43bc
fix: check for if vk value is a secret (#4927)
BearTS Jul 5, 2026
1d5842e
fix: tier costs evaluated via input tokens instead of total tokens (#…
TejasGhatte Jul 5, 2026
4be1d6d
fix: stats for cancelled requests (#4930)
TejasGhatte Jul 5, 2026
dff50b5
fix: minor claude code fixes (#4932)
TejasGhatte Jul 5, 2026
47570e4
fix: emit contentBlockStop events on the Bedrock ConverseStream egres…
fus3r Jul 5, 2026
416cdc0
clickhouse support for log_store (#4748)
akshaydeo Jul 5, 2026
339dd7a
hybdrid store with clickhouse (#4893)
akshaydeo Jul 5, 2026
6731d0b
chore: ui build fix (#4933)
TejasGhatte Jul 6, 2026
ca8fbd4
fix: set content type header consistently for responses api requests …
TejasGhatte Jul 6, 2026
e0c541d
feat: mark deprecated models instead of filtering them from API respo…
impoiler Jul 6, 2026
2d85bf1
fix: idle timeout wiring in vertex path (#4937)
TejasGhatte Jul 6, 2026
04e9dfb
fix: set `SecretTypePlainText` for plain-text JSON and non-prefixed s…
BearTS Jul 6, 2026
ad5785b
test: fix and update tests for tool_search round-trip, Anthropic pass…
Pratham-Mishra04 Jul 6, 2026
655e158
test: additions to harness tests (#4944)
TejasGhatte Jul 6, 2026
149474f
fix: web fetch fixes (#4945)
TejasGhatte Jul 6, 2026
dbaa9ea
fix: gemini 2.5-pro thinking budget value (#4947)
TejasGhatte Jul 6, 2026
ea2362c
fix: guard setting tool call config in gemini (#4959)
TejasGhatte Jul 6, 2026
d81b486
fix: round-trip anthropic redacted_thinking blocks on the chat comple…
fus3r Jul 6, 2026
7022fa1
fix: fixes error type setting in all integrations for Bedrock (#4958)
roroghost17 Jul 6, 2026
9c8ecbf
fix: propagate max_tokens from openai integration (#4966)
TejasGhatte Jul 6, 2026
6d3382b
chore: renames NewEnvVar to NewSecretVar in docs (#4955)
sammaji Jul 6, 2026
86e2330
fix: adds file id for anthropic files integration and adds forwardin…
sammaji Jul 6, 2026
9a73b4e
chore: adds harness test cases for file apis in anthropic (#4967)
sammaji Jul 6, 2026
dd73ce5
v1.6.3 changelogs (#4969)
akshaydeo Jul 6, 2026
0e65d8e
fix: bedrock responses type error forwrding (#4968)
roroghost17 Jul 6, 2026
4278bc7
feat: add ClickHouse logs store, MCP OAuth2 server config, `bedrock_m…
BearTS Jul 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
42 changes: 42 additions & 0 deletions .claude/skills/review-pr/SKILL.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
---
name: review-pr
description: Reviews a PR or diff with multi-angle finders and adversarial verification, then reports a findings table, a merge/no-merge recommendation, required followups, and offers to create a follow-up PR. Use when the user types /review-pr [PR# | branch | path].
---

# PR Review (bifrost custom)

## Scope
If a PR number is given: `gh pr view <N> --json title,body,author,baseRefName,headRefName,state,additions,deletions,changedFiles` and `gh pr diff <N>` define the scope. Otherwise use `git diff @{upstream}...HEAD` (fall back to `git diff dev...HEAD`, then `git diff HEAD` for uncommitted work).

The diff is the only review scope. When an angle needs surrounding code, Read files in this checkout if it matches the PR branch, otherwise fetch via `gh`.

## Process
1. **Find** - launch independent finder agents in parallel (Agent tool), each returning up to 6 candidates `{file, line, summary, failure_scenario}`:
- Correctness angles: line-by-line diff scan (read the enclosing function of every hunk); removed-behavior audit (what invariant did deleted/replaced code enforce, and where is it re-established?); cross-file caller/callee trace (grep for changed symbols, check every call site).
- Cleanup angles: reuse (does new code re-implement an existing helper? name it); simplification (redundant state, copy-paste variation, dead code); efficiency (wasted work, repeated I/O, hot-path cost); altitude (is the fix at the right layer, or a bandaid on shared infrastructure?); conventions (check AGENTS.md rules - only flag when you can quote the exact rule and the exact violating line).
- Finders must pass through every candidate with a nameable failure scenario; do not self-censor half-believed ones.
2. **Verify** - dedup candidates that share a mechanism (keep the most concrete scenario), then run one verifier agent per candidate. Each returns exactly one of CONFIRMED (quote the triggering inputs and the wrong output), PLAUSIBLE (mechanism real, trigger uncertain - state what would confirm it), or REFUTED (quote the line that proves it wrong). Drop REFUTED.

## Output format (required)
1. **2-3 sentence overview** of what the PR does and its overall quality.
2. **Findings table**: columns `# | Severity | Location | Finding | Verdict`, ranked most-severe first, max 8 rows. Location is a clickable `file:line`. If nothing survived verification, say so plainly.
3. **Merge recommendation**: exactly one of **Merge**, **Merge after nits**, or **Not yet - request changes**, with a 1-2 sentence reason tied to specific finding numbers. Only CONFIRMED correctness findings may block a merge; PLAUSIBLE and cleanup findings are nits or followups.
4. **Followups required**: numbered list, each tagged "in this PR (blocking)" or "follow-up PR", with concrete file:line targets and a one-line fix description.
5. **Follow-up PR offer**: if any follow-up items exist, offer to prepare them on a new branch. NEVER commit or push - leave changes staged for the user (standing user rule), unless the user explicitly authorizes committing and opening the PR with `gh pr create`.
6. Briefly list refuted candidates with the one-line reason, so the user knows what was checked and cleared.

## Post the review to GitHub (after user approval)

When reviewing a GitHub PR, after presenting the output above, offer to publish it on the PR. Only post after the user approves (posting is outward-facing). When approved:

1. Build a single review payload as JSON in the scratchpad and submit it with `gh api repos/{owner}/{repo}/pulls/<N>/reviews --input <file>.json` (get owner/repo via `gh repo view --json nameWithOwner`).
2. `event`: use `REQUEST_CHANGES` when the merge recommendation is "Not yet", `COMMENT` for "Merge after nits", `APPROVE` for "Merge".
3. `body`: the overview, findings table, merge recommendation, suggested followups (tagged blocking vs follow-up PR), and the refuted-candidates list.
4. `comments`: one inline comment per finding whose file is part of the PR diff, anchored with `path`, `line` (new-file line number, computed from the diff hunk headers), and `side: "RIGHT"`. Include the concrete failure scenario and a suggested fix as a code block. Findings in files NOT touched by the diff cannot be inline - keep them in the review body (GitHub rejects comments on unchanged files).
5. Report the resulting review URL back to the user.

## House rules
- Never dismiss a finding as "out of scope" - address it or give a concrete design reason.
- No em dashes anywhere in the output.
- Diagrams, if any, are mermaid blocks, never ASCII art.
- Capability claims about providers must cite fetched upstream docs.
68 changes: 68 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -187,3 +187,71 @@ tests/cmd/seedvks/seedvks

# routing harness ledgers (local run journals, never committed)
tests/e2e/api/routing/ledger-*


# Build artifacts
*/build/
*.so
*.dll
*.dylib

# Go build cache
*.exe
*.exe~
*.test
*.out

# Dependency directories
vendor/

reports/*
!reports/.keep

# See https://help.github.com/articles/ignoring-files/ for more about ignoring files.

# dependencies
/node_modules
/.pnp
.pnp.*
.yarn/*
!.yarn/patches
!.yarn/plugins
!.yarn/releases
!.yarn/versions

# testing
/coverage

# build output
ui/.next/
ui/out/

# production
ui/build

# misc
.DS_Store
*.pem

# debug
npm-debug.log*
yarn-debug.log*
yarn-error.log*
.pnpm-debug.log*

# env files (can opt-in for committing if needed)
.env*

# vercel
.vercel

# typescript
*.tsbuildinfo

# auto-generated TanStack Router route tree
ui/app/routeTree.gen.ts


bifrost-migration-cli

tests/e2e/clis/reports
13 changes: 9 additions & 4 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -823,18 +823,19 @@ test-framework: install-gotestsum ## Run framework tests
@$(EXPOSE_ENV); \
$(ECHO) "$(GREEN)Running framework tests...$(NC)"; \
mkdir -p $(TEST_REPORTS_DIR); \
rm -f $(TEST_REPORTS_DIR)/.framework-failed; \
cd framework && find . -name "*.go" -path "*/tests/*" -o -name "*_test.go" | head -1 > /dev/null && \
for dir in $$(find . -name "*_test.go" -exec dirname {} \; | sort -u); do \
pkg_name=$$(echo $$dir | sed 's|^\./||' | sed 's|/|-|g'); \
$(ECHO) "Testing $$dir..."; \
cd $$dir && gotestsum \
( cd $$dir && gotestsum \
--format=$(GOTESTSUM_FORMAT) \
--junitfile=../../$(TEST_REPORTS_DIR)/framework-$$pkg_name.xml \
-- -v ./... && cd - > /dev/null; \
--junitfile=$(CURDIR)/$(TEST_REPORTS_DIR)/framework-$$pkg_name.xml \
-- -v ./... ) || touch $(CURDIR)/$(TEST_REPORTS_DIR)/.framework-failed; \
if [ -z "$$CI" ] && [ -z "$$GITHUB_ACTIONS" ] && [ -z "$$GITLAB_CI" ] && [ -z "$$CIRCLECI" ] && [ -z "$$JENKINS_HOME" ]; then \
if which junit-viewer > /dev/null 2>&1; then \
$(ECHO) "$(YELLOW)Generating HTML report for $$pkg_name...$(NC)"; \
junit-viewer --results=../$(TEST_REPORTS_DIR)/framework-$$pkg_name.xml --save=../$(TEST_REPORTS_DIR)/framework-$$pkg_name.html 2>/dev/null || true; \
junit-viewer --results=$(CURDIR)/$(TEST_REPORTS_DIR)/framework-$$pkg_name.xml --save=$(CURDIR)/$(TEST_REPORTS_DIR)/framework-$$pkg_name.html 2>/dev/null || true; \
fi; \
fi; \
done || $(ECHO) "No framework tests found"
Expand All @@ -848,6 +849,10 @@ test-framework: install-gotestsum ## Run framework tests
SUMMARY_LABEL="Framework" \
SUMMARY_STRIP="framework-" \
SUMMARY_FILES="$(TEST_REPORTS_DIR)/framework-*.xml"
@if [ -f $(TEST_REPORTS_DIR)/.framework-failed ]; then \
rm -f $(TEST_REPORTS_DIR)/.framework-failed; \
exit 1; \
fi

# Internal: render a table of test reports + a final pass/fail scenario.
# Usage: $(MAKE) print-test-summary SUMMARY_LABEL="Framework" SUMMARY_STRIP="framework-" SUMMARY_FILES="<glob or files>"
Expand Down
Loading
Loading